Class AIScene

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

    public class AIScene
    extends Struct
    implements NativeResource
    The root structure of the imported data.

    Everything that was imported from the given file can be accessed from here. Objects of this class are generally maintained and owned by Assimp, not by the caller. You shouldn't want to instance it, nor should you ever try to delete a given scene on your own.

    Member documentation

    • mFlags – Any combination of the AI_SCENE_FLAGS_XXX flags. By default this value is 0, no flags are set. Most applications will want to reject all scenes with the AI_SCENE_FLAGS_INCOMPLETE bit set. One or more of:
      Assimp.AI_SCENE_FLAGS_INCOMPLETEAssimp.AI_SCENE_FLAGS_VALIDATED
      Assimp.AI_SCENE_FLAGS_VALIDATION_WARNINGAssimp.AI_SCENE_FLAGS_NON_VERBOSE_FORMAT
      Assimp.AI_SCENE_FLAGS_TERRAIN
    • mRootNode – The root node of the hierarchy. There will always be at least the root node if the import was successful (and no special flags have been set). Presence of further nodes depends on the format and content of the imported file.
    • mNumMeshes – The number of meshes in the scene.
    • mMeshes – The array of meshes. Use the indices given in the AINode structure to access this array. The array is mNumMeshes in size. If the Assimp.AI_SCENE_FLAGS_INCOMPLETE flag is not set there will always be at least ONE material.
    • mNumMaterials – The number of materials in the scene.
    • mMaterials – The array of materials. Use the index given in each AIMesh structure to access this array. The array is mNumMaterials in size. If the Assimp.AI_SCENE_FLAGS_INCOMPLETE flag is not set there will always be at least ONE material.
    • mNumAnimations – The number of animations in the scene.
    • mAnimations – The array of animations. All animations imported from the given file are listed here. The array is mNumAnimations in size.
    • mNumTextures – The number of textures embedded into the file
    • mTextures – The array of embedded textures. Not many file formats embed their textures into the file. An example is Quake's MDL format (which is also used by some GameStudio versions)
    • mNumLights – The number of light sources in the scene. Light sources are fully optional, in most cases this attribute will be 0
    • mLights – The array of light sources. All light sources imported from the given file are listed here. The array is mNumLights in size.
    • mNumCameras – The number of cameras in the scene. Cameras are fully optional, in most cases this attribute will be 0
    • mCameras – The array of cameras. All cameras imported from the given file are listed here. The array is mNumCameras in size. The first camera in the array (if existing) is the default camera view into the scene.
    • mMetaData – The global metadata assigned to the scene itself.

      This data contains global metadata which belongs to the scene like unit-conversions, versions, vendors or other model-specific data. This can be used to store format-specific metadata as well.

    • mPrivate – Internal use only, do not touch!

    Layout

    
     struct aiScene {
         unsigned int mFlags;
         struct aiNode * mRootNode;
         unsigned int mNumMeshes;
         struct aiMesh ** mMeshes;
         unsigned int mNumMaterials;
         struct aiMaterial ** mMaterials;
         unsigned int mNumAnimations;
         struct aiAnimation ** mAnimations;
         unsigned int mNumTextures;
         struct aiTexture ** mTextures;
         unsigned int mNumLights;
         struct aiLight ** mLights;
         unsigned int mNumCameras;
         struct aiCamera ** mCameras;
         struct aiMetadata * mMetaData;
         char * mPrivate;
     }
    • Field Detail

      • SIZEOF

        The struct size in bytes.
      • ALIGNOF

        The struct alignment in bytes.
      • MFLAGS, MROOTNODE, MNUMMESHES, MMESHES, MNUMMATERIALS, MMATERIALS, MNUMANIMATIONS, MANIMATIONS, MNUMTEXTURES, MTEXTURES, MNUMLIGHTS, MLIGHTS, MNUMCAMERAS, MCAMERAS, MMETADATA, MPRIVATE

        The struct member offsets.
    • Constructor Detail

      • AIScene

        public AIScene​(java.nio.ByteBuffer container)
        Creates a AIScene 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
      • mFlags

        public int mFlags()
        Returns the value of the mFlags field.
      • mRootNode

        @Nullable
        public AINode mRootNode()
        Returns a AINode view of the struct pointed to by the mRootNode field.
      • mNumMeshes

        public int mNumMeshes()
        Returns the value of the mNumMeshes field.
      • mNumMaterials

        public int mNumMaterials()
        Returns the value of the mNumMaterials field.
      • mMaterials

        @Nullable
        public PointerBuffer mMaterials()
        Returns a PointerBuffer view of the data pointed to by the mMaterials field.
      • mNumAnimations

        public int mNumAnimations()
        Returns the value of the mNumAnimations field.
      • mAnimations

        @Nullable
        public PointerBuffer mAnimations()
        Returns a PointerBuffer view of the data pointed to by the mAnimations field.
      • mNumTextures

        public int mNumTextures()
        Returns the value of the mNumTextures field.
      • mTextures

        @Nullable
        public PointerBuffer mTextures()
        Returns a PointerBuffer view of the data pointed to by the mTextures field.
      • mNumLights

        public int mNumLights()
        Returns the value of the mNumLights field.
      • mNumCameras

        public int mNumCameras()
        Returns the value of the mNumCameras field.
      • mMetaData

        @Nullable
        public AIMetaData mMetaData()
        Returns a AIMetaData view of the struct pointed to by the mMetaData field.
      • mFlags

        public AIScene mFlags​(int value)
        Sets the specified value to the mFlags field.
      • mRootNode

        public AIScene mRootNode​(@Nullable
                                 AINode value)
        Sets the address of the specified AINode to the mRootNode field.
      • mMetaData

        public AIScene mMetaData​(@Nullable
                                 AIMetaData value)
        Sets the address of the specified AIMetaData to the mMetaData field.
      • set

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

        public static AIScene.Buffer callocStack​(int capacity,
                                                 MemoryStack stack)
        Returns a new AIScene.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
      • nmFlags

        public static int nmFlags​(long struct)
        Unsafe version of mFlags().
      • nmRootNode

        @Nullable
        public static AINode nmRootNode​(long struct)
        Unsafe version of mRootNode().
      • nmNumMeshes

        public static int nmNumMeshes​(long struct)
        Unsafe version of mNumMeshes().
      • nmMeshes

        @Nullable
        public static PointerBuffer nmMeshes​(long struct)
        Unsafe version of mMeshes.
      • nmNumMaterials

        public static int nmNumMaterials​(long struct)
        Unsafe version of mNumMaterials().
      • nmNumAnimations

        public static int nmNumAnimations​(long struct)
        Unsafe version of mNumAnimations().
      • nmNumTextures

        public static int nmNumTextures​(long struct)
        Unsafe version of mNumTextures().
      • nmNumLights

        public static int nmNumLights​(long struct)
        Unsafe version of mNumLights().
      • nmLights

        @Nullable
        public static PointerBuffer nmLights​(long struct)
        Unsafe version of mLights.
      • nmNumCameras

        public static int nmNumCameras​(long struct)
        Unsafe version of mNumCameras().
      • nmCameras

        @Nullable
        public static PointerBuffer nmCameras​(long struct)
        Unsafe version of mCameras.
      • nmMetaData

        @Nullable
        public static AIMetaData nmMetaData​(long struct)
        Unsafe version of mMetaData().
      • nmPrivate

        public static java.nio.ByteBuffer nmPrivate​(long struct,
                                                    int capacity)
      • nmFlags

        public static void nmFlags​(long struct,
                                   int value)
        Unsafe version of mFlags.
      • nmRootNode

        public static void nmRootNode​(long struct,
                                      @Nullable
                                      AINode value)
        Unsafe version of mRootNode.
      • nmNumMeshes

        public static void nmNumMeshes​(long struct,
                                       int value)
        Sets the specified value to the mNumMeshes field of the specified struct.
      • nmMeshes

        public static void nmMeshes​(long struct,
                                    @Nullable
                                    PointerBuffer value)
        Unsafe version of mMeshes.
      • nmNumMaterials

        public static void nmNumMaterials​(long struct,
                                          int value)
        Sets the specified value to the mNumMaterials field of the specified struct.
      • nmMaterials

        public static void nmMaterials​(long struct,
                                       @Nullable
                                       PointerBuffer value)
        Unsafe version of mMaterials.
      • nmNumAnimations

        public static void nmNumAnimations​(long struct,
                                           int value)
        Sets the specified value to the mNumAnimations field of the specified struct.
      • nmAnimations

        public static void nmAnimations​(long struct,
                                        @Nullable
                                        PointerBuffer value)
        Unsafe version of mAnimations.
      • nmNumTextures

        public static void nmNumTextures​(long struct,
                                         int value)
        Sets the specified value to the mNumTextures field of the specified struct.
      • nmTextures

        public static void nmTextures​(long struct,
                                      @Nullable
                                      PointerBuffer value)
        Unsafe version of mTextures.
      • nmNumLights

        public static void nmNumLights​(long struct,
                                       int value)
        Sets the specified value to the mNumLights field of the specified struct.
      • nmLights

        public static void nmLights​(long struct,
                                    @Nullable
                                    PointerBuffer value)
        Unsafe version of mLights.
      • nmNumCameras

        public static void nmNumCameras​(long struct,
                                        int value)
        Sets the specified value to the mNumCameras field of the specified struct.
      • nmCameras

        public static void nmCameras​(long struct,
                                     @Nullable
                                     PointerBuffer value)
        Unsafe version of mCameras.
      • nmMetaData

        public static void nmMetaData​(long struct,
                                      @Nullable
                                      AIMetaData value)
        Unsafe version of mMetaData.
      • nmPrivate

        public static void nmPrivate​(long struct,
                                     java.nio.ByteBuffer value)
      • 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