![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2010 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: DtOsgCullVisitor.h,v $ $Revision: 1.8 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtOsgCullVisitor_H_ 00014 #define DtOsgCullVisitor_H_ 00015 00016 #include <vrvOsg/vrvOsg.h> 00017 #include <vrvOsg/DtOsgCullVisitorParameters.h> 00018 #include <osgUtil/CullVisitor> 00019 00020 namespace makVrv 00021 { 00027 class DT_DLL_VRVOSG DtOsgCullVisitor : public osgUtil::CullVisitor 00028 { 00029 public: 00031 DtOsgCullVisitor(); 00032 00034 DtOsgCullVisitor(const DtOsgCullVisitor&); 00035 00037 void initializeViewDependentSettings(); 00038 00040 bool orthoCulling() const; 00041 00044 bool coordinateSystemChanged() const; 00045 00048 virtual float getDistanceToScreenEdge(const osg::Vec3& vec) const; 00049 00051 virtual float altitude2D() const; 00052 00054 const DtOsgCullVisitorParameters* visitorParameters() const; 00055 00056 protected: 00057 00059 virtual void apply(osg::Transform& node); 00060 00062 virtual void apply(osg::Group& group); 00063 00066 virtual float getDistanceToViewPoint(const osg::Vec3& vec, bool useLOD) const; 00067 00070 virtual bool isCulled( osg::Node& node, double scaleFactor ) ; 00071 00073 DtOsgCullVisitorParameters* getVisitorParameters() const; 00074 00076 virtual osgUtil::CullVisitor* clone() const; 00077 00078 protected: 00079 DtOsgCullVisitorParameters* myInfoCopy; 00080 double myAltitude; 00081 double myMaximumMagnificationAngle; 00082 osg::Matrix myWorldToWindowMatrix; 00083 }; 00084 } 00085 00086 #endif 00087