| 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
sceneThe 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)
jsonList read from glTF file.
defaultbinOptional 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)
valuesValues to write.
targetOptional target use for values.
typesAllowed types (from names of rgl::gltfTypes), or c("any", "anyGLTF")).
normalizedAre these normalized integer values?
New accessor number.
getScene()Get scene object.
Gltf$getScene(sc)
scScene 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)
scWhich scene to update.
sceneNew scene record.
addScene()Add a scene object.
Gltf$addScene()
Scene number.
addToScene()Add node to scene.
Gltf$addToScene(scene, node)
sceneScene number to modify.
nodeNode number(s) to add.
defaultScene()Get default scene, creating it if necessary.
Gltf$defaultScene()
Scene number.
getNode()Get node object.
Gltf$getNode(n)
nNode 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)
nNode number.
nodeNew node object.
addNode()Add a node object.
Gltf$addNode(mesh = NULL, matrix = NULL, extras = NULL)
meshA mesh number.
matrixA matrix transformation for the node.
extrasA list of extras, typically rgl objects.
Node number.
addChild()Add node as child of another.
Gltf$addChild(parent, node)
parentNode number to modify.
nodeNode number(s) to add as children.
setParents()Set parent member for all nodes
Gltf$setParents()
getSkin()Get skin object.
Gltf$getSkin(skin)
skinSkin 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)
nSkin number.
skinNew skin object.
getJoint()Get joint node.
Gltf$getJoint(skin, num)
skinSkin number.
numJoint number.
Node object
getInverseBindMatrices()Get "inverse bind matrices".
These matrices undo the existing transformation before applying the skin transformations.
Gltf$getInverseBindMatrices(skin)
skinSkin number.
A 4x4xn array of matrices, one per joint.
getForwardBindMatrices()Get "forward bind matrices".
These matrices applying the skin transformations.
Gltf$getForwardBindMatrices(skin)
skinSkin number.
A 4x4xn array of matrices, one per joint.
getCamera()Get camera object.
Gltf$getCamera(cam)
camCamera 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)
extrasNew extras list.
getMesh()Get mesh object.
Gltf$getMesh(m)
mMesh 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)
mMesh number.
meshNew mesh object
addMesh()Add a mesh object.
Gltf$addMesh(primitives)
primitivesA list of primitive objects.
Mesh number.
getMaterial()Get material object.
Gltf$getMaterial(m)
mMaterial 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)
texTexture 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)
imImage 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())
matAn rgl material record.
defaultMaterialDefault material properties.
Material number.
addTexture()Add a texture.
Gltf$addTexture(mat)
matAn rgl material record.
Texture number.
addImage()Add an image for a texture.
Gltf$addImage(mat)
matAn rgl material record.
Image number.
addSampler()Add a sampler.
Gltf$addSampler(mat)
matAn rgl material record.
Sampler number.
getMaterialNumber()Add or return a material.
Gltf$getMaterialNumber(material)
materialA glTF material record.
Material number.
writeVectors()Write data.
Gltf$writeVectors( coords, target = targetArray, types = "anyGLTF", normalized = FALSE )
coordsData to write, or NULL.
targetOptional target use for data.
typesA character vector of allowed types, or "any" or "anyGLTF"
normalizedAre these integer values representing floats?
Accessor number, or NULL.
makePrimitive()Create a primitive record.
Gltf$makePrimitive(inds, mode = NULL, attributes = NULL, matnum = NULL)
indsIndices of vertices.
modeMode of primitive.
attributesPrimitive attributes.
matnumMaterial 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)
versionVersion number of glTF format.
generatorIdentifier of code generating it.
getTransform()Get local transform.
Gltf$getTransform(n)
nNode number.
4x4 matrix of local transform.
getRglMaterial()Reconstruct rgl material.
Gltf$getRglMaterial(n)
nMaterial number.
rgl material record.
getAnimation()Get animation.
Gltf$getAnimation(ani)
aniAnimation 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)
aniAnimation number
animationNew animation object
timerange()Find time range of an animation
Gltf$timerange(ani)
aniAnimation 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)
aniAnimation 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)
timeTime to set.
aniAnimation 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, ...)
verboseLogical indicator of verbose printing, or character vector of components to print verbosely.
namesPrint names for components.
showExtrasLogical: 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)
listName of list to get.
clone()The objects of this class are cloneable with this method.
Gltf$clone(deep = FALSE)
deepWhether 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.