![]() |
VR-Forces 4.0.4 Class Documentation
|
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 }