material_ptr ( rhs.material_ptr ),
tile_ptr ( rhs.tile_ptr ),
display_list ( rhs.display_list ),
- faces ( rhs.faces ),
- num_faces ( rhs.num_faces )
+ faces ( rhs.faces )
{
}
}
// $Log$
+// Revision 1.4 1998/09/15 01:35:03 curt
+// cleaned up my fragment.num_faces hack :-) to use the STL (no need in
+// duplicating work.)
+// Tweaked fgTileMgrRender() do not calc tile matrix unless necessary.
+// removed some unneeded stuff from fgTileMgrCurElev()
+//
// Revision 1.3 1998/09/08 21:40:42 curt
// Updates from Bernie Bright.
//
container faces;
// number of faces in this fragment
- int num_faces;
+ int num_faces() {
+ return faces.size();
+ }
// Add a face to the face list
void add_face(int n1, int n2, int n3) {
faces.push_back( fgFACE(n1,n2,n3) );
- num_faces++;
}
// test if line intesects with this fragment. p0 and p1 are the
fgPoint3d *result) const;
// Constructors
- fgFRAGMENT () : num_faces(0) { /*faces.reserve(512);*/}
+ fgFRAGMENT () { /*faces.reserve(512);*/}
fgFRAGMENT ( const fgFRAGMENT &image );
// Destructor
void init() {
faces.erase( faces.begin(), faces.end() );
- num_faces = 0;
}
int deleteDisplayList() {
// $Log$
+// Revision 1.5 1998/09/15 01:35:04 curt
+// cleaned up my fragment.num_faces hack :-) to use the STL (no need in
+// duplicating work.)
+// Tweaked fgTileMgrRender() do not calc tile matrix unless necessary.
+// removed some unneeded stuff from fgTileMgrCurElev()
+//
// Revision 1.4 1998/09/10 19:07:09 curt
// /Simulator/Objects/fragment.hxx
// Nested fgFACE inside fgFRAGMENT since its not used anywhere else.
#include <XGL/xgl.h>
#include <string.h>
+#include <string>
#include "Include/fg_stl_config.h"
#include <Debug/fg_debug.h>
void
fgMATERIAL::render_fragments()
{
+ // cout << "rendering " + texture_name + " = " << list_size << "\n";
+
if ( empty() )
return;
for ( size_t i = 0; i < list_size; ++i )
{
fgFRAGMENT* frag_ptr = list[i];
- current_view.tris_rendered += frag_ptr->num_faces;
+ current_view.tris_rendered += frag_ptr->num_faces();
if ( frag_ptr->tile_ptr != last_tile_ptr )
{
// new tile, new translate
+ last_tile_ptr = frag_ptr->tile_ptr;
xglLoadMatrixd( frag_ptr->tile_ptr->model_view );
}
// Woohoo!!! We finally get to draw something!
// printf(" display_list = %d\n", frag_ptr->display_list);
xglCallList( frag_ptr->display_list );
- last_tile_ptr = frag_ptr->tile_ptr;
}
}
// $Log$
+// Revision 1.6 1998/09/15 01:35:05 curt
+// cleaned up my fragment.num_faces hack :-) to use the STL (no need in
+// duplicating work.)
+// Tweaked fgTileMgrRender() do not calc tile matrix unless necessary.
+// removed some unneeded stuff from fgTileMgrCurElev()
+//
// Revision 1.5 1998/09/10 19:07:11 curt
// /Simulator/Objects/fragment.hxx
// Nested fgFACE inside fgFRAGMENT since its not used anywhere else.
pp.lon = fmod(RAD_TO_DEG * FG_TEX_CONSTANT * pp.lon, 25.0);
pp.lat = fmod(RAD_TO_DEG * FG_TEX_CONSTANT * pp.lat, 25.0);
+ if ( pp.lon < 0.0 ) {
+ pp.lon += 25.0;
+ }
+
+ if ( pp.lat < 0.0 ) {
+ pp.lat += 25.0;
+ }
+
return(pp);
}
// $Log$
+// Revision 1.4 1998/09/15 01:35:07 curt
+// cleaned up my fragment.num_faces hack :-) to use the STL (no need in
+// duplicating work.)
+// Tweaked fgTileMgrRender() do not calc tile matrix unless necessary.
+// removed some unneeded stuff from fgTileMgrCurElev()
+//
// Revision 1.3 1998/09/03 21:27:03 curt
// Fixed a serious bug caused by not-quite-correct comment/white space eating
// which resulted in mismatched glBegin() glEnd() pairs, incorrect display lists,
list < fgFRAGMENT > :: iterator current;
list < fgFRAGMENT > :: iterator last;
double dist, min_dist, lat_geod, alt, sea_level_r;
- double x, y, z;
+ // double x, y, z;
int index, tile_diameter, i;
c = &global_tile_cache;
index = c->exists(&p);
t = c->get_tile(index);
- scenery.next_center.x = t->center.x;
- scenery.next_center.y = t->center.y;
- scenery.next_center.z = t->center.z;
-
+ // scenery.next_center.x = t->center.x;
+ // scenery.next_center.y = t->center.y;
+ // scenery.next_center.z = t->center.z;
+
earth_center.x = 0.0;
earth_center.y = 0.0;
earth_center.z = 0.0;
p.lon, p.lat, p.x, p.y, fgBucketGenIndex(&p) );
// calculate tile offset
- x = (t->offset.x = t->center.x - scenery.center.x);
- y = (t->offset.y = t->center.y - scenery.center.y);
- z = (t->offset.z = t->center.z - scenery.center.z);
-
+ // x = (t->offset.x = t->center.x - scenery.center.x);
+ // y = (t->offset.y = t->center.y - scenery.center.y);
+ // z = (t->offset.z = t->center.z - scenery.center.z);
+
// calc current terrain elevation calculate distance from
// vertical tangent line at current position to center of
// tile.
y = (t->offset.y = t->center.y - scenery.center.y);
z = (t->offset.z = t->center.z - scenery.center.z);
- m = t->model_view;
- for ( j = 0; j < 16; j++ ) {
- m[j] = v->MODEL_VIEW[j];
- }
-
- // Calculate the model_view transformation matrix for this tile
- // This is equivalent to doing a glTranslatef(x, y, z);
- m[12] = m[0] * x + m[4] * y + m[8] * z + m[12];
- m[13] = m[1] * x + m[5] * y + m[9] * z + m[13];
- m[14] = m[2] * x + m[6] * y + m[10] * z + m[14];
- m[15] = m[3] * x + m[7] * y + m[11] * z + m[15];
-
#if defined( TEST_FOV_CLIP )
if( viewable(&(t->offset), t->bounding_radius) !=
viewable2(&(t->offset), t->bounding_radius) )
if ( viewable(&(t->offset), t->bounding_radius) ) {
// at least a portion of this tile could be viewable
+ m = t->model_view;
+ for ( j = 0; j < 16; j++ ) {
+ m[j] = v->MODEL_VIEW[j];
+ }
+
+ // Calculate the model_view transformation matrix for this tile
+ // This is equivalent to doing a glTranslatef(x, y, z);
+ m[12] = m[0] * x + m[4] * y + m[8] * z + m[12];
+ m[13] = m[1] * x + m[5] * y + m[9] * z + m[13];
+ m[14] = m[2] * x + m[6] * y + m[10] * z + m[14];
+ m[15] = m[3] * x + m[7] * y + m[11] * z + m[15];
+
// xglPushMatrix();
// xglTranslatef(t->offset.x, t->offset.y, t->offset.z);
// $Log$
+// Revision 1.37 1998/09/15 01:36:45 curt
+// cleaned up my fragment.num_faces hack :-) to use the STL (no need in
+// duplicating work.)
+// Tweaked fgTileMgrRender() do not calc tile matrix unless necessary.
+// removed some unneeded stuff from fgTileMgrCurElev()
+//
// Revision 1.36 1998/09/14 12:45:26 curt
// minor tweaks.
//