Class AIExportDataBlob

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

    public class AIExportDataBlob
    extends org.lwjgl.system.Struct
    implements org.lwjgl.system.NativeResource
    Describes a blob of exported scene data. Use ExportSceneToBlob to create a blob containing an exported scene. The memory referred by this structure is owned by Assimp. to free its resources. Don't try to free the memory on your side - it will crash for most build configurations due to conflicting heaps.

    Blobs can be nested - each blob may reference another blob, which may in turn reference another blob and so on. This is used when exporters write more than one output file for a given AIScene. See the remarks for aiExportDataBlob::name for more information.

    Layout

    
     struct aiExportDataBlob {
         size_t size();
         void * data();
         struct aiString name();
         struct aiExportDataBlob * next();
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • SIZE, DATA, NAME, NEXT

        The struct member offsets.
    • Constructor Detail

      • AIExportDataBlob

        public AIExportDataBlob​(java.nio.ByteBuffer container)
        Creates a AIExportDataBlob 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()
        Specified by:
        sizeof in class org.lwjgl.system.Struct
      • size

        public long size()
        Size of the data in bytes
      • data

        public java.nio.ByteBuffer data()
        The data.
      • name

        public AIString name()
        Name of the blob. An empty string always indicates the first (and primary) blob, which contains the actual file data. Any other blobs are auxiliary files produced by exporters (i.e. material files). Existence of such files depends on the file format. Most formats don't split assets across multiple files.

        If used, blob names usually contain the file extension that should be used when writing the data to disc.

        The blob names generated can be influenced by setting the Assimp.AI_CONFIG_EXPORT_BLOB_NAME export property to the name that is used for the master blob. All other names are typically derived from the base name, by the file format exporter.

      • next

        @Nullable
        public AIExportDataBlob next()
        Pointer to the next blob in the chain or NULL if there is none.
      • data

        public AIExportDataBlob data​(java.nio.ByteBuffer value)
        Sets the address of the specified ByteBuffer to the data() field.
      • set

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

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

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

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

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

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

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

        @Deprecated
        public static AIExportDataBlob mallocStack​(org.lwjgl.system.MemoryStack stack)
        Deprecated.
        Deprecated for removal in 3.4.0. Use malloc(MemoryStack) instead.
      • callocStack

        @Deprecated
        public static AIExportDataBlob callocStack​(org.lwjgl.system.MemoryStack stack)
        Deprecated.
        Deprecated for removal in 3.4.0. Use calloc(MemoryStack) instead.
      • malloc

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

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

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

        public static AIExportDataBlob.Buffer calloc​(int capacity,
                                                     org.lwjgl.system.MemoryStack stack)
        Returns a new AIExportDataBlob.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
      • nsize

        public static long nsize​(long struct)
        Unsafe version of size().
      • ndata

        public static java.nio.ByteBuffer ndata​(long struct)
        Unsafe version of data.
      • nname

        public static AIString nname​(long struct)
        Unsafe version of name().
      • nsize

        public static void nsize​(long struct,
                                 long value)
        Sets the specified value to the size field of the specified struct.
      • ndata

        public static void ndata​(long struct,
                                 java.nio.ByteBuffer value)
        Unsafe version of data.
      • nname

        public static void nname​(long struct,
                                 AIString value)
        Unsafe version of name.
      • nnext

        public static void nnext​(long struct,
                                 @Nullable
                                 AIExportDataBlob value)
        Unsafe version of next.
      • validate

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