Hermes SDK Documentation
Classes | Macros | Typedefs | Enumerations | Functions
CoreSdkWrapper

Classes

struct  ManusVec3
 A 3D vector, used for translations. More...
 
struct  ManusQuaternion
 A quaternion, used for rotations. More...
 
struct  ManusVersion
 Stores a single version string. More...
 
struct  LessFrequentlySentData
 All the glove data that is sent at a lower rate than other data. More...
 
struct  ManusRawData
 Raw, unprocessed glove data. More...
 
struct  ManusWristTransform
 Processed transform of the wrist computed from tracker data. More...
 
struct  ManusProcessedData
 Processed glove data, based on the raw data. More...
 
struct  GloveData
 All data for a single glove. More...
 
struct  RetargetingSettings
 Polygon retargeting settings. More...
 
struct  RetargetingSettingsArgs
 A wrapper for Polygon retargeting settings. More...
 
struct  PolygonBone
 Polygon data for a single bone. More...
 
struct  TargetSkeletonTarget
 Stores the name of a skeleton target. More...
 
struct  BodyEstimationTarget
 Stores the target to be used for body estimation. More...
 
struct  PolygonTarget
 Stores the target used for Polygon. More...
 
struct  PolygonTargetArgs
 Contains everything needed to set a Polygon target. More...
 
struct  PolygonSkeletonData
 All the skeleton data that can be sent to or received from Polygon. More...
 
struct  RemoveSkeletonArgs
 Data required for the removal of a skeleton. More...
 
struct  TrackerId
 Stores the name of a tracker. More...
 
struct  TrackerData
 All the tracker data that can be sent or received. More...
 
struct  ManusHost
 Contains information for connecting to a host running Manus Core. More...
 

Macros

#define NUM_FINGERS_ON_HAND   5
 Used to descriptively refer to the number of fingers on a hand. More...
 
#define NUM_PHALANGES_IN_FINGER   3
 Used to descriptively refer to the number of phalanges in a finger. More...
 
#define NUM_FLEX_SEGMENTS_PER_FINGER   2
 Used to descriptively refer to the number of flex sensor segments. More...
 
#define NUM_BONES_IN_POLYGON_SKELETON   (eBONETYPE_RIGHT_HAND + 1)
 Used to descriptively refer to the number of Polygon skeleton bones. More...
 
#define MAX_NUM_IMUS_ON_GLOVE   (NUM_FINGERS_ON_HAND + 1)
 Used to descriptively refer to the maximum IMUs count on a glove. More...
 
#define FLEX_SENSOR_MCP   0
 Used to descriptively refer to the MCP joint in an array. More...
 
#define FLEX_SENSOR_PIP   1
 Used to descriptively refer to the PIP joint in an array. More...
 
#define MAX_NUM_USERS   32
 Used to descriptively refer to the maximum number of Polygon users. More...
 
#define MAX_NUM_CHARS_IN_HOST_NAME   256
 Used to descriptively refer to the maximum host name length. More...
 
#define MAX_NUM_CHARS_IN_IP_ADDRESS   40
 Used to descriptively refer to the maximum IP address length. More...
 
#define MAX_NUM_CHARS_IN_TRACKER_ID   32
 Used to descriptively refer to the maximum tracker name length. More...
 
#define MAX_NUM_CHARS_IN_TARGET_ID   32
 Used to descriptively refer to the maximum target name length. More...
 
#define MAX_NUM_CHARS_IN_VERSION   16
 Used to descriptively refer to the maximum version string length. More...
 
#define UNINITIALISED_ID   0
 The value given to glove and dongle IDs when they are uninitialised.
 

Typedefs

typedef uint32_t WrapperReturnCode_t
 The type used for the return values of SDK wrapper functions. More...
 
typedef uint32_t TrackerType_t
 Used instead of TrackerType enum values to ensure a known data size. More...
 
typedef struct ManusVec3 ManusVec3
 A 3D vector, used for translations.
 
typedef struct ManusQuaternion ManusQuaternion
 A quaternion, used for rotations.
 
typedef struct ManusVersion ManusVersion
 Stores a single version string.
 
typedef struct LessFrequentlySentData LessFrequentlySentData
 All the glove data that is sent at a lower rate than other data.
 
typedef struct ManusRawData ManusRawData
 Raw, unprocessed glove data.
 
typedef struct ManusWristTransform ManusWristTransform
 Processed transform of the wrist computed from tracker data.
 
typedef struct ManusProcessedData ManusProcessedData
 Processed glove data, based on the raw data.
 
typedef struct GloveData GloveData
 All data for a single glove.
 
typedef struct RetargetingSettings RetargetingSettings
 Polygon retargeting settings.
 
typedef struct RetargetingSettingsArgs RetargetingSettingsArgs
 A wrapper for Polygon retargeting settings.
 
typedef struct PolygonBone PolygonBone
 Polygon data for a single bone.
 
typedef struct TargetSkeletonTarget TargetSkeletonTarget
 Stores the name of a skeleton target.
 
typedef struct BodyEstimationTarget BodyEstimationTarget
 Stores the target to be used for body estimation.
 
typedef struct PolygonTarget PolygonTarget
 Stores the target used for Polygon.
 
typedef struct PolygonTargetArgs PolygonTargetArgs
 Contains everything needed to set a Polygon target.
 
typedef struct PolygonSkeletonData PolygonSkeletonData
 All the skeleton data that can be sent to or received from Polygon.
 
typedef struct RemoveSkeletonArgs RemoveSkeletonArgs
 Data required for the removal of a skeleton.
 
typedef struct TrackerId TrackerId
 Stores the name of a tracker.
 
typedef struct TrackerData TrackerData
 All the tracker data that can be sent or received.
 
typedef struct ManusHost ManusHost
 Contains information for connecting to a host running Manus Core. More...
 
typedef void(* ConnectedToCoreCallback_t) (void)
 
typedef void(* DisconnectedFromCoreCallback_t) (void)
 

Enumerations

enum  WrapperReturnCode {
  eCORESDKWRAPPER_SUCCESS, eCORESDKWRAPPER_ERROR, eCORESDKWRAPPER_INVALID_ARGUMENT, eCORESDKWRAPPER_ARGUMENT_SIZE_MISMATCH,
  eCORESDKWRAPPER_UNSUPPORTED_STRING_SIZE_ENCOUNTERED, eCORESDKWRAPPER_SDK_NOT_AVAILABLE, eCORESDKWRAPPER_HOST_FINDER_NOT_AVAILABLE, eCORESDKWRAPPER_DATA_NOT_AVAILABLE,
  eCORESDKWRAPPER_MEMORY_ERROR, eCORESDKWRAPPER_INTERNAL_ERROR, eCORESDKWRAPPER_FUNCTION_CALLED_AT_WRONG_TIME, eCORESDKWRAPPER_NOT_CONNECTED,
  eCORESDKWRAPPER_CONNECTION_TIMEOUT
}
 The return values that can be given by SDK wrapper functions. More...
 
enum  HandType { eHANDTYPE_INVALID, eHANDTYPE_LEFT_HAND, eHANDTYPE_RIGHT_HAND }
 Used to tell what hand is being referred to. More...
 
enum  ClientType { eCLIENTTYPE_INVALID, eCLIENTTYPE_MOTIONBUILDER, eCLIENTTYPE_UNREAL }
 Used to tell what client is using the wrapper. More...
 
enum  GloveType { eGLOVETYPE_INVALID, eGLOVETYPE_APOLLO_LEGACY, eGLOVETYPE_PRIME_ONE, eGLOVETYPE_PRIME_TWO }
 Types of gloves that data can be received from. More...
 
enum  HandLocalTo { eHANDLOCALTO_ROOT, eHANDLOCALTO_HIPS, eHANDLOCALTO_SPINE, eHANDLOCALTO_ARMS }
 Used when retargeting to select what the hand is relative to. More...
 
enum  BoneType {
  eBONETYPE_ROOT, eBONETYPE_HEAD, eBONETYPE_NECK, eBONETYPE_HIPS,
  eBONETYPE_SPINE, eBONETYPE_CHEST, eBONETYPE_UPPER_CHEST, eBONETYPE_LEFT_UPPER_LEG,
  eBONETYPE_RIGHT_UPPER_LEG, eBONETYPE_LEFT_LOWER_LEG, eBONETYPE_RIGHT_LOWER_LEG, eBONETYPE_LEFT_FOOT,
  eBONETYPE_RIGHT_FOOT, eBONETYPE_LEFT_TOES, eBONETYPE_RIGHT_TOES, eBONETYPE_LEFT_TOES_END,
  eBONETYPE_RIGHT_TOES_END, eBONETYPE_LEFT_SHOULDER, eBONETYPE_RIGHT_SHOULDER, eBONETYPE_LEFT_UPPER_ARM,
  eBONETYPE_RIGHT_UPPER_ARM, eBONETYPE_LEFT_LOWER_ARM, eBONETYPE_RIGHT_LOWER_ARM, eBONETYPE_LEFT_HAND,
  eBONETYPE_RIGHT_HAND
}
 All the bones in a skeleton that Polygon handles. More...
 
enum  PolygonTargetCase { ePOLYGONTARGETCASE_NONE, ePOLYGONTARGETCASE_BODYESTIMATION, ePOLYGONTARGETCASE_TARGETSKELETON }
 The different targets a Polygon skeleton can have. More...
 
enum  TrackerType {
  eTRACKERTYPE_UNKNOWN, eTRACKERTYPE_HEAD, eTRACKERTYPE_WAIST, eTRACKERTYPE_LEFT_HAND,
  eTRACKERTYPE_RIGHT_HAND, eTRACKERTYPE_LEFT_FOOT, eTRACKERTYPE_RIGHT_FOOT, eTRACKERTYPE_LEFT_UPPER_ARM,
  eTRACKERTYPE_RIGHT_UPPER_ARM, eTRACKERTYPE_LEFT_UPPER_LEG, eTRACKERTYPE_RIGHT_UPPER_LEG, eTRACKERTYPE_CONTROLLER,
  eTRACKERTYPE_CAMERA
}
 The different types of trackers that can be used.
 

Functions

CORESDK_API WrapperReturnCode_t CoreSdk_Initialise (ClientType a_TypeOfClient)
 Initialise the wrapper. Call this before using the wrapper.
 
CORESDK_API WrapperReturnCode_t CoreSdk_ShutDown (void)
 Shut down the wrapper. This needs to be called last.
 
CORESDK_API WrapperReturnCode_t CoreSdk_WasDllBuiltInDebugConfiguration (bool &a_WasBuiltInDebugConfiguration)
 Check if the wrapper DLL was built in the debug configuration.
 
CORESDK_API WrapperReturnCode_t CoreSdk_StartLookingForHosts (void)
 Start a background task that looks for hosts running Manus Core. More...
 
CORESDK_API WrapperReturnCode_t CoreSdk_StopLookingForHosts (void)
 Stop the background task that looks for hosts running Manus Core. More...
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetNumberOfAvailableHostsFound (uint32_t &a_NumberOfAvailableHostsFound)
 Get the number of hosts running Manus Core that were found. More...
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetAvailableHostsFound (ManusHost *a_AvailableHostsFound, const uint32_t a_NumberOfHostsThatFitInArray)
 Fill the given array with information on the hosts that were found. More...
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetIsConnectedToCore (bool &a_ConnectedToCore)
 
CORESDK_API WrapperReturnCode_t CoreSdk_ConnectLocally (void)
 Connect to Manus Core on the same device the wrapper is running on.
 
CORESDK_API WrapperReturnCode_t CoreSdk_ConnectToHost (ManusHost a_Host)
 Connect to a host using the given host information.
 
CORESDK_API WrapperReturnCode_t CoreSdk_WasConnectionLostDueToTimeout (bool &a_WasConnectionLost)
 Check if the connection to Manus Core was lost due to a timeout.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetVersionsAndCheckCompatibility (ManusVersion &a_WrapperVersion, ManusVersion &a_SdkVersion, ManusVersion &a_CoreVersion, bool &a_AreVersionsCompatible)
 
CORESDK_API WrapperReturnCode_t CoreSdk_RegisterCallbackForOnConnect (ConnectedToCoreCallback_t a_ConnectedCallback)
 
CORESDK_API WrapperReturnCode_t CoreSdk_RegisterCallbackForOnDisconnect (DisconnectedFromCoreCallback_t a_DisconnectedCallback)
 
CORESDK_API WrapperReturnCode_t CoreSdk_VibrateWristOfGlove (uint32_t a_GloveId, float a_UnitStrength, uint16_t a_DurationInMilliseconds)
 Vibrate the motor on the back of the glove.
 
CORESDK_API WrapperReturnCode_t CoreSdk_VibrateFingers (uint32_t a_DongleId, HandType a_HandType, const float *a_Powers)
 Vibrate the motor on the given finger of a haptic glove.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetGloveIdOfUser_UsingUserIndex (uint32_t a_UserIndex, HandType a_HandType, uint32_t &a_GloveId)
 Get a glove ID for the given hand of the given Polygon user. More...
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetNumberOfAvailableGloves (uint32_t &a_NumberOfAvailableGloves)
 Get the number of gloves that are available.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetIdsOfAvailableGloves (uint32_t *a_IdsOfAvailableGloves, uint32_t a_NumberOfIdsThatFitInArray)
 Fill the given array with the IDs of all available gloves. More...
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetHandTypeOfGlove (uint32_t a_GloveId, HandType &a_HandType)
 Get the hand type of the glove with the given glove ID.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetIdOfFirstAvailableGloveOfType (HandType a_HandType, uint32_t &a_GloveId)
 Get the glove ID of the first available glove of the given type.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetDataForGlove_UsingGloveId (uint32_t a_GloveId, GloveData &a_GloveData)
 Get data for the glove with the given glove ID.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetDataForGlove_UsingHandType (HandType a_HandType, GloveData &a_GloveData)
 Get data for the first available glove with the given hand type.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetNumberOfHapticsDongles (uint32_t &a_NumberOfHapticsDongles)
 Get the number of available haptics dongles.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetHapticsDongleIds (uint32_t *a_HapticsDongleIds, uint32_t a_NumberOfIdsThatFitInArray)
 Fill the given array with the IDs of all available haptics dongles. More...
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetNumberOfAvailablePolygonUsers (uint32_t &a_NumberOfAvailableUsers)
 Get the number of available Polygon users.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetIdsOfAvailablePolygonUsers (int32_t *a_IdsOfAvailablePolygonUsers, uint32_t a_NumberOfIdsThatFitInArray)
 Fill the given array with the IDs of all available Polygon users. More...
 
CORESDK_API WrapperReturnCode_t CoreSdk_AddOrUpdatePolygonSkeleton (const PolygonSkeletonData &a_PolygonSkeletonData)
 Send skeleton data to Core. If new, the skeleton will be added.
 
CORESDK_API WrapperReturnCode_t CoreSdk_RemovePolygonSkeleton (const RemoveSkeletonArgs &a_RemoveSkeletonArgs)
 Remove the skeleton described by the arguments.
 
CORESDK_API WrapperReturnCode_t CoreSdk_SetPolygonSkeletonTarget (const PolygonTargetArgs &a_SetSkeletonTargetArgs)
 Set the target for the given Polygon skeleton.
 
CORESDK_API WrapperReturnCode_t CoreSdk_SetPolygonSkeletonRetargetingSettings (const RetargetingSettingsArgs &a_RetargetingSettingsArgs)
 Set the retargeting settings for the given Polygon skeleton.
 
CORESDK_API WrapperReturnCode_t CoreSdk_IsPolygonSkeletonIdValid (uint32_t a_PolygonSkeletonId, bool &a_IsValid)
 Check if the given Polygon skeleton ID is valid.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetNumberOfAvailablePolygonSkeletons (uint32_t &a_NumberOfAvailablePolygonSkeletons)
 Get the number of available Polygon skeletons.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetIdsOfAvailablePolygonSkeletons (uint32_t *a_IdsOfAvailablePolygonSkeletons, uint32_t a_NumberOfIdsThatFitInArray)
 Fill the given array with the IDs of available Polygon skeletons. More...
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetIdOfFirstAvailablePolygonSkeleton (uint32_t &a_PolygonSkeletonId)
 Get the ID of the first Polygon skeleton available.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetDataForPolygonSkeleton (uint32_t a_PolygonSkeletonId, PolygonSkeletonData &a_PolygonSkeletonData)
 Get data for the given Polygon skeleton ID.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetNumberOfUsers (uint32_t &a_NumberOfUsers)
 Get number of users. (that were created in the dashboard)
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetNumberOfAvailableTrackers (uint32_t &a_NumberOfAvailableTrackers)
 Get the number of available trackers.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetIdsOfAvailableTrackers (TrackerId *a_IdsOfAvailableTrackers, uint32_t a_NumberOfIdsThatFitInArray)
 Fill the given array with the IDs of available trackers. More...
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetNumberOfAvailableTrackersForUserIndex (uint32_t &a_NumberOfAvailableTrackers, uint32_t a_UserIndex)
 Get the number of available trackers in a user.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetIdsOfAvailableTrackersForUserIndex (TrackerId *a_IdsOfAvailableTrackers, uint32_t a_UserIndex, uint32_t a_NumberOfIdsThatFitInArray)
 Fill the given array with the IDs of available trackers in a user. More...
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetDataForTracker_UsingTrackerId (TrackerId a_TrackerId, TrackerData &a_TrackerData)
 Get data for the tracker with the given tracker ID.
 
CORESDK_API WrapperReturnCode_t CoreSdk_GetDataForTracker_UsingIndexAndType (uint32_t a_UserIndex, uint32_t a_TrackerType, TrackerData &a_TrackerData)
 Get data for the tracker with the given Polygon user index and type.
 
CORESDK_API WrapperReturnCode_t CoreSdk_SendDataForTrackers (const TrackerData *a_TrackerData, uint32_t a_NumberOfTrackers)
 Send data to Core for a tracker.
 

Detailed Description

Macro Definition Documentation

◆ FLEX_SENSOR_MCP

#define FLEX_SENSOR_MCP   0

Used to descriptively refer to the MCP joint in an array.

Used with arrays containing flex sensor data to refer to the location of the metacarpophalangeal joint's data in a descriptive way. This is the joint at the base of the finger.

◆ FLEX_SENSOR_PIP

#define FLEX_SENSOR_PIP   1

Used to descriptively refer to the PIP joint in an array.

Used with arrays containing flex sensor data to refer to the location of the proximal interphalangeal joint's data in a descriptive way. This is the middle joint of a finger.

◆ MAX_NUM_CHARS_IN_HOST_NAME

#define MAX_NUM_CHARS_IN_HOST_NAME   256

Used to descriptively refer to the maximum host name length.

Used with arrays to make them more descriptive than simply using the number, and to make changing the number easier and safer.

◆ MAX_NUM_CHARS_IN_IP_ADDRESS

#define MAX_NUM_CHARS_IN_IP_ADDRESS   40

Used to descriptively refer to the maximum IP address length.

Used with arrays to make them more descriptive than simply using the number, and to make changing the number easier and safer. It is based on the length of an IPv6 address. Example: "2001:0db8:0000:0000:0000:8a2e:0370:7334".

◆ MAX_NUM_CHARS_IN_TARGET_ID

#define MAX_NUM_CHARS_IN_TARGET_ID   32

Used to descriptively refer to the maximum target name length.

Used with arrays to make them more descriptive than simply using the number, and to make changing the number easier and safer.

◆ MAX_NUM_CHARS_IN_TRACKER_ID

#define MAX_NUM_CHARS_IN_TRACKER_ID   32

Used to descriptively refer to the maximum tracker name length.

Used with arrays to make them more descriptive than simply using the number, and to make changing the number easier and safer.

◆ MAX_NUM_CHARS_IN_VERSION

#define MAX_NUM_CHARS_IN_VERSION   16

Used to descriptively refer to the maximum version string length.

Used with arrays to make them more descriptive than simply using the number, and to make changing the number easier and safer.

◆ MAX_NUM_IMUS_ON_GLOVE

#define MAX_NUM_IMUS_ON_GLOVE   (NUM_FINGERS_ON_HAND + 1)

Used to descriptively refer to the maximum IMUs count on a glove.

Used with arrays and loops to make them more descriptive than simply using the number, and to make changing the number easier and safer.

◆ MAX_NUM_USERS

#define MAX_NUM_USERS   32

Used to descriptively refer to the maximum number of Polygon users.

Used with arrays and loops to make them more descriptive than simply using the number, and to make changing the number easier and safer.

◆ NUM_BONES_IN_POLYGON_SKELETON

#define NUM_BONES_IN_POLYGON_SKELETON   (eBONETYPE_RIGHT_HAND + 1)

Used to descriptively refer to the number of Polygon skeleton bones.

Used with arrays and loops to make them more descriptive than simply using the number, and to make changing the number easier and safer.

◆ NUM_FINGERS_ON_HAND

#define NUM_FINGERS_ON_HAND   5

Used to descriptively refer to the number of fingers on a hand.

Used with arrays and loops to make them more descriptive than simply using the number, and to make changing the number easier and safer.

◆ NUM_FLEX_SEGMENTS_PER_FINGER

#define NUM_FLEX_SEGMENTS_PER_FINGER   2

Used to descriptively refer to the number of flex sensor segments.

Used with arrays and loops to make them more descriptive than simply using the number, and to make changing the number easier and safer.

◆ NUM_PHALANGES_IN_FINGER

#define NUM_PHALANGES_IN_FINGER   3

Used to descriptively refer to the number of phalanges in a finger.

Used with arrays and loops to make them more descriptive than simply using the number, and to make changing the number easier and safer.

Typedef Documentation

◆ ManusHost

typedef struct ManusHost ManusHost

Contains information for connecting to a host running Manus Core.

Note that if one of these values is blank, the other will be used when connecting.

◆ TrackerType_t

typedef uint32_t TrackerType_t

Used instead of TrackerType enum values to ensure a known data size.

This typedef is used as instead of enum values to ensure a known data size. When using enums the size is up to the compiler.

◆ WrapperReturnCode_t

typedef uint32_t WrapperReturnCode_t

The type used for the return values of SDK wrapper functions.

This typedef is used as a return value instead of enum values to ensure a known data size. When using enums the size is up to the compiler.

Enumeration Type Documentation

◆ BoneType

enum BoneType

All the bones in a skeleton that Polygon handles.

The enum values are also the position of the bone's data in arrays of bone data received from Polygon.

◆ ClientType

enum ClientType

Used to tell what client is using the wrapper.

This is used to select a mesh config preset when initialising the wrapper, for example. Mesh configs are used to transform rotations and translations so that they are correct for the selected application.

Enumerator
eCLIENTTYPE_INVALID 

An invalid value used for uninitialised variables.

eCLIENTTYPE_MOTIONBUILDER 

Make data work for MotionBuilder.

eCLIENTTYPE_UNREAL 

Make data work for Unreal.

◆ GloveType

enum GloveType

Types of gloves that data can be received from.

Enumerator
eGLOVETYPE_INVALID 

An invalid value used for uninitialised variables.

eGLOVETYPE_APOLLO_LEGACY 

Glove data coming from the legacy Apollo application, instead of being handled by Manus Core directly.

eGLOVETYPE_PRIME_ONE 

A Prime One glove.

eGLOVETYPE_PRIME_TWO 

A Prime II glove.

◆ HandLocalTo

Used when retargeting to select what the hand is relative to.

Used to select what the relative hand rotation and translation are relative to.

Enumerator
eHANDLOCALTO_ROOT 

Hand rotation and translation is relative to the skeleton's root.

eHANDLOCALTO_HIPS 

Hand rotation and translation is relative to the skeleton's hips.

eHANDLOCALTO_SPINE 

Hand rotation and translation is relative to the skeleton's spine.

eHANDLOCALTO_ARMS 

Hand rotation and translation is relative to the skeleton's arms.

◆ HandType

enum HandType

Used to tell what hand is being referred to.

Enumerator
eHANDTYPE_INVALID 

An invalid value used for uninitialised variables.

eHANDTYPE_LEFT_HAND 

Selects the left hand.

eHANDTYPE_RIGHT_HAND 

Selects the right hand.

◆ PolygonTargetCase

The different targets a Polygon skeleton can have.

Enumerator
ePOLYGONTARGETCASE_NONE 

An invalid value used for uninitialised variables.

ePOLYGONTARGETCASE_BODYESTIMATION 

The Polygon skeleton will be generated from tracking data.

ePOLYGONTARGETCASE_TARGETSKELETON 

Used to retarget on an existing skeleton.

The skeleton targets a user with trackers. 

◆ WrapperReturnCode

The return values that can be given by SDK wrapper functions.

Enumerator
eCORESDKWRAPPER_SUCCESS 

No issues occurred.

eCORESDKWRAPPER_ERROR 

Something went wrong, but no specific reason can be given.

eCORESDKWRAPPER_INVALID_ARGUMENT 

One of the arguments given had an invalid value.

eCORESDKWRAPPER_ARGUMENT_SIZE_MISMATCH 

The size of an argument given (e.g. an array) does not match the size of the data that it is intended to hold.

eCORESDKWRAPPER_UNSUPPORTED_STRING_SIZE_ENCOUNTERED 

A string of an unsupported size was encountered.

eCORESDKWRAPPER_SDK_NOT_AVAILABLE 

The Core SDK is not available.

eCORESDKWRAPPER_HOST_FINDER_NOT_AVAILABLE 

The network host finder is not available.

eCORESDKWRAPPER_DATA_NOT_AVAILABLE 

The data requested is not available.

eCORESDKWRAPPER_MEMORY_ERROR 

Failed to allocate memory for something.

eCORESDKWRAPPER_INTERNAL_ERROR 

Something went wrong in the SDK internally.

eCORESDKWRAPPER_FUNCTION_CALLED_AT_WRONG_TIME 

The function was not intended to be called at this time.

eCORESDKWRAPPER_NOT_CONNECTED 

No connection to Core was made.

eCORESDKWRAPPER_CONNECTION_TIMEOUT 

The connection with Core timed out.

Function Documentation

◆ CoreSdk_GetAvailableHostsFound()

CORESDK_API WrapperReturnCode_t CoreSdk_GetAvailableHostsFound ( ManusHost a_AvailableHostsFound,
const uint32_t  a_NumberOfHostsThatFitInArray 
)

Fill the given array with information on the hosts that were found.

This is the fourth and final function to call when looking for hosts to connect to

◆ CoreSdk_GetGloveIdOfUser_UsingUserIndex()

CORESDK_API WrapperReturnCode_t CoreSdk_GetGloveIdOfUser_UsingUserIndex ( uint32_t  a_UserIndex,
HandType  a_HandType,
uint32_t &  a_GloveId 
)

Get a glove ID for the given hand of the given Polygon user.

The user index refers to the list of users shown in the dashboard under the Polygon tab. The first user shown is user index 0, the second is number 1, and so on. This is converted to the hexadecimal user ID internally. Note that the list of users can be edited from the dashboard, so it can change at any time.

◆ CoreSdk_GetHapticsDongleIds()

CORESDK_API WrapperReturnCode_t CoreSdk_GetHapticsDongleIds ( uint32_t *  a_HapticsDongleIds,
uint32_t  a_NumberOfIdsThatFitInArray 
)

Fill the given array with the IDs of all available haptics dongles.

The size of the given array must match the number of available haptics dongles. Note that the number of available haptics dongles can change at any time.

◆ CoreSdk_GetIdsOfAvailableGloves()

CORESDK_API WrapperReturnCode_t CoreSdk_GetIdsOfAvailableGloves ( uint32_t *  a_IdsOfAvailableGloves,
uint32_t  a_NumberOfIdsThatFitInArray 
)

Fill the given array with the IDs of all available gloves.

The size of the given array must match the number of available gloves. Note that the number of available gloves can change at any time.

◆ CoreSdk_GetIdsOfAvailablePolygonSkeletons()

CORESDK_API WrapperReturnCode_t CoreSdk_GetIdsOfAvailablePolygonSkeletons ( uint32_t *  a_IdsOfAvailablePolygonSkeletons,
uint32_t  a_NumberOfIdsThatFitInArray 
)

Fill the given array with the IDs of available Polygon skeletons.

The size of the given array must match the number of available Polygon skeletons. Note that the number of available Polygon skeletons can change at any time.

◆ CoreSdk_GetIdsOfAvailablePolygonUsers()

CORESDK_API WrapperReturnCode_t CoreSdk_GetIdsOfAvailablePolygonUsers ( int32_t *  a_IdsOfAvailablePolygonUsers,
uint32_t  a_NumberOfIdsThatFitInArray 
)

Fill the given array with the IDs of all available Polygon users.

The size of the given array must match the number of available Polygon users. Note that the number of available Polygon users can change at any time.

◆ CoreSdk_GetIdsOfAvailableTrackers()

CORESDK_API WrapperReturnCode_t CoreSdk_GetIdsOfAvailableTrackers ( TrackerId a_IdsOfAvailableTrackers,
uint32_t  a_NumberOfIdsThatFitInArray 
)

Fill the given array with the IDs of available trackers.

The size of the given array must match the number of available trackers. Note that the number of available trackers can change at any time.

◆ CoreSdk_GetIdsOfAvailableTrackersForUserIndex()

CORESDK_API WrapperReturnCode_t CoreSdk_GetIdsOfAvailableTrackersForUserIndex ( TrackerId a_IdsOfAvailableTrackers,
uint32_t  a_UserIndex,
uint32_t  a_NumberOfIdsThatFitInArray 
)

Fill the given array with the IDs of available trackers in a user.

The size of the given array must match the number of available trackers. Note that the number of available trackers can change at any time.

◆ CoreSdk_GetNumberOfAvailableHostsFound()

CORESDK_API WrapperReturnCode_t CoreSdk_GetNumberOfAvailableHostsFound ( uint32_t &  a_NumberOfAvailableHostsFound)

Get the number of hosts running Manus Core that were found.

This is the third function to call when looking for hosts to connect to.

◆ CoreSdk_StartLookingForHosts()

CORESDK_API WrapperReturnCode_t CoreSdk_StartLookingForHosts ( void  )

Start a background task that looks for hosts running Manus Core.

Call this first when looking for hosts to connect to.

◆ CoreSdk_StopLookingForHosts()

CORESDK_API WrapperReturnCode_t CoreSdk_StopLookingForHosts ( void  )

Stop the background task that looks for hosts running Manus Core.

The task must be stopped before a connection can be made. This is the second function to call when looking for hosts to connect to.