]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/model/placement.hxx
Work around apparent OSG 3.2.0 normal binding bug.
[simgear.git] / simgear / scene / model / placement.hxx
index 9a7236609753dcc00a8bda0cd83abdda29e4ac62..ebcf67cf4071bf91c858fd1bc43383a895f13b09 100644 (file)
 #include <osg/ref_ptr>
 #include <osg/Node>
 #include <osg/Switch>
+#include <osg/PositionAttitudeTransform>
 
-#include <simgear/props/props.hxx>
-
-#include "placementtrans.hxx"
+#include <simgear/math/SGMath.hxx>
 
 // Has anyone done anything *really* stupid, like making min and max macros?
 #ifdef min
@@ -43,7 +42,9 @@ public:
   virtual ~SGModelPlacement ();
 
   virtual void init( osg::Node* model );
-
+  void clear();
+  void add( osg::Node* model );
+  
   virtual void update();
 
   virtual osg::Node* getSceneGraph () { return _selector.get(); }
@@ -51,14 +52,6 @@ public:
   virtual bool getVisible () const;
   virtual void setVisible (bool visible);
 
-  virtual double getLongitudeDeg () const { return _position.getLongitudeDeg(); }
-  virtual double getLatitudeDeg () const { return _position.getLatitudeDeg(); }
-  virtual double getElevationFt () const { return _position.getElevationFt(); }
-
-  virtual void setLongitudeDeg (double lon_deg);
-  virtual void setLatitudeDeg (double lat_deg);
-  virtual void setElevationFt (double elev_ft);
-  virtual void setPosition (double lon_deg, double lat_deg, double elev_ft);
   void setPosition(const SGGeod& position);
   const SGGeod& getPosition() const { return _position; }
 
@@ -78,7 +71,6 @@ public:
   void setBodyAngularVelocity(const SGVec3d& velocity);
   
 private:
-
                                 // Geodetic position
   SGGeod _position;
 
@@ -88,7 +80,7 @@ private:
   double _heading_deg;
 
   osg::ref_ptr<osg::Switch> _selector;
-  osg::ref_ptr<SGPlacementTransform> _transform;
+  osg::ref_ptr<osg::PositionAttitudeTransform> _transform;
 };
 
 #endif // _SG_PLACEMENT_HXX