VR-Forces 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 /*******************************************************************************
2 ** Copyright (c) 2022 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
6 #pragma once
7 
12 
14 
19 
21 #include <matrix/vlDcm.h>
22 #include <matrix/vlVector.h>
23 
25 #include <tbb/spin_mutex.h>
26 
28 #include <vector>
29 
30 
32 {
34  {
35  public:
36  explicit DynamicFeature(const DtPoint& location, double radius);
37 
38  virtual ~DynamicFeature() override;
39 
40  virtual DtString description() const override;
41 
42  virtual bool matches(const makVrv::DtDynamicTerrainChange&, bool useOriginalGeometry = false) const override;
43  virtual bool matches(const makVrv::DtDynamicTerrainGeometry&, bool useOriginalGeometry = false) const override;
44 
45  virtual const makVrv::DtDynamicTerrainGeometry* geometry() const override;
46  virtual const makVrv::DtDynamicTerrainGeometry* originalGeometry() const override;
47 
48  virtual bool isInDefaultState() const override;
49  virtual bool lastStateWasDefaultState() const override;
50  virtual void changeState(const makVrv::DtDynamicTerrainChanges& history) override;
51  virtual void iterateCommands(const boost::function<void(const makVrv::DtDynamicTerrainChange&)>&) const override;
52 
53  void setToDefaultState();
54 
55  makVrv::DtDynamicTerrainChange* createChange() const;
56 
57  protected:
60  std::atomic<bool> myDefaultStateFlag;
61  };
62 public:
63  explicit DtDynamicTerrainGeometryHandle(DtVantageTerrainEngine& engine, const DtPoint& location, double radius);
65 
67  virtual ~DtDynamicTerrainGeometryHandle() override;
68 
70  bool isValid() const;
71 
73 
74  virtual bool isDisabled() const override;
75  virtual void disable() override;
76  virtual void setAppearance(DtAppearance app) override;
77  virtual void setPosition(const DtPoint& location, const DtDcm& orientation) override;
78 
80  virtual DtVector position() const override { return DtVector::zero(); };
81  virtual DtDcm orientation() const override { return DtDcm::identity(); };
83 
84 protected:
85 
86  virtual void setupDynamicFeature(const DtPoint& location, double radius);
87  void destroyDynamicFeature();
88 
89  mutable tbb::spin_mutex myMutex;
90 
92 
93  boost::optional<DtPoint> myCurrentLocation;
94  boost::optional<DtDcm> myCurrentOrientation;
95 
96  std::shared_ptr<DynamicFeature> myFeature;
99 };
makVrv::DtDynamicTerrainGeometry * myGeometry
Definition: dynamicTerrainGeometryHandle.h:58
Contains makVrv::DtDynamicTerrainLine class.
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:215
makVrv::DtDynamicTerrainWorld::FeatureHandle myFeatureHandle
Definition: dynamicTerrainGeometryHandle.h:97
virtual DtDcm orientation() const override
Implementation of DtTerrainGeometryHandle interface.
Definition: dynamicTerrainGeometryHandle.h:81
std::shared_ptr< DynamicFeature > myFeature
Definition: dynamicTerrainGeometryHandle.h:96
virtual DtVector position() const override
Unimplemented.
Definition: dynamicTerrainGeometryHandle.h:80
std::atomic< bool > myDefaultStateFlag
Definition: dynamicTerrainGeometryHandle.h:60
DtDynamicTerrainLine is used to represent a collection of vertices for a linear dynamic terrain objec...
Definition: DtDynamicTerrainLine.h:24
DtVantageTerrainEngine & myVantageTerrainEngine
Definition: dynamicTerrainGeometryHandle.h:91
tbb::spin_mutex myMutex
Definition: dynamicTerrainGeometryHandle.h:89
boost::optional< DtDcm > myCurrentOrientation
Definition: dynamicTerrainGeometryHandle.h:94
makVrv::DtDynamicTerrainGeometry * myOriginalGeometry
Definition: dynamicTerrainGeometryHandle.h:59
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:93
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:98
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:97
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:112
Definition: dynamicTerrainGeometryHandle.h:33
Definition: point.h:34
vrf includes
Definition: dynamicTerrainGeometryHandle.h:31
Resource handle for a change request which has been added to the system. Returned from addChangeReque...
Definition: DtDynamicTerrainFeature.h:95

Document ID: Generated on Thu Oct 23 22:29:17 EDT 2025 from SVN revision 280951
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)