16 #include <osg/BoundingBox>
17 #include <osg/BoundingSphere>
19 #include <osgUtil/CullVisitor>
25 #include <matrix/vlMath.h>
46 , myDynamicLightsFlag(true)
47 , myDynamicOceanFlag(true)
49 , myCameraResolution( 1.0 )
50 , myTerrainRadius( 1.0 )
51 , myScalingFlag( true )
52 , myScaleFactor( 1.0 )
53 , myClampedPixelSize( 1.0 )
54 , myCameraMagnification( 1.0 )
56 , myCoordinateSystemChanged( false )
59 , myDynamicWaterVisibilityEnable(true)
60 , myDynamicWaterVisibilityMax(75.)
62 , myPagedLodMagnificationHighLodAngle(DtDeg2Rad(15))
63 , myPagedLodMagnificationScaleFactor(1.)
64 , myCameraVelocity( 0 )
66 , myIncludeLightPoints(true)
67 , myCurrentScaleFactor(1.0)
72 inline void setCameraMagnification(
double mag )
74 myCameraMagnification = mag;
78 inline double cameraMagnification()
const
80 return myCameraMagnification;
84 void setCameraResolution(
double factor)
86 myCameraResolution = factor;
90 inline double cameraResolution()
const
92 return myCameraResolution;
95 void setCameraVelocity(
double velocity)
97 myCameraVelocity = velocity;
101 inline double cameraVelocity()
const
103 return myCameraVelocity;
107 void setTerrainRadius(
double rad)
109 myTerrainRadius = rad;
113 void setAltitude2D(
double altitude )
115 myAltitude2D = altitude;
119 double altitude2D()
const
125 inline unsigned int modelSet()
const
131 void setModelSet(
unsigned int modelSet)
133 myModelSet = modelSet;
137 inline double terrainRadius()
const
139 return myTerrainRadius;
143 void setOrthoCulling(
bool ortho)
149 inline bool orthoCulling()
const
155 inline void setSkyRendering(
bool renderSky)
157 mySkyFlag = renderSky;
162 inline bool skyRendering()
const
168 inline void setDynamicLights(
bool enabled)
170 myDynamicLightsFlag = enabled;
174 inline bool dynamicLights()
const
176 return myDynamicLightsFlag;
180 inline void setDynamicOcean(
bool enabled)
182 myDynamicOceanFlag = enabled;
186 inline bool dynamicOcean()
const
188 return myDynamicOceanFlag;
192 void setScaling(
bool scaling )
194 myScalingFlag = scaling;
198 inline bool scaling()
const
200 return myScalingFlag;
204 void setScaleFactor(
double scaleFactor )
206 myScaleFactor = scaleFactor;
210 inline double scaleFactor()
const
212 return myScaleFactor;
216 void setCoordinateSystemChanged(
bool changed )
218 myCoordinateSystemChanged = changed;
222 inline bool coordinateSystemChanged()
const
224 return myCoordinateSystemChanged;
231 myNodeXRScaler = scaler;
235 inline double calculateXRScale(
const osg::Camera& camera,
236 const osg::Node& node )
238 if ( myNodeXRScaler.valid() )
251 myScaleType = scaleType;
264 void setClampedPixelSize(
double d)
266 myClampedPixelSize = d;
270 double clampedPixelSize()
const
272 return myClampedPixelSize;
278 inline void setDynamicWaterVisibilityEnable(
bool enable )
280 myDynamicWaterVisibilityEnable = enable;
284 inline bool dynamicWaterVisibilityEnable()
const
286 return myDynamicWaterVisibilityEnable;
291 inline void setDynamicWaterVisibilityMax(
double visMax )
293 myDynamicWaterVisibilityMax = visMax;
298 inline double dynamicWaterVisibilityMax()
const
300 return myDynamicWaterVisibilityMax;
305 inline void setPagedLodMagnificationScaleFactor(
float factor)
307 myPagedLodMagnificationScaleFactor = factor;
312 inline float pagedLodMagnificationScaleFactor()
const
314 return myPagedLodMagnificationScaleFactor;
323 inline void setPagedLodMagnificationHighLodAngle(
float radians)
325 myPagedLodMagnificationHighLodAngle = radians;
332 inline float pagedLodMagnificationHighLodAngle()
const
334 return myPagedLodMagnificationHighLodAngle;
338 inline void setIncludeLightPoints(
bool flag)
340 myIncludeLightPoints = flag;
344 inline bool includeLightPoints()
const
346 return myIncludeLightPoints;
351 inline float currentTraversalScaleFactor()
353 return myCurrentScaleFactor;
358 inline void setCurrentTraversalScaleFactor(
float currentScaleFactor)
360 myCurrentScaleFactor = currentScaleFactor;
397 : myFixedPixelSize( 1.0 )
411 void setFixedPixelSize(
double d)
413 myFixedPixelSize = d;
416 double fixedPixelSize()
const
418 return myFixedPixelSize;
421 void setDimensions(
double length,
double width,
double height)
423 myLength = length; myWidth = width; myHeight = height;
426 inline double length()
const
431 inline double width()
const
436 inline double height()
const
441 inline void calculateScaleFactors(
const osgUtil::CullVisitor& visitor,
443 double& scaleFactorX,
double& scaleFactorY,
double& scaleFactorZ)
const
446 visitor.clampedPixelSize( sphere.center(), info->
terrainRadius() );
449 calculateScaleFactors( sphere, *info, scaleFactorX,
450 scaleFactorY, scaleFactorZ );
454 double& scaleFactorX,
double& scaleFactorY,
double& scaleFactorZ)
const
456 scaleFactorX = scaleFactorY = scaleFactorZ = 1.0;
459 double curPixels = myWidth / metersPerPixel;
463 scaleFactorX = myFixedPixelSize / curPixels;
468 scaleFactorY = scaleFactorX;
477 void setScaleX(
bool b)
482 inline bool scaleX()
const
487 void setScaleXY(
bool b)
492 inline bool scaleY()
const
497 void setScaleZ(
bool b)
502 inline bool scaleZ()
const