VR-Forces 4.0.4 Class Documentation
include/bhave3DGui/bhavePdgDrawerManager.h
Go to the documentation of this file.
00001 /*********************************************************************
00002 ** Copyright (c) 2011 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *********************************************************************/
00005 
00006 #pragma once
00007 
00008 #include "bhave3DGui/bhave3DGuiDefines.h"
00009 #include <kyruntime.h>
00010 #include "vrvCore/DtDe.h"
00011 #include <map>
00012 #include "vlutil/vlFilename.h"
00013 #include <deque>
00014 #include "osg/Group"
00015 #include "kypathdata/math/vec2f.h"
00016 #include "matrix/vlVector.h"
00017 #include "kypathdata/visualsystem/visualcolor.h"
00018 #include "osg/MatrixTransform"
00019 #include "osg/Vec3d"
00020 
00021 namespace BHAVE
00022 {
00023    class DT_DLL_bhave3DGui DtBhavePdgDrawerManager
00024    {
00025    public:
00026       DtBhavePdgDrawerManager(makVrv::DtDe& de);
00027       virtual ~DtBhavePdgDrawerManager();
00028 
00030       virtual void init();
00031 
00036       virtual void loadTerrainDatabase(const DtFilename& terrainFile, std::deque<DtString>& loadedTypes);
00037 
00041       virtual bool draw(const DtString& pathType);
00042 
00050       virtual bool undraw(const DtString& pathType, bool clearCache = true);
00051 
00054       virtual void setNavVisibleDistance(float distance);
00055 
00058       virtual float navVisibleDistance() const;
00059 
00062       virtual void setGraphVisibleDistance(float distance);
00063 
00066       virtual float graphVisibleDistance() const;
00067 
00070       virtual Kaim::PathData* addPathData(const std::string&);
00071 
00074       virtual void removePathData(Kaim::PathData*);
00075 
00078       virtual void triggerNavDraw(Kaim::IVisualGeometry*);
00079 
00082       virtual bool triggerGraphDraw(std::deque<DtVector>&, std::deque<DtVector>&, std::deque<Kaim::VisualColor>&);
00083 
00086       virtual const DtVector* transformVec() const;
00087 
00090       virtual void setTransformVec(const osg::Vec3d& point);
00091 
00094       virtual void resetTransformVec();
00095 
00096       virtual void setUsePagedDrawing(bool use);
00097 
00098       virtual void setDialogEnabled(bool show);
00099 
00100    protected:
00101 
00103       virtual bool initDrawing();
00104 
00106       virtual bool initDatabase(int typeCount);
00107 
00109       virtual bool switchDatabaseType(const DtString& type);
00110 
00112       virtual bool createDrawable(const DtString& type);
00113 
00115       virtual DtVector calculateTerrainPosition(const Kaim::Vec2f&) const;
00116 
00118       virtual void createAndAddTile(const DtString& filePath, const DtVector& center);
00119 
00121       virtual Kaim::VisualColor& determineColor(Kaim::VisualColor& primary1, Kaim::VisualColor& secondary1, 
00122          Kaim::VisualColor& primary2, Kaim::VisualColor& secondary2) const;
00123 
00124       bool myInitialized;
00125       makVrv::DtDe& myDe;
00126       bool myIsGeocentric;
00127       bool myIsDrawing;
00128       std::map<DtString, DtString> myPathDataFiles;
00129       Kaim::World* myWorld;
00130       Kaim::Database* myDatabase;
00131       osg::ref_ptr<osg::Group> myGroup;
00132       DtVector* myTransformVec;
00133       float myNavVisibleDistance;
00134       float myGraphVisibleDistance;
00135       bool myUsePagedDrawing;
00136       bool myDialogEnabled;
00137 
00138    private:
00139       static Kaim::Engine* theEngine;
00140    };
00141 }

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)