Class XrHandJointLocationsEXT
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
Description
The application must allocate the memory for the output array jointLocations that can contain at least jointCount of XrHandJointLocationEXT.
The application must set jointCount as described by the XrHandJointSetEXT when creating the XrHandTrackerEXT otherwise the runtime must return ERROR_VALIDATION_FAILURE.
The runtime must return jointLocations representing the range of motion of a human hand, without any obstructions. Input systems that obstruct the movement of the user’s hand (e.g.: a held controller preventing the user from making a fist) or that have only limited ability to track finger positions must use the information available to them to emulate an unobstructed range of motion.
The runtime must update the jointLocations array ordered so that the application can index elements using the corresponding hand joint enum (e.g. XrHandJointEXT) as described by XrHandJointSetEXT when creating the XrHandTrackerEXT. For example, when the XrHandTrackerEXT is created with HAND_JOINT_SET_DEFAULT_EXT, the application must set the jointCount to HAND_JOINT_COUNT_EXT, and the runtime must fill the jointLocations array ordered so that it may be indexed by the XrHandJointEXT enum.
If the returned isActive is true, the runtime must return all joint locations with both SPACE_LOCATION_POSITION_VALID_BIT and SPACE_LOCATION_ORIENTATION_VALID_BIT set. Although, in this case, some joint space locations may be untracked (i.e. SPACE_LOCATION_POSITION_TRACKED_BIT or SPACE_LOCATION_ORIENTATION_TRACKED_BIT is unset).
If the returned isActive is false, it indicates the hand tracker did not detect the hand input or the application lost input focus. In this case, the runtime must return all jointLocations with neither SPACE_LOCATION_POSITION_VALID_BIT nor SPACE_LOCATION_ORIENTATION_VALID_BIT set.
Valid Usage (Implicit)
- The
XR_EXT_hand_trackingextension must be enabled prior to usingXrHandJointLocationsEXT typemust beTYPE_HAND_JOINT_LOCATIONS_EXTnextmust beNULLor a valid pointer to the next structure in a structure chain. See also:XrHandJointVelocitiesEXT,XrHandTrackingAimStateFB,XrHandTrackingCapsulesStateFB,XrHandTrackingDataSourceStateEXT,XrHandTrackingScaleFBjointLocationsmust be a pointer to an array ofjointCountXrHandJointLocationEXTstructures- The
jointCountparameter must be greater than 0
See Also
XrHandJointLocationEXT, LocateHandJointsEXT
Layout
struct XrHandJointLocationsEXT {
XrStructureType type();
void * next();
XrBool32 isActive();
uint32_t jointCount();
XrHandJointLocationEXT * jointLocations();
}-
Nested Class Summary
Nested ClassesNested classes/interfaces inherited from class org.lwjgl.system.Struct
org.lwjgl.system.Struct.StructValidationNested classes/interfaces inherited from interface org.lwjgl.system.Pointer
org.lwjgl.system.Pointer.Default -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final intThe struct alignment in bytes.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct member offsets.static final intThe struct size in bytes.static final intThe struct member offsets.Fields inherited from interface org.lwjgl.system.Pointer
BITS32, BITS64, CLONG_SHIFT, CLONG_SIZE, POINTER_SHIFT, POINTER_SIZE -
Constructor Summary
ConstructorsConstructorDescriptionXrHandJointLocationsEXT(ByteBuffer container) Creates aXrHandJointLocationsEXTinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionstatic XrHandJointLocationsEXTcalloc()Returns a newXrHandJointLocationsEXTinstance allocated withmemCalloc.calloc(int capacity) Returns a newXrHandJointLocationsEXT.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointLocationsEXT.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static XrHandJointLocationsEXTcalloc(org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointLocationsEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static XrHandJointLocationsEXTcreate()Returns a newXrHandJointLocationsEXTinstance allocated withBufferUtils.create(int capacity) Returns a newXrHandJointLocationsEXT.Bufferinstance allocated withBufferUtils.static XrHandJointLocationsEXTcreate(long address) Returns a newXrHandJointLocationsEXTinstance for the specified memory address.create(long address, int capacity) Create aXrHandJointLocationsEXT.Bufferinstance at the specified memory.static @Nullable XrHandJointLocationsEXTcreateSafe(long address) static @Nullable XrHandJointLocationsEXT.BuffercreateSafe(long address, int capacity) booleanisActive()anXrBool32indicating if the hand tracker is actively tracking.isActive(boolean value) Sets the specified value to theisActive()field.intauint32_tdescribing the count of elements injointLocationsarray.an array ofXrHandJointLocationEXTreceiving the returned hand joint locations.Sets the address of the specifiedXrHandJointLocationEXT.Bufferto thejointLocations()field.static XrHandJointLocationsEXTmalloc()Returns a newXrHandJointLocationsEXTinstance allocated withmemAlloc.malloc(int capacity) Returns a newXrHandJointLocationsEXT.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointLocationsEXT.Bufferinstance allocated on the specifiedMemoryStack.static XrHandJointLocationsEXTmalloc(org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointLocationsEXTinstance allocated on the specifiedMemoryStack.longnext()NULLor a pointer to the next structure in a structure chain, such asXrHandJointVelocitiesEXT.next(long value) Sets the specified value to thenext()field.next(XrHandJointVelocitiesEXT value) Prepends the specifiedXrHandJointVelocitiesEXTvalue to thenextchain.next(XrHandTrackingAimStateFB value) Prepends the specifiedXrHandTrackingAimStateFBvalue to thenextchain.Prepends the specifiedXrHandTrackingCapsulesStateFBvalue to thenextchain.Prepends the specifiedXrHandTrackingDataSourceStateEXTvalue to thenextchain.next(XrHandTrackingScaleFB value) Prepends the specifiedXrHandTrackingScaleFBvalue to thenextchain.static intnisActive(long struct) Unsafe version ofisActive().static voidnisActive(long struct, int value) Unsafe version ofisActive.static intnjointCount(long struct) Unsafe version ofjointCount().static voidnjointCount(long struct, int value) Sets the specified value to thejointCountfield of the specifiedstruct.njointLocations(long struct) Unsafe version ofjointLocations().static voidnjointLocations(long struct, XrHandJointLocationEXT.Buffer value) Unsafe version ofjointLocations.static longnnext(long struct) Unsafe version ofnext().static voidnnext(long struct, long value) Unsafe version ofnext.static intntype(long struct) Unsafe version oftype().static voidntype(long struct, int value) Unsafe version oftype.set(int type, long next, boolean isActive, XrHandJointLocationEXT.Buffer jointLocations) Initializes this struct with the specified values.Copies the specified struct data to this struct.intsizeof()inttype()theXrStructureTypeof this structure.type(int value) Sets the specified value to thetype()field.Sets theTYPE_HAND_JOINT_LOCATIONS_EXTvalue to thetype()field.static voidvalidate(long struct) Validates pointer members that should not beNULL.Methods inherited from class org.lwjgl.system.Struct
clear, free, isNull, validate, validateMethods inherited from class org.lwjgl.system.Pointer.Default
address, equals, hashCode, toStringMethods inherited from interface org.lwjgl.system.NativeResource
close, free
-
Field Details
-
SIZEOF
public static final int SIZEOFThe struct size in bytes. -
ALIGNOF
public static final int ALIGNOFThe struct alignment in bytes. -
TYPE
public static final int TYPEThe struct member offsets. -
NEXT
public static final int NEXTThe struct member offsets. -
ISACTIVE
public static final int ISACTIVEThe struct member offsets. -
JOINTCOUNT
public static final int JOINTCOUNTThe struct member offsets. -
JOINTLOCATIONS
public static final int JOINTLOCATIONSThe struct member offsets.
-
-
Constructor Details
-
XrHandJointLocationsEXT
Creates aXrHandJointLocationsEXTinstance at the current position of the specifiedByteBuffercontainer. Changes to the buffer's content will be visible to the struct instance and vice versa.The created instance holds a strong reference to the container object.
-
-
Method Details
-
sizeof
public int sizeof()- Specified by:
sizeofin classorg.lwjgl.system.Struct<XrHandJointLocationsEXT>
-
type
public int type()theXrStructureTypeof this structure. -
next
public long next()NULLor a pointer to the next structure in a structure chain, such asXrHandJointVelocitiesEXT. -
isActive
public boolean isActive()anXrBool32indicating if the hand tracker is actively tracking. -
jointCount
public int jointCount()auint32_tdescribing the count of elements injointLocationsarray. -
jointLocations
an array ofXrHandJointLocationEXTreceiving the returned hand joint locations. -
type
Sets the specified value to thetype()field. -
type$Default
Sets theTYPE_HAND_JOINT_LOCATIONS_EXTvalue to thetype()field. -
next
Sets the specified value to thenext()field. -
next
Prepends the specifiedXrHandJointVelocitiesEXTvalue to thenextchain. -
next
Prepends the specifiedXrHandTrackingAimStateFBvalue to thenextchain. -
next
Prepends the specifiedXrHandTrackingCapsulesStateFBvalue to thenextchain. -
next
Prepends the specifiedXrHandTrackingDataSourceStateEXTvalue to thenextchain. -
next
Prepends the specifiedXrHandTrackingScaleFBvalue to thenextchain. -
isActive
Sets the specified value to theisActive()field. -
jointLocations
Sets the address of the specifiedXrHandJointLocationEXT.Bufferto thejointLocations()field. -
set
public XrHandJointLocationsEXT set(int type, long next, boolean isActive, XrHandJointLocationEXT.Buffer jointLocations) Initializes this struct with the specified values. -
set
Copies the specified struct data to this struct.- Parameters:
src- the source struct- Returns:
- this struct
-
malloc
Returns a newXrHandJointLocationsEXTinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newXrHandJointLocationsEXTinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newXrHandJointLocationsEXTinstance allocated withBufferUtils. -
create
Returns a newXrHandJointLocationsEXTinstance for the specified memory address. -
createSafe
-
malloc
Returns a newXrHandJointLocationsEXT.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newXrHandJointLocationsEXT.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newXrHandJointLocationsEXT.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aXrHandJointLocationsEXT.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
-
malloc
Returns a newXrHandJointLocationsEXTinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newXrHandJointLocationsEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static XrHandJointLocationsEXT.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointLocationsEXT.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static XrHandJointLocationsEXT.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointLocationsEXT.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
ntype
public static int ntype(long struct) Unsafe version oftype(). -
nnext
public static long nnext(long struct) Unsafe version ofnext(). -
nisActive
public static int nisActive(long struct) Unsafe version ofisActive(). -
njointCount
public static int njointCount(long struct) Unsafe version ofjointCount(). -
njointLocations
Unsafe version ofjointLocations(). -
ntype
public static void ntype(long struct, int value) Unsafe version oftype. -
nnext
public static void nnext(long struct, long value) Unsafe version ofnext. -
nisActive
public static void nisActive(long struct, int value) Unsafe version ofisActive. -
njointCount
public static void njointCount(long struct, int value) Sets the specified value to thejointCountfield of the specifiedstruct. -
njointLocations
Unsafe version ofjointLocations. -
validate
public static void validate(long struct) Validates pointer members that should not beNULL.- Parameters:
struct- the struct to validate
-