]> git.mxchange.org Git - simgear.git/blobdiff - simgear/io/sg_binobj.hxx
Async lookup attempt #3 - use OpenThreads instead - I'm going to kill off SGThread...
[simgear.git] / simgear / io / sg_binobj.hxx
index 542a333a973882435026b21aa385a65620515289..7f6726407ef0ec37e2f737b62ac6c08d05487a44 100644 (file)
@@ -28,8 +28,6 @@
 #define _SG_BINOBJ_HXX
 
 
-#include <plib/sg.h>
-
 #include <simgear/compiler.h>
 #include <simgear/constants.h>
 #include <simgear/math/sg_types.hxx>
 #include <time.h>
 
 #include <list>
-#include STL_STRING
+#include <string>
 
 
 
 /** STL Structure used to store object information */
-typedef vector < int_list > group_list;
+typedef std::vector < int_list > group_list;
 typedef group_list::iterator group_list_iterator;
 typedef group_list::const_iterator const_group_list_iterator;
 
@@ -74,9 +72,9 @@ typedef group_list::const_iterator const_group_list_iterator;
  *
  * - prop_typecode: material_name | ???
  *
- * - nelements: SHORT (Gives us 65536 which ought to be enough, right?)
+ * - nelements: USHORT (Gives us 65536 which ought to be enough, right?)
  *
- * - nproperties: SHORT
+ * - nproperties: USHORT
  *
  * - *_typecode: CHAR
  *
@@ -89,13 +87,13 @@ typedef group_list::const_iterator const_group_list_iterator;
 class SGBinObject {
     unsigned short version;
 
-    Point3D gbs_center;
+    SGVec3d gbs_center;
     float gbs_radius;
 
-    point_list wgs84_nodes;    // vertex list
-    point_list colors;         // color list
-    point_list normals;                // normal list
-    point_list texcoords;      // texture coordinate list
+    std::vector<SGVec3d> wgs84_nodes;  // vertex list
+    std::vector<SGVec4f> colors;       // color list
+    std::vector<SGVec3f> normals;      // normal list
+    std::vector<SGVec2f> texcoords;    // texture coordinate list
 
     group_list pts_v;          // points vertex index
     group_list pts_n;          // points normal index
@@ -125,24 +123,26 @@ public:
 
     inline unsigned short get_version() const { return version; }
 
-    inline const Point3D& get_gbs_center() const { return gbs_center; }
-    inline void set_gbs_center( const Point3D& p ) { gbs_center = p; }
+    inline const SGVec3d& get_gbs_center() const { return gbs_center; }
+    inline void set_gbs_center( const SGVec3d& p ) { gbs_center = p; }
 
     inline float get_gbs_radius() const { return gbs_radius; }
     inline void set_gbs_radius( float r ) { gbs_radius = r; }
 
-    inline const point_list& get_wgs84_nodes() const { return wgs84_nodes; }
-    inline void set_wgs84_nodes( const point_list& n ) { wgs84_nodes = n; }
-
-    inline const point_list& get_colors() const { return colors; }
-    inline void set_colors( const point_list& c ) { colors = c; }
-
-    inline const point_list& get_normals() const { return normals; }
-    inline void set_normals( const point_list& n ) { normals = n; }
-
-    inline const point_list& get_texcoords() const { return texcoords; }
-    inline void set_texcoords( const point_list& t ) { texcoords = t; }
+    inline const std::vector<SGVec3d>& get_wgs84_nodes() const
+    { return wgs84_nodes; }
+    inline void set_wgs84_nodes( const std::vector<SGVec3d>& n )
+    { wgs84_nodes = n; }
 
+    inline const std::vector<SGVec4f>& get_colors() const { return colors; }
+    inline void set_colors( const std::vector<SGVec4f>& c ) { colors = c; }
+    
+    inline const std::vector<SGVec3f>& get_normals() const { return normals; }
+    inline void set_normals( const std::vector<SGVec3f>& n ) { normals = n; }
+    
+    inline const std::vector<SGVec2f>& get_texcoords() const { return texcoords; }
+    inline void set_texcoords( const std::vector<SGVec2f>& t ) { texcoords = t; }
+    
     inline const group_list& get_pts_v() const { return pts_v; }
     inline void set_pts_v( const group_list& g ) { pts_v = g; }
     inline const group_list& get_pts_n() const { return pts_n; }
@@ -194,7 +194,7 @@ public:
      * @param file input file name
      * @return result of read
      */
-    bool read_bin( const string& file );
+    bool read_bin( const std::string& file );
 
     /** 
      * Write out the structures to a binary file.  We assume that the
@@ -205,7 +205,7 @@ public:
      * @param b bucket for object location
      * @return result of write
      */
-    bool write_bin( const string& base, const string& name, const SGBucket& b );
+    bool write_bin( const std::string& base, const std::string& name, const SGBucket& b );
 
     /**
      * Write out the structures to an ASCII file.  We assume that the
@@ -216,30 +216,8 @@ public:
      * @param b bucket for object location
      * @return result of write
      */
-    bool write_ascii( const string& base, const string& name,
+    bool write_ascii( const std::string& base, const std::string& name,
                      const SGBucket& b );
 };
 
-
-/**
- * \relates SGBinObject
- * Calculate the center of a list of points, by taking the halfway
- * point between the min and max points.
- * @param wgs84_nodes list of points in wgs84 coordinates
- * @return center point
- */
-Point3D sgCalcCenter( point_list& wgs84_nodes );
-
-
-/**
- * \relates SGBinObject
- * Calculate the bounding sphere of a set of nodes.
- * Center is the center of the tile and zero elevation.
- * @param center center of our bounding radius
- * @param wgs84_nodes list of points in wgs84 coordinates
- * @return radius
- */
-double sgCalcBoundingRadius( Point3D center, point_list& wgs84_nodes );
-
-
 #endif // _SG_BINOBJ_HXX