]> git.mxchange.org Git - simgear.git/commitdiff
Placement can contain multiple nodes.
authorJames Turner <zakalawe@mac.com>
Sun, 20 Oct 2013 19:44:42 +0000 (20:44 +0100)
committerJames Turner <zakalawe@mac.com>
Sun, 20 Oct 2013 19:44:42 +0000 (20:44 +0100)
- Allow placement to have multiple children added.
- Remove legacy position setting APIs, enforce use of SGGeod

simgear/scene/model/placement.cxx
simgear/scene/model/placement.hxx

index 7b6a0b6930f307d3292a40590de87d2175cb3a7c..c1a7d83badf1a4000dcad9e6df4f1b450949f1f4 100644 (file)
@@ -36,14 +36,22 @@ SGModelPlacement::~SGModelPlacement ()
 void
 SGModelPlacement::init( osg::Node * model )
 {
-  // remove previous model (in case of reinit)
-  _transform->removeChild(0,1);
+  // remove previous models (in case of reinit)
+  _transform->removeChild(0, _transform->getNumChildren());
   if (model != 0) {
       _transform->addChild(model);
   }
   _selector->setValue(0, 1);
 }
 
+void
+SGModelPlacement::add( osg::Node* model )
+{
+    if (model != 0) {
+        _transform->addChild(model);
+    }
+}
+
 void SGModelPlacement::clear()
 {
     _selector = NULL;
@@ -80,30 +88,6 @@ SGModelPlacement::setVisible (bool visible)
   _selector->setValue(0, visible);
 }
 
-void
-SGModelPlacement::setLongitudeDeg (double lon_deg)
-{
-  _position.setLongitudeDeg(lon_deg);
-}
-
-void
-SGModelPlacement::setLatitudeDeg (double lat_deg)
-{
-  _position.setLatitudeDeg(lat_deg);
-}
-
-void
-SGModelPlacement::setElevationFt (double elev_ft)
-{
-  _position.setElevationFt(elev_ft);
-}
-
-void
-SGModelPlacement::setPosition (double lon_deg, double lat_deg, double elev_ft)
-{
-  _position = SGGeod::fromDegFt(lon_deg, lat_deg, elev_ft);
-}
-
 void
 SGModelPlacement::setPosition(const SGGeod& position)
 {
index 84aecac237aca8ffae3bd9780a9e2b0be5183083..ebcf67cf4071bf91c858fd1bc43383a895f13b09 100644 (file)
@@ -43,6 +43,7 @@ public:
 
   virtual void init( osg::Node* model );
   void clear();
+  void add( osg::Node* model );
   
   virtual void update();
 
@@ -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; }