osgQuat WindowsManager::corbaConfToOsgQuat (const value_type* configCorba)
 {
     // configurationCorba = trans (x, y, z), quat (w, x, y, z)
     // osgQuat = quat (x, y, z, w)
     return osgQuat (configCorba[4], configCorba[5],
             configCorba[6], configCorba[3]);
 }
Пример #2
0
    void getStaticTransform (const boost::shared_ptr < urdf::Link >& link,
			     osgVector3 &static_pos, osgQuat &static_quat,
			     bool visual, long unsigned int visual_index)
    {
      if (visual || (link->visual_array.size()>1))
	{
	  if (link->visual_array.size()>1)
	    {
	      // Set staticTransform = transform from link to visual
	      static_pos = osgVector3((float)link->visual_array[visual_index]->origin.position.x,
				      (float)link->visual_array[visual_index]->origin.position.y,
				      (float)link->visual_array[visual_index]->origin.position.z);
	      
	      static_quat=osgQuat( (float)link->visual_array[visual_index]->origin.rotation.x,
				   (float)link->visual_array[visual_index]->origin.rotation.y,
				   (float)link->visual_array[visual_index]->origin.rotation.z,
				   (float)link->visual_array[visual_index]->origin.rotation.w);
	    }
	  else
	    {
	      // Set staticTransform = transform from link to visual
	      static_pos = osgVector3((float)link->visual->origin.position.x,
				      (float)link->visual->origin.position.y,
				      (float)link->visual->origin.position.z);
	      
	      static_quat=osgQuat( (float)link->visual->origin.rotation.x,
				   (float)link->visual->origin.rotation.y,
				   (float)link->visual->origin.rotation.z,
				   (float)link->visual->origin.rotation.w);
	    }
      } else {
	// Set staticTransform = transform from link to visual
	static_pos = osgVector3((float)link->collision->origin.position.x,
				(float)link->collision->origin.position.y,
				(float)link->collision->origin.position.z);

	static_quat=osgQuat( (float)link->collision->origin.rotation.x,
			     (float)link->collision->origin.rotation.y,
			     (float)link->collision->origin.rotation.z,
			     (float)link->collision->origin.rotation.w);
      }
    }
Пример #3
0
osg::Quat OculusDevice::getOrientation() const
{
	// Create identity quaternion
	osg::Quat osgQuat(0.0f, 0.0f, 0.0f, 1.0f);

	if (m_sensorFusion && m_sensorFusion->IsAttachedToSensor()) {
		OVR::Quatf quat;

		if (m_sensorFusion->IsPredictionEnabled()) {
			quat = m_sensorFusion->GetPredictedOrientation(m_predictionDelta);
		} else {
			quat = m_sensorFusion->GetOrientation();
		}

		osgQuat.set(quat.x, quat.y, quat.z, -quat.w);
	}

	return osgQuat;
}