![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2009 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: $ $Revision: $ $State: $ 00007 ******************************************************************************/ 00008 00012 00013 #ifndef DtOverlayDrawable_H_ 00014 #define DtOverlayDrawable_H_ 00015 00016 #include <vrvOsg/vrvOsg.h> 00017 #include <vrvGraphics/DtOverlayRenderer.h> 00018 #include <osg/Drawable> 00019 00020 namespace osg 00021 { 00022 class Camera; 00023 } 00024 00025 namespace makVrv 00026 { 00027 class DtOsgOverlayManager; 00028 class DtChannel; 00029 00034 class DT_DLL_VRVOSG DtOverlayDrawable : public osg::Drawable 00035 { 00036 public: 00037 DtOverlayDrawable(DtOsgOverlayManager& overlayManager, DtChannel& channel); 00038 00042 void setOverlayToRender(DtOverlayRenderer* renderer); 00043 00045 DtOverlayDrawable(const DtOverlayDrawable&,const osg::CopyOp& copyop=osg::CopyOp::SHALLOW_COPY); 00046 00048 virtual osg::Object* cloneType() const { return new DtOverlayDrawable(myOverlayManager,myChannel); } 00049 00051 virtual osg::Object* clone(const osg::CopyOp& copyop) const { return new DtOverlayDrawable(*this,copyop); } 00052 00053 virtual void drawImplementation(osg::RenderInfo& renderInfo) const; 00054 00056 void setProjectionCamera(osg::Camera* camera); 00057 00058 protected: 00059 osg::ref_ptr<osg::StateSet> myCaptureSet; 00060 osg::Camera* myProjectionCamera; 00061 DtOverlayRenderer* myOverlayToRender; 00062 DtOsgOverlayManager& myOverlayManager; 00063 DtChannel& myChannel; 00064 }; 00065 } 00066 00067 #endif 00068