VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
articulatedPartStateRepository.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2019 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
11 
12 #pragma once
13 
16 #include <vrfutil/rwTemplatedMap.h>
17 #include <readerWriter/rwVector.h>
18 #include <readerWriter/rwReal.h>
19 #include <vrfutil/rwArtPartState.h>
20 #include <vlpi/articulatedPart.h>
22 
23 class Coordinate_System;
24 
25 namespace makVrf
26 {
27  class DtStateData;
28  class DtArticulatedPartStateComponent;
29  class DtArticulatedPartStateRepository;
30 
32 
41  {
42  public:
43 
44  class DtArtPartMap : public DtRwTemplatedMapPtr<DtRwInt, DtArticulatedPartStateRepository>
45  {
46  public:
47 
49  DtArtPartMap(const DtString& name,
50  DtReaderWriterRegistry* parentRegistry = nullptr,
51  const DtString& keyName = "key", const DtString& valueName = "value", const DtString& elementName = "item")
52  : DtRwTemplatedMapPtr(name, parentRegistry, keyName, valueName, elementName) {};
54  DtReaderWriterRegistry* parentRegistry = nullptr,
55  const DtString& keyName = "key", const DtString& valueName = "value", const DtString& elementName = "item")
56  : DtRwTemplatedMapPtr(name, parentRegistry, keyName, valueName, elementName) {};
57  DtArtPartMap(const DtString& name, const DtRwTemplatedMapPtr& orig,
58  DtReaderWriterRegistry* parentRegistry = nullptr)
59  : DtRwTemplatedMapPtr(name, orig, parentRegistry) {};
61  DtReaderWriterRegistry* parentRegistry = nullptr)
62  : DtRwTemplatedMapPtr(name, orig, parentRegistry) {};
64  DtReaderWriterRegistry* parentRegistry = nullptr)
65  : DtRwTemplatedMapPtr(orig, parentRegistry) {};
66 
67  virtual ~DtArtPartMap() override {};
68 
69  virtual void postGetSelf() override;
70  };
71 
74  DtReaderWriterRegistry* parentRegistry = nullptr);
75 
77  virtual void attachTo(DtStateData* parentObj);
78 
80  virtual void attachTo(DtStateData* parentObj, DtArticulatedPartStateRepository* parentPart);
81 
83  virtual DtArtPartType parentPartType() const;
84 
87 
88  virtual DtArticulatedPartStateRepository* parentPart();
89  virtual const DtArticulatedPartStateRepository* parentPart() const;
91 
93 
94  virtual DtStateData* parentObject();
95  virtual const DtStateData* parentObject() const;
97 
99  const DtArticulatedPartStateRepository& operator=(
101 
103  virtual ~DtArticulatedPartStateRepository() override;
104 
107  virtual bool mergeSpecifiedParameters(const DtArticulatedPartStateRepository& other,
108  MergeRule rule = AllSpecifiedValues);
109 
111 
112  virtual DtArtPartType partType() const;
113  virtual void setPartType(DtArtPartType type);
115 
118  virtual DtVector attachPointWithRespectToObject() const;
119 
122  virtual DtVector bodyPosition() const;
123 
126  virtual DtVector localPosition() const;
127 
130  virtual DtVector endPointlocalPosition() const;
131 
134  virtual DtVector worldPosition() const;
135 
137  virtual DtTaitBryan bodyOrientation() const;
138 
140  virtual DtDcm localOrientationMatrix() const;
141 
143 
144  virtual const DtArtPartMap& parts() const;
145  virtual DtArtPartMap& parts();
147 
150  virtual DtArticulatedPartStateRepository* attachPart(DtArtPartType partType);
151 
154  virtual DtArticulatedPartStateRepository* attachPart(DtArtPartType partType,
155  const DtArticulatedPartStateRepository& partState);
156 
158 
159  DtReal azimuthNeutralOffset() const;
160  void setAzimuthNeutralOffset(DtReal offset, bool isSpecified = true);
161  bool isAzimuthNeutralOffsetSpecified() const;
163 
165 
166  DtReal elevationNeutralOffset() const;
167  void setElevationNeutralOffset(DtReal offset, bool isSpecified = true);
168  bool isElevationNeutralOffsetSpecified() const;
170 
172  virtual void addParameterType(DtArtParamType paramType);
173 
175  virtual void clearParameterTypes();
176 
178  virtual bool hasParameterType(DtArtParamType paramType) const;
179 
181  const DtRwTemplatedIntList& parameterTypes() const;
182 
184  virtual void mergeInPartAttachments(const DtArticulatedPartStateRepository& other);
185 
187  virtual void setAllValuesUnspecified();
188 
189  void setCoordinateSystem(const Coordinate_System* cs);
190 
192  virtual void prePutSelf() override;
193 
194  virtual void setPublishOnLegionNetwork(bool, bool);
196  {
197  return myPublishOnLegionNetwork;
198  }
199 
200  virtual void updateDataStorage(const std::vector<DtArticulatedPart::ParameterMetric>&);
201 
205  virtual void setAttachPoint(const DtVector& attachPoint, bool isSpecified = true) override;
206  virtual void setEndPoint(const DtVector& loc, bool isSpecified = true) override;
207  virtual void setPosition(double val, bool isSpecified = true) override;
208  virtual void setPositionRate(double val, bool isSpecified = true) override;
209  virtual void setMaxPositionRate(double val, bool isSpecified = true) override;
210  virtual void setExtension(double val, bool isSpecified = true) override;
211  virtual void setExtensionRate(double val, bool isSpecified = true) override;
212  virtual void setMaxExtensionRate(double val, bool isSpecified = true) override;
213  virtual void setTranslation(const DtVector& val, bool isSpecified = true) override;
214  virtual void setMinTranslation(const DtVector& val, bool isSpecified = true) override;
215  virtual void setMaxTranslation(const DtVector& val, bool isSpecified = true) override;
216  virtual void setTranslationRate(const DtVector& val, bool isSpecified = true) override;
217  virtual void setMaxTranslationRate(const DtVector& val, bool isSpecified = true) override;
218  virtual void setAzimuth(double angle, bool isSpecified = true) override;
219  virtual void setMinAzimuth(double angle, bool isSpecified = true) override;
220  virtual void setMaxAzimuth(double angle, bool isSpecified = true) override;
221  virtual void setAzimuthRate(double rate, bool isSpecified = true) override;
222  virtual void setMaxAzimuthRate(double rate, bool isSpecified = true) override;
223  virtual void setElevation(double angle, bool isSpecified = true) override;
224  virtual void setMinElevation(double angle, bool isSpecified = true) override;
225  virtual void setMaxElevation(double angle, bool isSpecified = true) override;
226  virtual void setElevationRate(double rate, bool isSpecified = true) override;
227  virtual void setMaxElevationRate(double rate, bool isSpecified = true) override;
228  virtual void setRotation(double angle, bool isSpecified = true) override;
229  virtual void setMinRotation(double angle, bool isSpecified = true) override;
230  virtual void setMaxRotation(double angle, bool isSpecified = true) override;
231  virtual void setRotationRate(double rate, bool isSpecified = true) override;
232  virtual void setMaxRotationRate(double rate, bool isSpecified = true) override;
234 
235  virtual void addPartDeletedCallback(
237  virtual void removePartDeletedCallback(
239 
240  protected:
241  virtual void partUpdated();
242 
245  void preventConfigValueReadAndWrite();
246 
247  virtual void copyParts(const DtArticulatedPartStateRepository& orig);
248 
250  virtual void setParentsForAllParts();
251 
252  virtual DtTaitBryan parentLocalOrientation() const;
253 
254  virtual void destroyLegionParts();
255 
256  protected:
258 
260 
262 
266 
269 
274  typedef std::map<int, UInt64> LegionParameterMetrics;
277  };
278 
280 }
DtArtPartMap(const DtRwTemplatedMapPtr &orig, DtReaderWriterRegistry *parentRegistry=nullptr)
Definition: articulatedPartStateRepository.h:63
Definition: rwTemplatedList.h:213
This class allows one to collect and compare strings using an index number instead of having to do st...
Definition: symbolString.h:27
LegionParameterMetrics myLegionParameterMetrics
Definition: articulatedPartStateRepository.h:275
DtArtPartMap(const DtString &name, const DtRwTemplatedMapPtr &orig, DtReaderWriterRegistry *parentRegistry=nullptr)
Definition: articulatedPartStateRepository.h:57
DtArticulatedPartStateComponent * myParentComponent
Definition: articulatedPartStateRepository.h:264
DtRwTemplatedIntList myParameterTypes
Definition: articulatedPartStateRepository.h:270
bool publishOnLegionNetwork() const
Definition: articulatedPartStateRepository.h:195
In order to be a well defined state component, you must:
Definition: articulatedPartStateComponent.h:69
DtArtPartMap(const DtSymbolString &name, const DtRwTemplatedMapPtr &orig, DtReaderWriterRegistry *parentRegistry=nullptr)
Definition: articulatedPartStateRepository.h:60
DtArtPartMap(const DtString &name, DtReaderWriterRegistry *parentRegistry=nullptr, const DtString &keyName="key", const DtString &valueName="value", const DtString &elementName="item")
Definition: articulatedPartStateRepository.h:49
DtRwReal myAzimuthNeutralOffset
Definition: articulatedPartStateRepository.h:267
Definition: readerWriterRegistry.h:39
unsigned long long UInt64
Definition: stateDataTypes.h:17
virtual ~DtArtPartMap() override
Definition: articulatedPartStateRepository.h:67
UInt64 myArticulatedPartInstanceHandle
Definition: articulatedPartStateRepository.h:273
DtArtPartMap()
Definition: articulatedPartStateRepository.h:48
DtStateData * myParentObject
Definition: articulatedPartStateRepository.h:263
Definition: coordSystem.h:54
The overall structure of the DtStateData mechanism is: The DtStateData contains a list of double buff...
Definition: stateData.h:398
DtRwReal myElevationNeutralOffset
Definition: articulatedPartStateRepository.h:268
DT_DLL_vrfutil double angle(double vec1[3], double vec2[3])
Definition: rwTemplatedMap.h:97
DtArticulatedPartStateRepositoryDeletedCallbackList myCallbackList
Definition: articulatedPartStateRepository.h:276
DtRwInt myPartType
Definition: articulatedPartStateRepository.h:259
Description: Readable, Writable int.
Definition: rwInt.h:25
Description: Readable, Writable DtReal (double)
Definition: rwReal.h:27
DtArtPartMap(const DtSymbolString &name, DtReaderWriterRegistry *parentRegistry=nullptr, const DtString &keyName="key", const DtString &valueName="value", const DtString &elementName="item")
Definition: articulatedPartStateRepository.h:53
DtArtPartMap myParts
Definition: articulatedPartStateRepository.h:261
const Coordinate_System * myCoordinateSystem
Definition: articulatedPartStateRepository.h:257
Definition: articulatedPartStateRepository.h:44
The DtArticulatedPartStateRepository class is used to represent articulated parts for an entity...
Definition: articulatedPartStateRepository.h:40
#define DT_DLL_vrfStateData
This file is used to determine how to build Disable inconsistent dll linkage warning Visual Studio 6...
Definition: vrfStateDataDefines.h:26
bool myPublishOnLegionNetwork
Definition: articulatedPartStateRepository.h:271
A readable, writable type that holds an articulated part state.
Definition: rwArtPartState.h:26
void(* DtCallbackFunctionType)(DtArticulatedPartStateRepository *, void *)
The function signature of the callback function.
Definition: noArgumentCallbackList.h:94
std::map< int, UInt64 > LegionParameterMetrics
Definition: articulatedPartStateRepository.h:274
voidpf uLong offset
Definition: ioapi.h:42
DtArticulatedPartStateRepository * myParentPart
Definition: articulatedPartStateRepository.h:265
bool myIsWritable
Definition: articulatedPartStateRepository.h:272
DtArticulatedPartStateRepository::DtArtPartMap DtArtPartMap
Definition: articulatedPartStateRepository.h:279
File: rwVector.h.

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)