VR-Forces Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
List of all members | Classes | Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes
DtControlObjectRepository Class Reference

DtControlObjectRepository class extends the DtControlObjectBaseRepository to be able to handle extended attributes.

Inheritance diagram for DtControlObjectRepository:
Inheritance graph
[legend]

Classes

struct  PropertyDecoderInfo
 
struct  PropertyEncoderInfo
 

Public Types

typedef void(* PropertyDecoder )(const char *buffer, unsigned size, int version, void *usr)
 
typedef void(* PropertyEncoder )(std::vector< char > &buffer, void *usr)
 
- Public Types inherited from DtControlObjectBaseRepository
typedef std::vector< DtVectorDtCOVertexList
 
typedef std::vector
< DtIttEnvironmentalProcessData * > 
DtGeometricDataList
 
typedef std::map< int,
DtIttSourceDataCreator
DtIttSourceDataMap
 

Public Member Functions

 DtControlObjectRepository ()
 
virtual ~DtControlObjectRepository ()
 
 DtControlObjectRepository (const DtControlObjectRepository &orig)
 
virtual bool isInitialized () const
 
DtControlObjectRepositoryoperator= (const DtControlObjectRepository &orig)
 
virtual DtStateRepositoryclone (bool copy=false) const
 
virtual int compare (const DtControlObjectRepository *rhs)
 
virtual const DtRwPropertiesstateProperties () const
 
virtual const DtRwPropertiesparameterProperties () const
 
void mapPropertiesToRecordTypes (const DtRwProperties *properties, std::map< unsigned, DtString > &recTypesToAttrNames)
 
virtual void updateExtensions ()
 
virtual bool updatePropertiesFromAttributes (bool updatesOnly=true)
 
virtual void updateAttributesFromProperties ()
 
virtual void addPropertyDecoder (const DtString &propName, PropertyDecoder decoder, void *usr, unsigned disRecordType=0)
 
virtual void addPropertyEncoder (const DtString &propName, PropertyEncoder encoder, void *usr, unsigned disRecordType=0)
 
virtual void addVrfObjectDataDecoder (const DtString &propName, PropertyDecoder decoder, void *usr, unsigned disRecordType=0)
 
virtual void addVrfObjectDataEncoder (const DtString &propName, PropertyEncoder encoder, void *usr, unsigned disRecordType=0)
 
virtual void removePropertyEncodersAndDecoders ()
 
virtual bool createVrfObjectDataMessage ()
 
virtual void giveOwernshipOfProperties ()
 
virtual DtTime lastPropertyEncodeTime () const
 
virtual DtTime lastPropertyDecodeTime () const
 
Initialization functions. One of these must be called to support extended attributes.

Initializes the state rep with state properties and parameter properties that have have already been initialized. This can be more efficient if you are maintaining the properties lists elsewhere and want updates to be decoded directly into those lists. Does not take ownership of these properties. They must be deleted elsewhere.

virtual void initialize (DtRwProperties *stateProps, DtRwProperties *paramProps)
 
virtual void initialize (const DtRwProperties &stateProps, const DtRwProperties &paramProps)
 
virtual void initialize ()
 
virtual bool sensorsKilled () const
 
virtual void setSensorsKilled (bool killed)
 
virtual void addPropertyUpdatedCallback (DtNoArgumentCallbackList::DtCallbackFunctionType fcn, void *usrData)
 
virtual void removePropertyUpdatedCallback (DtNoArgumentCallbackList::DtCallbackFunctionType fcn, void *usrData)
 
- Public Member Functions inherited from DtControlObjectBaseRepository
 DtControlObjectBaseRepository ()
 
virtual ~DtControlObjectBaseRepository ()
 
 DtControlObjectBaseRepository (const DtControlObjectBaseRepository &orig)
 
DtControlObjectBaseRepositoryoperator= (const DtControlObjectBaseRepository &orig)
 
virtual const DtControlObjectKindkind () const
 
virtual void setKind (const DtControlObjectKind &k)
 
virtual const
DtControlObjectCategory
category () const
 
virtual void setCategory (const DtControlObjectCategory &c)
 
virtual void generateUniqueId ()
 
virtual void setUniqueId (const DtVrlUuid &uniqueId)
 
virtual const DtVrlUuid & uniqueId () const
 
const std::vector< DtVector > & vertexList () const
 
virtual int compare (const DtControlObjectBaseRepository *rhs)
 
virtual int compareToMostRecent ()
 
virtual bool locationsDifferent (bool updateIfDifferent)
 
virtual void emptyVertexList ()
 
virtual void getBoundingVolume (DtVector &location, double &radius) const
 
const DtGeometricDataListgeometricRecords () const
 
bool geometricRecordsChanged () const
 
void clearGeometricRecordsChanged ()
 
virtual void updateDataRecords ()
 
virtual int numberOfSubordinates () const
 
virtual bool getSubordinate (int i, DtGlobalObjectDesignator &d)
 
virtual const
DtGlobalObjectDesignatorList & 
subordinates () const
 
virtual
DtGlobalObjectDesignatorList & 
subordinates ()
 
virtual void setExtendedData (const std::map< DtString, DtString > &ed)
 
virtual void setExtendedData (const DtString &key, const DtString &value)
 
virtual double orientation () const
 
virtual void setVertices (const DtList &pnt)
 
virtual void appendVertex (const DtVector &)
 
virtual void setVertex (int i, const DtVector &)
 
virtual void removeVertex (int i)
 
virtual void setObjectType (const DtObjectType &)
 
virtual DtForceType forceType () const
 
virtual void setForceType (DtForceType i)
 
virtual int color () const
 
virtual void setColor (int)
 
virtual const DtStringparent () const
 
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
 
virtual void setHostGlobalId (const DtGlobalObjectDesignator &)
 
virtual void setObjectAttachMode (DtVrfObjectAttachMode)
 
virtual DtVrfObjectAttachMode objectAttachMode () const
 
virtual void clearHostGlobalId ()
 
virtual bool getFontInformation (DtString &font, int &fontSize) const
 
virtual void setFontInformation (const DtString &, int fontSize)
 
virtual bool getFontColor (unsigned int &color) const
 
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)
 
virtual double boundingSphereRadius () const
 
virtual void setBoundingSphereLocation (const DtVector &)
 
virtual const DtVectorboundingSphereLocation () const
 
bool hasBoundingSphereRecord () const
 
bool hasBoundingRectRecord () const
 
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)
 
virtual bool projected () const
 
virtual void setClosedFigure (bool)
 
virtual bool closedFigure () const
 
virtual void setBound2D (bool)
 
virtual bool bound2D () const
 
virtual void setFillStyle (int)
 
virtual int fillStyle () const
 
virtual void setLineStyle (int)
 
virtual int lineStyle () const
 
virtual void setLineWidth (int)
 
virtual int lineWidth () const
 
virtual void setPhysicalLineHeight (double)
 
virtual double physicalLineHeight () const
 
virtual void setPhysicalLineWidth (double)
 
virtual double physicalLineWidth () const
 
virtual void setRelativeLocation (const DtVector &)
 
virtual const DtVectorrelativeLocation () const
 
virtual void setVelocity (const DtVector &)
 
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)
 
bool cachePoints () const
 
virtual DtString extendedData (const DtString &key) const
 
const DtVrfExtendedRecordDataextendedRecordData () const
 
DtVrfExtendedRecordDataextendedRecordData ()
 
int numberOfDatumRecords () const
 
void setNumberOfDatumRecords (int)
 
virtual void setSendVrfObjectDataRecord (bool shouldSend)
 
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 void setIsClutterEntity (bool yesNo)
 
virtual bool isClutterEntity () const
 
virtual bool setupFromVrfObjectData (const DtIfVrfObjectData &data)
 
virtual void addRangeItem (const DtRangeItem &)
 
virtual void removeRangeItem (int index)
 
virtual void setRangeItems (const DtRangeItems &)
 
const DtRangeItemsrangeItems () const
 
bool isVrfObject () 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 &)
 
virtual const DtVector32 & boundingVolume () const
 
virtual void setBoundingVolumeOffset (const DtVector32 &)
 
virtual const DtVector32 & boundingVolumeOffset () const
 

Static Public Member Functions

static
DtEnvironmentProcessRepository
create ()
 
- Static Public Member Functions inherited from DtControlObjectBaseRepository
static void initializePuffFactory ()
 
static void addToPuffFactory (int iRecordType, DtIttSourceDataCreator fcn)
 
static DtIttSourceDatacreatePuffRecord (DtNetEnvironmentalRecord *geometric, DtNetEnvironmentalRecord *source)
 
static DtIttSourceDatacreatePuffRecord (DtNetEnvironmentalRecord *rec)
 
static
DtEnvironmentProcessRepository
create ()
 
- Static Public Member Functions inherited from DtVrfExtensions
static void setExpectedVrfMessageVersion (DtU32 version)
 
static DtU32 expectedVrfMessageVersion ()
 

Protected Member Functions

virtual void initializeVrfObjectDataProperties ()
 
virtual void encodePropertyIfNeeded (const DtSymbolString &propName, DtReaderWriter *propRw)
 
- Protected Member Functions inherited from DtControlObjectBaseRepository
virtual void addUuidRecord ()
 
virtual bool createExtendedEnvironmentalStateRecord ()
 
virtual
DtSimEnvironmentalObjectStateRecord
extendedEnvironmentalStateRecord ()
 
virtual bool createVrfObjectStateRecord ()
 
virtual
DtVrfObjectDataEnvironmentalRecord
vrfObjectStateRecord ()
 
virtual bool createBoundingSphereRecord ()
 
virtual
DtEnvironmentalBoundingSphereRecord * 
boundingSphereRecord ()
 
virtual bool createBoundingRectRecord ()
 
virtual
DtEnvironmentalRectangularVolumeRecord * 
boundingRectRecord ()
 
virtual void setupKindFromType (const DtEntityType &type)
 
virtual void getBoundingVolume (EnvGeomSpheriod *rec)
 
virtual void clearGeometricRecords ()
 
virtual void extensionModified ()
 

Protected Attributes

DtRwPropertiesmyStateProperties
 
DtRwPropertiesmyParameterProperties
 
DtEntityType myLastCheckedEnvType
 
bool myOwnsProperties
 
bool myIsInitialized
 
std::list< PropertyDecoderInfomyVrfObjectDataDecoders
 
std::list< PropertyDecoderInfomyAdditionalDecoders
 
std::list< PropertyEncoderInfomyAdditionalEncoders
 
std::vector< charmyPropertyBuffer
 
DtClock myClock
 
DtTime myLastEncodeTime
 
DtTime myLastDecodeTime
 
bool mySensorsKilled
 
bool myReceivedVrfObjectDataVersion
 
bool myReceivedVrfPropertyVersion
 
int myPropertyVersion
 
DtRangeItems myRangeItemsCache
 
DtNoArgumentCallbackList myPropertyUpdatedCallbacks
 
- Protected Attributes inherited from DtVrfExtensions
DtString myName
 
DtIfVrfObjectDatamyVrfObjectDataMessage
 

Additional Inherited Members

- Public Attributes inherited from DtControlObjectBaseRepository
DtControlObjectKind myKind
 
DtControlObjectCategory myCategory
 
DtCOVertexList myVertexList
 
DtSimEnvironmentalObjectStateRecordmyExtEnvStateRecord
 
DtEnvironmentalBoundingSphereRecord * myBoundingSphereRecord
 
DtVrfObjectDataEnvironmentalRecordmyVrfObjectStateRecord
 
DtControlObjectBaseRepositorymyLastCopy
 
DtEnvironmentalRectangularVolumeRecord * myBoundingRectRecord
 
bool myGeneratedUuid
 
DtVrlUuid myUuid
 
DtGeometricDataList myGeometricRecords
 
bool myGeometricRecordsChanged
 
bool myNeedVrfObjectDataUpdate
 
bool myCachePoints
 
int myPointsSet
 
DtEnvironmentalProcessExtendedRecordData myExtendedRecordData
 
bool mySendVrfObjectDataRec
 
- Static Public Attributes inherited from DtControlObjectBaseRepository
static DtIttSourceDataMap thePuffFactory
 
- Static Protected Attributes inherited from DtVrfExtensions
static DtU32 theExpectedVrfMessageVersion
 

Member Typedef Documentation

typedef void(* DtControlObjectRepository::PropertyDecoder)(const char *buffer, unsigned size, int version, void *usr)
typedef void(* DtControlObjectRepository::PropertyEncoder)(std::vector< char > &buffer, void *usr)

Constructor & Destructor Documentation

DtControlObjectRepository::DtControlObjectRepository ( )

default constructor

virtual DtControlObjectRepository::~DtControlObjectRepository ( )
virtual

destructor

DtControlObjectRepository::DtControlObjectRepository ( const DtControlObjectRepository orig)

copy constructor

Member Function Documentation

virtual void DtControlObjectRepository::initialize ( DtRwProperties stateProps,
DtRwProperties paramProps 
)
virtual

Initializes the state rep by making a copy of the given state properties and parameter properties that have have already been initialized. Maintains ownership of the new properties and will delete them on destruction.

virtual void DtControlObjectRepository::initialize ( const DtRwProperties stateProps,
const DtRwProperties paramProps 
)
virtual

Initializes the state rep by making a copy of the given state properties and parameter properties that have have already been initialized. Maintains ownership of the new properties and will delete them on destruction.

virtual void DtControlObjectRepository::initialize ( )
virtual

Initializes the state rep without any state or parameter properties. No properties will be processed unless you add a specific property encoder or decoder using addPropertyEncoder or addPropertyDecoder.

virtual bool DtControlObjectRepository::isInitialized ( ) const
virtual

Returns true if one of the initialize() functions has been called.

DtControlObjectRepository& DtControlObjectRepository::operator= ( const DtControlObjectRepository orig)

assignment operator

virtual DtStateRepository* DtControlObjectRepository::clone ( bool  copy = false) const
virtual
virtual int DtControlObjectRepository::compare ( const DtControlObjectRepository rhs)
virtual

Compares us against the supplied state repository and returns what's changed.

virtual const DtRwProperties& DtControlObjectRepository::stateProperties ( ) const
inlinevirtual
virtual const DtRwProperties& DtControlObjectRepository::parameterProperties ( ) const
inlinevirtual
virtual bool DtControlObjectRepository::sensorsKilled ( ) const
virtual

Functions for accessing the sensors killed state.

virtual void DtControlObjectRepository::setSensorsKilled ( bool  killed)
virtual

Functions for accessing the sensors killed state.

void DtControlObjectRepository::mapPropertiesToRecordTypes ( const DtRwProperties properties,
std::map< unsigned, DtString > &  recTypesToAttrNames 
)

Maps properties to DIS record types, if configured. Called from constructors.

static DtEnvironmentProcessRepository* DtControlObjectRepository::create ( )
static
virtual void DtControlObjectRepository::updateExtensions ( )
virtual

Overridden to update property data.

Reimplemented from DtControlObjectBaseRepository.

Reimplemented in DtCloudLayerRepository, and DtWeatherObjectRepository.

virtual bool DtControlObjectRepository::updatePropertiesFromAttributes ( bool  updatesOnly = true)
virtual

Updates properties with new data from the extended attributes. Used to update properties after receiving an object update. If updatesOnly is true (default), only attributes updated since last property update will be processed. Returns true if any properties were updated.

virtual void DtControlObjectRepository::updateAttributesFromProperties ( )
virtual

Updates extended attributes from our properties. Used to update attributes before publishing an object update.

virtual void DtControlObjectRepository::addPropertyDecoder ( const DtString propName,
PropertyDecoder  decoder,
void *  usr,
unsigned  disRecordType = 0 
)
virtual

Adds an additional property and a function that decodes it. Can be used to extend this class to look for additional properties that are not defined in the parameter database for the entity. Properties will be decoded in the order in which the decoders are added to the list. If disRecordType is specified, properties with the specified record type will use this decoder.

virtual void DtControlObjectRepository::addPropertyEncoder ( const DtString propName,
PropertyEncoder  encoder,
void *  usr,
unsigned  disRecordType = 0 
)
virtual

Adds an additional property and a function that encodes it. Can be used to extend this class to look for additional properties that are not defined in the parameter database for the entity. Is also used by default for VRF object data. Properties will be encoded in the order in which the encoders are added to the list. If disRecordType is specified, the property will be encoded with the specified record type.

virtual void DtControlObjectRepository::addVrfObjectDataDecoder ( const DtString propName,
PropertyDecoder  decoder,
void *  usr,
unsigned  disRecordType = 0 
)
virtual

Similar to addPropertyDecoder, adds an additional property and a function that to decode it. However, VRF Object Data is intended specifically for VRF specific necessary object metadata. As a result, this decoder will not be called until it is verified that the VRF Object Data version of the object matches our own. Properties will be decoded in the order in which the decoders are added to the list. If disRecordType is specified, properties with the specified record type will use this decoder.

virtual void DtControlObjectRepository::addVrfObjectDataEncoder ( const DtString propName,
PropertyEncoder  encoder,
void *  usr,
unsigned  disRecordType = 0 
)
virtual

Similar to addPropertyEncoder, adds an additional property and a function that to encode it. However, VRF Object Data is intended specifically for VRF specific necessary object metadata. Properties will be encoded in the order in which the encoders are added to the list. If disRecordType is specified, the property will be encoded with the specified record type.

virtual void DtControlObjectRepository::removePropertyEncodersAndDecoders ( )
virtual

Removes all additional property encoders and decoders.

virtual bool DtControlObjectRepository::createVrfObjectDataMessage ( )
virtual

Allocates myVrfObjectDataMessage, a DtIfVrfObjectData used by VR-Forces as extended VRF object data message information. Overrides the default version to create a DtIfVrfObjectDataStateProperties, which can be more efficiently updated from state properties.

Reimplemented from DtVrfExtensions.

virtual void DtControlObjectRepository::giveOwernshipOfProperties ( )
virtual

Tells the state rep to take ownership of the state and parameter properties, giving it responsibility to delete them on destruction.

virtual DtTime DtControlObjectRepository::lastPropertyEncodeTime ( ) const
inlinevirtual

Last time properties were encoded.

virtual DtTime DtControlObjectRepository::lastPropertyDecodeTime ( ) const
inlinevirtual

Last time properties were decoded.

virtual void DtControlObjectRepository::addPropertyUpdatedCallback ( DtNoArgumentCallbackList::DtCallbackFunctionType  fcn,
void *  usrData 
)
virtual

Callbacks invoked just after state and parameter properties have been updated when the parameter or state properties have been updated.

virtual void DtControlObjectRepository::removePropertyUpdatedCallback ( DtNoArgumentCallbackList::DtCallbackFunctionType  fcn,
void *  usrData 
)
virtual

Callbacks invoked just after state and parameter properties have been updated when the parameter or state properties have been updated.

virtual void DtControlObjectRepository::initializeVrfObjectDataProperties ( )
protectedvirtual

Initializes the state rep to handle VRF object data properties.

virtual void DtControlObjectRepository::encodePropertyIfNeeded ( const DtSymbolString propName,
DtReaderWriter propRw 
)
protectedvirtual

Encode a particular property if an update is needed.

Member Data Documentation

DtRwProperties* DtControlObjectRepository::myStateProperties
protected
DtRwProperties* DtControlObjectRepository::myParameterProperties
protected
DtEntityType DtControlObjectRepository::myLastCheckedEnvType
protected
bool DtControlObjectRepository::myOwnsProperties
protected
bool DtControlObjectRepository::myIsInitialized
protected
std::list<PropertyDecoderInfo> DtControlObjectRepository::myVrfObjectDataDecoders
protected
std::list<PropertyDecoderInfo> DtControlObjectRepository::myAdditionalDecoders
protected
std::list<PropertyEncoderInfo> DtControlObjectRepository::myAdditionalEncoders
protected
std::vector<char> DtControlObjectRepository::myPropertyBuffer
protected
DtClock DtControlObjectRepository::myClock
protected
DtTime DtControlObjectRepository::myLastEncodeTime
protected
DtTime DtControlObjectRepository::myLastDecodeTime
protected
bool DtControlObjectRepository::mySensorsKilled
protected
bool DtControlObjectRepository::myReceivedVrfObjectDataVersion
protected
bool DtControlObjectRepository::myReceivedVrfPropertyVersion
protected
int DtControlObjectRepository::myPropertyVersion
mutableprotected
DtRangeItems DtControlObjectRepository::myRangeItemsCache
mutableprotected
DtNoArgumentCallbackList DtControlObjectRepository::myPropertyUpdatedCallbacks
protected

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

Document ID: Generated on Wed Mar 27 22:49:11 EDT 2024 from SVN revision 264633
Copyright © 2005-2024 MAK Technologies. All Rights Reserved (www.mak.com)