Class AIScene

All Implemented Interfaces:
AutoCloseable, NativeResource, Pointer

public class AIScene extends Struct<AIScene> 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.

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();
     struct aiString mName();
     unsigned int mNumSkeletons;
     struct aiSkeleton ** mSkeletons;
     char * mPrivate;
 }
  • Field Details

    • SIZEOF

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

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

      public static final int MFLAGS
      The struct member offsets.
    • MROOTNODE

      public static final int MROOTNODE
      The struct member offsets.
    • MNUMMESHES

      public static final int MNUMMESHES
      The struct member offsets.
    • MMESHES

      public static final int MMESHES
      The struct member offsets.
    • MNUMMATERIALS

      public static final int MNUMMATERIALS
      The struct member offsets.
    • MMATERIALS

      public static final int MMATERIALS
      The struct member offsets.
    • MNUMANIMATIONS

      public static final int MNUMANIMATIONS
      The struct member offsets.
    • MANIMATIONS

      public static final int MANIMATIONS
      The struct member offsets.
    • MNUMTEXTURES

      public static final int MNUMTEXTURES
      The struct member offsets.
    • MTEXTURES

      public static final int MTEXTURES
      The struct member offsets.
    • MNUMLIGHTS

      public static final int MNUMLIGHTS
      The struct member offsets.
    • MLIGHTS

      public static final int MLIGHTS
      The struct member offsets.
    • MNUMCAMERAS

      public static final int MNUMCAMERAS
      The struct member offsets.
    • MCAMERAS

      public static final int MCAMERAS
      The struct member offsets.
    • MMETADATA

      public static final int MMETADATA
      The struct member offsets.
    • MNAME

      public static final int MNAME
      The struct member offsets.
    • MNUMSKELETONS

      public static final int MNUMSKELETONS
      The struct member offsets.
    • MSKELETONS

      public static final int MSKELETONS
      The struct member offsets.
    • MPRIVATE

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

    • AIScene

      public AIScene(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 Details

    • sizeof

      public int sizeof()
      Description copied from class: Struct
      Returns sizeof(struct).
      Specified by:
      sizeof in class Struct<AIScene>
    • mFlags

      public int 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

      @Nullable public AINode 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

      public int mNumMeshes()
      The number of meshes in the scene.
    • mMeshes

      @Nullable public PointerBuffer 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

      public int mNumMaterials()
      The number of materials in the scene.
    • mMaterials

      @Nullable public PointerBuffer 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

      public int mNumAnimations()
      The number of animations in the scene.
    • mAnimations

      @Nullable public PointerBuffer mAnimations()
      The array of animations. All animations imported from the given file are listed here. The array is mNumAnimations in size.
    • mNumTextures

      public int mNumTextures()
      The number of textures embedded into the file
    • mTextures

      @Nullable public PointerBuffer 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

      public int mNumLights()
      The number of light sources in the scene. Light sources are fully optional, in most cases this attribute will be 0
    • mLights

      @Nullable public PointerBuffer mLights()
      The array of light sources. All light sources imported from the given file are listed here. The array is mNumLights in size.
    • mNumCameras

      public int mNumCameras()
      The number of cameras in the scene. Cameras are fully optional, in most cases this attribute will be 0
    • mCameras

      @Nullable public PointerBuffer 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

      @Nullable public AIMetaData 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.

    • mName

      public AIString mName()
      The name of the scene itself.
    • mNumSkeletons

      public int mNumSkeletons()
      Returns:
      the value of the mNumSkeletons field.
    • mSkeletons

      @Nullable public PointerBuffer mSkeletons()
      Returns:
      a PointerBuffer view of the data pointed to by the mSkeletons 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.
    • mMeshes

      public AIScene mMeshes(@Nullable PointerBuffer value)
      Sets the address of the specified PointerBuffer to the mMeshes() field.
    • mMaterials

      public AIScene mMaterials(@Nullable PointerBuffer value)
      Sets the address of the specified PointerBuffer to the mMaterials() field.
    • mAnimations

      public AIScene mAnimations(@Nullable PointerBuffer value)
      Sets the address of the specified PointerBuffer to the mAnimations() field.
    • mTextures

      public AIScene mTextures(@Nullable PointerBuffer value)
      Sets the address of the specified PointerBuffer to the mTextures() field.
    • mLights

      public AIScene mLights(@Nullable PointerBuffer value)
      Sets the address of the specified PointerBuffer to the mLights() field.
    • mCameras

      public AIScene mCameras(@Nullable PointerBuffer value)
      Sets the address of the specified PointerBuffer to the mCameras() field.
    • mMetaData

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

      public AIScene mName(AIString value)
      Copies the specified AIString to the mName() field.
    • mName

      public AIScene mName(Consumer<AIString> consumer)
      Passes the mName() field to the specified Consumer.
    • mSkeletons

      public AIScene mSkeletons(@Nullable PointerBuffer value)
      Sets the address of the specified PointerBuffer to the mSkeletons field.
    • set

      public AIScene set(int mFlags, @Nullable AINode mRootNode, @Nullable PointerBuffer mMeshes, @Nullable PointerBuffer mMaterials, @Nullable PointerBuffer mAnimations, @Nullable PointerBuffer mTextures, @Nullable PointerBuffer mLights, @Nullable PointerBuffer mCameras, @Nullable AIMetaData mMetaData, AIString mName, @Nullable PointerBuffer mSkeletons)
      Initializes this struct with the specified values.
    • 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()
      Returns a new AIScene instance allocated with BufferUtils.
    • 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(int capacity)
      Returns a new AIScene.Buffer instance allocated with BufferUtils.
      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

      @Deprecated public static AIScene mallocStack()
      Deprecated.
      Deprecated for removal in 3.4.0. Use malloc(MemoryStack) instead.
    • callocStack

      @Deprecated public static AIScene callocStack()
      Deprecated.
      Deprecated for removal in 3.4.0. Use calloc(MemoryStack) instead.
    • mallocStack

      @Deprecated public static AIScene mallocStack(MemoryStack stack)
      Deprecated.
      Deprecated for removal in 3.4.0. Use malloc(MemoryStack) instead.
    • callocStack

      @Deprecated public static AIScene callocStack(MemoryStack stack)
      Deprecated.
      Deprecated for removal in 3.4.0. Use calloc(MemoryStack) instead.
    • mallocStack

      @Deprecated public static AIScene.Buffer mallocStack(int capacity)
      Deprecated.
      Deprecated for removal in 3.4.0. Use malloc(int, MemoryStack) instead.
    • callocStack

      @Deprecated public static AIScene.Buffer callocStack(int capacity)
      Deprecated.
      Deprecated for removal in 3.4.0. Use calloc(int, MemoryStack) instead.
    • mallocStack

      @Deprecated public static AIScene.Buffer mallocStack(int capacity, MemoryStack stack)
      Deprecated.
      Deprecated for removal in 3.4.0. Use malloc(int, MemoryStack) instead.
    • callocStack

      @Deprecated public static AIScene.Buffer callocStack(int capacity, MemoryStack stack)
      Deprecated.
      Deprecated for removal in 3.4.0. Use calloc(int, MemoryStack) instead.
    • malloc

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

      public static AIScene calloc(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
    • malloc

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

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

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

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

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

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

      @Nullable public static PointerBuffer nmTextures(long struct)
      Unsafe version of mTextures.
    • 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().
    • nmName

      public static AIString nmName(long struct)
      Unsafe version of mName().
    • nmNumSkeletons

      public static int nmNumSkeletons(long struct)
      Unsafe version of mNumSkeletons().
    • nmSkeletons

      @Nullable public static PointerBuffer nmSkeletons(long struct)
      Unsafe version of mSkeletons.
    • nmPrivate

      public static 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.
    • nmName

      public static void nmName(long struct, AIString value)
      Unsafe version of mName.
    • nmNumSkeletons

      public static void nmNumSkeletons(long struct, int value)
      Sets the specified value to the mNumSkeletons field of the specified struct.
    • nmSkeletons

      public static void nmSkeletons(long struct, @Nullable PointerBuffer value)
      Unsafe version of mSkeletons.
    • nmPrivate

      public static void nmPrivate(long struct, ByteBuffer value)
    • validate

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