void Source::GetStreamInfo( QString &aInfo ) { int lFrameRate = 0; if ( mDisplayThread->IsRunning() ) { lFrameRate = mDisplayThread->GetFPS(); } PvStreamInfo lInfo( mStream ); QString lStatistics = lInfo.GetStatistics( lFrameRate ).GetAscii(); QString lErrors = lInfo.GetErrors().GetAscii(); QString lWarnings = lInfo.GetWarnings( mBuffersReallocated ).GetAscii(); aInfo = lStatistics + "\r\n" + lErrors + "\r\n" + lWarnings; }
btRigidBody* cPhysics::GetNewBody( btCollisionShape* lpShape, float lfMass, const cVec3& lPosition ){ /// Create Dynamic Objects btTransform lStartTransform; lStartTransform.setIdentity(); //rigidbody is dynamic if and only if mass is non zero, otherwise static bool lbIsDynamic = (lfMass != 0.f); btVector3 lLocalInertia( 0, 0, 0); if ( lbIsDynamic ){ lpShape->calculateLocalInertia(lfMass,lLocalInertia); } lStartTransform.setOrigin( Local2Bullet( lPosition ) ); //using motionstate is recommended, it provides interpolation capabilities, and only synchronizes 'active' objects btDefaultMotionState* lpMotionState = new btDefaultMotionState( lStartTransform ); btRigidBody::btRigidBodyConstructionInfo lInfo( lfMass, lpMotionState, lpShape, lLocalInertia); btRigidBody* lpBody = new btRigidBody( lInfo ); mpWorld->addRigidBody(lpBody); return lpBody; }