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


C++ btRigidBody::setWorldTransform方法代码示例

本文整理汇总了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);
 }
开发者ID:gustavokcouto,项目名称:ssl-sim,代码行数:17,代码来源:sslsim.cpp

示例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);
        }
开发者ID:mikewoz,项目名称:spinframework,代码行数:41,代码来源:bullettest.cpp


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