本文整理汇总了C++中PxRigidDynamic::setContactReportThreshold方法的典型用法代码示例。如果您正苦于以下问题:C++ PxRigidDynamic::setContactReportThreshold方法的具体用法?C++ PxRigidDynamic::setContactReportThreshold怎么用?C++ PxRigidDynamic::setContactReportThreshold使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类PxRigidDynamic
的用法示例。
在下文中一共展示了PxRigidDynamic::setContactReportThreshold方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: PxCloneDynamic
PxRigidDynamic* PxCloneDynamic(PxPhysics& physicsSDK,
const PxTransform& transform,
const PxRigidDynamic& from)
{
PxRigidDynamic* to = physicsSDK.createRigidDynamic(transform);
if(!to)
return NULL;
copyStaticProperties(*to, from);
to->setRigidDynamicFlags(from.getRigidDynamicFlags());
to->setMass(from.getMass());
to->setMassSpaceInertiaTensor(from.getMassSpaceInertiaTensor());
to->setCMassLocalPose(from.getCMassLocalPose());
to->setLinearVelocity(from.getLinearVelocity());
to->setAngularVelocity(from.getAngularVelocity());
to->setLinearDamping(from.getAngularDamping());
to->setAngularDamping(from.getAngularDamping());
to->setMaxAngularVelocity(from.getMaxAngularVelocity());
PxU32 posIters, velIters;
from.getSolverIterationCounts(posIters, velIters);
to->setSolverIterationCounts(posIters, velIters);
to->setSleepThreshold(from.getSleepThreshold());
to->setContactReportThreshold(from.getContactReportThreshold());
return to;
}
示例2: CloneDynamic
PxRigidDynamic* CloneDynamic(PxPhysics& physicsSDK,
const PxTransform& transform,
const PxRigidDynamic& from,
NxMirrorScene::MirrorFilter &mirrorFilter)
{
PxRigidDynamic* to = physicsSDK.createRigidDynamic(transform);
if(!to)
return NULL;
if ( !copyStaticProperties(*to, from, mirrorFilter) )
{
to->release();
to = NULL;
return NULL;
}
to->setRigidDynamicFlags(from.getRigidDynamicFlags());
to->setMass(from.getMass());
to->setMassSpaceInertiaTensor(from.getMassSpaceInertiaTensor());
to->setCMassLocalPose(from.getCMassLocalPose());
if ( !(to->getRigidDynamicFlags() & PxRigidDynamicFlag::eKINEMATIC) )
{
to->setLinearVelocity(from.getLinearVelocity());
to->setAngularVelocity(from.getAngularVelocity());
}
to->setLinearDamping(from.getAngularDamping());
to->setAngularDamping(from.getAngularDamping());
to->setMaxAngularVelocity(from.getMaxAngularVelocity());
PxU32 posIters, velIters;
from.getSolverIterationCounts(posIters, velIters);
to->setSolverIterationCounts(posIters, velIters);
to->setSleepThreshold(from.getSleepThreshold());
to->setContactReportThreshold(from.getContactReportThreshold());
return to;
}
示例3: CreateBall
Entity* CreateBall(float _fRadius, SimpleTree& _rParentNode)
{
Entity* pBall = new Entity(EntityCategories::BALL);
// The model
Sphere* pSphere = new Sphere(Vector2(), _fRadius);
pSphere->setColour(BALL_COLOUR);
pSphere->setLevelOfDetail(10);
pBall->addComponent(pSphere);
pSphere->setEntity(pBall);
// The physical body
Body::Material material;
material.density = 0.5f;
material.friction = 0.5f;
material.restitution = 0.5f;
PhysXBody* pBody = static_cast<PhysXBody*>(PhysicsFactory::getInstance()->createBody(material, pSphere,
BALL_POSITION, true));
pBall->addComponent(pBody);
pBody->setEntity(pBall);
// Collision detection
PxRigidDynamic* pRigidDynamic = pBody->getActor()->isRigidDynamic();
PxFilterData filterData;
filterData.word0 = EntityCategories::BALL;
filterData.word1 = EntityCategories::WALL_BLOCK;
PxShape* shapes;
pRigidDynamic->getShapes(&shapes, 1);
shapes->setSimulationFilterData(filterData);
pRigidDynamic->setContactReportThreshold(DESTRUCTION_FORCE_THRESHOLD);
// The scene
SimpleTree* pNode = new SimpleTree;
setTranslation(pNode->getTransformation(), BALL_POSITION);
pNode->setModel(pSphere);
pBody->setNode(pNode);
_rParentNode.addChild(pNode);
GazEngine::addEntity(pBall);
return pBall;
}
示例4: CreateWallBlock
Entity* CreateWallBlock(const Matrix44& _rTransformation, float _fBlockSize, SimpleTree& _rParentNode)
{
Entity* pWallBlock = new Entity(EntityCategories::WALL_BLOCK);
// The model
Cube* pCube = new Cube(Vector2(), _fBlockSize);
pCube->setColour(Vector4(Math::getRandomFloat(0.0f, 1.0f), Math::getRandomFloat(0.0f, 1.0f),
Math::getRandomFloat(0.0f, 1.0f), 1.0f));
pWallBlock->addComponent(pCube);
pCube->setEntity(pWallBlock);
// The physical body
Body::Material material;
material.density = 0.5f;
material.friction = 0.5f;
material.restitution = 0.5f;
PhysXBody* pBody = static_cast<PhysXBody*>(PhysicsFactory::getInstance()->createBody(material, pCube,
getTranslation3(_rTransformation), true));
pWallBlock->addComponent(pBody);
pBody->setEntity(pWallBlock);
// Collision detection
PxRigidDynamic* pRigidDynamic = pBody->getActor()->isRigidDynamic();
PxFilterData filterData;
filterData.word0 = EntityCategories::WALL_BLOCK;
filterData.word1 = EntityCategories::BALL | EntityCategories::WALL_BLOCK;
PxShape* shapes;
pRigidDynamic->getShapes(&shapes, 1);
shapes->setSimulationFilterData(filterData);
pRigidDynamic->setContactReportThreshold(DESTRUCTION_FORCE_THRESHOLD);
// The scene
SimpleTree* pNode = new SimpleTree;
pNode->setTransformation(_rTransformation);
pNode->setModel(pCube);
pBody->setNode(pNode);
_rParentNode.addChild(pNode);
GazEngine::addEntity(pWallBlock);
return pWallBlock;
}