当前位置: 首页>>代码示例>>C++>>正文


C++ dGeomDestroy函数代码示例

本文整理汇总了C++中dGeomDestroy函数的典型用法代码示例。如果您正苦于以下问题:C++ dGeomDestroy函数的具体用法?C++ dGeomDestroy怎么用?C++ dGeomDestroy使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。


在下文中一共展示了dGeomDestroy函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的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


注:本文中的dGeomDestroy函数示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。