本文整理汇总了C++中btVector3::isZero方法的典型用法代码示例。如果您正苦于以下问题:C++ btVector3::isZero方法的具体用法?C++ btVector3::isZero怎么用?C++ btVector3::isZero使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类btVector3
的用法示例。
在下文中一共展示了btVector3::isZero方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: addBody
void FractureBodyInfo::addBody(
int shape_id,
const btVector3& inertia,
btScalar mass,
btScalar elasticLimit,
btScalar plasticLimit)
{
btCollisionShape* shape = m_shape->getChildShape(shape_id);
btAssert(!shape->isCompound()); // compound children not suported
setConId(*shape, m_connections.size());
btVector3 shape_inertia(inertia);
if (inertia.isZero())
{
shape->calculateLocalInertia(mass, shape_inertia);
}
btRigidBody::btRigidBodyConstructionInfo info(mass, 0, shape, shape_inertia);
btRigidBody* body = new btRigidBody(info);
FractureBody::Connection connection;
connection.m_body = body;
connection.m_elasticLimit = elasticLimit;
connection.m_plasticLimit = plasticLimit;
connection.m_accImpulse = 0;
connection.m_shapeId = shape_id;
m_connections.push_back(connection);
}
示例2: ComputeController
void ComputeController(btVector3 ¤tSpeed, const btVector3 &delta, const btVector3 &maxSpeed, float scaleDelta, float damping) {
// Timestep scale
btVector3 acceleration = delta * scaleDelta;
if (currentSpeed.fuzzyZero() && !currentSpeed.isZero()) {
currentSpeed.setZero();
}
acceleration += currentSpeed * -damping;
// Clamp the acceleration to max speed
for(int i = 2; i >= 0; i--) {
if (fabs(acceleration[i]) < maxSpeed[i]) continue;
acceleration[i] = (acceleration[i] < 0) ? -maxSpeed[i] : maxSpeed[i];
}
currentSpeed += acceleration;
}