20 #include <matrix/vlVector.h>
22 #include <osgViewer/View>
29 class DatabaseRequestHandler;
35 class DtChannelSpecificGroup;
36 class DtIntersectorResult;
37 class DtIntersectorsContainer;
39 class DtOsgChannelCreator;
40 class DtOsgEmptySceneLogo;
41 class DtChannelManager;
42 class DtWindowConfiguration;
45 class DtOsgObserverObject;
46 class DtOsgCullVisitorParameters;
47 class DtTerrainPageSignaler;
49 class DtOsgChannelSensor;
75 virtual bool initialize();
79 virtual void initializeNormalized2DCamera();
80 virtual void initialize2DCamera(
int w,
int h);
81 virtual void initializeSceneCamera();
82 virtual void initializeRenderTexture();
84 virtual void initializeRTTCamera();
86 virtual void clearRttCamera();
88 virtual void recreateRTTCamera();
93 virtual void setShadowState(
bool enable);
96 virtual void addOverlayDrawablesToCameras();
103 virtual void initializeSignalConnections();
115 virtual void setSensorName(
const std::string& sensorName);
118 virtual void setClearColor(
float r,
float g,
float b,
float a);
123 virtual void setWindow(
DtWindow* view);
126 virtual const DtWindow* window()
const;
129 virtual void setViewport(
int x,
int y,
int width,
int height);
134 virtual void clearFrameBufferIfChanged();
137 virtual void getViewport(
int& x,
int& y,
int& width,
int& height)
const;
140 virtual void setCameraPosition(
double x,
double y,
double z);
143 virtual void setCameraOrientation(
double psi,
double theta,
double phi);
149 virtual void setCameraPositionAndOrientation(
double x,
double y,
150 double z,
double psi,
double theta,
double phi);
151 virtual void setCameraPositionAndOrientation(osg::Vec3d& pos,
155 virtual void getCameraPositionAndOrientation(osg::Vec3d& position,
156 osg::Quat& rotation)
const;
168 virtual void setChannelEnabled(
bool enabled,
bool partial)
override;
172 virtual bool channelEnabled()
const;
186 virtual void update();
189 virtual void connectToObserver();
192 virtual osgViewer::View& view();
216 virtual void setRenderToTexture(
bool enabled);
221 virtual void setRenderToTextureFormat(
int format,
int sourceFormat,
int sourceType);
235 virtual void setDepthTextureUsesStencilBuffer(
bool useStencil);
238 virtual bool depthTextureUsesStencilBuffer()
const;
241 virtual int shadowQuality()
const;
245 virtual double lastEffectiveViewMagnification()
const override;
250 virtual std::vector<const osg::Camera*> getShadowableCameras()
const;
254 virtual void setProjectionResizePolicy(
259 virtual void updateProjection();
262 double &left,
double zNear,
double &right,
double &top,
double &bottom)
const;
265 double& left,
double zNear,
double& right,
double& top,
double& bottom)
const;
268 virtual void connectChannelToScene();
274 virtual bool processKeyboardEvent(
const DtKeyEvent & ev);
280 virtual void getWorldToWindowMatrix(osg::Matrix& worldToWindowMatrix)
const;
283 virtual void moveMouseToScreenLocation(
float screenX,
float screenY);
288 virtual void projectToScreen(
double dbX,
double dbY,
double dbZ,
289 double& screenX,
double& screenY,
double& screenZ)
const override;
292 virtual void projectToWorld(
double screenX,
double screenY,
293 double& dbX,
double& dbY,
double& dbZ)
const override;
303 std::vector<DtElementID>* ignoreList = 0)
override;
306 virtual const std::string& name();
319 virtual void addPostProcessEffect(
const std::string& postProcessorEffect);
324 virtual void removePostProcessEffect(
const std::string& postProcessorEffect);
327 virtual bool hasPostProcessEffect(
const std::string& postProcessorEffect);
335 virtual void setEnablePostProcessors(
bool enable);
337 virtual bool getEnablePostProcessors();
340 virtual bool useOldChannelOffsetCalcuation()
const;
341 virtual void setUseOldChannelOffsetCalcuation(
bool enable);
345 virtual bool forceHdrLuminanceOverride();
347 virtual void setForceHdrLuminanceOverride(
bool force);
356 virtual void clearStateGraph(
void);
361 virtual void setEnableHdrPassthrough(
bool flag);
362 virtual bool enableHdrPassthrough();
366 virtual void setHdrOutputScale(
float scale);
369 virtual float hdrOutputScale();
372 virtual void screenCapture();
375 virtual void setOcclusionTextureEnabled(
bool enabled);
378 virtual void initOcclusionTexture();
381 virtual void updateCameraFrustumPlanes( std::vector<
DtVector4<double> >& planes );
385 virtual void updateAcquisitionBoxFrustumPlanes(
const int& boxCenterX,
const int& boxCenterY,
386 const int& boxWidth,
const int& boxHeight, std::vector<
DtVector4<double> >& planes );
394 virtual void releaseResources(osg::State* gcState);
398 virtual void updateShowTracksUniform(
bool value);
406 virtual std::vector<DtElementID> entitiesInFrustum()
override;
413 virtual void makeObserverToCameraMatrix(osg::Vec3d& orient,
414 osg::Matrixd& offsetObserverToCamera, osg::Matrixd& observerToCamera);
415 virtual void makeObserverToCameraMatrix(osg::Quat& qObserverToWorld,
416 osg::Matrixd& offsetObserverToCamera, osg::Matrixd& observerToCamera);
425 virtual double calculateEffectiveViewMagnification(
double currentLeft,
double currentRight,
double currentTop,
double currentBottom,
double zNear)
const;
428 virtual void calculateNearFar(
double& zNear,
double& zFar);
433 virtual bool useAttachedForNearClip(
double alt);
436 virtual double calculateNearClip(
double alt,
double zFar);
439 virtual double calculateFarClip(
double alt);
445 virtual double calculateNearClipMagClamp(
double zNear,
double zFar,
float magLevel=2.);
448 virtual void projectFor3D();
451 virtual void projectFor2D();
455 virtual void connectRttCameraToScene();
458 virtual void slot_visualizerRootAdded(
DtModelSetId modelSet,
int visualType);
461 virtual void slot_shadowsRemoved();
469 int setting,
bool value);
476 virtual void slot_observerLodCenterSettingsChanged(
DtObserverObject* observer,
487 virtual void slot_windowConfigurationModified(
const std::string& deName,
491 virtual void slot_channelConfigurationModified(
const std::string& deName,
492 const std::string& windowName,
const std::string& oldChannelName,
496 virtual void slot_onCoordinateSystemChanged();
500 virtual void slot_paperMapEnabledChanged(
bool setting);
503 virtual void observerRemoved(
const std::string& observerName);
506 virtual void updateMultiSampleOverrideSetting();
511 virtual void getRenderTextureAttachmentInfo(
unsigned int&
level,
unsigned int& face,
unsigned int& sampleBuffers,
unsigned int& samples);
514 virtual void initializeRenderTextureColor();
517 virtual void initializeRenderTextureDepth();
520 virtual void initializeRttCameraDepth();
523 virtual void changedRttCameraFbo();
529 virtual void calculateAndSetFocusPointDistance(
double zNear,
double zFar,
double frustumLodRatio);
533 osgViewer::CompositeViewer* getOrCreateViewer();
536 virtual void flipHorizontal(
bool flip);
541 const std::vector<DtVector>& points)
const;
bool myShadowState
Definition: DtOsgChannel.h:587
IntersectProperties
The IntersectProperties enum is a flag set that indicates the types of nodes to be considered for int...
Definition: DtIntersector.h:31
DtOsgObserverObject * myOsgObserverObject
Definition: DtOsgChannel.h:548
Abstract Base class.
Definition: DtWindow.h:25
bool myCoordinateSystemChanged
Definition: DtOsgChannel.h:585
DtOsgEmptySceneLogo * myEmptySceneLogo
Definition: DtOsgChannel.h:638
std::vector< osg::Vec3d > myFocusPoints
Definition: DtOsgChannel.h:628
osg::ref_ptr< osg::DatabaseRequestHandlerCallback > myDatabasePagerCallback
Definition: DtOsgChannel.h:605
int myRenderTextureFormat
Definition: DtOsgChannel.h:550
DtOsgWindow * myOsgWindow
Definition: DtOsgChannel.h:547
This class encapsulates a Key event.
Definition: DtKeyEvent.h:16
static int theRunningCameraId
This is used to give names to each camera created. This is appended to the camera name This is useful...
Definition: DtOsgChannel.h:643
#define DT_DLL_VRVOSG
Definition: vrvOsg.h:23
DT_DLL_VRVCORE DtTaitBryan level(const DtCoordinateSystem &cs, const DtVector &localOrigin, double topoHeading)
Returns a level orientation with the topographic heading.
bool myShowTracksEnabled
Definition: DtOsgChannel.h:634
bool myFrameBufferNeedsClear
Definition: DtOsgChannel.h:611
The channel creator for the abstract channel class.
Definition: DtOsgChannel.h:658
Utility class that contains intersectors for all model sets in the system (3d, xr, 2d) Use an object of this class when all models sets can be possibly needed. When you know which model set you need, you can just use the DtIntersectorCreator to create an intersector for a model set Models sets corresponding to 3d, xr and 2d are created by default (these correspond to values of 0, 1 and 5) Additional model sets can be registered with DtIntersectorsContainer::registerModelSet.
Definition: DtIntersectorsContainer.h:37
bool mySensorInitialized
Definition: DtOsgChannel.h:558
int myLastNumMultiSamplesOverride
Definition: DtOsgChannel.h:626
Descriptor for a single intersection result.
Definition: DtIntersectorResult.h:21
Definition: DtOsgChannelSensor.h:22
PostProcessorEffectList myPostProcessorEffects
Definition: DtOsgChannel.h:591
The abstract channel creator for the abstract channel class.
Definition: DtChannel.h:196
This owns a list of channel configurations.
Definition: DtWindowConfiguration.h:26
double myLastEffectiveViewMagnification
Definition: DtOsgChannel.h:623
This class provides the OSG-specific implementation of a DtChannel.
Definition: DtOsgChannel.h:58
osg::ref_ptr< osg::Texture > myRenderTexture
The textures the 3D scene renders into when post processing is on.
Definition: DtOsgChannel.h:575
osg::ref_ptr< osg::Texture > myOcclusionTexture
Definition: DtOsgChannel.h:577
bool myEnableHdrPassthrough
Definition: DtOsgChannel.h:607
This class encapsulates a mouse button event.
Definition: DtMouseEvent.h:19
bool myEnablePostProcessors
Definition: DtOsgChannel.h:598
bool myUseOldChannelOffsetCalcuation
Definition: DtOsgChannel.h:603
bool myChannelEnabled
Definition: DtOsgChannel.h:560
osg::ref_ptr< osgViewer::View > myView
Definition: DtOsgChannel.h:546
Definition: DtObserverObject.h:71
osg::ref_ptr< DtCameraNode > myNormalized2DCamera
Definition: DtOsgChannel.h:572
int myRenderTextureSourceType
Definition: DtOsgChannel.h:554
The abstract Channel Class.
Definition: DtChannel.h:35
std::bitset< 7 > myIncludedFocusPoints
Definition: DtOsgChannel.h:629
Contains makVrv:DtIntersector class.
This class handles displaying a logo for a channel when the channel scene is empty. An empty scene means that no terrain is loaded. On overlay is used to hide the scene until the terrain loads.
Definition: DtOsgEmptySceneLogo.h:46
Contains makVrv::DtCameraNode declaration.
std::list< std::string > PostProcessorEffectList
Emitted when the channel's viewport changes dimensions.
Definition: DtOsgChannel.h:314
Contains makVrv::DtObserverObject class declaration.
DtOsgChannelSensor * myChannelSensor
Definition: DtOsgChannel.h:632
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtObserverObject.h:35
bool myRenderToTextureFlag
Definition: DtOsgChannel.h:586
float myHdrOutputScale
Definition: DtOsgChannel.h:609
The osg cull vistor parameters class provides additional culling and intersector parameters for choos...
Definition: DtOsgCullVisitorParameters.h:44
osg::Node::NodeMask myOldRTTCameraNodeMask
Definition: DtOsgChannel.h:594
osg::Node::NodeMask myOldSceneCameraNodeMask
Definition: DtOsgChannel.h:593
osg::ref_ptr< osg::Group > myRoot
Definition: DtOsgChannel.h:562
Contains makVrv::DtChannel class.
bool myIsUsingTrackballManipulator
Definition: DtOsgChannel.h:584
bool myForceHdrLuminanceOverride
Definition: DtOsgChannel.h:608
VR-Vantage specific subclass of OSG camera.
Definition: DtCameraNode.h:29
ProjectionUnits
Definition: DtChannelConfiguration.h:37
osg::ref_ptr< DtCameraNode > mySceneCamera
Definition: DtOsgChannel.h:566
virtual DtOsgChannelSensor * findChannelSensor()
Definition: DtOsgChannel.h:390
boost::signalslib::signal< void(int, int, int, int)> signal_viewportChanged
Emitted when the channel's viewport changes dimensions.
Definition: DtOsgChannel.h:312
osg::ref_ptr< DtCameraNode > myRTTCamera
Slave camera configured to render to myRenderTexture.
Definition: DtOsgChannel.h:582
Configuration for a single channel Serialized and sent to remote displays as necessary to configure r...
Definition: DtChannelConfiguration.h:24
std::map< int, DtChannelSpecificGroup * > VisualTypeMap
Definition: DtOsgChannel.h:544
Class for generic lights This holds per-light data such as range, attenuation factors, colors, etc.
Definition: DtLight.h:49
bool myDepthTextureUsesStencilBuffer
Definition: DtOsgChannel.h:579
double myPreviousClampedNearClipDistance
Definition: DtOsgChannel.h:621
DtLight * myFlashlight
Definition: DtOsgChannel.h:596
bool myRenderTextureFormatDirty
Definition: DtOsgChannel.h:556
osg::ref_ptr< DtCameraNode > my2DCamera
Definition: DtOsgChannel.h:569
int myLastFocusPointAttempted
Definition: DtOsgChannel.h:630
The DtDe is the core component of any VR-Vantage application. It owns a DtRenderer, DtDeCommunicator, as well as a DtDisplay and other things.
Definition: DtDe.h:76
DtModelSetId
Definition: DtModelSetEnums.h:19
int myRenderTextureSourceFormat
Definition: DtOsgChannel.h:552
Contains makVrv::DtOsgRenderer class.
Definition: DtIntersector.h:33
ProjectionResizePolicy
Definition: DtChannelConfiguration.h:44
This abstract base class defines the interface for OS-specific keyboard and mouse event listeners...
Definition: DtOsgObserverObject.h:49
A basic OSG display window, used to get the osg context for a display window.
Definition: DtOsgWindow.h:36
osg::ref_ptr< osg::Texture > myDepthTexture
Definition: DtOsgChannel.h:576
bool myLastMirrorMode
Definition: DtOsgChannel.h:616