Class XrHandTrackingMeshFB

java.lang.Object
org.lwjgl.system.Pointer.Default
org.lwjgl.system.Struct<XrHandTrackingMeshFB>
org.lwjgl.openxr.XrHandTrackingMeshFB
All Implemented Interfaces:
AutoCloseable, org.lwjgl.system.NativeResource, org.lwjgl.system.Pointer

public class XrHandTrackingMeshFB extends org.lwjgl.system.Struct<XrHandTrackingMeshFB> implements org.lwjgl.system.NativeResource
A container of mesh data.
Description

All arrays are application-allocated, and all may be NULL if any of jointCapacityInput, vertexCapacityInput, or indexCapacityInput is 0.

The data in a fully-populated XrHandTrackingMeshFB is immutable during the lifetime of the corresponding XrInstance, and is intended to be retrieved once then used in combination with data changing per-frame retrieved from LocateHandJointsEXT.

Valid Usage (Implicit)
  • The XR_FB_hand_tracking_mesh extension must be enabled prior to using XrHandTrackingMeshFB
  • type must be TYPE_HAND_TRACKING_MESH_FB
  • next must be NULL or a valid pointer to the next structure in a structure chain
  • If jointCapacityInput is not 0, jointBindPoses must be a pointer to an array of jointCapacityInput XrPosef structures
  • If jointCapacityInput is not 0, jointRadii must be a pointer to an array of jointCapacityInput float values
  • If jointCapacityInput is not 0, jointParents must be a pointer to an array of jointCapacityInput XrHandJointEXT values
  • If vertexCapacityInput is not 0, vertexPositions must be a pointer to an array of vertexCapacityInput XrVector3f structures
  • If vertexCapacityInput is not 0, vertexNormals must be a pointer to an array of vertexCapacityInput XrVector3f structures
  • If vertexCapacityInput is not 0, vertexUVs must be a pointer to an array of vertexCapacityInput XrVector2f structures
  • If vertexCapacityInput is not 0, vertexBlendIndices must be a pointer to an array of vertexCapacityInput XrVector4sFB structures
  • If vertexCapacityInput is not 0, vertexBlendWeights must be a pointer to an array of vertexCapacityInput XrVector4f structures
  • If indexCapacityInput is not 0, indices must be a pointer to an array of indexCapacityInput int16_t values
See Also

XrPosef, XrVector2f, XrVector3f, XrVector4f, XrVector4sFB, GetHandMeshFB

Layout


 struct XrHandTrackingMeshFB {
     XrStructureType type();
     void * next();
     uint32_t jointCapacityInput();
     uint32_t jointCountOutput();
     XrPosef * jointBindPoses();
     float * jointRadii();
     XrHandJointEXT * jointParents();
     uint32_t vertexCapacityInput();
     uint32_t vertexCountOutput();
     XrVector3f * vertexPositions();
     XrVector3f * vertexNormals();
     XrVector2f * vertexUVs();
     XrVector4sFB * vertexBlendIndices();
     XrVector4f * vertexBlendWeights();
     uint32_t indexCapacityInput();
     uint32_t indexCountOutput();
     int16_t * indices();
 }
  • Field Details

    • SIZEOF

      public static final int SIZEOF
      The struct size in bytes.
    • ALIGNOF

      public static final int ALIGNOF
      The struct alignment in bytes.
    • TYPE

      public static final int TYPE
      The struct member offsets.
    • NEXT

      public static final int NEXT
      The struct member offsets.
    • JOINTCAPACITYINPUT

      public static final int JOINTCAPACITYINPUT
      The struct member offsets.
    • JOINTCOUNTOUTPUT

      public static final int JOINTCOUNTOUTPUT
      The struct member offsets.
    • JOINTBINDPOSES

      public static final int JOINTBINDPOSES
      The struct member offsets.
    • JOINTRADII

      public static final int JOINTRADII
      The struct member offsets.
    • JOINTPARENTS

      public static final int JOINTPARENTS
      The struct member offsets.
    • VERTEXCAPACITYINPUT

      public static final int VERTEXCAPACITYINPUT
      The struct member offsets.
    • VERTEXCOUNTOUTPUT

      public static final int VERTEXCOUNTOUTPUT
      The struct member offsets.
    • VERTEXPOSITIONS

      public static final int VERTEXPOSITIONS
      The struct member offsets.
    • VERTEXNORMALS

      public static final int VERTEXNORMALS
      The struct member offsets.
    • VERTEXUVS

      public static final int VERTEXUVS
      The struct member offsets.
    • VERTEXBLENDINDICES

      public static final int VERTEXBLENDINDICES
      The struct member offsets.
    • VERTEXBLENDWEIGHTS

      public static final int VERTEXBLENDWEIGHTS
      The struct member offsets.
    • INDEXCAPACITYINPUT

      public static final int INDEXCAPACITYINPUT
      The struct member offsets.
    • INDEXCOUNTOUTPUT

      public static final int INDEXCOUNTOUTPUT
      The struct member offsets.
    • INDICES

      public static final int INDICES
      The struct member offsets.
  • Constructor Details

    • XrHandTrackingMeshFB

      public XrHandTrackingMeshFB(ByteBuffer container)
      Creates a XrHandTrackingMeshFB instance at the current position of the specified ByteBuffer container. 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:
      sizeof in class org.lwjgl.system.Struct<XrHandTrackingMeshFB>
    • type

      public int type()
      the XrStructureType of this structure.
    • next

      public long next()
      NULL or a pointer to the next structure in a structure chain. No such structures are defined in core OpenXR or this extension.
    • jointCapacityInput

      public int jointCapacityInput()
      the capacity of the joint data arrays in this structure, or 0 to indicate a request to retrieve the required capacity.
    • jointCountOutput

      public int jointCountOutput()
      filled in by the runtime with the count of joint data elements written, or the required capacity in the case that any of jointCapacityInput, vertexCapacityInput, or indexCapacityInput is insufficient.
    • jointBindPoses

      public @Nullable XrPosef.Buffer jointBindPoses()
      an array of poses that matches what is returned by LocateHandJointsEXT which describes the hand skeleton’s bind pose.
    • jointRadii

      public @Nullable FloatBuffer jointRadii()
      an array of joint radii at bind pose.
    • jointParents

      public @Nullable IntBuffer jointParents()
      an array of joint parents to define a bone hierarchy for the hand skeleton.
    • vertexCapacityInput

      public int vertexCapacityInput()
      the capacity of the vertex data arrays in this structure, or 0 to indicate a request to retrieve the required capacity.
    • vertexCountOutput

      public int vertexCountOutput()
      filled in by the runtime with the count of vertex data elements written, or the required capacity in the case that any of jointCapacityInput, vertexCapacityInput, or indexCapacityInput is insufficient.
    • vertexPositions

      public @Nullable XrVector3f.Buffer vertexPositions()
      an array of 3D vertex positions.
    • vertexNormals

      public @Nullable XrVector3f.Buffer vertexNormals()
      an array of 3D vertex normals.
    • vertexUVs

      public @Nullable XrVector2f.Buffer vertexUVs()
      an array of texture coordinates for this vertex.
    • vertexBlendIndices

      public @Nullable XrVector4sFB.Buffer vertexBlendIndices()
      an array of bone blend indices.
    • vertexBlendWeights

      public @Nullable XrVector4f.Buffer vertexBlendWeights()
      an array of bone blend weights.
    • indexCapacityInput

      public int indexCapacityInput()
      the capacity of the index data arrays in this structure, or 0 to indicate a request to retrieve the required capacity.
    • indexCountOutput

      public int indexCountOutput()
      filled in by the runtime with the count of index data elements written, or the required capacity in the case that any of jointCapacityInput, vertexCapacityInput, or indexCapacityInput is insufficient.
    • indices

      public @Nullable ShortBuffer indices()
      an array of triangle indices.
    • type

      public XrHandTrackingMeshFB type(int value)
      Sets the specified value to the type() field.
    • type$Default

      public XrHandTrackingMeshFB type$Default()
      Sets the TYPE_HAND_TRACKING_MESH_FB value to the type() field.
    • next

      public XrHandTrackingMeshFB next(long value)
      Sets the specified value to the next() field.
    • jointCapacityInput

      public XrHandTrackingMeshFB jointCapacityInput(int value)
      Sets the specified value to the jointCapacityInput() field.
    • jointCountOutput

      public XrHandTrackingMeshFB jointCountOutput(int value)
      Sets the specified value to the jointCountOutput() field.
    • jointBindPoses

      public XrHandTrackingMeshFB jointBindPoses(@Nullable XrPosef.Buffer value)
      Sets the address of the specified XrPosef.Buffer to the jointBindPoses() field.
    • jointRadii

      public XrHandTrackingMeshFB jointRadii(@Nullable FloatBuffer value)
      Sets the address of the specified FloatBuffer to the jointRadii() field.
    • jointParents

      public XrHandTrackingMeshFB jointParents(@Nullable IntBuffer value)
      Sets the address of the specified IntBuffer to the jointParents() field.
    • vertexCapacityInput

      public XrHandTrackingMeshFB vertexCapacityInput(int value)
      Sets the specified value to the vertexCapacityInput() field.
    • vertexCountOutput

      public XrHandTrackingMeshFB vertexCountOutput(int value)
      Sets the specified value to the vertexCountOutput() field.
    • vertexPositions

      public XrHandTrackingMeshFB vertexPositions(@Nullable XrVector3f.Buffer value)
      Sets the address of the specified XrVector3f.Buffer to the vertexPositions() field.
    • vertexNormals

      public XrHandTrackingMeshFB vertexNormals(@Nullable XrVector3f.Buffer value)
      Sets the address of the specified XrVector3f.Buffer to the vertexNormals() field.
    • vertexUVs

      public XrHandTrackingMeshFB vertexUVs(@Nullable XrVector2f.Buffer value)
      Sets the address of the specified XrVector2f.Buffer to the vertexUVs() field.
    • vertexBlendIndices

      public XrHandTrackingMeshFB vertexBlendIndices(@Nullable XrVector4sFB.Buffer value)
      Sets the address of the specified XrVector4sFB.Buffer to the vertexBlendIndices() field.
    • vertexBlendWeights

      public XrHandTrackingMeshFB vertexBlendWeights(@Nullable XrVector4f.Buffer value)
      Sets the address of the specified XrVector4f.Buffer to the vertexBlendWeights() field.
    • indexCapacityInput

      public XrHandTrackingMeshFB indexCapacityInput(int value)
      Sets the specified value to the indexCapacityInput() field.
    • indexCountOutput

      public XrHandTrackingMeshFB indexCountOutput(int value)
      Sets the specified value to the indexCountOutput() field.
    • indices

      public XrHandTrackingMeshFB indices(@Nullable ShortBuffer value)
      Sets the address of the specified ShortBuffer to the indices() field.
    • set

      public XrHandTrackingMeshFB set(int type, long next, int jointCapacityInput, int jointCountOutput, @Nullable XrPosef.Buffer jointBindPoses, @Nullable FloatBuffer jointRadii, @Nullable IntBuffer jointParents, int vertexCapacityInput, int vertexCountOutput, @Nullable XrVector3f.Buffer vertexPositions, @Nullable XrVector3f.Buffer vertexNormals, @Nullable XrVector2f.Buffer vertexUVs, @Nullable XrVector4sFB.Buffer vertexBlendIndices, @Nullable XrVector4f.Buffer vertexBlendWeights, int indexCapacityInput, int indexCountOutput, @Nullable ShortBuffer indices)
      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

      public static XrHandTrackingMeshFB malloc()
      Returns a new XrHandTrackingMeshFB instance allocated with memAlloc. The instance must be explicitly freed.
    • calloc

      public static XrHandTrackingMeshFB calloc()
      Returns a new XrHandTrackingMeshFB instance allocated with memCalloc. The instance must be explicitly freed.
    • create

      public static XrHandTrackingMeshFB create()
      Returns a new XrHandTrackingMeshFB instance allocated with BufferUtils.
    • create

      public static XrHandTrackingMeshFB create(long address)
      Returns a new XrHandTrackingMeshFB instance for the specified memory address.
    • createSafe

      public static @Nullable XrHandTrackingMeshFB createSafe(long address)
      Like create, but returns null if address is NULL.
    • malloc

      public static XrHandTrackingMeshFB.Buffer malloc(int capacity)
      Returns a new XrHandTrackingMeshFB.Buffer instance allocated with memAlloc. The instance must be explicitly freed.
      Parameters:
      capacity - the buffer capacity
    • calloc

      public static XrHandTrackingMeshFB.Buffer calloc(int capacity)
      Returns a new XrHandTrackingMeshFB.Buffer instance allocated with memCalloc. The instance must be explicitly freed.
      Parameters:
      capacity - the buffer capacity
    • create

      public static XrHandTrackingMeshFB.Buffer create(int capacity)
      Returns a new XrHandTrackingMeshFB.Buffer instance allocated with BufferUtils.
      Parameters:
      capacity - the buffer capacity
    • create

      public static XrHandTrackingMeshFB.Buffer create(long address, int capacity)
      Create a XrHandTrackingMeshFB.Buffer instance at the specified memory.
      Parameters:
      address - the memory address
      capacity - the buffer capacity
    • createSafe

      public static @Nullable XrHandTrackingMeshFB.Buffer createSafe(long address, int capacity)
      Like create, but returns null if address is NULL.
    • malloc

      public static XrHandTrackingMeshFB malloc(org.lwjgl.system.MemoryStack stack)
      Returns a new XrHandTrackingMeshFB instance allocated on the specified MemoryStack.
      Parameters:
      stack - the stack from which to allocate
    • calloc

      public static XrHandTrackingMeshFB calloc(org.lwjgl.system.MemoryStack stack)
      Returns a new XrHandTrackingMeshFB instance allocated on the specified MemoryStack and initializes all its bits to zero.
      Parameters:
      stack - the stack from which to allocate
    • malloc

      public static XrHandTrackingMeshFB.Buffer malloc(int capacity, org.lwjgl.system.MemoryStack stack)
      Returns a new XrHandTrackingMeshFB.Buffer instance allocated on the specified MemoryStack.
      Parameters:
      capacity - the buffer capacity
      stack - the stack from which to allocate
    • calloc

      public static XrHandTrackingMeshFB.Buffer calloc(int capacity, org.lwjgl.system.MemoryStack stack)
      Returns a new XrHandTrackingMeshFB.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.
      Parameters:
      capacity - the buffer capacity
      stack - the stack from which to allocate
    • ntype

      public static int ntype(long struct)
      Unsafe version of type().
    • nnext

      public static long nnext(long struct)
      Unsafe version of next().
    • njointCapacityInput

      public static int njointCapacityInput(long struct)
      Unsafe version of jointCapacityInput().
    • njointCountOutput

      public static int njointCountOutput(long struct)
      Unsafe version of jointCountOutput().
    • njointBindPoses

      public static @Nullable XrPosef.Buffer njointBindPoses(long struct)
      Unsafe version of jointBindPoses().
    • njointRadii

      public static @Nullable FloatBuffer njointRadii(long struct)
      Unsafe version of jointRadii.
    • njointParents

      public static @Nullable IntBuffer njointParents(long struct)
      Unsafe version of jointParents.
    • nvertexCapacityInput

      public static int nvertexCapacityInput(long struct)
      Unsafe version of vertexCapacityInput().
    • nvertexCountOutput

      public static int nvertexCountOutput(long struct)
      Unsafe version of vertexCountOutput().
    • nvertexPositions

      public static @Nullable XrVector3f.Buffer nvertexPositions(long struct)
      Unsafe version of vertexPositions().
    • nvertexNormals

      public static @Nullable XrVector3f.Buffer nvertexNormals(long struct)
      Unsafe version of vertexNormals().
    • nvertexUVs

      public static @Nullable XrVector2f.Buffer nvertexUVs(long struct)
      Unsafe version of vertexUVs().
    • nvertexBlendIndices

      public static @Nullable XrVector4sFB.Buffer nvertexBlendIndices(long struct)
      Unsafe version of vertexBlendIndices().
    • nvertexBlendWeights

      public static @Nullable XrVector4f.Buffer nvertexBlendWeights(long struct)
      Unsafe version of vertexBlendWeights().
    • nindexCapacityInput

      public static int nindexCapacityInput(long struct)
      Unsafe version of indexCapacityInput().
    • nindexCountOutput

      public static int nindexCountOutput(long struct)
      Unsafe version of indexCountOutput().
    • nindices

      public static @Nullable ShortBuffer nindices(long struct)
      Unsafe version of indices.
    • ntype

      public static void ntype(long struct, int value)
      Unsafe version of type.
    • nnext

      public static void nnext(long struct, long value)
      Unsafe version of next.
    • njointCapacityInput

      public static void njointCapacityInput(long struct, int value)
      Sets the specified value to the jointCapacityInput field of the specified struct.
    • njointCountOutput

      public static void njointCountOutput(long struct, int value)
      Unsafe version of jointCountOutput.
    • njointBindPoses

      public static void njointBindPoses(long struct, @Nullable XrPosef.Buffer value)
      Unsafe version of jointBindPoses.
    • njointRadii

      public static void njointRadii(long struct, @Nullable FloatBuffer value)
      Unsafe version of jointRadii.
    • njointParents

      public static void njointParents(long struct, @Nullable IntBuffer value)
      Unsafe version of jointParents.
    • nvertexCapacityInput

      public static void nvertexCapacityInput(long struct, int value)
      Sets the specified value to the vertexCapacityInput field of the specified struct.
    • nvertexCountOutput

      public static void nvertexCountOutput(long struct, int value)
      Unsafe version of vertexCountOutput.
    • nvertexPositions

      public static void nvertexPositions(long struct, @Nullable XrVector3f.Buffer value)
      Unsafe version of vertexPositions.
    • nvertexNormals

      public static void nvertexNormals(long struct, @Nullable XrVector3f.Buffer value)
      Unsafe version of vertexNormals.
    • nvertexUVs

      public static void nvertexUVs(long struct, @Nullable XrVector2f.Buffer value)
      Unsafe version of vertexUVs.
    • nvertexBlendIndices

      public static void nvertexBlendIndices(long struct, @Nullable XrVector4sFB.Buffer value)
      Unsafe version of vertexBlendIndices.
    • nvertexBlendWeights

      public static void nvertexBlendWeights(long struct, @Nullable XrVector4f.Buffer value)
      Unsafe version of vertexBlendWeights.
    • nindexCapacityInput

      public static void nindexCapacityInput(long struct, int value)
      Sets the specified value to the indexCapacityInput field of the specified struct.
    • nindexCountOutput

      public static void nindexCountOutput(long struct, int value)
      Unsafe version of indexCountOutput.
    • nindices

      public static void nindices(long struct, @Nullable ShortBuffer value)
      Unsafe version of indices.