本文整理汇总了C++中btRigidBody::setWorldTransform方法的典型用法代码示例。如果您正苦于以下问题:C++ btRigidBody::setWorldTransform方法的具体用法?C++ btRigidBody::setWorldTransform怎么用?C++ btRigidBody::setWorldTransform使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类btRigidBody
的用法示例。
在下文中一共展示了btRigidBody::setWorldTransform方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: Field
Field(const FieldGeometry *f)
: ground_ci{{0, 0, 1}, 0.0}, ceil_ci{{0, 0, -1}, -10.0},
left_wall_ci{{1, 0, 0}, -field_limit_x(f)},
right_wall_ci{{-1, 0, 0}, -field_limit_x(f)},
top_wall_ci{{0, 1, 0}, -field_limit_y(f)},
bottom_wall_ci{{0, -1, 0}, -field_limit_y(f)},
goal_ci{f->goal_width, f->goal_depth, f->goal_height,
f->goal_wall_width},
ground_body{ground_ci}, ceil_body{ceil_ci},
left_wall_body{left_wall_ci}, right_wall_body{right_wall_ci},
top_wall_body{top_wall_ci}, bottom_wall_body{bottom_wall_ci},
left_goal_body{goal_ci}, right_goal_body{goal_ci} {
auto trans1 = btTransform({0, 0, 0, 1}, {-f->field_length / 2, 0, 0});
left_goal_body.setWorldTransform(trans1);
auto trans2 = btTransform({0, 0, 1, 0}, {f->field_length / 2, 0, 0});
right_goal_body.setWorldTransform(trans2);
}
示例2: operator
virtual void operator()(osg::Node* node, osg::NodeVisitor* nv)
{
btScalar m[16];
btDefaultMotionState* myMotionState = (btDefaultMotionState*) _body->getMotionState();
myMotionState->m_graphicsWorldTrans.getOpenGLMatrix(m);
osg::Matrixf mat(m);
// to move our ShapeNode according to gravity, we do something like this?:
osg::Matrixf diff = osg::Matrix::inverse(previousMatrix_) * mat;
spin::ShapeNode *shp = dynamic_cast<spin::ShapeNode*>(node);
/*
if (shp)
{
//osg::Vec3 t = diff.getTrans() - osg::Vec3(2,0,0);
//shp->translate(t.x(),t.y(),t.z());
shp->setTranslation(mat.getTrans().x(),mat.getTrans().y(),mat.getTrans().z());
}
else
{
osg::PositionAttitudeTransform *pat = dynamic_cast<osg::PositionAttitudeTransform*>(node);
if (pat)
{
pat->setPosition(mat.getTrans());
pat->setAttitude(mat.getRotate());
//std::cout << mat.getTrans().x() << ", " << mat.getTrans().y() << ", " << mat.getTrans().z() << std::endl;
}
}
*/
//_body->getMotionState()->setWorldTransform(trans);
_body->setWorldTransform(trans);
previousMatrix_ = mat;
traverse(node, nv);
}