Class XrHandJointVelocitiesEXT
- All Implemented Interfaces:
AutoCloseable,org.lwjgl.system.NativeResource,org.lwjgl.system.Pointer
Description
The application must allocate the memory for the output array jointVelocities that can contain at least jointCount of XrHandJointVelocityEXT.
The application must input jointCount as described by the XrHandJointSetEXT when creating the XrHandTrackerEXT. Otherwise, the runtime must return ERROR_VALIDATION_FAILURE.
The runtime must update the jointVelocities array in the order so that the application can index elements using the corresponding hand joint enum (e.g. XrHandJointEXT) as described by the 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 returned jointVelocities array must be ordered to be indexed by enum XrHandJointEXT enum.
If the returned XrHandJointLocationsEXT::isActive is false, it indicates the hand tracker did not detect a hand input or the application lost input focus. In this case, the runtime must return all jointVelocities with neither SPACE_VELOCITY_LINEAR_VALID_BIT nor SPACE_VELOCITY_ANGULAR_VALID_BIT set.
If an XrHandJointVelocitiesEXT structure is chained to XrHandJointLocationsEXT::next, the returned XrHandJointLocationsEXT::isActive is true, and the velocity is observed or can be calculated by the runtime, the runtime must fill in the linear velocity of each hand joint within the reference frame of XrHandJointsLocateInfoEXT::baseSpace and set the SPACE_VELOCITY_LINEAR_VALID_BIT. Similarly, if an XrHandJointVelocitiesEXT structure is chained to XrHandJointLocationsEXT::next, the returned XrHandJointLocationsEXT::isActive is true, and the angular velocity is observed or can be calculated by the runtime, the runtime must fill in the angular velocity of each joint within the reference frame of XrHandJointsLocateInfoEXT::baseSpace and set the SPACE_VELOCITY_ANGULAR_VALID_BIT.
Valid Usage (Implicit)
- The
XR_EXT_hand_trackingextension must be enabled prior to usingXrHandJointVelocitiesEXT typemust beTYPE_HAND_JOINT_VELOCITIES_EXTnextmust beNULLor a valid pointer to the next structure in a structure chainjointVelocitiesmust be a pointer to an array ofjointCountXrHandJointVelocityEXTstructures- The
jointCountparameter must be greater than 0
See Also
XrHandJointLocationsEXT, XrHandJointVelocityEXT
Layout
struct XrHandJointVelocitiesEXT {
XrStructureType type();
void * next();
uint32_t jointCount();
XrHandJointVelocityEXT * jointVelocities();
}-
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 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
ConstructorsConstructorDescriptionXrHandJointVelocitiesEXT(ByteBuffer container) Creates aXrHandJointVelocitiesEXTinstance at the current position of the specifiedByteBuffercontainer. -
Method Summary
Modifier and TypeMethodDescriptionstatic XrHandJointVelocitiesEXTcalloc()Returns a newXrHandJointVelocitiesEXTinstance allocated withmemCalloc.calloc(int capacity) Returns a newXrHandJointVelocitiesEXT.Bufferinstance allocated withmemCalloc.calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointVelocitiesEXT.Bufferinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static XrHandJointVelocitiesEXTcalloc(org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointVelocitiesEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.static XrHandJointVelocitiesEXTcreate()Returns a newXrHandJointVelocitiesEXTinstance allocated withBufferUtils.create(int capacity) Returns a newXrHandJointVelocitiesEXT.Bufferinstance allocated withBufferUtils.static XrHandJointVelocitiesEXTcreate(long address) Returns a newXrHandJointVelocitiesEXTinstance for the specified memory address.create(long address, int capacity) Create aXrHandJointVelocitiesEXT.Bufferinstance at the specified memory.static @Nullable XrHandJointVelocitiesEXTcreateSafe(long address) static @Nullable XrHandJointVelocitiesEXT.BuffercreateSafe(long address, int capacity) intauint32_tdescribing the number of elements injointVelocitiesarray.an array ofXrHandJointVelocityEXTreceiving the returned hand joint velocities.Sets the address of the specifiedXrHandJointVelocityEXT.Bufferto thejointVelocities()field.static XrHandJointVelocitiesEXTmalloc()Returns a newXrHandJointVelocitiesEXTinstance allocated withmemAlloc.malloc(int capacity) Returns a newXrHandJointVelocitiesEXT.Bufferinstance allocated withmemAlloc.malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointVelocitiesEXT.Bufferinstance allocated on the specifiedMemoryStack.static XrHandJointVelocitiesEXTmalloc(org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointVelocitiesEXTinstance allocated on the specifiedMemoryStack.longnext()NULLor a pointer to the next structure in a structure chain.next(long value) Sets the specified value to thenext()field.static intnjointCount(long struct) Unsafe version ofjointCount().static voidnjointCount(long struct, int value) Sets the specified value to thejointCountfield of the specifiedstruct.njointVelocities(long struct) Unsafe version ofjointVelocities().static voidnjointVelocities(long struct, XrHandJointVelocityEXT.Buffer value) Unsafe version ofjointVelocities.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, XrHandJointVelocityEXT.Buffer jointVelocities) 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_VELOCITIES_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. -
JOINTCOUNT
public static final int JOINTCOUNTThe struct member offsets. -
JOINTVELOCITIES
public static final int JOINTVELOCITIESThe struct member offsets.
-
-
Constructor Details
-
XrHandJointVelocitiesEXT
Creates aXrHandJointVelocitiesEXTinstance 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<XrHandJointVelocitiesEXT>
-
type
public int type()theXrStructureTypeof this structure. -
next
public long next()NULLor a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR or this extension. -
jointCount
public int jointCount()auint32_tdescribing the number of elements injointVelocitiesarray. -
jointVelocities
an array ofXrHandJointVelocityEXTreceiving the returned hand joint velocities. -
type
Sets the specified value to thetype()field. -
type$Default
Sets theTYPE_HAND_JOINT_VELOCITIES_EXTvalue to thetype()field. -
next
Sets the specified value to thenext()field. -
jointVelocities
Sets the address of the specifiedXrHandJointVelocityEXT.Bufferto thejointVelocities()field. -
set
public XrHandJointVelocitiesEXT set(int type, long next, XrHandJointVelocityEXT.Buffer jointVelocities) 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 newXrHandJointVelocitiesEXTinstance allocated withmemAlloc. The instance must be explicitly freed. -
calloc
Returns a newXrHandJointVelocitiesEXTinstance allocated withmemCalloc. The instance must be explicitly freed. -
create
Returns a newXrHandJointVelocitiesEXTinstance allocated withBufferUtils. -
create
Returns a newXrHandJointVelocitiesEXTinstance for the specified memory address. -
createSafe
-
malloc
Returns a newXrHandJointVelocitiesEXT.Bufferinstance allocated withmemAlloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
calloc
Returns a newXrHandJointVelocitiesEXT.Bufferinstance allocated withmemCalloc. The instance must be explicitly freed.- Parameters:
capacity- the buffer capacity
-
create
Returns a newXrHandJointVelocitiesEXT.Bufferinstance allocated withBufferUtils.- Parameters:
capacity- the buffer capacity
-
create
Create aXrHandJointVelocitiesEXT.Bufferinstance at the specified memory.- Parameters:
address- the memory addresscapacity- the buffer capacity
-
createSafe
-
malloc
Returns a newXrHandJointVelocitiesEXTinstance allocated on the specifiedMemoryStack.- Parameters:
stack- the stack from which to allocate
-
calloc
Returns a newXrHandJointVelocitiesEXTinstance allocated on the specifiedMemoryStackand initializes all its bits to zero.- Parameters:
stack- the stack from which to allocate
-
malloc
public static XrHandJointVelocitiesEXT.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointVelocitiesEXT.Bufferinstance allocated on the specifiedMemoryStack.- Parameters:
capacity- the buffer capacitystack- the stack from which to allocate
-
calloc
public static XrHandJointVelocitiesEXT.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack) Returns a newXrHandJointVelocitiesEXT.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(). -
njointCount
public static int njointCount(long struct) Unsafe version ofjointCount(). -
njointVelocities
Unsafe version ofjointVelocities(). -
ntype
public static void ntype(long struct, int value) Unsafe version oftype. -
nnext
public static void nnext(long struct, long value) Unsafe version ofnext. -
njointCount
public static void njointCount(long struct, int value) Sets the specified value to thejointCountfield of the specifiedstruct. -
njointVelocities
Unsafe version ofjointVelocities. -
validate
public static void validate(long struct) Validates pointer members that should not beNULL.- Parameters:
struct- the struct to validate
-