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 )
70 inline void setCameraMagnification(
double mag )
72 myCameraMagnification = mag;
76 inline double cameraMagnification()
const
78 return myCameraMagnification;
82 void setCameraResolution(
double factor)
84 myCameraResolution = factor;
88 inline double cameraResolution()
const
90 return myCameraResolution;
93 void setCameraVelocity(
double velocity)
95 myCameraVelocity = velocity;
99 inline double cameraVelocity()
const
101 return myCameraVelocity;
105 void setTerrainRadius(
double rad)
107 myTerrainRadius = rad;
111 void setAltitude2D(
double altitude )
113 myAltitude2D = altitude;
117 double altitude2D()
const
123 inline unsigned int modelSet()
const
129 void setModelSet(
unsigned int modelSet)
131 myModelSet = modelSet;
135 inline double terrainRadius()
const
137 return myTerrainRadius;
141 void setOrthoCulling(
bool ortho)
147 inline bool orthoCulling()
const
153 inline void setSkyRendering(
bool renderSky)
155 mySkyFlag = renderSky;
160 inline bool skyRendering()
const
166 inline void setDynamicLights(
bool enabled)
168 myDynamicLightsFlag = enabled;
172 inline bool dynamicLights()
const
174 return myDynamicLightsFlag;
178 inline void setDynamicOcean(
bool enabled)
180 myDynamicOceanFlag = enabled;
184 inline bool dynamicOcean()
const
186 return myDynamicOceanFlag;
190 void setScaling(
bool scaling )
192 myScalingFlag = scaling;
196 inline bool scaling()
const
198 return myScalingFlag;
202 void setScaleFactor(
double scaleFactor )
204 myScaleFactor = scaleFactor;
208 inline double scaleFactor()
const
210 return myScaleFactor;
214 void setCoordinateSystemChanged(
bool changed )
216 myCoordinateSystemChanged = changed;
220 inline bool coordinateSystemChanged()
const
222 return myCoordinateSystemChanged;
229 myNodeXRScaler = scaler;
233 inline double calculateXRScale(
const osg::Camera& camera,
234 const osg::Node& node )
236 if ( myNodeXRScaler.valid() )
249 myScaleType = scaleType;
262 void setClampedPixelSize(
double d)
264 myClampedPixelSize = d;
268 double clampedPixelSize()
const
270 return myClampedPixelSize;
276 inline void setDynamicWaterVisibilityEnable(
bool enable )
278 myDynamicWaterVisibilityEnable = enable;
282 inline bool dynamicWaterVisibilityEnable()
const
284 return myDynamicWaterVisibilityEnable;
289 inline void setDynamicWaterVisibilityMax(
double visMax )
291 myDynamicWaterVisibilityMax = visMax;
296 inline double dynamicWaterVisibilityMax()
const
298 return myDynamicWaterVisibilityMax;
303 inline void setPagedLodMagnificationScaleFactor(
float factor)
305 myPagedLodMagnificationScaleFactor = factor;
310 inline float pagedLodMagnificationScaleFactor()
const
312 return myPagedLodMagnificationScaleFactor;
321 inline void setPagedLodMagnificationHighLodAngle(
float angle)
323 myPagedLodMagnificationHighLodAngle = angle;
329 inline float pagedLodMagnificationHighLodAngle()
const
331 return myPagedLodMagnificationHighLodAngle;
365 : myFixedPixelSize( 1.0 )
379 void setFixedPixelSize(
double d)
381 myFixedPixelSize = d;
384 double fixedPixelSize()
const
386 return myFixedPixelSize;
389 void setDimensions(
double length,
double width,
double height)
391 myLength = length; myWidth = width; myHeight = height;
394 inline double length()
const
399 inline double width()
const
404 inline double height()
const
409 inline void calculateScaleFactors(
const osgUtil::CullVisitor& visitor,
411 double& scaleFactorX,
double& scaleFactorY,
double& scaleFactorZ)
const
414 visitor.clampedPixelSize( sphere.center(), info->
terrainRadius() );
417 calculateScaleFactors( sphere, *info, scaleFactorX,
418 scaleFactorY, scaleFactorZ );
422 double& scaleFactorX,
double& scaleFactorY,
double& scaleFactorZ)
const
424 scaleFactorX = scaleFactorY = scaleFactorZ = 1.0;
427 double curPixels = myWidth / metersPerPixel;
431 scaleFactorX = myFixedPixelSize / curPixels;
436 scaleFactorY = scaleFactorX;
445 void setScaleX(
bool b)
450 inline bool scaleX()
const
455 void setScaleXY(
bool b)
460 inline bool scaleY()
const
465 void setScaleZ(
bool b)
470 inline bool scaleZ()
const