Cavrnus Unreal API Headers

The Cavrnus API provides access to a wide range of public functions. Many of these functions can be accessed through the no-code features of the Cavrnus system, as well as pre-configured blueprints. These API calls are available for you to code your own custom blueprints and interfaces. To gain a deeper understanding, descriptions of the header files are provided in the following pages.


General Notes:

  • The plugin heavily relies on delegates (callbacks) for asynchronous operations and event handling.

  • The plugin has a robust system for managing properties of different data types, define default values, and then bind to property updates.

  • The plugin includes features for user management, voice and video communication, and remote content handling.

Workflow:

The following workflow describes how to integrate the Cavrnus Spatial Connector into your project. The provided workflow is purely for illustration purposes, as most of this work is done automatically for you simply by dropping in the CavrnusSpatialConnector actor into a Level within the Unreal Editor interface.

1. Configuration:

  • Set up the plugin settings using UCavrnusConnectorSettings, specifying parameters like auto-start behavior, RelayNet configuration, and logging options.

2. Authentication:

  • Use UCavrnusFunctionLibrary to authenticate users, either with email/password (AuthenticateWithPassword) or as a guest (AuthenticateAsGuest).

  • Handle login UI interactions using UCavrnusLoginWidget and UCavrnusGuestLoginWidget.

3. Space Selection and Joining:

  • Fetch and display available spaces using UCavrnusFunctionLibrary::FetchJoinableSpaces and UCavrnusSpaceListWidget.

  • Implement pagination for the space list using UPagination and IListElementInterface.

  • Allow users to select a space and join it using UCavrnusFunctionLibrary::JoinSpace.

4. Property Synchronization:

  • Attach Cavrnus Value Sync components (e.g., UCavrnusValueSyncFloat, UCavrnusValueSyncTransform) to actors to synchronize their properties.

  • Configure the components with the property names and update settings.

5. Real-Time Updates:

  • Use Cavrnus Live Property Update classes to send and receive real-time property updates between Unreal Engine and Cavrnus.

6. User Interface:

  • Create custom UI elements by extending UCavrnusBaseUserWidget.

  • Display user information and video streams using UCavrnusUserWidget.

  • Utilize UTexture2dDynamicHelper to handle dynamic textures in the UI.

7. Additional Features:

  • Explore other functionalities provided by UCavrnusFunctionLibrary, such as chat messaging, object spawning, permissions management, and voice/video communication.


Public Headers

The header files & folders in the Source/Public folder define the structure and functionality of the Cavrnus Spatial Connector plugin for Unreal Engine.

Core Headers

The core functionality of the Cavrnus Spatial Connector, including the definition of the CavrnusSpatialConnector actor that can be placed in a level to immediately connect your Unreal project to the metaverse.

FlagComponents

The header files in the FlagComponents folder relate to flagging or marking entities within the Cavrnus system (users, avatars, spawned objects). These components play a role in identifying and tracking these entities for collaboration.

LivePropertyUpdates

The header files in the LivePropertyUpdates folder define a set of classes designed to handle real-time updates of different property types within the Cavrnus collaborative environment. These classes share a common base class, UCavrnusLivePropertyUpdate, and provide specialized functionality for specific data types.

CavrnusLivePropertyUpdate.h

CavrnusLiveBoolPropertyUpdate.h

CavrnusLiveFloatPropertyUpdate.h

CavrnusLiveStringPropertyUpdate.h

CavrnusLiveTransformPropertyUpdate.h

CavrnusLiveVectorPropertyUpdate.h

CavrnusLiveColorPropertyUpdate.h

Types

The header files in the "Types" folder define essential data structures used throughout the Cavrnus Spatial Connector plugin.

CavrnusAuthentication.h

CavrnusBinding.h

CavrnusCallbackTypes.h

CavrnusInputDevice.h

CavrnusOutputDevice.h

CavrnusPropertyValue.h

CavrnusRemoteContent.h

CavrnusSpaceConnection.h

CavrnusSpaceInfo.h

CavrnusSpawnedObject.h

CavrnusUser.h

CavrnusVideoInputDevice.h

PropertyId.h

UI

The header files in the "UI" folder define the core structure and functionality of the user interface (UI) elements for the Cavrnus Spatial Connector plugin. They enable users to log in, select spaces, view other users, and potentially perform other essential actions within the collaborative environment.

CavrnusBaseUserWidget.h:

CavrnusGuestLoginWidget.h:

CavrnusLoginWidget.h:

CavrnusSpaceListWidget.h:

CavrnusUserWidget.h:

Texture2dDynamicHelper.h:

UI/Pagination

The header files in the "Pagination" folder define the UI structure and interface for handling pagination of list elements within the Cavrnus Spatial Connector plugin.

IListElementInterface.h:

Pagination.h:

UI/SpaceList

The header files in the "UI/SpaceList" folder define the UI elements and logic for displaying and interacting with a list of Cavrnus spaces.

SpaceListEntry.h:

SpaceListOption.h:

ValueSyncs

The header files within the ValueSyncs folder, along with IPropertySyncInterface.h, form a structured system for synchronizing property values between Unreal Engine and the Cavrnus platform.

CavrnusValueSyncBase.h

CavrnusValueSyncBoolean.h

CavrnusValueSyncColor.h

CavrnusValueSyncFloat.h

CavrnusValueSyncString.h

CavrnusValueSyncTransform.h

CavrnusValueSyncVector.h

IPropertySyncInterface.h

Â