00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017 #ifndef CHECKSCENERYVISITOR_HXX
00018 #define CHECKSCENERYVISITOR_HXX
00019
00020 #include <osg/NodeVisitor>
00021 #include <osg/fast_back_stack>
00022
00023 namespace osgDB {
00024 class DatabasePager;
00025 }
00026
00027
00028 namespace simgear
00029 {
00030
00031 class SGPagedLOD;
00032
00033
00034
00035
00036
00037
00038 class CheckSceneryVisitor : public osg::NodeVisitor
00039 {
00040 public:
00041 CheckSceneryVisitor(osgDB::DatabasePager* dbp, const osg::Vec3 &position, double range);
00042
00043 virtual void apply(osg::Node& node);
00044 virtual void apply(osg::PagedLOD& node);
00045 virtual void apply(osg::Transform& node);
00046
00047 bool isLoaded() const {
00048 return _loaded;
00049 }
00050 void setLoaded(bool l) {
00051 _loaded=l;
00052 }
00053 const osg::Vec3 &getPosition() const {
00054 return _position;
00055 }
00056
00057 private:
00058 osg::Vec3 _position;
00059 double _range;
00060 bool _loaded;
00061 osgDB::DatabasePager* _dbp;
00062
00063 osg::fast_back_stack<osg::Matrix> _viewMatrices;
00064 };
00065
00066 }
00067
00068 #endif