VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
dynamicTerrainGeometryHandle.h
Go to the documentation of this file.
1 #pragma once
2 
7 
10 #include <matrix/vlVector.h>
11 #include <matrix/vlDcm.h>
12 
13 #include <vector>
14 #include <boost/unordered_map.hpp>
15 #include <tbb/spin_mutex.h>
16 
18 {
20  {
21  public:
22  explicit DynamicFeature(const DtPoint& location, double radius);
23 
24  ~DynamicFeature();
25 
26  DtString description() const;
27 
28  bool matches(const makVrv::DtDynamicTerrainChange&, bool useOriginalGeometry = false) const;
29  bool matches(const makVrv::DtDynamicTerrainGeometry&, bool useOriginalGeometry = false) const;
30 
31  const makVrv::DtDynamicTerrainGeometry* geometry() const;
32  const makVrv::DtDynamicTerrainGeometry* originalGeometry() const;
33 
34  bool isInDefaultState() const;
35  bool lastStateWasDefaultState() const;
36  void changeState(const makVrv::DtDynamicTerrainChanges& history);
37  void iterateCommands(const boost::function<void(const makVrv::DtDynamicTerrainChange&)>&) const;
38 
39  void setToDefaultState();
40 
41  makVrv::DtDynamicTerrainChange* createChange() const;
42 
43  protected:
46 
47  tbb::atomic<bool> myDefaultStateFlag;
48  };
49 public:
50  explicit DtDynamicTerrainGeometryHandle(DtVantageTerrainEngine& engine, const DtPoint& location, double radius);
51 
54 
56  bool isValid() const;
57 
59 
60  bool isDisabled() const;
61  void disable();
62  void setAppearance(DtAppearance app);
63  void setPosition(const DtPoint& location, const DtDcm& orientation);
64 
66  virtual DtVector position() const { return DtVector::zero(); };
67  virtual DtDcm orientation() const { return DtDcm::identity(); };
69 
70 protected:
71 
72  virtual void setupDynamicFeature(const DtPoint& location, double radius);
73  void destroyDynamicFeature();
74 
75  mutable tbb::spin_mutex myMutex;
76 
78 
79  boost::optional<DtPoint> myCurrentLocation;
80  boost::optional<DtDcm> myCurrentOrientation;
81 
82  boost::shared_ptr<DynamicFeature> myFeature;
85 };
makVrv::DtDynamicTerrainGeometry * myGeometry
Definition: dynamicTerrainGeometryHandle.h:44
Definition: DtDynamicTerrainFeature.h:316
Represents (possibly infinite) area of space.
Definition: DtDynamicTerrainGeometry.h:20
Allows manipulating a terrain object. Returned by functions which create terrain objects.
Definition: terrainImplementation.h:141
virtual DtDcm orientation() const
Implementation of DtTerrainGeometryHandle interface.
Definition: dynamicTerrainGeometryHandle.h:67
makVrv::DtDynamicTerrainWorld::FeatureHandle myFeatureHandle
Definition: dynamicTerrainGeometryHandle.h:83
DtVantageTerrainEngine & myVantageTerrainEngine
Definition: dynamicTerrainGeometryHandle.h:77
tbb::spin_mutex myMutex
Definition: dynamicTerrainGeometryHandle.h:75
boost::optional< DtDcm > myCurrentOrientation
Definition: dynamicTerrainGeometryHandle.h:80
makVrv::DtDynamicTerrainGeometry * myOriginalGeometry
Definition: dynamicTerrainGeometryHandle.h:45
virtual DtVector position() const
Unimplemented.
Definition: dynamicTerrainGeometryHandle.h:66
Interface which abstracts the concept of a individually identifiable &quot;thing&quot; in the terrain...
Definition: DtDynamicTerrainFeature.h:83
boost::optional< DtPoint > myCurrentLocation
Definition: dynamicTerrainGeometryHandle.h:79
Contains makVrv::DtDynamicTerrainFeature class.
#define DT_DLL_vantageTerrainImplementation
This file is used to determine how to build.
Definition: vantageTerrainImplementationDefines.h:28
makVrv::DtDynamicTerrainWorld::RequestHandle myRequestHandle
Definition: dynamicTerrainGeometryHandle.h:84
Contains makVrv::DtDynamicTerrainWorld class.
Command which can be given to the dynamic terrain system to perform some change. This class is a simp...
Definition: DtDynamicTerrainChange.h:42
Feature Insertion/Removal/Paging Features represent parts of the terrain which are individually ident...
Definition: DtDynamicTerrainWorld.h:99
This class wraps the VR-Vantage Display Engine, and uses as a terrain loader and intersector. This is the terrain engine that powers the DtVantageTerrainImplementation. The DtVantageTerrainEngine runs the DtDe it its own thread, and processes commands thought the command queue.
Definition: vantageTerrainEngine.h:99
Definition: dynamicTerrainGeometryHandle.h:19
boost::shared_ptr< DynamicFeature > myFeature
Definition: dynamicTerrainGeometryHandle.h:82
Definition: point.h:34
Definition: dynamicTerrainGeometryHandle.h:17
Resource handle for a change request which has been added to the system. Returned from addChangeReque...
Definition: DtDynamicTerrainFeature.h:95
tbb::atomic< bool > myDefaultStateFlag
Definition: dynamicTerrainGeometryHandle.h:47

Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)