2015-04-16 16:55:32 +00:00
|
|
|
|
|
|
|
|
|
|
|
#include "ExampleEntries.h"
|
|
|
|
|
|
|
|
#include "LinearMath/btAlignedObjectArray.h"
|
|
|
|
#include "EmptyExample.h"
|
|
|
|
#include "../RenderingExamples/RenderInstancingDemo.h"
|
|
|
|
#include "../RenderingExamples/CoordinateSystemDemo.h"
|
|
|
|
#include "../RenderingExamples/RaytracerSetup.h"
|
|
|
|
#include "../ForkLift/ForkLiftDemo.h"
|
|
|
|
#include "../BasicDemo/BasicExample.h"
|
|
|
|
#include "../Planar2D/Planar2D.h"
|
|
|
|
#include "../Benchmarks/BenchmarkDemo.h"
|
|
|
|
#include "../Importers/ImportObjDemo/ImportObjExample.h"
|
|
|
|
#include "../Importers/ImportBsp/ImportBspExample.h"
|
|
|
|
#include "../Importers/ImportColladaDemo/ImportColladaSetup.h"
|
|
|
|
#include "../Importers/ImportSTLDemo/ImportSTLSetup.h"
|
|
|
|
#include "../Importers/ImportURDFDemo/ImportURDFSetup.h"
|
|
|
|
#include "../GyroscopicDemo/GyroscopicSetup.h"
|
2015-04-22 20:02:27 +00:00
|
|
|
#include "../Constraints/Dof6Spring2Setup.h"
|
|
|
|
#include "../Constraints/ConstraintPhysicsSetup.h"
|
|
|
|
#include "../MultiBody/TestJointTorqueSetup.h"
|
|
|
|
#include "../MultiBody/MultiDofDemo.h"
|
2015-04-23 01:09:00 +00:00
|
|
|
#include "../MultiBody/MultiBodyCustomURDFDemo.h"
|
2015-04-16 16:55:32 +00:00
|
|
|
|
|
|
|
struct ExampleEntry
|
|
|
|
{
|
|
|
|
int m_menuLevel;
|
|
|
|
const char* m_name;
|
|
|
|
ExampleInterface::CreateFunc* m_createFunc;
|
|
|
|
int m_option;
|
|
|
|
|
|
|
|
ExampleEntry(int menuLevel, const char* name,ExampleInterface::CreateFunc* createFunc, int option=0)
|
|
|
|
:m_menuLevel(menuLevel), m_name(name), m_createFunc(createFunc), m_option(option)
|
|
|
|
{
|
|
|
|
}
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static ExampleEntry gDefaultExamples[]=
|
|
|
|
{
|
2015-04-17 05:14:27 +00:00
|
|
|
|
2015-04-16 16:55:32 +00:00
|
|
|
|
|
|
|
ExampleEntry(0,"API",0),
|
|
|
|
ExampleEntry(1,"Basic Example",BasicExampleCreateFunc),
|
2015-04-17 05:14:27 +00:00
|
|
|
|
2015-04-16 16:55:32 +00:00
|
|
|
ExampleEntry(1,"Gyroscopic", GyroscopicCreateFunc),
|
2015-04-17 05:14:27 +00:00
|
|
|
|
2015-04-16 16:55:32 +00:00
|
|
|
ExampleEntry(1,"Planar 2D",Planar2DCreateFunc),
|
2015-04-22 20:02:27 +00:00
|
|
|
ExampleEntry(1,"Constraints",ConstraintCreateFunc),
|
|
|
|
ExampleEntry(1,"6DofSpring2",Dof6Spring2CreateFunc),
|
2015-04-16 16:55:32 +00:00
|
|
|
|
2015-04-22 20:02:27 +00:00
|
|
|
ExampleEntry(0,"MultiBody",0),
|
|
|
|
ExampleEntry(1,"TestJointTorque",TestJointTorqueCreateFunc),
|
|
|
|
ExampleEntry(1,"MultiDofCreateFunc",MultiDofCreateFunc),
|
2015-04-23 22:41:17 +00:00
|
|
|
ExampleEntry(1,"Custom URDF",MultiBodyCustomURDFDemoCreateFunc),
|
2015-04-22 20:02:27 +00:00
|
|
|
|
|
|
|
|
|
|
|
#ifndef _DEBUG
|
2015-04-16 16:55:32 +00:00
|
|
|
ExampleEntry(0,"Benchmarks", 0),
|
|
|
|
ExampleEntry(1,"3000 boxes", BenchmarkCreateFunc, 1),
|
|
|
|
ExampleEntry(1,"1000 stack", BenchmarkCreateFunc, 2),
|
|
|
|
ExampleEntry(1,"Ragdolls", BenchmarkCreateFunc, 3),
|
|
|
|
ExampleEntry(1,"Convex stack", BenchmarkCreateFunc, 4),
|
|
|
|
ExampleEntry(1,"Prim vs Mesh", BenchmarkCreateFunc, 5),
|
|
|
|
ExampleEntry(1,"Convex vs Mesh", BenchmarkCreateFunc, 6),
|
2015-04-17 05:14:27 +00:00
|
|
|
ExampleEntry(1,"Raycast", BenchmarkCreateFunc, 7),
|
2015-04-22 20:02:27 +00:00
|
|
|
#endif
|
2015-04-17 05:14:27 +00:00
|
|
|
|
2015-04-16 16:55:32 +00:00
|
|
|
|
|
|
|
ExampleEntry(0,"Importers", 0),
|
|
|
|
ExampleEntry(1,"Wavefront Obj", ImportObjCreateFunc, 0),
|
2015-04-17 05:14:27 +00:00
|
|
|
|
2015-04-16 16:55:32 +00:00
|
|
|
ExampleEntry(1,"Quake BSP", ImportBspCreateFunc, 0),
|
|
|
|
ExampleEntry(1,"COLLADA dae", ImportColladaCreateFunc, 0),
|
|
|
|
ExampleEntry(1,"STL", ImportSTLCreateFunc, 0),
|
|
|
|
ExampleEntry(1,"URDF (RigidBody)", ImportURDFCreateFunc, 0),
|
|
|
|
ExampleEntry(1,"URDF (MultiBody)", ImportURDFCreateFunc, 1),
|
|
|
|
|
|
|
|
ExampleEntry(0,"Vehicles",0),
|
2015-04-17 05:14:27 +00:00
|
|
|
|
2015-04-16 16:55:32 +00:00
|
|
|
ExampleEntry(1,"ForkLift",ForkLiftCreateFunc),
|
2015-04-17 05:14:27 +00:00
|
|
|
|
|
|
|
ExampleEntry(0,"Rendering",0),
|
|
|
|
ExampleEntry(1,"Instanced Rendering", RenderInstancingCreateFunc),
|
|
|
|
ExampleEntry(1,"CoordinateSystemDemo",CoordinateSystemCreateFunc),
|
|
|
|
ExampleEntry(1,"Raytracer",RayTracerCreateFunc),
|
2015-04-16 16:55:32 +00:00
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
static btAlignedObjectArray<ExampleEntry> gAdditionalRegisteredExamples;
|
|
|
|
|
|
|
|
|
|
|
|
struct ExampleEntriesInternalData
|
|
|
|
{
|
|
|
|
btAlignedObjectArray<ExampleEntry> m_allExamples;
|
|
|
|
};
|
|
|
|
|
|
|
|
ExampleEntries::ExampleEntries()
|
|
|
|
{
|
|
|
|
m_data = new ExampleEntriesInternalData;
|
|
|
|
}
|
|
|
|
|
|
|
|
ExampleEntries::~ExampleEntries()
|
|
|
|
{
|
|
|
|
delete m_data;
|
|
|
|
}
|
|
|
|
|
|
|
|
void ExampleEntries::initExampleEntries()
|
|
|
|
{
|
|
|
|
m_data->m_allExamples.clear();
|
|
|
|
|
2015-04-17 05:14:27 +00:00
|
|
|
|
|
|
|
|
2015-04-16 16:55:32 +00:00
|
|
|
|
|
|
|
int numDefaultEntries = sizeof(gDefaultExamples)/sizeof(ExampleEntry);
|
|
|
|
for (int i=0;i<numDefaultEntries;i++)
|
|
|
|
{
|
|
|
|
m_data->m_allExamples.push_back(gDefaultExamples[i]);
|
|
|
|
}
|
|
|
|
|
2015-04-17 05:14:27 +00:00
|
|
|
if (m_data->m_allExamples.size()==0)
|
|
|
|
{
|
|
|
|
|
|
|
|
{
|
|
|
|
ExampleEntry e(0,"Empty", 0);
|
|
|
|
m_data->m_allExamples.push_back(e);
|
|
|
|
}
|
|
|
|
|
|
|
|
{
|
|
|
|
ExampleEntry e(1,"Empty",EmptyExample::CreateFunc);
|
|
|
|
m_data->m_allExamples.push_back(e);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2015-04-16 16:55:32 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
void ExampleEntries::registerExampleEntry(int menuLevel, const char* name,ExampleInterface::CreateFunc* createFunc, int option)
|
|
|
|
{
|
|
|
|
ExampleEntry e( menuLevel,name,createFunc, option);
|
|
|
|
gAdditionalRegisteredExamples.push_back(e);
|
|
|
|
}
|
|
|
|
|
|
|
|
int ExampleEntries::getNumRegisteredExamples()
|
|
|
|
{
|
|
|
|
return m_data->m_allExamples.size();
|
|
|
|
}
|
|
|
|
|
|
|
|
ExampleInterface::CreateFunc* ExampleEntries::getExampleCreateFunc(int index)
|
|
|
|
{
|
|
|
|
return m_data->m_allExamples[index].m_createFunc;
|
|
|
|
}
|
|
|
|
|
|
|
|
int ExampleEntries::getExampleOption(int index)
|
|
|
|
{
|
|
|
|
return m_data->m_allExamples[index].m_option;
|
|
|
|
}
|
|
|
|
|
|
|
|
const char* ExampleEntries::getExampleName(int index)
|
|
|
|
{
|
|
|
|
return m_data->m_allExamples[index].m_name;
|
|
|
|
}
|