Files
OpenSceneGraph/src/osgPlugins/txp/TerrapageNode.h

61 lines
1.6 KiB
C++

//C++ header.
#ifndef TERRAPAGENODE_H
#define TERRAPAGENODE_H
#include <osg/Node>
#include <osg/BoundingBox>
#include "trPagePageManager.h"
namespace txp
{
class TerrapageNode : public osg::Group
{
public:
TerrapageNode();
/** Copy constructor using CopyOp to manage deep vs shallow copy.*/
TerrapageNode(const TerrapageNode&,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY);
META_Node(txp, TerrapageNode);
virtual void traverse(osg::NodeVisitor& nv);
bool loadDatabase();
void setDatabaseName(const std::string& name) { _databaseName = name; }
const std::string& getDatabaseName() const { return _databaseName; }
void setDatabaseOptions(const std::string& name) { _databaseOptions = name; }
const std::string& getDatabaseOptions() const { return _databaseOptions; }
void setDatabaseDimensions(const osg::BoundingBox& box) { _databaseDimensions = box; }
const osg::BoundingBox& getDatabaseDimensions() const { return _databaseDimensions; }
virtual void updateSceneGraph();
virtual void updateEyePoint(const osg::Vec3& eyepoint) const;
protected:
virtual ~TerrapageNode();
virtual bool computeBound() const;
osg::BoundingBox _databaseDimensions;
std::string _databaseName;
std::string _databaseOptions;
OSGPageManager* _pageManager;
mutable osg::Vec3 _lastRecordEyePoint;
};
} // namespace txp
#endif