VR-Forces 4.0.4 Class Documentation
include/vrvOsg/DtOsgTerrainOverlayManager.h
Go to the documentation of this file.
00001 /******************************************************************************
00002 ** Copyright (c) 2008 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 ******************************************************************************/
00005 /******************************************************************************
00006 ** $RCSfile: DtOsgOverlayManager.h,v $ $Revision: 1.13 $ $State: Exp $
00007 ******************************************************************************/
00008 
00012 
00013 #include <vrvOsg/vrvOsg.h>
00014 #include <vrvCore/DtDe.h>
00015 #include <vrvOsg/DtOsgTerrainOverlayOperation.h>
00016 
00017 #include <osg/Group>
00018 #include <osg/Switch>
00019 
00020 #include <vector>
00021 #include <deque>
00022 
00023 namespace makVrv
00024 {
00028    class DT_DLL_VRVOSG DtOsgTerrainOverlayManager
00029    {
00030       typedef std::deque<DtOsgTerrainOverlayOperation> OverlayList;
00031 
00032    public:
00033       DtOsgTerrainOverlayManager(DtDe& de, osg::Node* terrain);
00034 
00035       ~DtOsgTerrainOverlayManager();
00036 
00038       virtual void setTerrain(osg::Node* terrain);
00039 
00041       virtual void setOverlay(DtOsgTerrainOverlayOperation overlay);
00042 
00044       virtual void clearOverlays();
00045 
00047       virtual void removeOverlay(DtTerrainOverlayOperation::OverlayType type);
00048 
00050       virtual void setOverlayScale(DtOsgTerrainOverlayOperation::OverlayType type, const std::vector<double> scale);
00051 
00053       virtual void setOverlayOffset(DtOsgTerrainOverlayOperation::OverlayType type, const std::vector<double> offset);
00054 
00056       virtual void setWrapMode(DtOsgTerrainOverlayOperation::OverlayType type, int);
00057 
00059       virtual void setBlendMode(DtOsgTerrainOverlayOperation::OverlayType type, int);
00060 
00062       virtual void setRasterLayerPosition(DtOsgTerrainOverlayOperation::OverlayType type, int);
00063 
00065       virtual OverlayList overlays() const;
00066 
00068       virtual std::string overlayDefinition(DtTerrainOverlayOperation::OverlayType type) const;
00069 
00071       virtual std::vector<double> overlayScale(DtTerrainOverlayOperation::OverlayType type) const;
00072 
00074       virtual std::vector<double> overlayOffset(DtTerrainOverlayOperation::OverlayType type) const;
00075 
00077       virtual DtTerrainOverlayOperation defaultOverlay(DtOsgTerrainOverlayOperation::OverlayType type);
00078 
00080       virtual DtTerrainOverlayOperation currentOverlay(DtOsgTerrainOverlayOperation::OverlayType type);
00081 
00086       virtual int maxTextureUnits();
00087    protected:
00089       void initializeGraph();
00090 
00092       void restoreGraph();
00093 
00095       virtual void applyOverlays(bool reset = true);
00096 
00097    protected:
00098       OverlayList myOverlays;
00099 
00100       osg::ref_ptr<osg::Node> myTerrainNode;
00101       osg::StateSet* myOriginalState;
00102       std::vector<std::string> myOriginalDescriptions;
00103 
00104       DtDe& myDe;
00105 
00106       bool myInitializedFlag;
00107 
00108       int myMaxTextureUnits;
00109    };
00110 }
00111 

Document ID: Generated on Fri Jun 29 16:33:32 EDT 2012 from SVN revision 116588
Copyright © 2005-2012 VT MÄK Inc. All Rights Reserved (www.mak.com)