VR-Forces 4.0.4 Class Documentation
include/vrfGuiCore/DtEnvironmentalFacadeCollection.h
Go to the documentation of this file.
00001 /*******************************************************************************
00002 ** Copyright (c) 2011 MAK Technologies, Inc.
00003 ** All rights reserved.
00004 *******************************************************************************/
00005 
00008 
00011 
00012 #pragma once
00013 
00014 #include <vrfGuiCore/vrfGuiCore.h>
00015 #include <vrfGuiCore/DtVrfObjectFacadeInterface.h>
00016 
00018 #include <vrvCore/DtTacticalGraphicStateListener.h>
00019 #include <vrvCore/DtBaseConnection.h>
00020 #include <vrvCore/DtModelSetRealizationManager.h>
00021 #include <vrvCore/DtSharedModelSetSettings.h>
00022 #include <vrvCore/DtVisualizerSet.h>
00023 #include <vrvCore/DtEnvironmentalVisualizerSet.h>
00024 #include <vrvCore/DtEnvironmentalIndicatorVisualizer.h>
00025 #include <vrvCore/DtEnvironmentalVertexVisualizer.h>
00026 #include <vrvVrl/DtForceManager.h>
00027 
00029 #include <vlpi/entityType.h>
00030 #include <matrix/geodCoord.h>
00031 
00033 #include <string>
00034 #include <map>
00035 #include <vector>
00036 
00037 #include <boost/foreach.hpp>
00038 
00039 class DtEntityType;
00040 
00041 namespace makVrv
00042 {
00043    class DtEnvironmentalVisualizerSet;
00044    class DtDe;
00045    class DtVisualDefinitionSet;
00046 }
00047 
00048 namespace makVrf
00049 {
00050    class DT_DLL_VRFGUICORE DtEnvironmentalFacadeCollection : 
00051       public DtVrfObjectFacadeInterface
00052    {
00053    public:
00054       DtEnvironmentalFacadeCollection(makVrv::DtDe&, int modelSet = -1);
00055       virtual ~DtEnvironmentalFacadeCollection();
00056 
00057    public:
00059       
00061       virtual void setVisible( bool visible );
00062       
00063       virtual void setHidden(bool b);
00064 
00065       makVrv::DtUniqueID uniqueID() const;
00066 
00067       virtual void setUniqueID(makVrv::DtUniqueID id);
00068 
00069       virtual void setIndicatorVisible(bool);
00070 
00071       virtual void setSceneObjectId(makVrv::DtElementID id);
00072 
00073       virtual void setDisplayName(const std::string& s);
00074       virtual std::string displayName() const;
00075 
00076       virtual void setOverlayName(const std::string& s);
00077       virtual std::string overlayName() const;
00078 
00080       virtual void setHatLineVisible( bool visible );
00081 
00082       virtual DtVector origin() const;
00083 
00085       virtual void setPickable(bool b);
00086 
00088       virtual void setSelected(bool b);
00089 
00091       virtual void setWidgetEventsEnabled(bool b);
00092 
00094       template <typename T> void setWidgetEventsEnabled(makVrv::DtEnvironmentalVisualizerSet* v, bool b)
00095       {
00096          std::vector<T> visualizers;
00097          v->findVisualizers(visualizers);            
00098          typename std::vector<T>::iterator iter = visualizers.begin();
00099 
00100          while (iter != visualizers.end())
00101          {
00102             (*iter)->setWidgetEventsEnabled(b);
00103             ++iter;
00104          }
00105       }
00106 
00108       virtual void realizeFacades();
00109 
00111       virtual void unrealizeFacades();
00112 
00113       virtual void setProjected(bool);
00114       virtual bool projected() const;
00115 
00116       virtual void updateGeometry();
00117 
00118       virtual void visualize(const makVrv::DtUnicode& type,
00119          const makVrv::DtSharedModelSetSettings::ModelSetVisualizedMap& sets);
00120 
00122       virtual void setIndicatorModelDefinitions(
00123          const std::string& normalTheme,
00124          const std::string& activeTheme,
00125          const std::string& selectedTheme,
00126          const std::string& multiSelectedTheme);
00127 
00129       virtual void setLockUpdates(bool);
00130       bool updatesLocked() const;
00131 
00132       virtual void setAlwaysRecalculateGeometry(bool);
00133       bool alwaysRecalculateGeometry() const;
00134 
00135       virtual void setLocationOffsetFromFirst(const DtGeodeticCoord& geod, int i);
00136       const DtGeodeticCoord& locationOffsetFromFirst(int i);
00137 
00138       virtual void setShapeVertexVisible(bool);
00139       virtual void setSymbolDecorationsVisible(bool);
00140       virtual void setColor(int rgba);
00141       virtual void setColor(float r, float g, float b, float a);
00142 
00143       virtual void setLineWidth(float);
00144 
00145       virtual double lineWidth() const;
00146 
00147       virtual void setForce(int);
00148 
00149       template <typename T> void setForceColor(makVrv::DtVisualizerSet* s, makVrv::DtForceManager::RGBAColor color)
00150       {
00151          std::vector<T> visualizers;
00152          s->findVisualizersByDynamicCast(visualizers);            
00153          typename std::vector<T>::iterator i = visualizers.begin();
00154          typename std::vector<T>::iterator e = visualizers.end();
00155          for(;i != e; ++i)
00156          {
00157             if (*i)
00158             {
00159                (*i)->setForceColor(color.R, color.G, color.B, color.A);
00160             }
00161          }
00162       }
00163          
00164       virtual void setVertexSelected(makVrv::DtUniqueID id, bool sel);
00165 
00166       makVrv::DtBaseConnection& baseConnection() const;
00167 
00170       virtual void setElementDefinition(const makVrv::DtUnicode& definition);
00171       virtual void setElementDefinition(const DtEntityType&);
00172       DtEntityType environmentalType() const;
00173 
00174       makVrv::DtUniqueID uniqueIDForModelSet(int i) const;
00175       int positionOfVertex(makVrv::DtUniqueID) const;
00176       DtVector position(int index) const;
00177 
00179       virtual double altitudeForAltitudeType(int) const;
00180 
00181       virtual void setOrigin(const DtVector&);
00182       virtual void setOrigin(const DtGeodeticCoord&);
00183 
00184       virtual void setPoint(const DtVector&, int);
00185       virtual int addPoint(const DtVector&, int index = -1);
00186       virtual void setPoints(const std::vector<DtVector>&);
00187       const std::vector<DtVector>& points() const;
00188       virtual void removePoint(int);
00189       DtGeodeticCoord geodeticPosition(int) const;
00190 
00191       virtual DtVector reviseLocation(int index, const DtVector& v);
00192 
00193       void setAltitudeAboveTerrain(int, double);
00194       double altitudeAboveTerrain(int = -1) const;
00195 
00196       void setAltitudeAboveSeaLevel(int, double);
00197       double altitudeAboveSeaLevel(int = -1) const;
00198 
00199       int numVertices() const;
00200 
00201       const makVrv::DtTacticalGraphicStateListener& listener() const
00202       {
00203          return myListener;
00204       }
00205 
00208       virtual void selectPoint(int);
00209       virtual void clearSelectedPoint();
00210 
00211       int selectedPoint() const;
00212 
00213       virtual void setIconScale(float);
00214 
00216       virtual void setOrientation(const DtTaitBryan&);
00217 
00219       virtual void setAltitudeAboveSeaLevel(double);
00220       virtual void setAltitudeAboveTerrain(double);
00221 
00222       virtual DtVector localLocation(const DtGeodeticCoord& geodLocation) const;
00223       virtual DtVector localLocation() const;
00224 
00226       virtual bool isCircle() const;
00227 
00230       virtual bool isEllipse() const;
00231 
00233       makVrv::DtTacticalGraphicStateListener& listener()
00234       {
00235          return myListener;
00236       }
00237 
00238    protected:
00240       DtEntityType                           myEntityType;
00241       makVrv::DtUnicode myElementDefinition;
00242 
00243       float myDefaultColor[4];
00244 
00245       makVrv::DtBaseConnection* myConnection;
00246 
00249       makVrv::DtTacticalGraphicStateListener       myListener;
00250       std::vector<double> myAltitudeAboveTerrain;
00251       std::vector<double> myAltitudeAboveSeaLevel;
00252 
00253       typedef std::map<int, makVrv::DtEnvironmentalVisualizerSet*> ModelSetMap;
00254       ModelSetMap myModelSetMap;
00255       double myDefaultWidth;
00256       int mySelectedPoint;
00257 
00258       std::vector<DtGeodeticCoord> myLocationOffsetFromFirst;
00259       bool myAlwaysRecalculateGeometry;
00260 
00262       typedef std::vector<makVrv::DtUniqueID> UniqueIDs;
00263       std::map<int, UniqueIDs> myIds;
00264 
00268       char myIsCircular;
00269    };
00270 }

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)