]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/material/matmodel.hxx
Work around apparent OSG 3.2.0 normal binding bug.
[simgear.git] / simgear / scene / material / matmodel.hxx
index ac6856979c8c729cbd26c8933eae4385b8425aa7..1687302e26bbe3c150c863ebf86855537f6abe94 100644 (file)
@@ -66,7 +66,8 @@ public:
     enum HeadingType {
         HEADING_FIXED,
         HEADING_BILLBOARD,
-        HEADING_RANDOM
+        HEADING_RANDOM,
+        HEADING_MASK
     };
 
     /**
@@ -77,21 +78,12 @@ public:
     int get_model_count( SGPropertyNode *prop_root );
 
 
-    /**
-     * Get a specific variant model for the object.
-     *
-     * @param index The index of the model.
-     * @return The model.
-     */
-     osg::Node *get_model( int index, SGPropertyNode *prop_root );
-
-
     /**
      * Get a randomly-selected variant model for the object.
      *
      * @return A randomly select model from the variants.
      */
-    osg::Node *get_random_model( SGPropertyNode *prop_root );
+    osg::Node *get_random_model( SGPropertyNode *prop_root, mt *seed );
 
 
     /**
@@ -107,6 +99,15 @@ public:
      * @return The visual range.
      */
     double get_range_m () const;
+
+    /**
+     * Get the minimum spacing between this and any
+     * other objects in m
+     *
+     * @return The spacing in m.
+     */
+    double get_spacing_m () const;
+    
     
     /**
      * Get a randomized visual range
@@ -145,6 +146,7 @@ private:
     mutable std::vector<osg::ref_ptr<osg::Node> > _models;
     mutable bool _models_loaded;
     double _coverage_m2;
+    double _spacing_m;
     double _range_m;
     HeadingType _heading_type;
 };