]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/model/placement.cxx
Compile even if OSG_USE_REF_PTR_IMPLICIT_OUTPUT_CONVERSION is not set.
[simgear.git] / simgear / scene / model / placement.cxx
index 9da016ef89b13020fafda51a5fc0cfbf95a4fdaf..852844921f5424ede40e8297cf8c54a5a74dd926 100644 (file)
@@ -7,13 +7,10 @@
 #include <simgear_config.h>
 #endif
 
-#include <simgear/compiler.h>
-
-#include <simgear/scene/util/SGSceneUserData.hxx>
-#include <simgear/scene/util/SGUpdateVisitor.hxx>
-
 #include "placement.hxx"
 
+#include <simgear/compiler.h>
+#include <simgear/scene/util/SGSceneUserData.hxx>
 
 \f
 ////////////////////////////////////////////////////////////////////////
@@ -26,7 +23,7 @@ SGModelPlacement::SGModelPlacement () :
     _pitch_deg(0),
     _heading_deg(0),
     _selector(new osg::Switch),
-    _transform(new SGPlacementTransform)
+    _transform(new osg::PositionAttitudeTransform)
 {
 }
 
@@ -49,6 +46,7 @@ SGModelPlacement::update()
 {
   // The cartesian position
   SGVec3d position = SGVec3d::fromGeod(_position);
+  _transform->setPosition(toOsg(position));
 
   // The orientation, composed from the horizontal local orientation and the
   // orientation wrt the horizontal local frame
@@ -58,7 +56,7 @@ SGModelPlacement::update()
   // the y axis 180 degrees.
   orient *= SGQuatd::fromRealImag(0, SGVec3d(0, 1, 0));
 
-  _transform->setTransform(position, orient);
+  _transform->setAttitude(toOsg(orient));
 }
 
 bool
@@ -140,7 +138,7 @@ void
 SGModelPlacement::setReferenceTime(const double& referenceTime)
 {
   SGSceneUserData* userData;
-  userData = SGSceneUserData::getOrCreateSceneUserData(_transform);
+  userData = SGSceneUserData::getOrCreateSceneUserData(_transform.get());
   SGSceneUserData::Velocity* vel = userData->getOrCreateVelocity();
   vel->referenceTime = referenceTime;
 }
@@ -149,7 +147,7 @@ void
 SGModelPlacement::setBodyLinearVelocity(const SGVec3d& linear)
 {
   SGSceneUserData* userData;
-  userData = SGSceneUserData::getOrCreateSceneUserData(_transform);
+  userData = SGSceneUserData::getOrCreateSceneUserData(_transform.get());
   SGSceneUserData::Velocity* vel = userData->getOrCreateVelocity();
   vel->linear = SGVec3d(-linear[0], linear[1], -linear[2]);
 }
@@ -158,7 +156,7 @@ void
 SGModelPlacement::setBodyAngularVelocity(const SGVec3d& angular)
 {
   SGSceneUserData* userData;
-  userData = SGSceneUserData::getOrCreateSceneUserData(_transform);
+  userData = SGSceneUserData::getOrCreateSceneUserData(_transform.get());
   SGSceneUserData::Velocity* vel = userData->getOrCreateVelocity();
   vel->angular = SGVec3d(-angular[0], angular[1], -angular[2]);
 }