Gltf | R Documentation |
The glTF file spec is described here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html. This object encapsulates most of the data from those files.
rgl::Buffer
-> gltf
scene
The default scene number
rgl::Buffer$addBufferView()
rgl::Buffer$as.list()
rgl::Buffer$closeBuffer()
rgl::Buffer$closeBuffers()
rgl::Buffer$dataURI()
rgl::Buffer$getAccessor()
rgl::Buffer$getBuffer()
rgl::Buffer$getBufferview()
rgl::Buffer$load()
rgl::Buffer$openBuffer()
rgl::Buffer$openBufferview()
rgl::Buffer$readAccessor()
rgl::Buffer$readAccessor0()
rgl::Buffer$saveOpenBuffer()
rgl::Buffer$setAccessor()
rgl::Buffer$setBuffer()
rgl::Buffer$setBufferview()
rgl::Buffer$writeBuffer()
new()
Gltf$new(json = NULL, defaultbin = NULL)
json
List read from glTF file.
defaultbin
Optional external binary file.
addAccessor()
Write values to accessor, including min
and max
.
The glTF standard requires min
and max
values in
accessors, whereas other uses of buffers may not.
This function stores in the usual way using the
Buffer$addAccessor()
method, and then adds
min
and max
values.
The standard also doesn't support signed 4 byte integers or double precision values, so we test for those here.
Gltf$addAccessor(values, target = NULL, types = "anyGLTF", normalized = FALSE)
values
Values to write.
target
Optional target use for values.
types
Allowed types (from names of rgl::gltfTypes
), or c("any", "anyGLTF")
).
normalized
Are these normalized integer values?
New accessor number.
getScene()
Get scene object.
Gltf$getScene(sc)
sc
Scene number.
Scene object, documented here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-scene.
setScene()
Update scene record.
Gltf$setScene(sc, scene)
sc
Which scene to update.
scene
New scene record.
addScene()
Add a scene object.
Gltf$addScene()
Scene number.
addToScene()
Add node to scene.
Gltf$addToScene(scene, node)
scene
Scene number to modify.
node
Node number(s) to add.
defaultScene()
Get default scene, creating it if necessary.
Gltf$defaultScene()
Scene number.
getNode()
Get node object.
Gltf$getNode(n)
n
Node number.
Node object, documented here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-node.
setNode()
Set node object.
Gltf$setNode(n, node)
n
Node number.
node
New node object.
addNode()
Add a node object.
Gltf$addNode(mesh = NULL, matrix = NULL, extras = NULL)
mesh
A mesh number.
matrix
A matrix transformation for the node.
extras
A list of extras, typically rgl
objects.
Node number.
addChild()
Add node as child of another.
Gltf$addChild(parent, node)
parent
Node number to modify.
node
Node number(s) to add as children.
setParents()
Set parent member for all nodes
Gltf$setParents()
getSkin()
Get skin object.
Gltf$getSkin(skin)
skin
Skin number.
Skin object, documented here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-skin.
setSkin()
Set skin object.
Gltf$setSkin(n, skin)
n
Skin number.
skin
New skin object.
getJoint()
Get joint node.
Gltf$getJoint(skin, num)
skin
Skin number.
num
Joint number.
Node object
getInverseBindMatrices()
Get "inverse bind matrices".
These matrices undo the existing transformation before applying the skin transformations.
Gltf$getInverseBindMatrices(skin)
skin
Skin number.
A 4x4xn array of matrices, one per joint.
getForwardBindMatrices()
Get "forward bind matrices".
These matrices applying the skin transformations.
Gltf$getForwardBindMatrices(skin)
skin
Skin number.
A 4x4xn array of matrices, one per joint.
getCamera()
Get camera object.
Gltf$getCamera(cam)
cam
Camera number.
Camera object, documented here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-camera.
getExtras()
Get top-level extras list.
Gltf$getExtras()
Extras list, including rgl objects.
setExtras()
Set extras list.
Gltf$setExtras(extras)
extras
New extras list.
getMesh()
Get mesh object.
Gltf$getMesh(m)
m
Mesh number.
Mesh object, documented here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-mesh.
setMesh()
Set mesh object.
Gltf$setMesh(m, mesh)
m
Mesh number.
mesh
New mesh object
addMesh()
Add a mesh object.
Gltf$addMesh(primitives)
primitives
A list of primitive objects.
Mesh number.
getMaterial()
Get material object.
Gltf$getMaterial(m)
m
Material number.
Material object, documented here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-material.
getTexture()
Get texture object.
Gltf$getTexture(tex)
tex
Texture number.
Texture object, documented here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-texture.
getImage()
Get image object.
Gltf$getImage(im)
im
Image number.
Image object, documented here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-image.
addMaterial()
Construct and possibly add material.
This will return an existing material if possible.
Gltf$addMaterial(mat, defaultMaterial = list())
mat
An rgl
material record.
defaultMaterial
Default material properties.
Material number.
addTexture()
Add a texture.
Gltf$addTexture(mat)
mat
An rgl
material record.
Texture number.
addImage()
Add an image for a texture.
Gltf$addImage(mat)
mat
An rgl
material record.
Image number.
addSampler()
Add a sampler.
Gltf$addSampler(mat)
mat
An rgl
material record.
Sampler number.
getMaterialNumber()
Add or return a material.
Gltf$getMaterialNumber(material)
material
A glTF material record.
Material number.
writeVectors()
Write data.
Gltf$writeVectors( coords, target = targetArray, types = "anyGLTF", normalized = FALSE )
coords
Data to write, or NULL
.
target
Optional target use for data.
types
A character vector of allowed types, or "any" or "anyGLTF"
normalized
Are these integer values representing floats?
Accessor number, or NULL
.
makePrimitive()
Create a primitive record.
Gltf$makePrimitive(inds, mode = NULL, attributes = NULL, matnum = NULL)
inds
Indices of vertices.
mode
Mode of primitive.
attributes
Primitive attributes.
matnum
Material number.
Primitive record, documented here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-primitive.
getAsset()
Get asset list.
Gltf$getAsset()
Asset object, documented here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-asset.
setAsset()
Set asset list.
Gltf$setAsset(version, generator)
version
Version number of glTF format.
generator
Identifier of code generating it.
getTransform()
Get local transform.
Gltf$getTransform(n)
n
Node number.
4x4 matrix of local transform.
getRglMaterial()
Reconstruct rgl
material.
Gltf$getRglMaterial(n)
n
Material number.
rgl
material record.
getAnimation()
Get animation.
Gltf$getAnimation(ani)
ani
Animation number
Animation object, documented here: https://registry.khronos.org/glTF/specs/2.0/glTF-2.0.html#reference-animation.
setAnimation()
Set animation.
Gltf$setAnimation(ani, animation)
ani
Animation number
animation
New animation object
timerange()
Find time range of an animation
Gltf$timerange(ani)
ani
Animation number
Min and max times from the samplers in the animation.
initAnimation()
Initialize animation.
This builds all of the interpolation functions in the samplers.
Gltf$initAnimation(ani)
ani
Animation number
Modified animation object
settime()
Set time for an animation.
This evaluates all the interpolators and modifies self to reflect the specified time point.
Gltf$settime(time, ani = 0)
time
Time to set.
ani
Animation number.
Vector of node numbers that were changed.
print()
Print gltf
objects with various levels of detail.
Gltf$print(verbose = FALSE, names = FALSE, showExtras = TRUE, ...)
verbose
Logical indicator of verbose printing, or character vector of components to print verbosely.
names
Print names for components.
showExtras
Logical: show extra fields?
...
Passed ...
.
\donttest{ samples <- "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0" gltf <- readGLB(paste0(samples, "/2CylinderEngine/glTF-Binary/2CylinderEngine.glb?raw=true")) gltf$print(names = "meshes") }
listCount()
Get number of items in private list.
Gltf$listCount(list)
list
Name of list to get.
clone()
The objects of this class are cloneable with this method.
Gltf$clone(deep = FALSE)
deep
Whether to make a deep clone.
## ------------------------------------------------
## Method `Gltf$print`
## ------------------------------------------------
samples <- "https://raw.githubusercontent.com/KhronosGroup/glTF-Sample-Models/master/2.0"
gltf <- readGLB(paste0(samples, "/2CylinderEngine/glTF-Binary/2CylinderEngine.glb?raw=true"))
gltf$print(names = "meshes")
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.