class GLTFModel
A Model that has a GLTF style internal structure.
class GLTFModel extends Object3D
Inheritance Object3D –> GLTFModel
| Name | Description |
|---|---|
| Constructors | |
| GLTFModel() | Creates a new GLTFModel. |
| Properties | |
| minPos | Bounding box min-position. |
| maxPos | Bounding box max-position. |
| meshes | Info of internal meshes. |
| animations | Info of internal animation clips. |
| Methods | |
| setTexture | Replace a texture using texture name. |
| batchPrimitives | Batch together primitives of the same materials. |
| setAnimationFrame | Assign the current stage of movable parts. |
| getAnimation | Get a loaded animation clip by name. |
| getAnimations | Get all loaded animation clips. |
| addAnimation | Add an animation clip to the model. |
| addAnimations | Add multiple animation clips to the model. |
| playAnimation | Play the animation clip of the given name. |
| stopAnimation | Stop the animation clip of the given name. |
| updateAnimation | Update the movable parts according to the current frame. |
| setLightmap | Set a lightmap image for the model. |
Constructors
GLTFModel()
GLTFModel()
Creates a new GLTFModel. Usually not created directly. Use GLTFLoader class to create an GLTFModel.
Properties
See the base Object3D class for common properties.
minPos
.minPos: Object
Read-only property for bounding box min-position.
maxPos
.maxPos: Object
Read-only property for bounding box max-position.
meshes
.meshes: Object
Read-only property for displaying the info of internal meshes.
animations
.animations: Array
Read-only property for displaying the info of internal animation clips.
Methods
See the base Object3D class for common methods.
setTexture()
.setTexture(name: String, image: Image): undefined
Replace the texture of name with image.
.setTexture(name: String, target: GLRenderTarget): undefined
Use the rendering result of target to replace the texture of name.
.setTexture(name: String, mmcamera: MMCamera): undefined
Usa a web-camera image source mmcamera to replace the texture of name.
.setTexture(name: String, mmlazyvideo: MMLazyVideo): undefined
Usa a video-file image source mmlazyvideo to replace the texture of name.
.setTexture(name: String, mmvideo: MMVideo): undefined
Usa a video-file player mmvideo to replace the texture of name.
batchPrimitives()
.batchPrimitives(): undefined
Batch together primitives of the same materials.
setAnimationFrame()
.setAnimationFrame(frame: Object): undefined
Assign the current stage of movable parts using a JS object.
The frame object should have the following properties:
frame.morphs: Array
Optional. Morph state for morphable meshes.
frame.morphs[i].name: String
Name of a morphable mesh.
frame.morphs[i].weights: Array
Weight for each morph target of the mesh.
frame.translations: Array
Optional. Translation states for nodes.
frame.translations[i].name: String
Name of the targeted node.
frame.translations[i].translation: Vector3
Translation state of the node.
frame.rotations: Array
Optional. Rotation states for nodes.
frame.rotations[i].name: String
Name of the targeted node.
frame.rotations[i].rotation: Quaternion
Rotation state of the node.
frame.scales: Array
Optional. Scale states for nodes.
frame.scales[i].name: String
Name of the targeted node.
frame.translations[i].scale: Vector3
Scale state of the node.
getAnimation()
.getAnimation(name: String): Object
Get a loaded animation clip by name.
The returned object has the following properties:
.name: String
Name of the animation clip.
.duration: Number
Duration of the animation clip in seconds.
.morphs: Array
Optional. Morph tracks.
.morphs[i].name: String
Name of the morphable mesh.
.morphs[i].targets: Number
Number of morph targets of the morphable mesh.
.morphs[i].interpolation: String
Interpolation method: “STEP”, “LINEAR” or “CUBICSPLINE”
.morphs[i].times: Float32Array
Time stamp of each frame.
.morphs[i].values: Float32Array
Weight values of each frame.
.translations: Array
Optional. Translation tracks.
.translations[i].name: String
Name of the targeted node.
.translations[i].interpolation: String
Interpolation method: “STEP”, “LINEAR” or “CUBICSPLINE”
.translations[i].times: Float32Array
Time stamp of each frame.
.translations[i].values: Float32Array
Translation values of each frame.
.rotations: Array
Optional. Rotation tracks.
.rotations[i].name: String
Name of the targeted node.
.rotations[i].interpolation: String
Interpolation method: “STEP”, “LINEAR”
.rotations[i].times: Float32Array
Time stamp of each frame.
.rotations[i].values: Float32Array
Rotation values of each frame.
.scales: Array
Optional. Scale tracks.
.scales[i].name: String
Name of the targeted node.
.scales[i].interpolation: String
Interpolation method: “STEP”, “LINEAR” or “CUBICSPLINE”
.scales[i].times: Float32Array
Time stamp of each frame.
.scales[i].values: Float32Array
Scale values of each frame.
getAnimations()
.getAnimations(): Array
Get all loaded animation clips.
Each element of the returned array has the same structure as the return value of .getAnimation().
addAnimation()
.addAnimation(animation: Object): undefined
Add an animation clip to the model.
The animation object should have the same structure as the return value of .getAnimation().
addAnimations()
.addAnimations(animations: Array): undefined
Add multiple animation clips to the model.
Each element of the array should have the same structure as the return value of .getAnimation().
playAnimation()
.playAnimation(name: String): undefined
Play the animation clip of the given name.
stopAnimation()
.stopAnimation(name: String): undefined
Stop the animation clip of the given name.
updateAnimation()
.updateAnimation(): undefined
Update the movable parts according to the current frame. This function should be called from the render callback function.
setLightmap()
.setLightmap(img: HDRImage): undefined
Set a lightmap image for the model.