-class SGLeafUserData : public ssgBase
-{
-public:
- bool is_filled_in;
- ssgLeaf *leaf;
- SGMaterial *mat;
- ssgBranch *branch;
- float sin_lat;
- float cos_lat;
- float sin_lon;
- float cos_lon;
-
- void setup_triangle( int i );
-};
-
-
-/**
- * User data for populating triangles when they come in range.
- */
-class SGTriUserData : public ssgBase
-{
-public:
- bool is_filled_in;
- float * p1;
- float * p2;
- float * p3;
- sgVec3 center;
- double area;
- SGMatModelGroup * object_group;
- ssgBranch * branch;
- SGLeafUserData * leafData;
- unsigned int seed;
-
- void fill_in_triangle();
- void add_object_to_triangle(SGMatModel * object);
- void makeWorldMatrix (sgMat4 ROT, double hdg_deg );
-};
-
-
-/**
- * ssgEntity with a dummy bounding sphere, to fool culling.
- *
- * This forces the in-range and out-of-range branches to be visited
- * when appropriate, even if they have no children. It's ugly, but
- * it works and seems fairly efficient (since branches can still
- * be culled when they're out of the view frustum).
- */
-class SGDummyBSphereEntity : public ssgBranch
-{
-public:
- SGDummyBSphereEntity (float radius)
- {
- bsphere.setCenter(0, 0, 0);
- bsphere.setRadius(radius);
- }
- virtual ~SGDummyBSphereEntity () {}
- virtual void recalcBSphere () { bsphere_is_invalid = false; }
-};
-