VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
DtCloudLayerRepository Class Reference

This class creates a network state repository to aid sending cloud layer objects. More...

Inheritance diagram for DtCloudLayerRepository:
Inheritance graph
[legend]

Public Member Functions

 DtCloudLayerRepository ()
 DtCloudLayerRepository (const DtCloudLayerRepository &)
virtual ~DtCloudLayerRepository ()
virtual bool sendNeeded (const DtEnvironmentProcessRepository &asSeenByRemote)
void setClock (DtClock *clock)
DtClockclock () const
double lastUpdateTime () const
void setLastUpdateTime (DtTime t)
virtual void setCloudBox (const DtVector &center, double width, double length)
 Will create a 4 point box based on the geocentric center point and the length/width given by the variables.
virtual void getCloudBox (DtVector &center, double &width, double &length) const
virtual
DtVrfCloudLayerStateRecord
cloudLayerStateRecord () const
 If one does not exist will create it.
virtual void updateDataRecords ()
 Updates the data records into the environmental record space, as need be.
virtual void updateExtensions ()
 Updates data from the network into local record.
virtual void setCloudType (CloudLayerCloudType value)
 Sets the information into cloud layer record Accesor for myCloudType in DtVrfCloudLayerStateRecord.
virtual CloudLayerCloudType cloudType () const
virtual void setCloudAltitude (double value)
 Accesor for myCloudAltitude in DtVrfCloudLayerStateRecord.
virtual double cloudAltitude () const
virtual void setCloudThickness (double value)
 Accesor for myCloudThickness in DtVrfCloudLayerStateRecord.
virtual double cloudThickness () const
virtual void setCornerRadius (double value)
 Accesor for myCornerRadius in DtVrfCloudLayerStateRecord.
virtual double cornerRadius () const
virtual void setCloudDensity (double value)
 Accesor for myCloudDensity in DtVrfCloudLayerStateRecord.
virtual double cloudDensity () const
virtual void setCloudLayerEnabled (bool value)
 Accesor for myCloudLayerEnabled in DtVrfCloudLayerStateRecord.
virtual bool cloudLayerEnabled () const
- Public Member Functions inherited from DtControlObjectRepository
 DtControlObjectRepository ()
 default constructor
virtual ~DtControlObjectRepository ()
 destructor
 DtControlObjectRepository (const DtControlObjectRepository &orig)
 copy constructor
virtual bool isInitialized () const
 Returns true if one of the initialize() functions has been called.
DtControlObjectRepositoryoperator= (const DtControlObjectRepository &orig)
 assignment operator
virtual int compare (const DtControlObjectRepository *rhs)
 Compares us against the supplied state repository and returns what's changed.
virtual const DtRwPropertiesstateProperties () const
virtual const DtRwPropertiesparameterProperties () const
virtual void setUuidString (const DtString &uuidStr)
virtual DtString uuidString () const
 Returns a string version of the VRF UUID of this object, if it can be determined.
void mapPropertiesToRecordTypes (const DtRwProperties *properties, std::map< unsigned, DtString > &recTypesToAttrNames)
 Maps properties to DIS record types, if configured. Called from constructors.
virtual bool updatePropertiesFromAttributes (bool updatesOnly=true)
 Updates properties with new data from the extended attributes.
virtual void updateAttributesFromProperties ()
 Updates extended attributes from our properties.
virtual void addPropertyDecoder (const DtString &propName, PropertyDecoder decoder, void *usr)
 Adds an additional property and a function that to decode it.
virtual void addPropertyEncoder (const DtString &propName, PropertyEncoder encoder, void *usr)
 Adds an additional property and a function that to encode it.
virtual bool createVrfObjectDataMessage ()
 Allocates myVrfObjectDataMessage, a DtIfVrfObjectData used by VR-Forces as extended VRF object data message information.
virtual void giveOwernshipOfProperties ()
 Tells the state rep to take ownership of the state and parameter properties, giving it responsibility to delete them on destruction.
virtual DtTime lastPropertyEncodeTime () const
 Last time properties were encoded.
virtual DtTime lastPropertyDecodeTime () const
 Last time properties were decoded.
virtual void initialize (DtRwProperties *stateProps, DtRwProperties *paramProps)
virtual void initialize (const DtRwProperties &stateProps, const DtRwProperties &paramProps)
 Initializes the state rep by making a copy of the given state properties and parameter properties that have have already been initialized.
virtual void initialize ()
 Initializes the state rep without any state or parameter properties.
virtual bool sensorsKilled () const
 Functions for accessing the sensors killed state.
virtual void setSensorsKilled (bool killed)
virtual void addPropertyUpdatedCallback (DtNoArgumentCallbackList::DtCallbackFunctionType fcn, void *usrData)
 Callbacks invoked just after state and parameter properties have been updated when the parameter or state properties have been updated.
virtual void removePropertyUpdatedCallback (DtNoArgumentCallbackList::DtCallbackFunctionType fcn, void *usrData)
- Public Member Functions inherited from DtControlObjectBaseRepository
 DtControlObjectBaseRepository ()
 default constructor
virtual ~DtControlObjectBaseRepository ()
 destructor
 DtControlObjectBaseRepository (const DtControlObjectBaseRepository &orig)
 copy constructor
DtControlObjectBaseRepositoryoperator= (const DtControlObjectBaseRepository &orig)
 assignment operator
virtual const DtControlObjectKindkind () const
virtual void setKind (const DtControlObjectKind &k)
virtual const
DtControlObjectCategory
category () const
virtual void setCategory (const DtControlObjectCategory &c)
const std::vector< DtVector > & vertexList () const
virtual int compare (const DtControlObjectBaseRepository *rhs)
 Compares us against the supplied state repository and returns what's changed.
virtual int compareToMostRecent ()
 Returns what has changed since the last time we called compare.
virtual bool locationsDifferent (bool updateIfDifferent)
 Returns true if our stashed location is different than our current location.
virtual void emptyVertexList ()
virtual void getBoundingVolume (DtVector &location, double &radius) const
const DtGeometricDataListgeometricRecords () const
bool geometricRecordsChanged () const
void clearGeometricRecordsChanged ()
virtual int numberOfSubordinates () const
 Subordinate information. Not currently used by VRF.
virtual bool getSubordinate (int i, DtGlobalObjectDesignator &d)
virtual const
DtGlobalObjectDesignatorList & 
subordinates () const
virtual
DtGlobalObjectDesignatorList & 
subordinates ()
virtual void setExtendedData (const std::map< DtString, DtString > &ed)
 Sets extended data for transport via extended data records.
virtual void setExtendedData (const DtString &key, const DtString &value)
virtual double orientation () const
 Returns the orientation of the given environmental in radians.
virtual void setVertices (const DtList &pnt)
 Sets the vertices to use in the publication of this object.
virtual void appendVertex (const DtVector &)
virtual void setVertex (int i, const DtVector &)
virtual void removeVertex (int i)
virtual void setObjectType (const DtObjectType &)
 Environmental record settings.
virtual DtForceType forceType () const
 Returns the force type from the environmental header record (if it exists), else returns neutral by default.
virtual void setForceType (DtForceType i)
virtual int color () const
 Returns the color (rgb) value of this object.
virtual void setColor (int)
virtual const DtStringparent () const
 Returns the parent of this object.
virtual void setParent (const DtString &)
virtual const DtStringuserData () const
virtual void setUserData (const DtString &)
virtual void setVrfObjectName (const DtString &)
virtual const DtStringvrfObjectName ()
virtual DtAppearance appearance () const
virtual void setAppearance (const DtAppearance &app)
virtual void setNumberOfSubordinates (int)
virtual void setSubordinate (int i, const DtGlobalObjectDesignator &)
virtual const
DtGlobalObjectDesignator
hostGlobalId () const
 Returns the parent this object might be attached to.
virtual void setHostGlobalId (const DtGlobalObjectDesignator &)
virtual void clearHostGlobalId ()
 Sets host global id to empty string.
virtual bool getFontInformation (DtString &font, int &fontSize) const
 Deals with font and arrow head information via the extended data.
virtual void setFontInformation (const DtString &, int fontSize)
virtual bool getFontColor (unsigned int &color) const
 32 bit AGBR value
virtual void setFontColor (unsigned int color)
virtual bool getArrowInformation (int &arrowHeadPlacement, int &arrowStyle, int &arrowSize) const
virtual void setArrowInformation (int arrowHeadPlacement, int arrowStyle, int arrowSize)
virtual void setBoundingSphereRadius (double)
 Routines that are used to set/get information about the bounding sphere.
virtual double boundingSphereRadius () const
virtual void setBoundingSphereLocation (const DtVector &)
 Sets/gets the bounding sphere location.
virtual const DtVectorboundingSphereLocation () const
bool hasBoundingSphereRecord () const
bool hasBoundingRectRecord () const
 Routines that are used to set/get information about the bounding rectangle.
virtual void setBoundingExtent (const DtVector &)
const DtVectorboundingExtent () const
virtual void setBoundingCornerLocation (const DtVector &)
virtual const DtVectorboundingCornerLocation () const
virtual void setBoundingOrientation (const DtTaitBryan &)
const DtTaitBryan & boundingOrientation () const
virtual void setProjected (bool)
 Gets/sets additional attribute values about the environmental.
virtual bool projected () const
virtual void setClosedFigure (bool)
virtual bool closedFigure () const
virtual void setBound2D (bool)
virtual bool bound2D () const
virtual void setFillStyle (int)
 For those objects that support it. Note that point objects do not make use of these items.
virtual int fillStyle () const
virtual void setLineStyle (int)
virtual int lineStyle () const
virtual void setLineWidth (int)
virtual int lineWidth () const
virtual void setPhysicalLineHeight (double)
 Height of the line, in meters. When added to the altitude, can be considered a ceiling.
virtual double physicalLineHeight () const
virtual void setPhysicalLineWidth (double)
 Width of the line, in meters. Different than "lineWidth" which is more of a stylistic representation.
virtual double physicalLineWidth () const
virtual void setRelativeLocation (const DtVector &)
 If attached to an entity, the relative position (in body coordinatates) of this object from the origin of the attached object.
virtual const DtVectorrelativeLocation () const
virtual void setVelocity (const DtVector &)
 Unused at this point – left for future possible expansion for movable/rotatable environmentals {
virtual const DtVectorvelocity () const
virtual void setAcceleration (const DtVector &)
virtual const DtVectoracceleration () const
virtual void setDRAlogrithm (DtDeadReckonTypes)
virtual const DtDeadReckonTypes & drAlgorithm () const
virtual void setOffsetPoints (const std::vector< DtVector > &)
virtual const std::vector
< DtVector > & 
offsetPoints () const
virtual void setCachePoints (bool)
 Set cachePoints to false to not cache the points that are set into the structure or read from the network into the myVertexList variable.
bool cachePoints () const
virtual DtString extendedData (const DtString &key) const
 Extended record data is a key/value pair.
const DtVrfExtendedRecordDataextendedRecordData () const
DtVrfExtendedRecordDataextendedRecordData ()
int numberOfDatumRecords () const
void setNumberOfDatumRecords (int)
virtual void setSendVrfObjectDataRecord (bool shouldSend)
 Whether a separate VrfObjectData record should be sent to convey additional VRF object information.
virtual bool shouldSendVrfObjectDataRecord () const
- Public Member Functions inherited from DtVrfExtensions
 DtVrfExtensions ()
virtual ~DtVrfExtensions ()
 DtVrfExtensions (const DtVrfExtensions &orig)
DtVrfExtensionsoperator= (const DtVrfExtensions &orig)
virtual const DtStringname () const
virtual void setName (const DtString &n)
virtual const DtStringvrfObjectLabel () const
virtual void setVrfObjectLabel (const DtString &l)
virtual const DtStringechelonId () const
virtual void setEchelonId (const DtString &l)
virtual const DtStringoverlayParent () const
virtual void setOverlayParent (const DtString &l)
virtual bool isVrfSimulated () const
virtual void setIsVrfSimulated (bool vrf)
virtual DtU32 vrfSessionId () const
virtual void setVrfSessionId (DtU32 id)
virtual void setVrfMessageVersionSupported (DtU32 id)
virtual DtU32 vrfMessageVersionSupported () const
virtual const DtObjectTypeobjectType () const
virtual void setIsSubordinateOfForce (bool b)
virtual bool isSubordinateOfForce () const
virtual int superType () const
virtual void setHasPlan (bool yesNo)
virtual bool hasPlan () const
virtual void setIsCurrentlyTasked (bool yesNo)
virtual bool isCurrentlyTasked () const
virtual void setRulesOfEngagement (const DtString &)
virtual const DtStringrulesOfEngagement () const
virtual bool setupFromVrfObjectData (const DtIfVrfObjectData &data)
virtual void addRangeItem (const DtRangeItem &)
 Adds, removes and returns items in the range item list.
virtual void removeRangeItem (int index)
virtual void setRangeItems (const DtRangeItems &)
const DtRangeItemsrangeItems () const
virtual DtIfVrfObjectDatavrfObjectDataMessage () const
virtual void setIndependentlyTasked (bool yesNo)
virtual bool independentlyTasked () const
virtual void setUnderFire (bool yesNo)
virtual bool underFire () const
virtual void setExecutingPlan (bool yesNo)
virtual bool executingPlan () const
virtual const std::map
< DtString, DtString > & 
extendedData () const
virtual void setBoundingVolume (const DtVector32 &)
 Sets/gets bounding volume and bounding volume offset of an entity.
virtual const DtVector32 & boundingVolume () const
virtual void setBoundingVolumeOffset (const DtVector32 &)
virtual const DtVector32 & boundingVolumeOffset () const

Static Public Member Functions

static
DtEnvironmentProcessRepository
create ()
 Create a new state repository.
static void getCloudBoxFromCosr (const DtControlObjectRepository &cosr, DtVector &center, double &width, double &length)
 Cloud Layer Publishers can create a Cloud Layer Repository, but there is no equivalent Cloud Layer Reflected Object that can create one; when a Cloud Layer Environmental is received in VR-Vantage it will be a DtReflectedControlObject and therefore will not have access to any of the Cloud Layer Repository's accessors.

Protected Member Functions

virtual bool sendRecordsNeeded (const DtEnvironmentProcessRepository &asSeenByRemote)
virtual bool sendNetRecNeeded (DtNetEnvironmentalRecord *rec1, DtNetEnvironmentalRecord *rec2)
virtual bool sendCloudLayerRecNeeded (DtTime dt, DtNetEnvironmentalRecord *rec, DtNetEnvironmentalRecord *recRemote)
virtual DtStateRepositoryclone (bool copy) const
 Return a copy/empty object of the same type as this.
- Protected Member Functions inherited from DtControlObjectRepository
virtual void initializeVrfObjectDataProperties ()
 Initializes the state rep to handle VRF object data properties.
virtual void encodePropertyIfNeeded (const DtSymbolString &propName, DtReaderWriter *propRw)
 Encode a particular property if an update is needed.
- Protected Member Functions inherited from DtControlObjectBaseRepository
virtual bool createExtendedEnvironmentalStateRecord ()
 createExtendedEnvironmentalStateRecord() allocates myExtEnvStateRecord, a DtSimEnvironmentalObjectStateRecord used by VR-Forces as extended environmental process state information:
virtual
DtSimEnvironmentalObjectStateRecord
extendedEnvironmentalStateRecord ()
 extendedEnvironmentalStateRecord() returns the myExtEnvStateRecord for inspection by the caller.
virtual bool createVrfObjectStateRecord ()
 createVrfObjectStateRecord() allocates myVrfObjectStateRecord, a DtVrfObjectDataEnvironmentalRecord used by VR-Forces as extended vrf object state information:
virtual
DtVrfObjectDataEnvironmentalRecord
vrfObjectStateRecord ()
 extendedVrfObjectStateRecord() returns the myVrfObjectStateRecord for inspection by the caller.
virtual bool createBoundingSphereRecord ()
 createBoundingSphereRecord() allocates myBoundingSphereRecord
virtual
DtEnvironmentalBoundingSphereRecord * 
boundingSphereRecord ()
 boundingSphereRecord() returns the myBoundingSphereRecord for inspection by the caller.
virtual bool createBoundingRectRecord ()
 createBoundingRectRecord() allocates myBoundingRectRecord
virtual
DtEnvironmentalRectangularVolumeRecord * 
boundingRectRecord ()
 boundingRectRecord() returns the myBoundingRectRecord for inspection by the caller.
virtual void setupKindFromType (const DtEntityType &type)
 Sets up internal object kind and category from object type.
virtual void getBoundingVolume (EnvGeomSpheriod *rec)
virtual void clearGeometricRecords ()
virtual void extensionModified ()
 Override to set myNeedVrfObjectDataUpdate to true.

Protected Attributes

DtClockmyClock
DtTime myLastUpdateTime
DtVrfCloudLayerStateRecordmyCloudLayerStateRecord
bool myCloudLayerStateNeedsUpdate
- Protected Attributes inherited from DtControlObjectRepository
DtRwPropertiesmyStateProperties
DtRwPropertiesmyParameterProperties
DtEntityType myLastCheckedEnvType
bool myOwnsProperties
bool myIsInitialized
std::list< PropertyDecoderInfomyAdditionalDecoders
std::list< PropertyEncoderInfomyAdditionalEncoders
std::vector< charmyPropertyBuffer
DtClock myClock
DtTime myLastEncodeTime
DtTime myLastDecodeTime
bool mySensorsKilled
bool myReceivedVrfObjectDataVersion
bool myReceivedVrfPropertyVersion
int myPropertyVersion
DtString myUUIDString
std::map< DtString, DtStringmyExtendedDataCache
DtRangeItems myRangeItemsCache
DtNoArgumentCallbackList myPropertyUpdatedCallbacks

Additional Inherited Members

- Public Types inherited from DtControlObjectRepository
typedef void(* PropertyDecoder )(const char *buffer, unsigned size, int version, void *usr)
typedef void(* PropertyEncoder )(std::vector< char > &buffer, void *usr)
- Public Attributes inherited from DtControlObjectBaseRepository
DtControlObjectKind myKind
DtControlObjectCategory myCategory
DtCOVertexList myVertexList
 Keeps a list of all geometry point records to use to update internal model datas from.
DtSimEnvironmentalObjectStateRecordmyExtEnvStateRecord
 DtSimEnvironmentalObjectStateRecord is a special form of DtEnvironmentalRecord, used to decode custom data that might be published from a VR-Forces back end, such as label, force type, appearance, etc.
DtEnvironmentalBoundingSphereRecord * myBoundingSphereRecord
DtVrfObjectDataEnvironmentalRecordmyVrfObjectStateRecord
DtControlObjectBaseRepositorymyLastCopy
DtEnvironmentalRectangularVolumeRecord * myBoundingRectRecord
DtGeometricDataList myGeometricRecords
bool myGeometricRecordsChanged
bool myNeedVrfObjectDataUpdate
bool myCachePoints
int myPointsSet
DtEnvironmentalProcessExtendedRecordData myExtendedRecordData
bool mySendVrfObjectDataRec
- Static Public Attributes inherited from DtControlObjectBaseRepository
static DtIttSourceDataMap thePuffFactory
 This information is needed for ITT puff clouds.

Detailed Description

This class creates a network state repository to aid sending cloud layer objects.

Constructor & Destructor Documentation

DtCloudLayerRepository::DtCloudLayerRepository ( )
DtCloudLayerRepository::DtCloudLayerRepository ( const DtCloudLayerRepository )
virtual DtCloudLayerRepository::~DtCloudLayerRepository ( )
virtual

Member Function Documentation

static DtEnvironmentProcessRepository* DtCloudLayerRepository::create ( )
static

Create a new state repository.

Reimplemented from DtControlObjectRepository.

virtual bool DtCloudLayerRepository::sendNeeded ( const DtEnvironmentProcessRepository asSeenByRemote)
virtual
void DtCloudLayerRepository::setClock ( DtClock clock)
DtClock* DtCloudLayerRepository::clock ( ) const
double DtCloudLayerRepository::lastUpdateTime ( ) const
void DtCloudLayerRepository::setLastUpdateTime ( DtTime  t)
virtual void DtCloudLayerRepository::setCloudType ( CloudLayerCloudType  value)
virtual

Sets the information into cloud layer record Accesor for myCloudType in DtVrfCloudLayerStateRecord.

virtual CloudLayerCloudType DtCloudLayerRepository::cloudType ( ) const
virtual
virtual void DtCloudLayerRepository::setCloudAltitude ( double  value)
virtual

Accesor for myCloudAltitude in DtVrfCloudLayerStateRecord.

virtual double DtCloudLayerRepository::cloudAltitude ( ) const
virtual
virtual void DtCloudLayerRepository::setCloudThickness ( double  value)
virtual

Accesor for myCloudThickness in DtVrfCloudLayerStateRecord.

virtual double DtCloudLayerRepository::cloudThickness ( ) const
virtual
virtual void DtCloudLayerRepository::setCornerRadius ( double  value)
virtual

Accesor for myCornerRadius in DtVrfCloudLayerStateRecord.

virtual double DtCloudLayerRepository::cornerRadius ( ) const
virtual
virtual void DtCloudLayerRepository::setCloudDensity ( double  value)
virtual

Accesor for myCloudDensity in DtVrfCloudLayerStateRecord.

virtual double DtCloudLayerRepository::cloudDensity ( ) const
virtual
virtual void DtCloudLayerRepository::setCloudLayerEnabled ( bool  value)
virtual

Accesor for myCloudLayerEnabled in DtVrfCloudLayerStateRecord.

virtual bool DtCloudLayerRepository::cloudLayerEnabled ( ) const
virtual
virtual void DtCloudLayerRepository::setCloudBox ( const DtVector center,
double  width,
double  length 
)
virtual

Will create a 4 point box based on the geocentric center point and the length/width given by the variables.

virtual void DtCloudLayerRepository::getCloudBox ( DtVector center,
double width,
double length 
) const
virtual
virtual DtVrfCloudLayerStateRecord* DtCloudLayerRepository::cloudLayerStateRecord ( ) const
virtual

If one does not exist will create it.

virtual void DtCloudLayerRepository::updateDataRecords ( )
virtual

Updates the data records into the environmental record space, as need be.

Reimplemented from DtControlObjectBaseRepository.

virtual void DtCloudLayerRepository::updateExtensions ( )
virtual

Updates data from the network into local record.

Reimplemented from DtControlObjectRepository.

static void DtCloudLayerRepository::getCloudBoxFromCosr ( const DtControlObjectRepository cosr,
DtVector center,
double width,
double length 
)
static

Cloud Layer Publishers can create a Cloud Layer Repository, but there is no equivalent Cloud Layer Reflected Object that can create one; when a Cloud Layer Environmental is received in VR-Vantage it will be a DtReflectedControlObject and therefore will not have access to any of the Cloud Layer Repository's accessors.

For simple things like density it's easy enough on the receiving side to just get that data from the underlying Environment Records, but not having access to getCloudBox() is a big deal, since its implementation is closely tied to the implementation of setCloudBox(). This static method makes it possible to get to the getCloudBox implementation without having an actual DtCloudLayerRepository. This static implementation is called by the getCouldBox() member function.

virtual bool DtCloudLayerRepository::sendRecordsNeeded ( const DtEnvironmentProcessRepository asSeenByRemote)
protectedvirtual
virtual bool DtCloudLayerRepository::sendNetRecNeeded ( DtNetEnvironmentalRecord *  rec1,
DtNetEnvironmentalRecord *  rec2 
)
protectedvirtual
virtual bool DtCloudLayerRepository::sendCloudLayerRecNeeded ( DtTime  dt,
DtNetEnvironmentalRecord *  rec,
DtNetEnvironmentalRecord *  recRemote 
)
protectedvirtual
virtual DtStateRepository* DtCloudLayerRepository::clone ( bool  copy) const
protectedvirtual

Return a copy/empty object of the same type as this.

Reimplemented from DtControlObjectRepository.

Member Data Documentation

DtClock* DtCloudLayerRepository::myClock
protected
DtTime DtCloudLayerRepository::myLastUpdateTime
protected
DtVrfCloudLayerStateRecord* DtCloudLayerRepository::myCloudLayerStateRecord
mutableprotected
bool DtCloudLayerRepository::myCloudLayerStateNeedsUpdate
mutableprotected

The documentation for this class was generated from the following file:

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)