]> git.mxchange.org Git - flightgear.git/blobdiff - Scenery/tile.hxx
Attempting to iron out seg faults and crashes.
[flightgear.git] / Scenery / tile.hxx
index 2143a77505bc5619f1968fc859190ca6daf40efe..dff5e12f8141db136fa2223a60cdbab870919a9b 100644 (file)
@@ -41,7 +41,7 @@
 #include <GL/glut.h>
 #include <XGL/xgl.h>
 
-#ifdef __sun__
+#if defined ( __sun__ )
 extern "C" void *memmove(void *, const void *, size_t);
 extern "C" void *memset(void *, int, size_t);
 #endif
@@ -58,7 +58,12 @@ using namespace std;
 
 
 // Maximum nodes per tile
-#define MAX_NODES 1000
+#define MAX_NODES 2000
+
+
+// Forward declarations
+class fgTILE;
+class fgMATERIAL;
 
 
 class fgFACE {
@@ -92,10 +97,10 @@ public:
     // material property this fragment is assigned to.
 
     // material property pointer
-    void *material_ptr;
+    fgMATERIAL *material_ptr;
 
     // tile pointer
-    void *tile_ptr;
+    fgTILE *tile_ptr;
 
     // OpenGL display list for fragment data
     GLint display_list;
@@ -103,14 +108,17 @@ public:
     // face list (this indexes into the master tile vertex list)
     list < fgFACE > faces;
 
+    // number of faces in this fragment
+    int num_faces;
+
     // Add a face to the face list
     void add_face(int n1, int n2, int n3);
 
     // test if line intesects with this fragment.  p0 and p1 are the
     // two line end points of the line.  If side_flag is true, check
     // to see that end points are on opposite sides of face.  Returns
-    // 1 if it does, 0 otherwise.  If it intesects, result is the
-    // point of intersection
+    // 1 if it intersection found, 0 otherwise.  If it intesects,
+    // result is the point of intersection
     int intersect( fgPoint3d *end0, fgPoint3d *end1, int side_flag,
                   fgPoint3d *result);
 
@@ -163,6 +171,32 @@ public:
 
 
 // $Log$
+// Revision 1.17  1998/08/22 14:49:58  curt
+// Attempting to iron out seg faults and crashes.
+// Did some shuffling to fix a initialization order problem between view
+// position, scenery elevation.
+//
+// Revision 1.16  1998/08/22 02:01:34  curt
+// increased fragment list size.
+//
+// Revision 1.15  1998/08/20 15:12:06  curt
+// Used a forward declaration of classes fgTILE and fgMATERIAL to eliminate
+// the need for "void" pointers and casts.
+// Quick hack to count the number of scenery polygons that are being drawn.
+//
+// Revision 1.14  1998/08/12 21:13:06  curt
+// material.cxx: don't load textures if they are disabled
+// obj.cxx: optimizations from Norman Vine
+// tile.cxx: minor tweaks
+// tile.hxx: addition of num_faces
+// tilemgr.cxx: minor tweaks
+//
+// Revision 1.13  1998/07/24 21:42:08  curt
+// material.cxx: whups, double method declaration with no definition.
+// obj.cxx: tweaks to avoid errors in SGI's CC.
+// tile.cxx: optimizations by Norman Vine.
+// tilemgr.cxx: optimizations by Norman Vine.
+//
 // Revision 1.12  1998/07/22 21:41:42  curt
 // Add basic fgFACE methods contributed by Charlie Hotchkiss.
 // intersect optimization from Norman Vine.