]> git.mxchange.org Git - flightgear.git/blobdiff - src/Canvas/property_helper.hxx
Rename tf elements for easier handling.
[flightgear.git] / src / Canvas / property_helper.hxx
index c62134ca1ca9d156543f2ca5615ea6c14aa878fe..429cc636e60c7eff782b397632fbc4e1e7b8b213 100644 (file)
@@ -44,6 +44,22 @@ namespace canvas
     return node;
   }
 
+  /**
+   * Get vector of properties
+   */
+  template<typename T, typename T_get /* = T */> // TODO use C++11 or traits
+  std::vector<T> getVectorFromChildren( const SGPropertyNode* parent,
+                                        const char* child_name )
+  {
+    const simgear::PropertyList& props = parent->getChildren(child_name);
+    std::vector<T> values( props.size() );
+
+    for( size_t i = 0; i < props.size(); ++i )
+      values[i] = getValue<T_get>(props[i]);
+
+    return values;
+  }
+
   /**
    * @param name    Name of color node
    * @param parent  Parent for color channel nodes
@@ -60,7 +76,7 @@ namespace canvas
   void linkColorNodes( const char* name,
                        SGPropertyNode* parent,
                        std::vector<SGPropertyNode_ptr>& nodes,
-                       const osg::Vec4& def = osg::Vec4(0,0,0,0) );
+                       const osg::Vec4& def = osg::Vec4(0,0,0,1) );
 
 } // namespace canvas