]> git.mxchange.org Git - simgear.git/blobdiff - simgear/scene/model/model.hxx
Improove bounding volume building in the scenery loading process.
[simgear.git] / simgear / scene / model / model.hxx
index 5d64a5d8add39daa9740e95e217104810d6b87e2..9f930f3eb8d2b83010c50c4093db58a079b66112 100644 (file)
 #include <vector>
 #include <set>
 
-SG_USING_STD(vector);
-SG_USING_STD(set);
+using std::vector;
+using std::set;
 
-#include <plib/sg.h>
-#include <plib/ssg.h>
+#include <osg/Node>
+#include <osg/Texture2D>
+#include <osgDB/ReaderWriter>
 
 #include <simgear/misc/sg_path.hxx>
-#include <simgear/props/props.hxx>
 
-
-// Has anyone done anything *really* stupid, like making min and max macros?
-#ifdef min
-#undef min
-#endif
-#ifdef max
-#undef max
-#endif
-
-
-/**
- * Abstract class for adding data to the scene graph.  modelLoaded() is
- * called by sgLoad3DModel() after the model was loaded, and the destructor
- * when the branch is removed from the graph.
- */
-class SGModelData : public ssgBase {
-public:
-    virtual ~SGModelData() {}
-    virtual void modelLoaded( const string& path, SGPropertyNode *prop,
-                              ssgBranch *branch) {}
-};
-
-
-/**
- * Load a 3D model with or without XML wrapper.  Note, this version
- * Does not know about or load the panel/cockpit information.  Use the
- * "model_panel.hxx" version if you want to load an aircraft
- * (i.e. ownship) with a panel.
- *
- * If the path ends in ".xml", then it will be used as a property-
- * list wrapper to add animations to the model.
- *
- * Subsystems should not normally invoke this function directly;
- * instead, they should use the FGModelLoader declared in loader.hxx.
- */
-ssgBranch *
-sgLoad3DModel( const string& fg_root, const string &path,
-                          SGPropertyNode *prop_root, double sim_time_sec,
-                          ssgEntity *(*load_panel)(SGPropertyNode *) = 0,
-                          SGModelData *data = 0 );
-
-
-/**
- * Make an offset matrix from rotations and position offset.
- */
-void
-sgMakeOffsetsMatrix( sgMat4 * result, double h_rot, double p_rot, double r_rot,
-                     double x_off, double y_off, double z_off );
-
-/**
- * Make the animation
- */
-void
-sgMakeAnimation( ssgBranch * model,
-                 const char * name,
-                 vector<SGPropertyNode_ptr> &name_nodes,
-                 SGPropertyNode *prop_root,
-                 SGPropertyNode_ptr node,
-                 double sim_time_sec,
-                 SGPath &texture_path,
-                 set<ssgBranch *> &ignore_branches );
-
-/**
- * Set the filter state on models
- */
-bool
-sgSetModelFilter( bool filter );
-
-/**
- * Check if the ssg node contains an animation
- */
-bool 
-sgCheckAnimationBranch (ssgEntity * entity);
-
-/**
- * Enable or disable Display list usage
- */
-extern bool sgUseDisplayList;
+osg::Texture2D*
+SGLoadTexture2D(bool staticTexture, const std::string& path,
+                const osgDB::ReaderWriter::Options* options = 0,
+                bool wrapu = true, bool wrapv = true, int mipmaplevels = -1);
+
+inline osg::Texture2D*
+SGLoadTexture2D(const std::string& path,
+                const osgDB::ReaderWriter::Options* options = 0,
+                bool wrapu = true, bool wrapv = true, int mipmaplevels = -1)
+{
+    return SGLoadTexture2D(true, path, options, wrapu, wrapv, mipmaplevels);
+}
+
+inline osg::Texture2D*
+SGLoadTexture2D(const SGPath& path,
+                const osgDB::ReaderWriter::Options* options = 0,
+                bool wrapu = true, bool wrapv = true,
+                int mipmaplevels = -1)
+{
+    return SGLoadTexture2D(true, path.str(), options, wrapu, wrapv,
+                           mipmaplevels);
+}
+
+inline osg::Texture2D*
+SGLoadTexture2D(bool staticTexture, const SGPath& path,
+                const osgDB::ReaderWriter::Options* options = 0,
+                bool wrapu = true, bool wrapv = true,
+                int mipmaplevels = -1)
+{
+    return SGLoadTexture2D(staticTexture, path.str(), options, wrapu, wrapv,
+                           mipmaplevels);
+}
 
 #endif // __MODEL_HXX