public:
+ /* CLO123 FROM HERE TO THE CORRESPONDING MARKER ARE THINGS THAT
+ CAN BE DELETED AFTER WE DROP THE ASCII SCENERY FORMAT */
typedef vector < sgVec3 * > free_vec3_list;
typedef vector < sgVec2 * > free_vec2_list;
typedef vector < unsigned short * > free_index_list;
// node list
point_list nodes;
int ncount;
+ /* CLO123 MARKER */
// global tile culling data
Point3D center;
// pointer to ssg transform for this tile
ssgTransform *terra_transform;
- ssgTransform *lights_transform;
+ ssgTransform *rwy_lights_transform;
+ ssgTransform *gnd_lights_transform;
// pointer to ssg range selector for this tile
ssgRangeSelector *terra_range;
- ssgRangeSelector *lights_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 *lights_brightness;
+ 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
*/
volatile int pending_models;
- ssgBranch* obj_load( const std::string& path,
- ssgVertexArray* lights, bool is_base );
+ 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;
+
public:
+ // ADA --->
+ ssgTransform *ols_transform; // transform node for flols simulation
+ ssgSelector *lightmaps_sequence; // selector node for points/ lightmaps
+ ssgBranch* gen_runway_lights(ssgVertexArray *points,ssgVertexArray *normal, ssgVertexArray *dir, int *type);
+ // <--- ADA
+
// Constructor
FGTileEntry( const SGBucket& b );
// Update the ssg transform node for this tile so it can be
// properly drawn relative to our (0,0,0) point
- void prep_ssg_node( const Point3D& p, float vis);
+ void prep_ssg_node( const Point3D& p, sgVec3 up, float vis);
/**
* Load tile data from a file.
/**
* Add terrain mesh and ground lighting to scene graph.
*/
- void add_ssg_nodes( ssgBranch* terrain, ssgBranch* ground );
+ void add_ssg_nodes( ssgBranch* terrain_branch,
+ ssgBranch* gnd_lights_branch,
+ ssgBranch* rwy_lights_branch );
/**
* disconnect terrain mesh and ground lighting nodes from scene
* graph for this tile.
*/
void disconnect_ssg_nodes();
+
+
+ /**
+ * return the SSG Transform node for the terrain
+ */
+ inline ssgTransform *get_terra_transform() { return terra_transform; }
+
+ void set_timestamp(double time_ms) { timestamp = time_ms; }
+
+ inline double get_timestamp() const { return timestamp; }
+
};