VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
dynamicTerrainCommand.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2016 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
11 #include "vrfplan/simCommand.h"
12 #include "vrfplan/vrfplanDefines.h"
13 #include <readerWriter/rwInt.h>
14 #include <readerWriter/rwReal.h>
15 #include "vrfutil/rwKeyValueList.h"
16 #include "vrfutil/rwVectorList.h"
17 
21 {
22 public:
23 
25  {
28  WholeWorld
29  };
30 
33 
35  DtDynamicTerrainCommand(const DtString& writeName,
36  DtReaderWriterRegistry* parentRegistry = NULL);
37 
39  DtDynamicTerrainCommand(const DtString & writeName, const DtDynamicTerrainCommand& orig,
40  DtReaderWriterRegistry* parentRegistry = NULL);
41 
43  virtual ~DtDynamicTerrainCommand() override;
44 
47 
49 
50  virtual void setGeometryType(GeometryType geomType);
51  virtual GeometryType geometryType() const;
53 
56 
57  virtual void setCenterOfCircle(const DtVector& location);
58  virtual DtVector centerOfCircle() const;
60 
63 
64  virtual void setRadiusOfCircle(double radius);
65  virtual double radiusOfCircle() const;
67 
70 
71  virtual void setVerticesOfPolygon(const DtRwVectorList& locations);
72  virtual const DtRwVectorList& verticesOfPolygon() const;
73  virtual void addVertexToPolygon(const DtVector& location);
75 
77 
78  virtual void setChanges(const std::map<DtString, DtString>& changes);
79  virtual void setChanges(const DtRwKeyValueList& changes);
80  virtual const DtRwKeyValueList& changes() const;
81  virtual void addChange(const DtString& changeType, const DtString& changeVal);
83 
85  virtual DtString stringRep() const override;
86 
88  virtual int netRepSize() const override;
89 
91  virtual bool setFromNet(const char* contentBuffer, unsigned contentSize) override;
92 
94  virtual bool setToNet() override;
95 
96 protected:
102 };
103 
104 template<class CommandType>
106 {
107  return new CommandType();
108 }
109 
110 
114 {
115 public:
116 
118 
120  DtReaderWriterRegistry* parentRegistry = NULL)
121  : DtDynamicTerrainCommand(writeName, parentRegistry) {};
122 
124  DtReaderWriterRegistry* parentRegistry = NULL)
125  : DtDynamicTerrainCommand(writeName, orig, parentRegistry) {};
126 
127  virtual ~DtAddDynamicTerrainChangesCommand() override {};
128 
129  virtual const DtSimCommandMessageType& type() const override { return DtAddDynamicTerrainChangesCommandType; }
130 
131  virtual DtSimCommand* clone(const DtString& name, DtReaderWriterRegistry* parentRegistry = 0) const override
132  { return new DtAddDynamicTerrainChangesCommand(name, *this, parentRegistry); }
133 
134 };
135 
139 {
140 public:
141 
143 
145  DtReaderWriterRegistry* parentRegistry = NULL)
146  : DtDynamicTerrainCommand(writeName, parentRegistry) {};
147 
149  DtReaderWriterRegistry* parentRegistry = NULL)
150  : DtDynamicTerrainCommand(writeName, orig, parentRegistry) {};
151 
153 
154  virtual const DtSimCommandMessageType& type() const override { return DtResetDynamicTerrainChangesCommandType; }
155 
156  virtual DtSimCommand* clone(const DtString& name, DtReaderWriterRegistry* parentRegistry = 0) const override
157  { return new DtResetDynamicTerrainChangesCommand(name, *this, parentRegistry); }
158 
160 
161  virtual void setChangesToReset(const std::vector<DtString>& changes);
162  virtual std::vector<DtString> changesToReset() const;
163  virtual void addChangeToReset(const DtString& changeType);
165 };
166 
170 {
171 public:
172 
174 
176  DtReaderWriterRegistry* parentRegistry = NULL)
177  : DtDynamicTerrainCommand(writeName, parentRegistry) {};
178 
180  DtReaderWriterRegistry* parentRegistry = NULL)
181  : DtDynamicTerrainCommand(writeName, orig, parentRegistry) {};
182 
184 
185  virtual const DtSimCommandMessageType& type() const override { return DtResetAllDynamicTerrainChangesCommandType; }
186 
187  virtual DtSimCommand* clone(const DtString& name, DtReaderWriterRegistry* parentRegistry = 0) const override
188  { return new DtResetAllDynamicTerrainChangesCommand(name, *this, parentRegistry); }
189 };
190 
194 {
195 public:
196 
198 
200  DtReaderWriterRegistry* parentRegistry = NULL)
201  : DtDynamicTerrainCommand(writeName, parentRegistry) {};
202 
204  DtReaderWriterRegistry* parentRegistry = NULL)
205  : DtDynamicTerrainCommand(writeName, orig, parentRegistry) {};
206 
208 
209  virtual const DtSimCommandMessageType& type() const override { return DtRemoveDynamicTerrainDamageCommandType; }
210 
211  virtual DtSimCommand* clone(const DtString& name, DtReaderWriterRegistry* parentRegistry = 0) const override
212  { return new DtRemoveDynamicTerrainDamageCommand(name, *this, parentRegistry); }
213 
214 };
215 
DtRwKeyValueList myChanges
Definition: dynamicTerrainCommand.h:101
DtRwReal myRadiusOfCircle
Definition: dynamicTerrainCommand.h:99
virtual const DtSimCommandMessageType & type() const override
Definition: dynamicTerrainCommand.h:154
Base class for any DtSimCommand which causes dynamic terrain changes to be added or removed...
Definition: dynamicTerrainCommand.h:20
DtRemoveDynamicTerrainDamageCommand(const DtString &writeName, const DtRemoveDynamicTerrainDamageCommand &orig, DtReaderWriterRegistry *parentRegistry=NULL)
Definition: dynamicTerrainCommand.h:203
Class which holds a list of string key and string value pairs. This class is a DtReaderWriter, and also has associated DtBufferSerialize methods available.
Definition: rwKeyValueList.h:21
DtRwInt myGeometryType
Definition: dynamicTerrainCommand.h:97
DtRemoveDynamicTerrainDamageCommand()
Definition: dynamicTerrainCommand.h:197
DtRwVectorList myVerticesOfPolygon
Definition: dynamicTerrainCommand.h:100
DtSimCommand which causes a specific list of dynamic terrain changes to take place at the specified g...
Definition: dynamicTerrainCommand.h:113
virtual bool setToNet()
Calls netRep() to create the network buffer. Casts the resulting myNetRep to type DtNetSimSimCommand*...
DtAddDynamicTerrainChangesCommand(const DtString &writeName, const DtAddDynamicTerrainChangesCommand &orig, DtReaderWriterRegistry *parentRegistry=NULL)
Definition: dynamicTerrainCommand.h:123
virtual const DtSimCommandMessageType & type() const override
Definition: dynamicTerrainCommand.h:209
Changes within radius of point.
Definition: dynamicTerrainCommand.h:27
const DtSimCommandMessageType DtResetDynamicTerrainChangesCommandType("reset-dynamic-terrain-changes-command")
virtual DtString stringRep() const =0
Returns a human-readable string representation of the command. This string representation is used to ...
DtResetAllDynamicTerrainChangesCommand()
Definition: dynamicTerrainCommand.h:173
Definition: readerWriterRegistry.h:39
DtAddDynamicTerrainChangesCommand()
Definition: dynamicTerrainCommand.h:117
virtual ~DtResetAllDynamicTerrainChangesCommand() override
Definition: dynamicTerrainCommand.h:183
Definition: rwVector.h:23
virtual const DtSimCommandMessageType & type() const override
Definition: dynamicTerrainCommand.h:185
const DtSimCommandMessageType DtAddDynamicTerrainChangesCommandType("add-dynamic-terrain-changes-command")
Definition: dynamicTerrainCommand.h:26
const DtSimCommandMessageType DtResetAllDynamicTerrainChangesCommandType("reset-all-dynamic-terrain-changes-command")
const DtSimCommandMessageType DtRemoveDynamicTerrainDamageCommandType("remove-dynamic-terrain-damage-command")
virtual DtSimCommand * clone(const DtString &name, DtReaderWriterRegistry *parentRegistry=0) const override
Make a copy of this sim command. Returns a newly allocated instance of a DtSimCommand. Override this member function to return a pointer to a newly allocated instance of the derived class.
Definition: dynamicTerrainCommand.h:211
virtual int netRepSize() const
Returns the size in bytes of the network representation of the class. This is the size in bytes of th...
virtual bool setFromNet(const char *contentBuffer, unsigned contentSize)
Sets mySubsimCommand member from the incoming contentBuffer (cast to type DtNetSimSimCommand). Derived classes should call down to this function first, and then extract their own data starting at the location contentBuffer + DtSimCommand::netRepSize().
Description: Readable, Writable int.
Definition: rwInt.h:25
DtAddDynamicTerrainChangesCommand(const DtString &writeName, DtReaderWriterRegistry *parentRegistry=NULL)
Definition: dynamicTerrainCommand.h:119
virtual const DtSimCommandMessageType & type() const override
Definition: dynamicTerrainCommand.h:129
DtRemoveDynamicTerrainDamageCommand(const DtString &writeName, DtReaderWriterRegistry *parentRegistry=NULL)
Definition: dynamicTerrainCommand.h:199
const DtSimCommand & operator=(const DtSimCommand &orig)
assignment operator; same as copy constructor
virtual DtSimCommand * clone(const DtString &name, DtReaderWriterRegistry *parentRegistry=0) const override
Make a copy of this sim command. Returns a newly allocated instance of a DtSimCommand. Override this member function to return a pointer to a newly allocated instance of the derived class.
Definition: dynamicTerrainCommand.h:187
DtSimCommand * dynamicTerrainCommandCreator()
Definition: dynamicTerrainCommand.h:105
DtRwVector myCenterOfCircle
Definition: dynamicTerrainCommand.h:98
DtSimCommand is an abstract base class from which commands can derive. It manages the read/write capa...
Definition: simCommand.h:32
virtual ~DtResetDynamicTerrainChangesCommand() override
Definition: dynamicTerrainCommand.h:152
DtResetDynamicTerrainChangesCommand(const DtString &writeName, const DtResetDynamicTerrainChangesCommand &orig, DtReaderWriterRegistry *parentRegistry=NULL)
Definition: dynamicTerrainCommand.h:148
GeometryType
Definition: dynamicTerrainCommand.h:24
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
virtual ~DtAddDynamicTerrainChangesCommand() override
Definition: dynamicTerrainCommand.h:127
DtResetDynamicTerrainChangesCommand(const DtString &writeName, DtReaderWriterRegistry *parentRegistry=NULL)
Definition: dynamicTerrainCommand.h:144
DtSimCommand which causes all dynamic terrain damage to be removed at the specified geometry...
Definition: dynamicTerrainCommand.h:193
DtSimCommand which causes a specific list of dynamic terrain changes to be reset to their original st...
Definition: dynamicTerrainCommand.h:138
DtResetAllDynamicTerrainChangesCommand(const DtString &writeName, const DtResetAllDynamicTerrainChangesCommand &orig, DtReaderWriterRegistry *parentRegistry=NULL)
Definition: dynamicTerrainCommand.h:179
DtResetDynamicTerrainChangesCommand()
Definition: dynamicTerrainCommand.h:142
virtual DtSimCommand * clone(const DtString &name, DtReaderWriterRegistry *parentRegistry=0) const override
Make a copy of this sim command. Returns a newly allocated instance of a DtSimCommand. Override this member function to return a pointer to a newly allocated instance of the derived class.
Definition: dynamicTerrainCommand.h:156
#define DT_DLL_vrfplan
This file is used to determine how to build.
Definition: vrfplanDefines.h:28
DtResetAllDynamicTerrainChangesCommand(const DtString &writeName, DtReaderWriterRegistry *parentRegistry=NULL)
Definition: dynamicTerrainCommand.h:175
virtual ~DtRemoveDynamicTerrainDamageCommand() override
Definition: dynamicTerrainCommand.h:207
DtSimCommand which causes all dynamic terrain changes to be reset to their original state at the spec...
Definition: dynamicTerrainCommand.h:169
class DtRwVectorList:
Definition: rwVectorList.h:22
virtual DtSimCommand * clone(const DtString &name, DtReaderWriterRegistry *parentRegistry=0) const override
Make a copy of this sim command. Returns a newly allocated instance of a DtSimCommand. Override this member function to return a pointer to a newly allocated instance of the derived class.
Definition: dynamicTerrainCommand.h:131

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)