+ // ssg tree structure for this tile is as follows:
+ // ssgRoot(scene)
+ // - ssgBranch(terrain)
+ // - ssgTransform(tile)
+ // - ssgRangeSelector(tile)
+ // - ssgEntity(tile)
+ // - kid1(fan)
+ // - kid2(fan)
+ // ...
+ // - kidn(fan)
+
+ // pointer to ssg transform for this tile
+ ssgTransform *terra_transform;
+ ssgTransform *rwy_lights_transform;
+ ssgTransform *gnd_lights_transform;
+
+ // pointer to ssg range selector for this tile
+ ssgRangeSelector *terra_range;
+ ssgRangeSelector *rwy_lights_range;
+ ssgRangeSelector *gnd_lights_range;
+
+ // we create several preset brightness and can choose which one we
+ // want based on lighting conditions.
+ ssgSelector *gnd_lights_brightness;
+
+ // ADA --->
+ // Runway centre coords.
+ Point3D rway_center; // Reqd. for switching as function of distance from runway center
+ //pointers for Runway lights
+ ssgTransform *lightmaps_transform; // branch for runway lights
+ ssgRangeSelector *lightmaps_range; // tried to maintain same structure as Curt's ground
+ ssgSelector *lightmaps_brightness; // selector node for points/ lightmaps
+
+ ssgSimpleState *lightmap_state; // OpenGL state of the polygons that make up runway lights
+ ssgVertexArray *light_points; // array of runway light coords.
+ // <--- ADA
+
+ /**
+ * Indicates this tile has been loaded from a file and connected
+ * into the scene graph. Note that this may be set asynchronously
+ * by another thread.
+ */
+ volatile bool loaded;
+
+ /**
+ * Count of pending models to load for this tile. This tile
+ * cannot be removed until this number reaches zero (i.e. no
+ * pending models to load for this tile.)
+ */
+ volatile int pending_models;
+
+ bool obj_load( const std::string& path,
+ ssgBranch* geometry,
+ ssgBranch* rwy_lights,
+ ssgVertexArray* gound_lights,
+ bool is_base );
+
+ ssgLeaf* gen_lights( ssgVertexArray *lights, int inc, float bright );
+
+ double timestamp;