本文整理汇总了C++中btVector3::setZero方法的典型用法代码示例。如果您正苦于以下问题:C++ btVector3::setZero方法的具体用法?C++ btVector3::setZero怎么用?C++ btVector3::setZero使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类btVector3
的用法示例。
在下文中一共展示了btVector3::setZero方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: urdfIsAnyOf
static bool parseVector3(btVector3& vec3, const std::string& vector_str, ErrorLogger* logger, bool lastThree = false)
{
vec3.setZero();
btArray<std::string> pieces;
btArray<float> rgba;
urdfStringSplit(pieces, vector_str, urdfIsAnyOf(" "));
for (int i = 0; i < pieces.size(); ++i)
{
if (!pieces[i].empty())
{
rgba.push_back(urdfLexicalCast<double>(pieces[i].c_str()));
}
}
if (rgba.size() < 3)
{
logger->reportWarning("Couldn't parse vector3");
return false;
}
if (lastThree) {
vec3.setValue(rgba[rgba.size()-3], rgba[rgba.size()-2], rgba[rgba.size()-1]);
}
else
{
vec3.setValue(rgba[0],rgba[1],rgba[2]);
}
return true;
}
示例2: get_first_node_origin
void SoftBodyBullet::get_first_node_origin(btVector3 &p_out_origin) const {
if (bt_soft_body && bt_soft_body->m_nodes.size()) {
p_out_origin = bt_soft_body->m_nodes[0].m_x;
} else {
p_out_origin.setZero();
}
}
示例3: 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;
}
示例4: getPreferredPenetrationDirection
void btRayShape::getPreferredPenetrationDirection(int index, btVector3 &penetrationVector) const {
penetrationVector.setZero();
}
示例5: calculateLocalInertia
void btRayShape::calculateLocalInertia(btScalar mass, btVector3 &inertia) const {
inertia.setZero();
}