本文整理汇总了C++中btAlignedObjectArray::clear方法的典型用法代码示例。如果您正苦于以下问题:C++ btAlignedObjectArray::clear方法的具体用法?C++ btAlignedObjectArray::clear怎么用?C++ btAlignedObjectArray::clear使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类btAlignedObjectArray
的用法示例。
在下文中一共展示了btAlignedObjectArray::clear方法的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: finishBullet
void finishBullet() {
//delete collision shapes
for (int j=0;j<collisionShapes.size();j++)
{
btCollisionShape* shape = collisionShapes[j];
collisionShapes[j] = 0;
delete shape;
}
//delete dynamics world
delete dynamicsWorld;
//delete solver
delete solver;
//delete broadphase
delete overlappingPairCache;
//delete dispatcher
delete dispatcher;
delete collisionConfiguration;
//next line is optional: it will be cleared by the destructor when the array goes out of scope
collisionShapes.clear();
}
示例2: clearWorld
/// removes all objects and shapes from the world
void TerrainDemo::clearWorld(void)
{
//remove the rigidbodies from the dynamics world and delete them
int i;
for (i=m_dynamicsWorld->getNumCollisionObjects()-1; i>=0 ;i--)
{
btCollisionObject* obj = m_dynamicsWorld->getCollisionObjectArray()[i];
btRigidBody* body = btRigidBody::upcast(obj);
if (body && body->getMotionState())
{
delete body->getMotionState();
}
m_dynamicsWorld->removeCollisionObject( obj );
delete obj;
}
//delete collision shapes
for (int j=0;j<m_collisionShapes.size();j++)
{
btCollisionShape* shape = m_collisionShapes[j];
delete shape;
}
m_collisionShapes.clear();
// delete raw heightfield data
delete m_rawHeightfieldData;
m_rawHeightfieldData = NULL;
}
示例3: ExitBulletPhysics
void ExitBulletPhysics()
{
//cleanup in the reverse order of creation/initialization
for (int i=m_dynamicsWorld->getNumCollisionObjects()-1; i>=0; i--) //remove the rigidbodies from the dynamics world and delete them
{
btCollisionObject* obj = m_dynamicsWorld->getCollisionObjectArray()[i];
btRigidBody* body = btRigidBody::upcast(obj);
if(body && body->getMotionState())
delete body->getMotionState();
m_dynamicsWorld->removeCollisionObject(obj);
delete obj;
}
for (int j=0; j<m_collisionShapes.size(); j++) //delete collision shapes
{
btCollisionShape* shape = m_collisionShapes[j];
delete shape;
}
m_collisionShapes.clear();
delete m_dynamicsWorld;
delete m_solver;
delete m_broadphase;
delete m_dispatcher;
delete m_collisionConfiguration;
}
示例4: fopen
ImportUrdfSetup::ImportUrdfSetup(struct GUIHelperInterface* helper, int option, const char* fileName)
:CommonMultiBodyBase(helper)
{
m_data = new ImportUrdfInternalData;
if (option==1)
{
m_useMultiBody = true;
} else
{
m_useMultiBody = false;
}
static int count = 0;
if (fileName)
{
setFileName(fileName);
} else
{
gFileNameArray.clear();
//load additional urdf file names from file
FILE* f = fopen("urdf_files.txt","r");
if (f)
{
int result;
//warning: we don't avoid string buffer overflow in this basic example in fscanf
char fileName[1024];
do
{
result = fscanf(f,"%s",fileName);
b3Printf("urdf_files.txt entry %s",fileName);
if (result==1)
{
gFileNameArray.push_back(fileName);
}
} while (result==1);
fclose(f);
}
if (gFileNameArray.size()==0)
{
gFileNameArray.push_back("r2d2.urdf");
}
int numFileNames = gFileNameArray.size();
if (count>=numFileNames)
{
count=0;
}
sprintf(m_fileName,"%s",gFileNameArray[count++].c_str());
}
}
示例5: flushLines
virtual void flushLines()
{
int sz = m_linePoints.size();
if (sz)
{
float debugColor[4];
debugColor[0] = m_currentLineColor.x();
debugColor[1] = m_currentLineColor.y();
debugColor[2] = m_currentLineColor.z();
debugColor[3] = 1.f;
m_glApp->m_renderer->drawLines(&m_linePoints[0].x,debugColor,
m_linePoints.size(),sizeof(MyDebugVec3),
&m_lineIndices[0],
m_lineIndices.size(),
1);
m_linePoints.clear();
m_lineIndices.clear();
}
}
示例6:
void Planar2D::exitPhysics()
{
//cleanup in the reverse order of creation/initialization
//remove the rigidbodies from the dynamics world and delete them
int i;
if (m_dynamicsWorld)
for (i=m_dynamicsWorld->getNumCollisionObjects()-1; i>=0 ; i--)
{
btCollisionObject* obj = m_dynamicsWorld->getCollisionObjectArray()[i];
btRigidBody* body = btRigidBody::upcast(obj);
if (body && body->getMotionState())
{
delete body->getMotionState();
}
m_dynamicsWorld->removeCollisionObject( obj );
delete obj;
}
//delete collision shapes
for (int j=0; j<m_collisionShapes.size(); j++)
{
btCollisionShape* shape = m_collisionShapes[j];
delete shape;
}
m_collisionShapes.clear();
delete m_dynamicsWorld;
delete m_solver;
delete m_broadphase;
delete m_dispatcher;
delete m_collisionConfiguration;
delete m_convexAlgo2d;
delete m_pdSolver;
delete m_simplexSolver;
delete m_box2dbox2dAlgo;
m_dynamicsWorld = 0;
m_solver = 0;
m_broadphase = 0;
m_dispatcher = 0;
m_collisionConfiguration = 0;
m_convexAlgo2d=0;
m_pdSolver = 0;
m_simplexSolver = 0;
m_box2dbox2dAlgo = 0;
}
示例7: remove_physics
void remove_physics(){
if(plane)
delete plane;
if(m_shootBoxShape)
delete m_shootBoxShape;
if(m_fluidSolverCPU)
delete m_fluidSolverCPU;
if(m_emitter)
delete m_emitter;
if(m_fluidWorld)
delete m_fluidWorld;
if(m_collisionConfiguration)
delete m_collisionConfiguration;
if(m_solver)
delete m_solver;
if(m_dispatcher)
delete m_dispatcher;
if(m_broadphase)
delete m_broadphase;
m_fluids.clear();
m_collisionShapes.clear();
m_demos.clear();
}
示例8:
OpenGLExampleBrowser::~OpenGLExampleBrowser()
{
deleteDemo();
for (int i = 0; i < m_internalData->m_nodes.size(); i++)
{
delete m_internalData->m_nodes[i];
}
delete m_internalData->m_handler2;
for (int i = 0; i < m_internalData->m_handlers.size(); i++)
{
delete m_internalData->m_handlers[i];
}
m_internalData->m_handlers.clear();
m_internalData->m_nodes.clear();
delete s_parameterInterface;
s_parameterInterface = 0;
delete s_app->m_2dCanvasInterface;
s_app->m_2dCanvasInterface = 0;
#ifndef BT_NO_PROFILE
destroyProfileWindow(m_internalData->m_profWindow);
#endif
m_internalData->m_gui->exit();
delete m_internalData->m_gui;
delete m_internalData->m_gwenRenderer;
delete m_internalData->m_myTexLoader;
delete m_internalData->m_app;
s_app = 0;
delete m_internalData;
gFileImporterByExtension.clear();
gAllExamples = 0;
}
示例9: exitPhysics
virtual void exitPhysics()
{
b3Printf("exitPhysics, stopping threads");
bool blockingWait =false;
int arg0,arg1;
args.m_cs->lock();
//terminate all threads
args.m_cs->setSharedParam(1,MAGIC_RESET_NUMBER);
args.m_cs->unlock();
if (blockingWait)
{
for (int i=0;i<m_numThreads;i++)
{
m_threadSupport->waitForResponse(&arg0,&arg1);
printf("finished waiting for response: %d %d\n", arg0,arg1);
}
} else
{
int numActiveThreads = m_numThreads;
while (numActiveThreads)
{
if (m_threadSupport->isTaskCompleted(&arg0,&arg1,0))
{
numActiveThreads--;
printf("numActiveThreads = %d\n",numActiveThreads);
} else
{
// printf("polling..");
}
};
}
delete m_threadSupport;
b3Printf("Threads stopped");
for (int i=0;i<m_jobs.size();i++)
{
delete m_jobs[i];
}
m_jobs.clear();
}
示例10: Deinit
static void Deinit() {
int i;
for (i = dynamicsWorld->getNumCollisionObjects()-1; i>=0 ;i--)
{
btCollisionObject* obj = dynamicsWorld->getCollisionObjectArray()[i];
btRigidBody* body = btRigidBody::upcast(obj);
if (body && body->getMotionState())
{
delete body->getMotionState();
}
dynamicsWorld->removeCollisionObject( obj );
delete obj;
}
for (int j=0;j<collisionShapes.size();j++) {
btCollisionShape* shape = collisionShapes[j];
collisionShapes[j] = 0;
delete shape;
}
collisionShapes.clear();
}
示例11: CommonMultiBodyBase
ImportMJCFSetup::ImportMJCFSetup(struct GUIHelperInterface* helper, int option, const char* fileName)
: CommonMultiBodyBase(helper),
m_grav(-10),
m_upAxis(2)
{
m_data = new ImportMJCFInternalData;
m_useMultiBody = true;
static int count = 0;
if (fileName)
{
setFileName(fileName);
}
else
{
gMCFJFileNameArray.clear();
//load additional MJCF file names from file
FILE* f = fopen("mjcf_files.txt", "r");
if (f)
{
int result;
//warning: we don't avoid string buffer overflow in this basic example in fscanf
char fileName[1024];
do
{
result = fscanf(f, "%s", fileName);
b3Printf("mjcf_files.txt entry %s", fileName);
if (result == 1)
{
gMCFJFileNameArray.push_back(fileName);
}
} while (result == 1);
fclose(f);
}
if (gMCFJFileNameArray.size() == 0)
{
gMCFJFileNameArray.push_back("mjcf/humanoid.xml");
gMCFJFileNameArray.push_back("MPL/MPL.xml");
gMCFJFileNameArray.push_back("mjcf/inverted_pendulum.xml");
gMCFJFileNameArray.push_back("mjcf/ant.xml");
gMCFJFileNameArray.push_back("mjcf/hello_mjcf.xml");
gMCFJFileNameArray.push_back("mjcf/cylinder.xml");
gMCFJFileNameArray.push_back("mjcf/cylinder_fromtoX.xml");
gMCFJFileNameArray.push_back("mjcf/cylinder_fromtoY.xml");
gMCFJFileNameArray.push_back("mjcf/cylinder_fromtoZ.xml");
gMCFJFileNameArray.push_back("mjcf/capsule.xml");
gMCFJFileNameArray.push_back("mjcf/capsule_fromtoX.xml");
gMCFJFileNameArray.push_back("mjcf/capsule_fromtoY.xml");
gMCFJFileNameArray.push_back("mjcf/capsule_fromtoZ.xml");
gMCFJFileNameArray.push_back("mjcf/hopper.xml");
gMCFJFileNameArray.push_back("mjcf/swimmer.xml");
gMCFJFileNameArray.push_back("mjcf/reacher.xml");
}
int numFileNames = gMCFJFileNameArray.size();
if (count >= numFileNames)
{
count = 0;
}
sprintf(m_fileName, "%s", gMCFJFileNameArray[count++].c_str());
}
}
示例12: exitPhysics
void ForkLiftDemo::exitPhysics()
{
//cleanup in the reverse order of creation/initialization
//remove the rigidbodies from the dynamics world and delete them
int i;
for (i=m_dynamicsWorld->getNumCollisionObjects()-1; i>=0 ;i--)
{
btCollisionObject* obj = m_dynamicsWorld->getCollisionObjectArray()[i];
btRigidBody* body = btRigidBody::upcast(obj);
if (body && body->getMotionState())
{
while (body->getNumConstraintRefs())
{
btTypedConstraint* constraint = body->getConstraintRef(0);
m_dynamicsWorld->removeConstraint(constraint);
delete constraint;
}
delete body->getMotionState();
m_dynamicsWorld->removeRigidBody(body);
} else
{
m_dynamicsWorld->removeCollisionObject( obj );
}
delete obj;
}
//delete collision shapes
for (int j=0;j<m_collisionShapes.size();j++)
{
btCollisionShape* shape = m_collisionShapes[j];
delete shape;
}
m_collisionShapes.clear();
delete m_indexVertexArrays;
delete m_vertices;
//delete dynamics world
delete m_dynamicsWorld;
m_dynamicsWorld=0;
delete m_vehicleRayCaster;
m_vehicleRayCaster = 0;
delete m_vehicle;
m_vehicle=0;
delete m_wheelShape;
m_wheelShape=0;
//delete solver
delete m_constraintSolver;
m_constraintSolver=0;
//delete broadphase
delete m_overlappingPairCache;
m_overlappingPairCache=0;
//delete dispatcher
delete m_dispatcher;
m_dispatcher=0;
delete m_collisionConfiguration;
m_collisionConfiguration=0;
}
示例13: shutdown
void shutdown()
{
// remove all constraints from objects
for (int i = constraints.size()-1; i >= 0; --i)
{
MEMORY2_DELETE(*physics_allocator, constraints[i]);
}
constraints.clear();
for( int i = dynamics_world->getNumCollisionObjects()-1; i >= 0; --i )
{
btCollisionObject * obj = dynamics_world->getCollisionObjectArray()[i];
btRigidBody * body = btRigidBody::upcast(obj);
if ( body && body->getMotionState() )
{
delete body->getMotionState();
}
dynamics_world->removeCollisionObject( obj );
delete obj;
}
//delete collision shapes
// LOGV("total collision shapes: %ld\n", (unsigned int)collision_shapes.size());
for ( int j = 0; j < collision_shapes.size(); j++ )
{
btCollisionShape* shape = collision_shapes[j];
if (shape)
{
collision_shapes[j] = 0;
delete shape;
}
}
dynamics_world->setDebugDrawer(0);
MEMORY2_DELETE(*physics_allocator, debug_renderer);
//delete dynamics world
delete dynamics_world;
//delete solver
delete constraint_solver;
//delete broadphase
//delete mPairCache;
delete broadphase;
//delete dispatcher
delete dispatcher;
// delete the collision configuration
delete collision_config;
//next line is optional: it will be cleared by the destructor when the array goes out of scope
collision_shapes.clear();
// cleanup controllers
// delete _controller;
}