Example #1
0
void motion_state::getWorldTransform(btTransform &worldTrans) const
{
	if (node == NULL) {
		worldTrans = btTransform();
		return;
	}

	worldTrans.setFromOpenGLMatrix(glm::value_ptr(node->transformation_matrix));
}
Example #2
0
void Matrix4_to_btTransform(JNIEnv * const &jenv, btTransform &target, jobject &source)
{
	matrix4_ensurefields(jenv, source);
	
	jfloatArray valArray = (jfloatArray) jenv->GetObjectField(source, matrix4_val);
	jfloat * elements = jenv->GetFloatArrayElements(valArray, NULL);
	
	target.setFromOpenGLMatrix(elements);
	
	jenv->ReleaseFloatArrayElements(valArray, elements, JNI_ABORT);
	jenv->DeleteLocalRef(valArray);
}
		void TransformMotionState::getWorldTransform(btTransform& worldTrans) const {
			Matrix4x4 xformMatrix = toMatrix();

			float xformMatrixVals[16] = {
				xformMatrix[0], xformMatrix[1], xformMatrix[2], xformMatrix[3],
				xformMatrix[4], xformMatrix[5], xformMatrix[6], xformMatrix[7],
				xformMatrix[8], xformMatrix[9], xformMatrix[10], xformMatrix[11],
				xformMatrix[12], xformMatrix[13], xformMatrix[14], xformMatrix[15],
			};

			worldTrans.setFromOpenGLMatrix(xformMatrixVals);
		}
Example #4
0
void CGmObjPhysMan::CMotionState::getWorldTransform( btTransform &roWorldTrans ) const
{
	if( m_poShape && m_poShape->m_poBody && m_poShape->m_poBody->IsKinematic() ) // toopt
	//if( m_poShape && m_poShape->m_bIsKinematic )
	{
		//roWorldTrans.setOrigin( TVEC2BT3( m_poShape->GetPos() ) );
		roWorldTrans.setFromOpenGLMatrix( m_poShape->m_oMatrix );
	}
	else
	{
		btDefaultMotionState::getWorldTransform( roWorldTrans );
	}
}
Example #5
0
void btTransformFromIrrlichtMatrix(const irr::core::matrix4& irrmat, btTransform &transform)
{
    transform.setIdentity();

    /*btScalar mat[16];

    for(irr::u32 i=0; i < 16; i++)
    {
        mat[i] = irrmat.pointer()[i];
    }*/

    transform.setFromOpenGLMatrix(irrmat.pointer());
    //transform.setFromOpenGLMatrix(mat);
}
 virtual void getWorldTransform(btTransform &worldTrans) const {
     FREObject trans, raw;
     FREGetObjectProperty(skin, (uint8_t*)"transform", &trans, NULL);
     FREGetObjectProperty(trans, (uint8_t*)"rawData", &raw, NULL);
     
     btScalar data[16];
     for (int i=0; i < 16; i++) {
         FREObject val;
         double dval;
         FREGetArrayElementAt(raw, i, &val);
         FREGetObjectAsDouble(val, &dval);
         data[i] = btScalar(dval);
     }
     worldTrans.setFromOpenGLMatrix(data);
 }
Example #7
0
    //-----------------------------------------------------------------------
    //                   g e t W o r l d T r a n s f o r m
    //-----------------------------------------------------------------------
    // getWorldTransform is invoked when any body is initially created. After
    // that, it is invoked only for kinematic objects.
    void TPhysicsObject::getWorldTransform(btTransform& centerOfMassWorldTrans) const
    {
        if(!m_sceneNode)
            return;

        m_sceneNode->updateAbsolutePosition();
        /*
        TVector3 pos,rot(0,0,0);
        pos = m_sceneNode->getAbsolutePosition();
        TMatrix4::getRotationDegreesDivScale(m_sceneNode->getAbsoluteTransformation(), rot);
        TIBConvert::IrrToBullet(pos, rot, centerOfMassWorldTrans);
        */
        centerOfMassWorldTrans.setIdentity();
        centerOfMassWorldTrans.setFromOpenGLMatrix(m_sceneNode->getAbsoluteTransformation().pointer()); 
    }
Example #8
0
void btTransformFromIrrlichtMatrix(const irr::core::matrix4& irrmat, btTransform &transform)
{
    transform.setIdentity();

    transform.setFromOpenGLMatrix(irrmat.pointer());
}