VR-Forces 4.10 Class Documentation
 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 
11 #include <vector>
12 #include <boost/unordered_map.hpp>
13 #include <tbb/spin_mutex.h>
14 
16 {
18  {
19  public:
20  explicit DynamicFeature(const DtPoint& location, double radius);
21 
22  ~DynamicFeature();
23 
24  DtString description() const;
25 
26  bool matches(const makVrv::DtDynamicTerrainChange&, bool useOriginalGeometry = false) const;
27  bool matches(const makVrv::DtDynamicTerrainGeometry&, bool useOriginalGeometry = false) const;
28 
29  const makVrv::DtDynamicTerrainGeometry* geometry() const;
30  const makVrv::DtDynamicTerrainGeometry* originalGeometry() const;
31 
32  bool isInDefaultState() const;
33  bool lastStateWasDefaultState() const;
34  void changeState(const makVrv::DtDynamicTerrainChanges& history);
35  void iterateCommands(const boost::function<void(const makVrv::DtDynamicTerrainChange&)>&) const;
36 
37  void setToDefaultState();
38 
39  makVrv::DtDynamicTerrainChange* createChange() const;
40 
41  protected:
44 
45  tbb::atomic<bool> myDefaultStateFlag;
46  };
47 public:
48  explicit DtDynamicTerrainGeometryHandle(DtVantageTerrainEngine& engine, const DtPoint& location, double radius);
49 
52 
54  bool isValid() const;
55 
57 
58  bool isDisabled() const;
59  void disable();
60  void setAppearance(DtAppearance app);
61  void setPosition(const DtPoint& location, const DtDcm& orientation);
63 
64 protected:
65 
66  virtual void setupDynamicFeature(const DtPoint& location, double radius);
67  void destroyDynamicFeature();
68 
69  mutable tbb::spin_mutex myMutex;
70 
72 
73  boost::optional<DtPoint> myCurrentLocation;
74  boost::optional<DtDcm> myCurrentOrientation;
75 
76  boost::shared_ptr<DynamicFeature> myFeature;
79 };
makVrv::DtDynamicTerrainGeometry * myGeometry
Definition: dynamicTerrainGeometryHandle.h:42
Definition: DtDynamicTerrainFeature.h:316
Represents (possibly infinite) area of space.
Definition: DtDynamicTerrainGeometry.h:20
Allows manipulating a terrain object.
Definition: terrainImplementation.h:141
makVrv::DtDynamicTerrainWorld::FeatureHandle myFeatureHandle
Definition: dynamicTerrainGeometryHandle.h:77
DtVantageTerrainEngine & myVantageTerrainEngine
Definition: dynamicTerrainGeometryHandle.h:71
tbb::spin_mutex myMutex
Definition: dynamicTerrainGeometryHandle.h:69
boost::optional< DtDcm > myCurrentOrientation
Definition: dynamicTerrainGeometryHandle.h:74
makVrv::DtDynamicTerrainGeometry * myOriginalGeometry
Definition: dynamicTerrainGeometryHandle.h:43
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:73
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:78
Contains makVrv::DtDynamicTerrainWorld class.
Command which can be given to the dynamic terrain system to perform some change.
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.
Definition: vantageTerrainEngine.h:99
Definition: dynamicTerrainGeometryHandle.h:17
boost::shared_ptr< DynamicFeature > myFeature
Definition: dynamicTerrainGeometryHandle.h:76
Definition: point.h:34
Definition: dynamicTerrainGeometryHandle.h:15
Resource handle for a change request which has been added to the system.
Definition: DtDynamicTerrainFeature.h:95
tbb::atomic< bool > myDefaultStateFlag
Definition: dynamicTerrainGeometryHandle.h:45

Document ID: Generated on Tue Sep 21 17:42:52 EDT 2021 from SVN revision 234861
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)