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


C++ btTransform::getOpenGLMatrix方法代码示例

本文整理汇总了C++中btTransform::getOpenGLMatrix方法的典型用法代码示例。如果您正苦于以下问题:C++ btTransform::getOpenGLMatrix方法的具体用法?C++ btTransform::getOpenGLMatrix怎么用?C++ btTransform::getOpenGLMatrix使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在btTransform的用法示例。


在下文中一共展示了btTransform::getOpenGLMatrix方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: fromBulletTransform

	Matrix44f fromBulletTransform( const btTransform &matrix )
	{
		btTransform trans;
		Matrix44f m;
		matrix.getOpenGLMatrix( m.m );
		return m;
	}
开发者ID:BanTheRewind,项目名称:Cinder-Bullet,代码行数:7,代码来源:Utilities.cpp

示例2: draw

void BeGraphicsModel::draw( unsigned int current_material, const btTransform& transform, const btVector3& scale )
{
// 	btScalar m[16];
	transform.getOpenGLMatrix(m_matrix);
// 	m_system->matrixPush(GL_MODELVIEW);
	glPushMatrix();

// 	m_system->matrixMult(GL_MODELVIEW, m_matrix);
	m_system->matrixMult(m_matrix);
// 	m_system->matrixLoad(GL_MODELVIEW, m_matrix);
	
// 		m_system->matrixPush(GL_MODELVIEW);
// 		glPushMatrix();

			if ( scale.x() != 1.0f || scale.y() != 1.0f || scale.z() != 1.0f )
				m_system->matrixScale(GL_MODELVIEW, scale.x(), scale.y(), scale.z());
			
			draw(current_material);

// 		glPopMatrix();
// 		m_system->matrixPop(GL_MODELVIEW);

// 	m_system->matrixPop(GL_MODELVIEW);
	glPopMatrix();

	//glEnable(GL_CULL_FACE);
	//glCullFace(GL_BACK);
}
开发者ID:ethicalfive,项目名称:critterding,代码行数:28,代码来源:be_model_system.cpp

示例3:

			Matrix44 toMatrix44(const btTransform& original)
			{
				Matrix44 matrix;
				original.getOpenGLMatrix(matrix.getData());

				return matrix;
			}
开发者ID:simple-entertainment,项目名称:simplicity-bullet,代码行数:7,代码来源:BulletMatrix.cpp

示例4: draw

static void draw(void)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);

    float xpos = box1->getCenterOfMassPosition().getX();
    float ypos = box1->getCenterOfMassPosition().getY();
    float zpos = box1->getCenterOfMassPosition().getZ();

    printf("%f %f %f\n",xpos,ypos,zpos);
    
	btTransform trans = box1->getWorldTransform();
	trans.setOrigin(btVector3(BoxVel[0], BoxVel[1], BoxVel[2]));
	box1->setWorldTransform(trans);
	box1->getMotionState()->getWorldTransform(trans);
	trans.setOrigin(btVector3(BoxVel[0], BoxVel[1], BoxVel[2]));
	box1->getMotionState()->setWorldTransform(trans);

//*** draw box1 
glColor3f(0.0, 0.0, 1.0);
glPushMatrix();
box1->getMotionState()->getWorldTransform(trans);
trans.getOpenGLMatrix(matrix);
glMultMatrixf(matrix);
glutSolidCube(40);
glPopMatrix();

//*** draw box2
glColor3f(1.0, 1.0, 0.0);
glPushMatrix();
box2->getMotionState()->getWorldTransform(trans);
trans.getOpenGLMatrix(matrix);
glMultMatrixf(matrix);
glutSolidCube(10);
glPopMatrix();

// draw box 3
glColor3f(0.0,0.0,1.0);
glPushMatrix();
box3->getMotionState()->getWorldTransform(trans);
trans.getOpenGLMatrix(matrix);
glMultMatrixf(matrix);
glutSolidCube(30);
glPopMatrix();

glutSwapBuffers();
}
开发者ID:devashishtyagi,项目名称:cubequest,代码行数:46,代码来源:rendercollision.cpp

示例5:

glm::mat4 toMat4(const btTransform& t)
{
	glm::mat4 ATTRIBUTE_ALIGNED16(glm_mat);

	t.getOpenGLMatrix(glm::value_ptr(glm_mat));

	return glm_mat;
}
开发者ID:vif,项目名称:3D-STG,代码行数:8,代码来源:math_conversions.cpp

示例6: m

// Convert a btTransform to an OSG Matrix
osg::Matrix
osgbCollision::asOsgMatrix( const btTransform& t )
{
    btScalar ogl[ 16 ];
    t.getOpenGLMatrix( ogl );
    osg::Matrix m( ogl );
    return m;
}
开发者ID:WriterOfAlicrow,项目名称:SOTE,代码行数:9,代码来源:Utils.cpp

示例7: drawAngularLimit

void ShapeDrawer::drawAngularLimit(const btTransform& space, const btVector3& angularLower, const btVector3& angularUpper)
{
    glPushMatrix();
    btScalar m[16];
    
    m[0] = 1.0; m[1] = m[2] = m[3] = 0.0;
    m[4] = 0.0; m[5] = 1.0; m[6] = m[7] = 0.0;
    m[8] = m[9] = 0.0; m[10] = 1.0; m[11] = 0.0;
    m[12] = m[13] = m[14] = 0.0; m[15] = 1.0;
    space.getOpenGLMatrix(m);
    glMultMatrixf((const GLfloat*)m);
    float x, y, z;
    glBegin( GL_LINES );
	
    if(angularLower.getX() < angularUpper.getX()) {
        glColor3f(1.f, 0.f, 0.f);
        glVertex3f(0.f, 0.f, 0.f);
        
        y = sin((float)angularLower.getX());
        z = cos((float)angularLower.getX());
        glVertex3f(0.f, y, z);
        
        glVertex3f(0.f, 0.f, 0.f);
        
        y = sin((float)angularUpper.getX());
        z = cos((float)angularUpper.getX());
        glVertex3f(0.f, y, z);
    }
	
    if(angularLower.getY() < angularUpper.getY()) {
        glColor3f(0.f, 1.f, 0.f);					
        glVertex3f(0.f, 0.f, 0.f);
        x = cos((float)angularLower.getY());
        z = sin((float)angularLower.getY());
        glVertex3f(x, 0.f, z);
        
        glVertex3f(0.f, 0.f, 0.f);
        x = cos((float)angularUpper.getY());
        z = sin((float)angularUpper.getY());
        glVertex3f(x, 0.f, z);
	}
	
	if(angularLower.getZ() < angularUpper.getZ()) {
        glColor3f(0.f, 0.f, 1.f);					
        glVertex3f(0.f, 0.f, 0.f);
        x = cos((float)angularLower.getZ());
        y = sin((float)angularLower.getZ());	
        glVertex3f(x, y, 0.f);
        
        glVertex3f(0.f, 0.f, 0.f);
        x = cos((float)angularUpper.getZ());
        y = sin((float)angularUpper.getZ());	
        glVertex3f(x, y, 0.f);
	}
	
	glEnd();
    glPopMatrix();
}
开发者ID:ahmidou,项目名称:aphid,代码行数:58,代码来源:shapeDrawer.cpp

示例8: glDraw

	void glDraw() {
		if (!model) return;
		body1->getMotionState()->getWorldTransform(t);
		t.getOpenGLMatrix(m);		
		glPushMatrix();
		glMultMatrixf(m);
		model->glDraw();
		glPopMatrix();
	}
开发者ID:AcnodeLabs,项目名称:Athenaeum,代码行数:9,代码来源:CEasyBullet.hpp

示例9: btTransform_to_XMMATRIX

XMMATRIX GameApp::btTransform_to_XMMATRIX(btTransform const & trans)
{
	XMMATRIX transform = XMMatrixIdentity();
	XMFLOAT4X4 data;

	trans.getOpenGLMatrix((float*)&data);
	transform = (XMLoadFloat4x4(&data));
	return transform;
}
开发者ID:AndreAhmed,项目名称:directxgameengine,代码行数:9,代码来源:GameApp.cpp

示例10: drawCube

	void drawCube (const btTransform& T)
	{
		ATTRIBUTE_ALIGNED16(btScalar) m[16];
		T.getOpenGLMatrix (&m[0]);
		glPushMatrix ();
#ifdef BT_USE_DOUBLE_PRECISION
		glMultMatrixd (&m[0]);
			glScaled (2.0 * boxShapeHalfExtents[0], 2.0 * boxShapeHalfExtents[1], 2.0 * boxShapeHalfExtents[2]);
#else
			glMultMatrixf (&m[0]);
			glScalef (2.0 * boxShapeHalfExtents[0], 2.0 * boxShapeHalfExtents[1], 2.0 * boxShapeHalfExtents[2]);
#endif //BT_USE_DOUBLE_PRECISION
#ifdef __QNX__
			glBegin( GL_QUADS );
                glNormal3f( 1.0, 0.0, 0.0);
                glVertex3f(+0.5,-0.5,+0.5);
                glVertex3f(+0.5,-0.5,-0.5);
                glVertex3f(+0.5,+0.5,-0.5);
                glVertex3f(+0.5,+0.5,+0.5);

                glNormal3f( 0.0, 1.0, 0.0);
                glVertex3f(+0.5,+0.5,+0.5);
                glVertex3f(+0.5,+0.5,-0.5);
                glVertex3f(-0.5,+0.5,-0.5);
                glVertex3f(-0.5,+0.5,+0.5);

                glNormal3f( 0.0, 0.0, 1.0);
                glVertex3f(+0.5,+0.5,+0.5);
                glVertex3f(-0.5,+0.5,+0.5);
                glVertex3f(-0.5,-0.5,+0.5);
                glVertex3f(+0.5,-0.5,+0.5);

                glNormal3f(-1.0, 0.0, 0.0);
                glVertex3f(-0.5,-0.5,+0.5);
                glVertex3f(-0.5,+0.5,+0.5);
                glVertex3f(-0.5,+0.5,-0.5);
                glVertex3f(-0.5,-0.5,-0.5);

                glNormal3f( 0.0,-1.0, 0.0);
                glVertex3f(-0.5,-0.5,+0.5);
                glVertex3f(-0.5,-0.5,-0.5);
                glVertex3f(+0.5,-0.5,-0.5);
                glVertex3f(+0.5,-0.5,+0.5);

                glNormal3f( 0.0, 0.0,-1.0);
                glVertex3f(-0.5,-0.5,-0.5);
                glVertex3f(-0.5,+0.5,-0.5);
                glVertex3f(+0.5,+0.5,-0.5);
                glVertex3f(+0.5,-0.5,-0.5);
            glEnd();
#else
			glutSolidCube (1.0);
#endif
		glPopMatrix ();
	}
开发者ID:Bredoto,项目名称:Bullet,代码行数:55,代码来源:ConcaveConvexcastDemo.cpp

示例11: btTransform_to_Matrix4

void btTransform_to_Matrix4(JNIEnv * const &jenv, jobject &target, const btTransform &source)
{
	matrix4_ensurefields(jenv, target);
	
	jfloatArray valArray = (jfloatArray) jenv->GetObjectField(target, matrix4_val);
	jfloat * elements = jenv->GetFloatArrayElements(valArray, NULL);

	source.getOpenGLMatrix(elements);
	
	jenv->ReleaseFloatArrayElements(valArray, elements, 0);
	jenv->DeleteLocalRef(valArray);
}
开发者ID:0302zq,项目名称:libgdx,代码行数:12,代码来源:mathtypes.cpp

示例12:

void CGmObjPhysMan::CMotionState::setWorldTransform( const btTransform &roWorldTransform )
{
	btDefaultMotionState::setWorldTransform( roWorldTransform );
	
	if( m_poShape )
	{
		//const btMatrix3x3 &roBasis = roWorldTransform.getBasis();
		//m_poShape->m_oMatrix.Unit();
		roWorldTransform.getOpenGLMatrix( m_poShape->m_oMatrix );
		//m_poShape->m_oMatrix.Translate( BT2TVEC3( roWorldTransform.getOrigin() ) );
	}
}
开发者ID:0rel,项目名称:okkuplektor,代码行数:12,代码来源:GmObjPhysMan.cpp

示例13: Render

void MyConvex::Render(bool only_wireframe, const btVector3& wire_color) const
{
	const float Scale = 1.0f;
	glPushMatrix();

	btScalar glmat[16];	//4x4 column major matrix for OpenGL.
	mTransform.getOpenGLMatrix(glmat);
#ifndef BT_USE_DOUBLE_PRECISION
	glMultMatrixf(&(glmat[0]));
#else
	glMultMatrixd(&(glmat[0]));
#endif
	if(!only_wireframe)
	{
		btVector3 color(0.0f, 0.5f, 1.0f);
		for(int i=0;i<mNbPolys;i++)
		{
			glNormal3f(mPolys[i].mPlane[0], mPolys[i].mPlane[1], mPolys[i].mPlane[2]);

			int NbTris = mPolys[i].mNbVerts-2;
			const btVector3& p0 = mVerts[mPolys[i].mIndices[0]]*Scale;
			for(int j=1;j<=NbTris;j++)
			{
				int k = (j+1)%mPolys[i].mNbVerts;

				const btVector3& p1 = mVerts[mPolys[i].mIndices[j]]*Scale;
				const btVector3& p2 = mVerts[mPolys[i].mIndices[k]]*Scale;

				DrawTriangle(p0, p1, p2, color);
			}
		}
	}

	{
		btVector3 color;
		if(only_wireframe)
			color = wire_color;
		else
			color = btVector3(0.0f, 0.0f, 0.0f);

		for(int i=0;i<mNbPolys;i++)
		{
			for(int j=0;j<mPolys[i].mNbVerts;j++)
			{
				int k = (j+1)%mPolys[i].mNbVerts;
				DrawLine(mVerts[mPolys[i].mIndices[j]]*Scale, mVerts[mPolys[i].mIndices[k]]*Scale, color, 1.0f);
			}
		}
	}

	glPopMatrix();
}
开发者ID:382309009,项目名称:Core3D,代码行数:52,代码来源:PenetrationTestBullet.cpp

示例14: setWorldTransform

void motion_state::setWorldTransform(const btTransform &worldTrans)
{
	if (node == NULL) {
		return;
	}

	float f[16];
	worldTrans.getOpenGLMatrix(f);
	node->transformation_matrix = glm::mat4( f[0], f[1], f[2], f[3], 
										f[4], f[5], f[6], f[7], 
										f[8], f[9], f[10], f[11], 
										f[12], f[13], f[14], f[15] );
}
开发者ID:euschn,项目名称:eengine,代码行数:13,代码来源:motion_state.cpp

示例15: fromBTTransform

OSG::Matrix VRPhysics::fromBTTransform(const btTransform t) {
    btScalar _m[16];
    t.getOpenGLMatrix(_m);

    OSG::Matrix m;
    for (int i=0;i<4;i++) m[0][i] = _m[i];
    for (int i=0;i<4;i++) m[1][i] = _m[4+i];
    for (int i=0;i<4;i++) m[2][i] = _m[8+i];
    for (int i=0;i<4;i++) m[3][i] = _m[12+i];

    //cout << "fromTransform " << m << endl;
    return m;
}
开发者ID:AntonChalakov,项目名称:polyvr,代码行数:13,代码来源:VRPhysics.cpp


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