Class IntModel
java.lang.Object
gaiasky.util.gdx.model.IntModel
- All Implemented Interfaces:
com.badlogic.gdx.utils.Disposable
-
Field Summary
FieldsModifier and TypeFieldDescriptionfinal com.badlogic.gdx.utils.Array<IntAnimation> Animations of the model, modifying node transformations.protected final com.badlogic.gdx.utils.Array<com.badlogic.gdx.utils.Disposable> Array of disposable resources like textures or meshes the Model is responsible for disposing.final com.badlogic.gdx.utils.Array<Material> The materials of the model, used by nodes that have a graphical representation.final com.badlogic.gdx.utils.Array<IntMesh> The meshes of the model.final com.badlogic.gdx.utils.Array<IntMeshPart> Parts of meshes, used by nodes that have a graphical representation.final com.badlogic.gdx.utils.Array<IntNode> Root nodes of the model.doubleLength of the furthest vertex from the origin. -
Constructor Summary
ConstructorsConstructorDescriptionIntModel()Constructs an empty model.IntModel(IntModelData modelData) Constructs a new Model based on theIntModelData.IntModel(IntModelData modelData, com.badlogic.gdx.graphics.g3d.utils.TextureProvider textureProvider) Constructs a new Model based on theIntModelData. -
Method Summary
Modifier and TypeMethodDescriptioncom.badlogic.gdx.math.collision.BoundingBoxcalculateBoundingBox(com.badlogic.gdx.math.collision.BoundingBox out) Calculate the bounding box of this model instance.voidCalculates the local and world transform of allNodeinstances in this model, recursively.voidOnce the model is fully loaded, this method computes its span, which is the length of the furthest vertex from the origin in this model.protected MaterialconvertMaterial(OwnModelMaterial mtl, com.badlogic.gdx.graphics.g3d.utils.TextureProvider textureProvider) protected voidconvertMesh(IntModelMesh modelMesh) voiddispose()com.badlogic.gdx.math.collision.BoundingBoxextendBoundingBox(com.badlogic.gdx.math.collision.BoundingBox out) Extends the bounding box with the bounds of this model instance.getAnimation(String id) getAnimation(String id, boolean ignoreCase) Iterable<com.badlogic.gdx.utils.Disposable> getMaterial(String id) getMaterial(String id, boolean ignoreCase) protected voidload(IntModelData modelData, com.badlogic.gdx.graphics.g3d.utils.TextureProvider textureProvider) protected voidloadAnimations(Iterable<com.badlogic.gdx.graphics.g3d.model.data.ModelAnimation> modelAnimations) protected voidloadMaterials(Iterable<OwnModelMaterial> modelMaterials, com.badlogic.gdx.graphics.g3d.utils.TextureProvider textureProvider) protected voidloadMeshes(Iterable<IntModelMesh> meshes) protected IntNodeloadNode(IntModelNode modelNode) protected voidloadNodes(Iterable<IntModelNode> modelNodes) voidmanageDisposable(com.badlogic.gdx.utils.Disposable disposable) Adds aDisposableto be managed and disposed by this Model.
-
Field Details
-
materials
The materials of the model, used by nodes that have a graphical representation. -
nodes
Root nodes of the model. -
animations
Animations of the model, modifying node transformations. -
meshes
The meshes of the model. -
meshParts
Parts of meshes, used by nodes that have a graphical representation. -
span
public double spanLength of the furthest vertex from the origin. -
disposables
protected final com.badlogic.gdx.utils.Array<com.badlogic.gdx.utils.Disposable> disposablesArray of disposable resources like textures or meshes the Model is responsible for disposing.
-
-
Constructor Details
-
IntModel
public IntModel()Constructs an empty model. Manual created models do not manage their resources by default. UsemanageDisposable(Disposable)to add resources to be managed by this model. -
IntModel
Constructs a new Model based on theIntModelData. Texture files will be loaded from the internal file storage via anTextureProvider.FileTextureProvider.- Parameters:
modelData- theIntModelDatagot from e.g.ModelLoader
-
IntModel
public IntModel(IntModelData modelData, com.badlogic.gdx.graphics.g3d.utils.TextureProvider textureProvider) Constructs a new Model based on theIntModelData.- Parameters:
modelData- theIntModelDatagot from e.g.ModelLoadertextureProvider- theTextureProviderto use for loading the textures
-
-
Method Details
-
load
protected void load(IntModelData modelData, com.badlogic.gdx.graphics.g3d.utils.TextureProvider textureProvider) -
loadAnimations
protected void loadAnimations(Iterable<com.badlogic.gdx.graphics.g3d.model.data.ModelAnimation> modelAnimations) -
loadNodes
-
loadNode
-
loadMeshes
-
convertMesh
-
loadMaterials
protected void loadMaterials(Iterable<OwnModelMaterial> modelMaterials, com.badlogic.gdx.graphics.g3d.utils.TextureProvider textureProvider) -
convertMaterial
protected Material convertMaterial(OwnModelMaterial mtl, com.badlogic.gdx.graphics.g3d.utils.TextureProvider textureProvider) -
manageDisposable
public void manageDisposable(com.badlogic.gdx.utils.Disposable disposable) Adds aDisposableto be managed and disposed by this Model. Can be used to keep track of manually loaded textures forIntModelInstance.- Parameters:
disposable- the Disposable
-
getManagedDisposables
-
dispose
public void dispose()- Specified by:
disposein interfacecom.badlogic.gdx.utils.Disposable
-
calculateTransforms
public void calculateTransforms()Calculates the local and world transform of all
Nodeinstances in this model, recursively. First eachNode.localTransformtransform is calculated based on the translation, rotation and scale of each Node. Then eachNode.calculateWorldTransform()is calculated, based on the parent's world transform and the local transform of each Node. Finally, the animation bone matrices are updated accordingly.This method can be used to recalculate all transforms if any of the Node's local properties (translation, rotation, scale) was modified.
-
calculateBoundingBox
public com.badlogic.gdx.math.collision.BoundingBox calculateBoundingBox(com.badlogic.gdx.math.collision.BoundingBox out) Calculate the bounding box of this model instance. This is a potential slow operation, it is advised to cache the result.- Parameters:
out- theBoundingBoxthat will be set with the bounds.- Returns:
- the out parameter for chaining
-
extendBoundingBox
public com.badlogic.gdx.math.collision.BoundingBox extendBoundingBox(com.badlogic.gdx.math.collision.BoundingBox out) Extends the bounding box with the bounds of this model instance. This is a potential slow operation, it is advised to cache the result.- Parameters:
out- theBoundingBoxthat will be extended with the bounds.- Returns:
- the out parameter for chaining
-
getAnimation
- Parameters:
id- The ID of the animation to fetch (case sensitive).- Returns:
- The
Animationwith the specified id, or null if not available.
-
getAnimation
- Parameters:
id- The ID of the animation to fetch.ignoreCase- whether to use case sensitivity when comparing the animation id.- Returns:
- The
Animationwith the specified id, or null if not available.
-
getMaterial
-
getMaterial
-
getNode
-
getNode
-
getNode
- Parameters:
id- The ID of the node to fetch.recursive- false to fetch a root node only, true to search the entire node tree for the specified node.ignoreCase- whether to use case sensitivity when comparing the node id.- Returns:
- The
IntNodewith the specified id, or null if not found.
-
computeSpan
public void computeSpan()Once the model is fully loaded, this method computes its span, which is the length of the furthest vertex from the origin in this model.
-