![]() |
VR-Forces 4.0.4 Class Documentation
|
00001 /****************************************************************************** 00002 ** Copyright (c) 2008 MAK Technologies, Inc. 00003 ** All rights reserved. 00004 ******************************************************************************/ 00005 /****************************************************************************** 00006 ** $RCSfile: shadowTechnique.h,v $ $Revision: 1.6 $ $State: Exp $ 00007 ******************************************************************************/ 00008 00009 00010 #ifndef ShadowTechnique_H_ 00011 #define ShadowTechnique_H_ 00012 00013 #include <vrvOsg/vrvOsg.h> 00014 #include <osgFX/Technique> 00015 #include <makOsgShadowFX/DtShadowMapImpl.h> 00016 00017 namespace makOsgShadowFX 00018 { 00019 00020 enum DtShadowImplEnum {SIMPLE, MINIMAL, LISMP, VOLUME}; 00021 00022 class DT_DLL_VRVOSG DtShadowFXTechnique : public osgFX::Technique 00023 { 00024 public: 00025 DtShadowFXTechnique(DtShadowImplEnum tech, int quality, int distance); 00026 00027 META_Technique("ShadowTechnique", "Adds shadows To a scene"); 00028 00029 void getRequiredExtensions(std::vector<std::string>& extensions) const; 00030 00031 void traverse(osg::NodeVisitor& nv, osgFX::Effect* fx); 00032 00033 protected: 00034 ~DtShadowFXTechnique(); 00035 00036 void define_passes(); 00037 00038 // debug methods 00039 osg::ref_ptr<osg::Camera> makeDebugCockpit(); 00040 00041 osg::ref_ptr<makOsgShadowFX::DtShadowMap> myShadowMapGen; 00042 osg::ref_ptr<osg::Texture2D> myShadowMap; 00043 00044 // forward declare, interface and implementation provided in DtShadowMap.cpp 00045 class DrawableDrawWithDepthShadowComparisonOffCallback; 00046 00047 osg::ref_ptr<osg::Camera> myDebugCamera; 00048 }; 00049 00050 } //makShadowFX:: 00051 00052 #endif