![]() |
VR-Link API Documentation for HLA 1.3
|
This chapter explains how to develop applications using the VR-Link C# library.
It references the F-18 example, which is in the ./C-sharp/examples, to illustrate the concepts that are introduced. The explanations include example code. However, we recommend that you browse the F-18 project while reviewing this information. If your application involves extending VR-Link for C#, please see Extending VR-Link for C#. It is assumed that you know the C# language.
VR-Link is a simulation toolkit that provides comprehensive support for distributed simulation protocols. The C# implementation (VRLink-Sharp) offers .NET developers access to VR-Link's capabilities through a managed interface that wraps the native VR-Link C++ library.
VR-Link for C# is built with Microsoft Visual Studio. It is built against the VR-Link version and uses 64-bit compilers and 64-bit libraries. It is also built on the .NET Framework. Please see the VR-Link Release Notes for the supported versions of Visual Studio and .NET for your version of VR-Link for C#.
The C# VR-Link interface leverages the VR-Link C++ libraries to provide robust support for networking, interoperability, and integration with industry standards. The C# layer communicates with the native layer through a message interface: encoded messages are exchanged via shared memory between the managed (C#) and unmanaged (C++) components. C# support is therefore limited to the simulation concepts explicitly represented by these messages. (See 10.2 - Architectural Overview for additional architectural details.)
The following simulation concepts are supported in C#:
This section describes the aspects of exercise connection covered in the C# implementation compared to the C++ implementation.
In VR-Link, the exercise connection is responsible for managing the federation or simulation session, handling network communication, and coordinating object and interaction updates.
C++ Implementation:**
Includes robust error handling, diagnostics, and logging.
C# Implementation:**