Class AIFace

  • All Implemented Interfaces:
    java.lang.AutoCloseable, NativeResource, Pointer

    public class AIFace
    extends Struct
    implements NativeResource
    A single face in a mesh, referring to multiple vertices.

    If mNumIndices is 3, we call the face 'triangle', for mNumIndices > 3 it's called 'polygon' (hey, that's just a definition!).

    AIMesh::mPrimitiveTypes can be queried to quickly examine which types of primitive are actually present in a mesh. The Process_SortByPType flag executes a special post-processing algorithm which splits meshes with *different* primitive types mixed up (e.g. lines and triangles) in several 'clean' submeshes. Furthermore there is a configuration option (Assimp.AI_CONFIG_PP_SBP_REMOVE) to force Process_SortByPType to remove specific kinds of primitives from the imported scene, completely and forever.

    Member documentation

    • mNumIndices – Number of indices defining this face. The maximum value for this member is Assimp.AI_MAX_FACE_INDICES.
    • mIndices – Pointer to the indices array. Size of the array is given in numIndices.

    Layout

    
     struct aiFace {
         unsigned int mNumIndices;
         unsigned int * mIndices;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • MNUMINDICES, MINDICES

        The struct member offsets.
    • Constructor Detail

      • AIFace

        public AIFace​(java.nio.ByteBuffer container)
        Creates a AIFace 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 Detail

      • sizeof

        public int sizeof()
        Description copied from class: Struct
        Returns sizeof(struct).
        Specified by:
        sizeof in class Struct
      • mNumIndices

        public int mNumIndices()
        Returns the value of the mNumIndices field.
      • mIndices

        public java.nio.IntBuffer mIndices()
        Returns a IntBuffer view of the data pointed to by the mIndices field.
      • mIndices

        public AIFace mIndices​(java.nio.IntBuffer value)
        Sets the address of the specified IntBuffer to the mIndices field.
      • set

        public AIFace set​(AIFace src)
        Copies the specified struct data to this struct.
        Parameters:
        src - the source struct
        Returns:
        this struct
      • malloc

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

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

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

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

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

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

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

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

        public static AIFace mallocStack()
        Returns a new AIFace instance allocated on the thread-local MemoryStack.
      • callocStack

        public static AIFace callocStack()
        Returns a new AIFace instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
      • mallocStack

        public static AIFace mallocStack​(MemoryStack stack)
        Returns a new AIFace instance allocated on the specified MemoryStack.
        Parameters:
        stack - the stack from which to allocate
      • callocStack

        public static AIFace callocStack​(MemoryStack stack)
        Returns a new AIFace instance allocated on the specified MemoryStack and initializes all its bits to zero.
        Parameters:
        stack - the stack from which to allocate
      • mallocStack

        public static AIFace.Buffer mallocStack​(int capacity)
        Returns a new AIFace.Buffer instance allocated on the thread-local MemoryStack.
        Parameters:
        capacity - the buffer capacity
      • callocStack

        public static AIFace.Buffer callocStack​(int capacity)
        Returns a new AIFace.Buffer instance allocated on the thread-local MemoryStack and initializes all its bits to zero.
        Parameters:
        capacity - the buffer capacity
      • mallocStack

        public static AIFace.Buffer mallocStack​(int capacity,
                                                MemoryStack stack)
        Returns a new AIFace.Buffer instance allocated on the specified MemoryStack.
        Parameters:
        stack - the stack from which to allocate
        capacity - the buffer capacity
      • callocStack

        public static AIFace.Buffer callocStack​(int capacity,
                                                MemoryStack stack)
        Returns a new AIFace.Buffer instance allocated on the specified MemoryStack and initializes all its bits to zero.
        Parameters:
        stack - the stack from which to allocate
        capacity - the buffer capacity
      • nmNumIndices

        public static int nmNumIndices​(long struct)
        Unsafe version of mNumIndices().
      • nmIndices

        public static java.nio.IntBuffer nmIndices​(long struct)
        Unsafe version of mIndices.
      • nmNumIndices

        public static void nmNumIndices​(long struct,
                                        int value)
        Sets the specified value to the mNumIndices field of the specified struct.
      • nmIndices

        public static void nmIndices​(long struct,
                                     java.nio.IntBuffer value)
        Unsafe version of mIndices.
      • validate

        public static void validate​(long struct)
        Validates pointer members that should not be NULL.
        Parameters:
        struct - the struct to validate
      • validate

        public static void validate​(long array,
                                    int count)
        Calls validate(long) for each struct contained in the specified struct array.
        Parameters:
        array - the struct array to validate
        count - the number of structs in array