@gltf-transform/core
Version:
glTF 2.0 SDK for JavaScript and TypeScript, on Web and Node.js.
134 lines (133 loc) • 3.22 kB
TypeScript
/**
* Current version of the package.
* @hidden
*/
export declare const VERSION: string;
/**
* TypeScript utility for nullable types.
* @hidden
*/
export type Nullable<T> = {
[P in keyof T]: T[P] | null;
};
/**
* 2-dimensional vector.
* @hidden
*/
export type vec2 = [number, number];
/**
* 3-dimensional vector.
* @hidden
*/
export type vec3 = [number, number, number];
/**
* 4-dimensional vector, e.g. RGBA or a quaternion.
* @hidden
*/
export type vec4 = [number, number, number, number];
/**
* 3x3 matrix, e.g. an affine transform of a 2D vector.
* @hidden
*/
export type mat3 = [
number,
number,
number,
number,
number,
number,
number,
number,
number
];
/**
* 4x4 matrix, e.g. an affine transform of a 3D vector.
* @hidden
*/
export type mat4 = [
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number,
number
];
/** @hidden */
export type bbox = {
min: vec3;
max: vec3;
};
/** @hidden */
export declare const GLB_BUFFER = "@glb.bin";
/**
* Abstraction representing any one of the typed array classes supported by glTF and JavaScript.
* @hidden
*/
export type TypedArray = Float32Array | Uint32Array | Uint16Array | Uint8Array | Int16Array | Int8Array;
/**
* Abstraction representing the typed array constructors supported by glTF and JavaScript.
* @hidden
*/
export type TypedArrayConstructor = Float32ArrayConstructor | Uint32ArrayConstructor | Uint16ArrayConstructor | Uint8ArrayConstructor | Int16ArrayConstructor | Int8ArrayConstructor;
/** String IDs for core {@link Property} types. */
export declare enum PropertyType {
ACCESSOR = "Accessor",
ANIMATION = "Animation",
ANIMATION_CHANNEL = "AnimationChannel",
ANIMATION_SAMPLER = "AnimationSampler",
BUFFER = "Buffer",
CAMERA = "Camera",
MATERIAL = "Material",
MESH = "Mesh",
PRIMITIVE = "Primitive",
PRIMITIVE_TARGET = "PrimitiveTarget",
NODE = "Node",
ROOT = "Root",
SCENE = "Scene",
SKIN = "Skin",
TEXTURE = "Texture",
TEXTURE_INFO = "TextureInfo"
}
/** Vertex layout method. */
export declare enum VertexLayout {
/**
* Stores vertex attributes in a single buffer view per mesh primitive. Interleaving vertex
* data may improve performance by reducing page-thrashing in GPU memory.
*/
INTERLEAVED = "interleaved",
/**
* Stores each vertex attribute in a separate buffer view. May decrease performance by causing
* page-thrashing in GPU memory. Some 3D engines may prefer this layout, e.g. for simplicity.
*/
SEPARATE = "separate"
}
/** Accessor usage. */
export declare enum BufferViewUsage {
ARRAY_BUFFER = "ARRAY_BUFFER",
ELEMENT_ARRAY_BUFFER = "ELEMENT_ARRAY_BUFFER",
INVERSE_BIND_MATRICES = "INVERSE_BIND_MATRICES",
OTHER = "OTHER",
SPARSE = "SPARSE"
}
/** Texture channels. */
export declare enum TextureChannel {
R = 4096,
G = 256,
B = 16,
A = 1
}
export declare enum Format {
GLTF = "GLTF",
GLB = "GLB"
}
export declare const ComponentTypeToTypedArray: Record<string, TypedArrayConstructor>;