1 #ifndef H_CORESDKWRAPPERTYPES
2 #define H_CORESDKWRAPPERTYPES
24 #define NUM_FINGERS_ON_HAND 5
25 #define NUM_PHALANGES_IN_FINGER 3
30 #define NUM_FLEX_SEGMENTS_PER_FINGER 2
35 #define NUM_BONES_IN_POLYGON_SKELETON (eBONETYPE_RIGHT_HAND + 1)
40 #define MAX_NUM_IMUS_ON_GLOVE (NUM_FINGERS_ON_HAND + 1)
45 #define FLEX_SENSOR_MCP 0
51 #define FLEX_SENSOR_PIP 1
57 #define MAX_NUM_USERS 32
69 #define MAX_NUM_CHARS_IN_HOST_NAME 256
70 #define MAX_NUM_CHARS_IN_IP_ADDRESS 40
77 #define MAX_NUM_CHARS_IN_TRACKER_ID 32
82 #define MAX_NUM_CHARS_IN_TARGET_ID 32
87 #define MAX_NUM_CHARS_IN_VERSION 16
94 #define UNINITIALISED_ID 0
228 eBONETYPE_UPPER_CHEST,
229 eBONETYPE_LEFT_UPPER_LEG,
230 eBONETYPE_RIGHT_UPPER_LEG,
231 eBONETYPE_LEFT_LOWER_LEG,
232 eBONETYPE_RIGHT_LOWER_LEG,
234 eBONETYPE_RIGHT_FOOT,
236 eBONETYPE_RIGHT_TOES,
237 eBONETYPE_LEFT_TOES_END,
238 eBONETYPE_RIGHT_TOES_END,
239 eBONETYPE_LEFT_SHOULDER,
240 eBONETYPE_RIGHT_SHOULDER,
241 eBONETYPE_LEFT_UPPER_ARM,
242 eBONETYPE_RIGHT_UPPER_ARM,
243 eBONETYPE_LEFT_LOWER_ARM,
244 eBONETYPE_RIGHT_LOWER_ARM,
267 eTRACKERTYPE_UNKNOWN,
270 eTRACKERTYPE_LEFT_HAND,
271 eTRACKERTYPE_RIGHT_HAND,
272 eTRACKERTYPE_LEFT_FOOT,
273 eTRACKERTYPE_RIGHT_FOOT,
274 eTRACKERTYPE_LEFT_UPPER_ARM,
275 eTRACKERTYPE_RIGHT_UPPER_ARM,
276 eTRACKERTYPE_LEFT_UPPER_LEG,
277 eTRACKERTYPE_RIGHT_UPPER_LEG,
278 eTRACKERTYPE_CONTROLLER,
410 int64_t m_LastUpdateTime = 0;
437 float m_LegWidth = 0.0f;
438 float m_KneeRotation = 0.0f;
441 float m_ShoulderForwardOffset = 0.0f;
442 float m_ShoulderHeightOffset = 0.0f;
444 float m_ShoulderForwardRotationMultiplier = 1.0f;
445 float m_ShoulderHeightRotationMultiplier = 1.0f;
447 float m_ElbowRotation = 0.0f;
451 float m_ArmSpacing = 0.0f;
452 float m_ArmLengthMultiplier = 1.0f;
453 float m_ArmIK = 0.0f;
454 bool m_HandRotationLocal =
false;
457 float m_HandForwardOffset = 0.0f;
458 float m_HandWidthOffset = 0.0f;
459 float m_HandHeightOffset = 0.0f;
461 float m_HandForwardMultiplier = 1.0f;
462 float m_HandWidthMultiplier = 1.0f;
463 float m_HandHeightMultiplier = 1.0f;
466 float m_DefaultHipBend = 0.0f;
467 float m_DefaultSpineBend = 0.0f;
468 float m_DefaultNeckBend = 0.0f;
470 float m_SpineBendMultiplier = 1.0f;
471 float m_SpineAngleMultiplier = 1.0f;
472 float m_SpineTwistMultiplier = 1.0f;
533 uint32_t m_SkeletonID;
540 int64_t m_LastUpdateTime = 0;
552 uint32_t m_SkeletonId = 0;
573 uint32_t m_SkeletonID;
589 int64_t m_LastUpdateTime = 0;
603 bool m_IsHmd =
false;
621 typedef void(*ConnectedToCoreCallback_t)(void);
622 typedef void(*DisconnectedFromCoreCallback_t)(void);
631 #endif // #ifndef H_CORESDKWRAPPERTYPES
struct ManusVersion ManusVersion
Stores a single version string.
WrapperReturnCode
The return values that can be given by SDK wrapper functions.
Definition: CoreSdkWrapperTypes.h:102
uint32_t WrapperReturnCode_t
The type used for the return values of SDK wrapper functions.
Definition: CoreSdkWrapperTypes.h:148
ManusQuaternion m_Joints[NUM_FINGERS_ON_HAND][NUM_PHALANGES_IN_FINGER]
Orientation of skeletal joints, from thumb to pinky.
Definition: CoreSdkWrapperTypes.h:375
@ eHANDLOCALTO_ROOT
Hand rotation and translation is relative to the skeleton's root.
Definition: CoreSdkWrapperTypes.h:204
@ eCORESDKWRAPPER_SDK_NOT_AVAILABLE
The Core SDK is not available.
Definition: CoreSdkWrapperTypes.h:120
@ ePOLYGONTARGETCASE_BODYESTIMATION
The Polygon skeleton will be generated from tracking data.
Definition: CoreSdkWrapperTypes.h:256
PolygonTarget m_Target
Polygon retargeting target.
Definition: CoreSdkWrapperTypes.h:566
BodyEstimationTarget m_BodyEstimationTarget
The target for body estimation targeting.
Definition: CoreSdkWrapperTypes.h:526
struct TrackerData TrackerData
All the tracker data that can be sent or received.
#define MAX_NUM_CHARS_IN_VERSION
Used to descriptively refer to the maximum version string length.
Definition: CoreSdkWrapperTypes.h:91
@ eHANDLOCALTO_ARMS
Hand rotation and translation is relative to the skeleton's arms.
Definition: CoreSdkWrapperTypes.h:213
@ eHANDTYPE_LEFT_HAND
Selects the left hand.
Definition: CoreSdkWrapperTypes.h:157
struct TargetSkeletonTarget TargetSkeletonTarget
Stores the name of a skeleton target.
#define MAX_NUM_IMUS_ON_GLOVE
Used to descriptively refer to the maximum IMUs count on a glove.
Definition: CoreSdkWrapperTypes.h:44
struct BodyEstimationTarget BodyEstimationTarget
Stores the target to be used for body estimation.
@ eHANDLOCALTO_HIPS
Hand rotation and translation is relative to the skeleton's hips.
Definition: CoreSdkWrapperTypes.h:207
#define NUM_FINGERS_ON_HAND
Used to descriptively refer to the number of fingers on a hand.
Definition: CoreSdkWrapperTypes.h:24
Stores a single version string.
Definition: CoreSdkWrapperTypes.h:311
struct ManusHost ManusHost
Contains information for connecting to a host running Manus Core.
int32_t m_TransmissionStrengthInDb
The strength of the glove's signal. The lower, the better.
Definition: CoreSdkWrapperTypes.h:329
struct PolygonBone PolygonBone
Polygon data for a single bone.
All data for a single glove.
Definition: CoreSdkWrapperTypes.h:409
#define MAX_NUM_USERS
Used to descriptively refer to the maximum number of Polygon users.
Definition: CoreSdkWrapperTypes.h:61
A quaternion, used for rotations.
Definition: CoreSdkWrapperTypes.h:302
Polygon data for a single bone.
Definition: CoreSdkWrapperTypes.h:484
PolygonTargetCase
The different targets a Polygon skeleton can have.
Definition: CoreSdkWrapperTypes.h:251
TrackerType
The different types of trackers that can be used.
Definition: CoreSdkWrapperTypes.h:266
@ eCORESDKWRAPPER_SUCCESS
No issues occurred.
Definition: CoreSdkWrapperTypes.h:104
struct ManusWristTransform ManusWristTransform
Processed transform of the wrist computed from tracker data.
struct PolygonTargetArgs PolygonTargetArgs
Contains everything needed to set a Polygon target.
TargetSkeletonTarget m_TargetSkeletonTarget
The name, if any, of what is being targeted.
Definition: CoreSdkWrapperTypes.h:521
HandType
Used to tell what hand is being referred to.
Definition: CoreSdkWrapperTypes.h:152
struct LessFrequentlySentData LessFrequentlySentData
All the glove data that is sent at a lower rate than other data.
@ eCORESDKWRAPPER_INTERNAL_ERROR
Something went wrong in the SDK internally.
Definition: CoreSdkWrapperTypes.h:132
struct RetargetingSettings RetargetingSettings
Polygon retargeting settings.
struct GloveData GloveData
All data for a single glove.
#define NUM_BONES_IN_POLYGON_SKELETON
Used to descriptively refer to the number of Polygon skeleton bones.
Definition: CoreSdkWrapperTypes.h:39
@ eGLOVETYPE_INVALID
An invalid value used for uninitialised variables.
Definition: CoreSdkWrapperTypes.h:184
int32_t m_UserIndex
The Polygon user number this data belongs to.
Definition: CoreSdkWrapperTypes.h:601
uint32_t m_UserIndex
The Polygon user number this data belongs to.
Definition: CoreSdkWrapperTypes.h:550
#define MAX_NUM_CHARS_IN_TRACKER_ID
Used to descriptively refer to the maximum tracker name length.
Definition: CoreSdkWrapperTypes.h:81
#define MAX_NUM_CHARS_IN_TARGET_ID
Used to descriptively refer to the maximum target name length.
Definition: CoreSdkWrapperTypes.h:86
ClientType
Used to tell what client is using the wrapper.
Definition: CoreSdkWrapperTypes.h:169
@ eCORESDKWRAPPER_FUNCTION_CALLED_AT_WRONG_TIME
The function was not intended to be called at this time.
Definition: CoreSdkWrapperTypes.h:135
struct PolygonTarget PolygonTarget
Stores the target used for Polygon.
struct PolygonSkeletonData PolygonSkeletonData
All the skeleton data that can be sent to or received from Polygon.
@ eCORESDKWRAPPER_DATA_NOT_AVAILABLE
The data requested is not available.
Definition: CoreSdkWrapperTypes.h:126
@ ePOLYGONTARGETCASE_TARGETSKELETON
Used to retarget on an existing skeleton.
Definition: CoreSdkWrapperTypes.h:261
@ eCLIENTTYPE_UNREAL
Make data work for Unreal.
Definition: CoreSdkWrapperTypes.h:177
uint32_t m_BatteryPercentage
The current charge of the battery.
Definition: CoreSdkWrapperTypes.h:326
All the tracker data that can be sent or received.
Definition: CoreSdkWrapperTypes.h:588
float m_Height
The height of the skeleton.
Definition: CoreSdkWrapperTypes.h:563
ManusQuaternion m_Imus[MAX_NUM_IMUS_ON_GLOVE]
IMU rotations.
Definition: CoreSdkWrapperTypes.h:346
Contains information for connecting to a host running Manus Core.
Definition: CoreSdkWrapperTypes.h:615
@ eCORESDKWRAPPER_ARGUMENT_SIZE_MISMATCH
Definition: CoreSdkWrapperTypes.h:114
struct TrackerId TrackerId
Stores the name of a tracker.
A 3D vector, used for translations.
Definition: CoreSdkWrapperTypes.h:294
bool m_DataIsAvailable
If the data in this struct can be used yet.
Definition: CoreSdkWrapperTypes.h:323
Polygon retargeting settings.
Definition: CoreSdkWrapperTypes.h:423
float m_HipHeightMultiplier
Change the height of the skeleton's hips.
Definition: CoreSdkWrapperTypes.h:434
bool m_ContainsValidBoneData
Can be used to ignore some bones when sending Polygon data.
Definition: CoreSdkWrapperTypes.h:490
Contains everything needed to set a Polygon target.
Definition: CoreSdkWrapperTypes.h:532
@ eCORESDKWRAPPER_NOT_CONNECTED
No connection to Core was made.
Definition: CoreSdkWrapperTypes.h:138
#define NUM_FLEX_SEGMENTS_PER_FINGER
Used to descriptively refer to the number of flex sensor segments.
Definition: CoreSdkWrapperTypes.h:34
@ eCLIENTTYPE_MOTIONBUILDER
Make data work for MotionBuilder.
Definition: CoreSdkWrapperTypes.h:174
@ eCORESDKWRAPPER_INVALID_ARGUMENT
One of the arguments given had an invalid value.
Definition: CoreSdkWrapperTypes.h:110
ManusQuaternion m_WristImu
Orientation of the wrist computed from the wrist IMU.
Definition: CoreSdkWrapperTypes.h:363
struct ManusVec3 ManusVec3
A 3D vector, used for translations.
@ eGLOVETYPE_PRIME_ONE
A Prime One glove.
Definition: CoreSdkWrapperTypes.h:191
Data required for the removal of a skeleton.
Definition: CoreSdkWrapperTypes.h:572
@ eCORESDKWRAPPER_UNSUPPORTED_STRING_SIZE_ENCOUNTERED
A string of an unsupported size was encountered.
Definition: CoreSdkWrapperTypes.h:117
@ eHANDLOCALTO_SPINE
Hand rotation and translation is relative to the skeleton's spine.
Definition: CoreSdkWrapperTypes.h:210
Stores the target used for Polygon.
Definition: CoreSdkWrapperTypes.h:512
@ eCORESDKWRAPPER_MEMORY_ERROR
Failed to allocate memory for something.
Definition: CoreSdkWrapperTypes.h:129
float m_MatchSameSpeed
Compensate for skeleton size in movement speed.
Definition: CoreSdkWrapperTypes.h:426
#define UNINITIALISED_ID
The value given to glove and dongle IDs when they are uninitialised.
Definition: CoreSdkWrapperTypes.h:94
#define MAX_NUM_CHARS_IN_HOST_NAME
Used to descriptively refer to the maximum host name length.
Definition: CoreSdkWrapperTypes.h:69
Stores the target to be used for body estimation.
Definition: CoreSdkWrapperTypes.h:506
float m_FlexSensor[NUM_FINGERS_ON_HAND][NUM_FLEX_SEGMENTS_PER_FINGER]
Flex sensor values, from thumb to pinky.
Definition: CoreSdkWrapperTypes.h:339
Stores the name of a tracker.
Definition: CoreSdkWrapperTypes.h:582
struct ManusRawData ManusRawData
Raw, unprocessed glove data.
struct RemoveSkeletonArgs RemoveSkeletonArgs
Data required for the removal of a skeleton.
@ eGLOVETYPE_APOLLO_LEGACY
Definition: CoreSdkWrapperTypes.h:188
float m_Stretch[NUM_FINGERS_ON_HAND][NUM_PHALANGES_IN_FINGER]
Finger bending values, from thumb to pinky.
Definition: CoreSdkWrapperTypes.h:388
bool m_ScaleToUser
Scale the skeleton to calibrated proportions for VR.
Definition: CoreSdkWrapperTypes.h:560
float m_SpreadDegrees[NUM_FINGERS_ON_HAND]
Finger spreading values in degrees, from thumb to pinky.
Definition: CoreSdkWrapperTypes.h:404
@ ePOLYGONTARGETCASE_NONE
An invalid value used for uninitialised variables.
Definition: CoreSdkWrapperTypes.h:253
BoneType
All the bones in a skeleton that Polygon handles.
Definition: CoreSdkWrapperTypes.h:221
ManusWristTransform m_WristTransforms[MAX_NUM_USERS]
Transform of the wrist computed from tracker data.
Definition: CoreSdkWrapperTypes.h:368
#define NUM_PHALANGES_IN_FINGER
Used to descriptively refer to the number of phalanges in a finger.
Definition: CoreSdkWrapperTypes.h:29
Raw, unprocessed glove data.
Definition: CoreSdkWrapperTypes.h:335
uint32_t TrackerType_t
Used instead of TrackerType enum values to ensure a known data size.
Definition: CoreSdkWrapperTypes.h:286
A wrapper for Polygon retargeting settings.
Definition: CoreSdkWrapperTypes.h:477
struct ManusProcessedData ManusProcessedData
Processed glove data, based on the raw data.
HandLocalTo
Used when retargeting to select what the hand is relative to.
Definition: CoreSdkWrapperTypes.h:202
All the glove data that is sent at a lower rate than other data.
Definition: CoreSdkWrapperTypes.h:317
Processed glove data, based on the raw data.
Definition: CoreSdkWrapperTypes.h:361
GloveType
Types of gloves that data can be received from.
Definition: CoreSdkWrapperTypes.h:182
@ eCLIENTTYPE_INVALID
An invalid value used for uninitialised variables.
Definition: CoreSdkWrapperTypes.h:171
float m_Spread[NUM_FINGERS_ON_HAND]
Finger spreading values, from thumb to pinky.
Definition: CoreSdkWrapperTypes.h:402
@ eHANDTYPE_RIGHT_HAND
Selects the right hand.
Definition: CoreSdkWrapperTypes.h:160
#define MAX_NUM_CHARS_IN_IP_ADDRESS
Used to descriptively refer to the maximum IP address length.
Definition: CoreSdkWrapperTypes.h:76
Stores the name of a skeleton target.
Definition: CoreSdkWrapperTypes.h:499
float m_StretchDegrees[NUM_FINGERS_ON_HAND][NUM_PHALANGES_IN_FINGER]
Finger stretch values in degrees, from thumb to pinky.
Definition: CoreSdkWrapperTypes.h:390
struct ManusQuaternion ManusQuaternion
A quaternion, used for rotations.
struct RetargetingSettingsArgs RetargetingSettingsArgs
A wrapper for Polygon retargeting settings.
PolygonTargetCase m_TargetCase
The kind of targeting to use.
Definition: CoreSdkWrapperTypes.h:514
@ eCORESDKWRAPPER_CONNECTION_TIMEOUT
The connection with Core timed out.
Definition: CoreSdkWrapperTypes.h:141
@ eCORESDKWRAPPER_ERROR
Something went wrong, but no specific reason can be given.
Definition: CoreSdkWrapperTypes.h:107
All the skeleton data that can be sent to or received from Polygon.
Definition: CoreSdkWrapperTypes.h:539
@ eGLOVETYPE_PRIME_TWO
A Prime II glove.
Definition: CoreSdkWrapperTypes.h:194
@ eHANDTYPE_INVALID
An invalid value used for uninitialised variables.
Definition: CoreSdkWrapperTypes.h:154
@ eCORESDKWRAPPER_HOST_FINDER_NOT_AVAILABLE
The network host finder is not available.
Definition: CoreSdkWrapperTypes.h:123