![]() |
VR-Link API Documentation for DIS
|
You can use independent VR-Link objects in multiple threads.
If you are using VR-Link in multi-threaded applications, note the following:
License management communication with the license server can become confused if two objects try to check out licenses at the same time. This results in the following error:
Server message checksum failure (-60,147)
To avoid this problem, stagger the creation of the conflicting objects by calling DtSleep().
You are no longer restricted to using only one map datum or UTM reference point at a time. Using the global functions DtSetMapDatum(), DtCurrentMapDatum(), and DtUtmInit() should not result in any conflicts even when multiple threads are sharing the same reference ellipse and reference point. However, when multiple reference data need to be used simultaneously, an object representing the reference ellipsoid or UTM reference point can be passed to the coordinate's constructor. The given object will then be used for any coordinate conversions instead of the defaults.
Two classes make this change possible. The first, DtReferenceEllipsoid (referenceEllipsoid.h), represents the shape of the Earth. It is initialized using a DtMapDatum instance (mapDatum.h). The second class, DtUtmReferencePoint (utmReferencePoint.h), is used to represent a UTM reference point. It is initialized using a latitude, longitude, boolean value for enabling the use of standard offsets, and a DtMapDatum for the shape of the Earth.
For example:
is equivalent to the following code segment:
[<< Attached Parts] [Home] [Top of Page] [Controlling MAK Products Remotely >>]