#include <simgear/compiler.h>
#include <vector>
-#include STL_STRING
+#include <string>
#include <simgear/bucket/newbucket.hxx>
#include <simgear/math/point3d.hxx>
#include <simgear/misc/sg_path.hxx>
-#include <simgear/scene/model/placementtrans.hxx>
#include <osg/ref_ptr>
#include <osgDB/ReaderWriter>
#include <strings.h>
#endif
-SG_USING_STD(string);
-SG_USING_STD(vector);
+using std::string;
+using std::vector;
namespace simgear {
// pointer to ssg range selector for this tile
osg::ref_ptr<osg::LOD> _node;
+ // Reference to DatabaseRequest object set and used by the
+ // osgDB::DatabasePager.
+ osg::ref_ptr<osg::Referenced> _databaseRequest;
static bool obj_load( const std::string& path,
osg::Group* geometry,
*/
bool is_inner_ring;
- /**
- * this variable tracks the status of the incremental memory
- * freeing.
- */
- enum {
- NODES = 0x01,
- VEC_PTRS = 0x02,
- TERRA_NODE = 0x04,
- GROUND_LIGHTS = 0x08,
- VASI_LIGHTS = 0x10,
- RWY_LIGHTS = 0x20,
- TAXI_LIGHTS = 0x40,
- LIGHTMAPS = 0x80
- };
- int free_tracker;
-
static ModelLoadHelper *_modelLoader;
public:
static void setModelLoadHelper(ModelLoadHelper *m) { _modelLoader=m; }
- // Clean up the memory used by this tile and delete the arrays
- // used by ssg as well as the whole ssg branch. This does a
- // partial clean up and exits so we can spread the load across
- // multiple frames. Returns false if work remaining to be done,
- // true if dynamically allocated memory used by this tile is
- // completely freed.
- bool free_tile();
-
// 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(float vis);
/**
* Transition to OSG database pager
*/
- static osg::Node* loadTileByName(const std::string& index_str,
- const osgDB::ReaderWriter::Options*);
+ static osg::Node* loadTileByFileName(const std::string& index_str,
+ const osgDB::ReaderWriter::Options*);
/**
* Return true if the tile entry is loaded, otherwise return false
* indicating that the loading thread is still working on this.
inline bool get_inner_ring() const { return is_inner_ring; }
inline void set_inner_ring( bool val ) { is_inner_ring = val; }
+
+ // Get the ref_ptr to the DatabaseRequest object, in order to pass
+ // this to the pager.
+ osg::ref_ptr<osg::Referenced>& getDatabaseRequest()
+ {
+ return _databaseRequest;
+ }
};
class ModelLoadHelper {