VR-Forces 5.0.1 Developer's Guide
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
VR-Forces Extensions to VR-Link

VR-Forces is built on the VR-Link toolkit to provide interoperability with DIS and HLA RPR FOM simulation exercises.

However, VR-Forces applications utilize additional data that is not part of the standard. In order to provide a simpler API for VR-Forces applications to work with to distribute this data, we have created an additional layer on top of VR-Link, called the VR-Forces VR-Link Extensions. The primary purpose of these extensions is to wrap VR-Link publishers, reflected lists, and state repositories to add new attributes necessary for the execution of VR-Forces. These extensions can be found in the libraries vrfExtProtocol.lib, vrfExtObjectsDIS.lib, vrfExtObjectsHLA13.lib, vrfExtObjectsHLA1516.lib, and vrfExtObjectsHLA1516e.lib.

When a local VR-Forces sim object is created, one of the publishers below is created by the object's Network Interface. In order to receive remote objects, the DtRemoteObjectManager creates subclasses of the reflected lists mentioned below.

There are three primary types of objects that have been extended in this way.

Entities

VR-Forces uses the following classes in replace of the standard VR-Link publisher, reflected list, reflected object, and state repository for entities.

These classes handle the VR-Forces specific data that needs to be associated with a VR-Forces entity. In HLA this is done by publishing an additional object of the FOM class VrfExtendedAttributes for every entity that is published. In DIS these attributes are published using the Attribute PDU. The publishers and reflected object list manage these additional attributes and ensure this additional state is added to the extended state repository. This state includes things such as:

Aggregates

Units in VR-Forces are published as DIS/RPR FOM Aggregate objects. VR-Forces uses the following classes in replace of the standard VR-Link publisher, reflected list, reflected object, and state repository for aggregates.

Units in VR-Forces require many of the same extensions as entities, and thus they use the same Extended Attributes mechanism described for entities above.

Kind

In DIS and RPR FOM, Entity Types and Aggregate Types are identical records, however the kind field values overlap. For example, Aggregate Type with a kind of 1 is understood to be a "Military Hierarchy" while an Entity Type with a kind of 1 is understood to be a "Platform". However, because keeps all sim objects and sim object parameters in the same database, regardless of whether they are entities or aggregates, it was necessary to have a way of distinguishing these object types. As a result, VR-Forces uses alternate values for Aggregate Type kinds.

Note
If an external aggregate is received with the standard values for kind, VR-Forces converts these internally.
VR-Forces Aggregate Kind
Aggregate type SISO Kind VR-Forces Kind Internal Constant
Other 0 10 DtAggregateKindOther
Military Hierarchy 1 11 DtAggregateKindMilitaryHierarchy
Common Type 2 12 DtAggregateKindCommonType
Common Mission 3 13 DtAggregateKindCommonMission
Similar Capabilities 4 14 DtAggregateKindSimilarCapabilities
Common Location 5 15 DtAggregateKindCommonLocation

Enumerations for object type fields are defined in objectTypeEnums.h.

Control Objects

All control objects (also called tactical graphics) are sim objects in VR-Forces, just like entities and units. Control objects allow you to identify locations on the terrain map that simulation objects need to interact with in some way. You might want to create control objects to represent things such as minefields, tank ditches, buildings, bridges, and so on. They are also used as objects which simulate other effects, such as the weather or dynamic terrain. Types of control objects in VR-Forces include, but are not limited to:

Control objects and their uses are described fully in VR-Forces Users Guide.

Control objects are expressed on the network as Environmental Process objects. VR-Forces uses the following classes in replace of the standard VR-Link publisher, reflected list, reflected object, and state repository for control objects.

Control objects, more than entities or aggregates, have very specific, customized purposes for VR-Forces. A lot of the data in control objects is published in VR-Forces specific environmental records. Additionally, they also require many of the same extensions as entities, and thus they use the same Extended Attributes mechanism described for entities above.

Object Kind

The kind field in the Object Type of a control object should be one of the following:

Kind Values for Control Objects
Object Type Kind Internal Constant
Point 16 DtPointObjectKind
Line 17 DtLinearObjectKind
Area 18 DtArealObjectKind
Circle 19 DtCircleObjectKind
Text 20 DtTextObjectKind
Weather 21 DtWeatherObjectKind
Cloud Layer 25 DtCloudLayerObjectKind

Enumerations for object type fields are defined in objectTypeEnums.h.


Document ID: Generated on Mon Jun 20 00:38:30 EDT 2022 from SVN revision 244029
Copyright © 2005-2021 MAK Technologies. All Rights Reserved (www.mak.com)