本文整理汇总了C++中dGeomDestroy函数的典型用法代码示例。如果您正苦于以下问题:C++ dGeomDestroy函数的具体用法?C++ dGeomDestroy怎么用?C++ dGeomDestroy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了dGeomDestroy函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。
示例1: destruirMundo
void destruirMundo()
{
for(int i=0; i < 6; i++)//destruir Robos
{
dGeomDestroy (robot[i].box[0]);
dGeomDestroy (robot[i].box[1]);
dGeomDestroy (robot[i].cylinder[0]);
dGeomDestroy (robot[i].cylinder[1]);
}
bola.destruir();
for(int i=0; i < 6; i++) //destruir Campo
dGeomDestroy(wall[i]);
for(int i=0; i < 3; i++) //destruir Gols
{
dGeomDestroy(goalR[i]);
dGeomDestroy(goalL[i]);
}
for(int i=0; i < 4; i++)//destruir Quinas
{
dGeomDestroy(triangle[i]);
}
dJointGroupDestroy(contactgroup); // Destrói o grupo de juntas de contato
dSpaceDestroy (space); // Destrói o espaço
dWorldDestroy (world); // Destrói o mundo
}
开发者ID:unball,项目名称:ieee-very-small-2012,代码行数:30,代码来源:Simulation.cpp
示例2: dBodyDestroy
void SkidSteeringVehicle::destroy() {
dBodyDestroy(this->vehicleBody);
dGeomDestroy(this->vehicleGeom);
for(int fr = 0; fr < 2; fr++) {
for(int lr = 0; lr < 2; lr++) {
dBodyDestroy(this->wheelBody[fr][lr]);
dGeomDestroy(this->wheelGeom[fr][lr]);
dJointDestroy(this->wheelJoint[fr][lr]);
}
}
dRigidBodyArrayDestroy(this->bodyArray);
}
开发者ID:fferri,项目名称:tvs,代码行数:14,代码来源:SkidSteeringVehicle.cpp
示例3: dBodyDestroy
void Machine::destroy(void)
{
int i;
dBodyDestroy(body[0]);
dBodyDestroy(body[1]);
dGeomDestroy(geom[0]);
dJointDestroy(joint);
for(i=0; i<2; i++)
dGeomDestroy(geom[i+2]);
for(i=0; i<3; i++)
{
dBodyDestroy(wheel[i]);
dGeomDestroy(sphere[i]);
}
}
开发者ID:Eliasvan,项目名称:machineball,代码行数:15,代码来源:machine.cpp
示例4: dGeomDestroy
//-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~-~
CollisionShape::~CollisionShape()
{
if( m_geometryId != NULL )
{
dGeomDestroy( m_geometryId );
}
}
开发者ID:SgtFlame,项目名称:indiezen,代码行数:8,代码来源:CollisionShape.cpp
示例5: dCreateRay
std::vector<RaycastResult> & ODESimulator::internal_fireRay(const Rayr& r,
real length, const Solid* attachedSolid,
unsigned int rayContactGroup)
{
Point3r origin = r.getOrigin();
Vec3r dir = r.getDir().unit();
mRaycastResults.clear();
mSensorSolid = attachedSolid;
mRayContactGroup = rayContactGroup;
// Create an ODE ray geom. Make sure its user data pointer is
// NULL because this is used in the collision callback to
// distinguish the ray from other geoms.
dGeomID rayGeomID = dCreateRay(mRootSpaceID, length);
dGeomRaySet(rayGeomID, origin[0], origin[1], origin[2], dir[0],
dir[1], dir[2]);
dGeomSetData(rayGeomID, NULL);
// Check for collisions. This will fill mRaycastResult with valid
// data. Its Solid pointer will remain NULL if nothing was hit.
dSpaceCollide2(rayGeomID, (dGeomID) mRootSpaceID, this,
&ode_hidden::internal_raycastCollisionCallback);
// Finished with ODE ray, so destroy it.
dGeomDestroy(rayGeomID);
return mRaycastResults;
}
开发者ID:sub77,项目名称:hobbycode,代码行数:29,代码来源:ODESimulator.cpp
示例6: stop
void stop()
{
dGeomDestroy(mesh_geom);
dGeomTriMeshDataDestroy(mesh_data);
dBodyDestroy(ball1_body);
dBodyDestroy(ball2_body);
dGeomDestroy(ground);
dJointGroupDestroy(contact_group);
dSpaceDestroy(space); // will destroy all geoms
dWorldDestroy(world);
}
开发者ID:Devilmore,项目名称:GoalBabbling,代码行数:16,代码来源:demo_tracks.cpp
示例7: DestroyGroupSpace
void CPHGeometryOwner:: DestroyGroupSpace()
{
if(m_group){
dGeomDestroy((dGeomID)m_group);
m_group=NULL;
}
}
开发者ID:AntonioModer,项目名称:xray-16,代码行数:7,代码来源:PHGeometryOwner.cpp
示例8: dGeomDestroy
void cPhysicsObject::DestroyGeom()
{
if (geom != NULL) {
dGeomDestroy(geom);
geom = NULL;
}
}
开发者ID:pilkch,项目名称:library,代码行数:7,代码来源:cPhysicsObject.cpp
示例9: resetMembers
void ComponentPhysicsGeom::load(const PropertyBag &data)
{
resetMembers();
desiredHeight = data.getFloat("height");
collisionRadius = data.getFloat("radius");
// Create as physics geometry
if(geom){dGeomDestroy(geom);} geom=0;
createGeom(data.getString("physicsGeometryType"));
// Set initial position
{
vec3 position;
if(data.get("position", position)) // optional tag
{
setPosition(position);
}
}
// Declare the initial state
getParentBlackBoard().relayMessage(MessagePositionHasBeenSet(getPosition()));
getParentBlackBoard().relayMessage(MessageOrientationHasBeenSet(getOrientation()));
getParentBlackBoard().relayMessage(MessageRequestSetHeight(desiredHeight));
}
开发者ID:foxostro,项目名称:heroman,代码行数:25,代码来源:ComponentPhysicsGeom.cpp
示例10: dGeomDestroy
LaserBeam::~LaserBeam()
{
dGeomDestroy(geom);
dBodyDestroy(me);
printf("Good bye....\n");
}
开发者ID:faturita,项目名称:wakuseibokan,代码行数:7,代码来源:LaserBeam.cpp
示例11: dGeomDestroy
//==============================================================================
OdeMesh::~OdeMesh()
{
dGeomDestroy(mGeomId);
if (mOdeTriMeshDataId)
dGeomTriMeshDataDestroy(mOdeTriMeshDataId);
}
开发者ID:erwincoumans,项目名称:dart,代码行数:8,代码来源:OdeMesh.cpp
示例12: Callback
Body* SimObjectRenderer::selectObject(const Vector3<>& projectedClick)
{
if(&simObject != Simulation::simulation->scene)
return nullptr;
class Callback
{
public:
Body* closestBody;
float closestSqrDistance;
const Vector3<>& cameraPos;
Callback(const Vector3<>& cameraPos) : closestBody(0), cameraPos(cameraPos) {}
static void staticCollisionCallback(Callback* callback, dGeomID geom1, dGeomID geom2)
{
ASSERT(!dGeomIsSpace(geom1));
ASSERT(!dGeomIsSpace(geom2));
ASSERT(dGeomGetBody(geom1) || dGeomGetBody(geom2));
dContact contact[1];
if(dCollide(geom1, geom2, 1, &contact[0].geom, sizeof(dContact)) < 1)
return;
dGeomID geom = geom2;
dBodyID bodyId = dGeomGetBody(geom2);
if(!bodyId)
{
bodyId = dGeomGetBody(geom1);
geom = geom1;
}
const dReal* pos = dGeomGetPosition(geom);
float sqrDistance = (Vector3<>((float) pos[0], (float) pos[1], (float) pos[2]) - callback->cameraPos).squareAbs();
if(!callback->closestBody || sqrDistance < callback->closestSqrDistance)
{
callback->closestBody = (Body*)dBodyGetData(bodyId);
callback->closestSqrDistance = sqrDistance;
}
}
static void staticCollisionWithSpaceCallback(Callback* callback, dGeomID geom1, dGeomID geom2)
{
ASSERT(!dGeomIsSpace(geom1));
ASSERT(dGeomIsSpace(geom2));
dSpaceCollide2(geom1, geom2, callback, (dNearCallback*)&staticCollisionCallback);
}
};
Callback callback(cameraPos);
dGeomID ray = dCreateRay(Simulation::simulation->staticSpace, 10000.f);
Vector3<> dir = projectedClick - cameraPos;
dGeomRaySet(ray, cameraPos.x, cameraPos.y, cameraPos.z, dir.x, dir.y, dir.z);
dSpaceCollide2(ray, (dGeomID)Simulation::simulation->movableSpace, &callback, (dNearCallback*)&Callback::staticCollisionWithSpaceCallback);
dGeomDestroy(ray);
if(!callback.closestBody)
return nullptr;
Body* body = callback.closestBody;
return body->rootBody;
}
开发者ID:weilandetian,项目名称:Yoyo,代码行数:59,代码来源:SimObjectRenderer.cpp
示例13: dBodyDestroy
MyODEGeom::~MyODEGeom() {
if (mBody) {
dBodyDestroy(mBody);
}
if (mODEGeom) {
dGeomDestroy(mODEGeom);
}
}
开发者ID:ColinGilbert,项目名称:d-collide,代码行数:8,代码来源:odewrapper.cpp
示例14: dmDestroyBox0
// ジオメトリのみの物体を破壊する関数。例:ブロック崩しのブロック等
void dmDestroyBox0(dmObject *obj)
{
if (obj->geom != NULL) // ジオメトリが存在していれば
{
dGeomDestroy(obj->geom); // ジオメトリを破壊
obj->geom = NULL; // ポインタにNULLを設定
}
}
开发者ID:Ry0,项目名称:ODE,代码行数:9,代码来源:dm6.cpp
示例15: n_assert
void CShape::Detach()
{
n_assert(IsAttached());
n_assert(ODEGeomID);
dGeomDestroy(ODEGeomID);
ODEGeomID = NULL;
ODESpaceID = NULL;
}
开发者ID:moltenguy1,项目名称:deusexmachina,代码行数:8,代码来源:Shape.cpp
示例16: fflush
ODE_Particle::~ODE_Particle()
{
/*printf("Particle=%u destructor!\n",id);
fflush(stdout);*/
dBodyDestroy(body);
dGeomDestroy(geom);
}
开发者ID:saneku,项目名称:ELAFoam,代码行数:8,代码来源:ODE_Particle.cpp
示例17: dGeomDestroy
CollidableObject::~CollidableObject()
{
//Disconnect any objects in the scene
mSceneNode->removeAndDestroyAllChildren();
mSceneNode->getParentSceneNode()->removeAndDestroyChild(mSceneNode->getName());
if(isInWorld)
dGeomDestroy(mGeom);
}
开发者ID:SamBushman,项目名称:SlayADragon,代码行数:8,代码来源:CollisionDetection.cpp
示例18: Simulator_Destroy
void Simulator_Destroy(void) {
dGeomDestroy(ground);
dJointGroupDestroy (contactgroup);
dSpaceDestroy (space);
dWorldDestroy (world);
dCloseODE();
}
开发者ID:jbongard,项目名称:ISCS,代码行数:8,代码来源:M3.cpp
示例19: QMP_CRITICAL
Primitive::~Primitive () {
QMP_CRITICAL(8);
// 20091023; guettler:
// hack for tasked simulations; there are some problems if running in parallel mode,
// if you do not destroy the geom, everything is fine (should be no problem because world is destroying geoms too)
if(destroyGeom && geom) dGeomDestroy( geom );
if(body && ((mode & _Transform) == 0) ) dBodyDestroy( body );
QMP_END_CRITICAL(8);
}
开发者ID:CentreForBioRobotics,项目名称:lpzrobots,代码行数:9,代码来源:primitive.cpp
示例20: dGeomDestroy
void BoxObstacle::remove() {
dGeomDestroy(boxGeom_);
if (box_ != 0) {
for(int i=0; i< dBodyGetNumJoints(box_); i++) {
dJointDestroy(dBodyGetJoint(box_, i));
}
dBodyDestroy(box_);
}
}
开发者ID:ci-group,项目名称:robot-baby,代码行数:9,代码来源:BoxObstacle.cpp
注:本文中的dGeomDestroy函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。 |
请发表评论