vox-reader
Version:
Takes a Byte Array of .vox file data and returns a JavaScript Object with all the containing informations
135 lines (128 loc) • 2.38 kB
text/typescript
export type PACK = {
numModels: number,
index?: number,
}
export type SIZE = {
x: number,
y: number,
z: number,
index?: number,
}
export type XYZI = {
numVoxels: number,
values: Array<{
x: number,
y: number,
z: number,
i: number,
}>,
index?: number,
}
export type RGBA = {
values: Array<{
r: number,
g: number,
b: number,
a: number,
}>,
index?: number,
}
export type frameAttributes = {
_r: string,
_t: string,
_f: string,
}
export type nodeAttributes = {
_name: string,
_hidden?: string,
}
export type nTRN = {
nodeId: number,
nodeAttributes: nodeAttributes,
child: number,
reserved: number,
layer: number,
numFrames: number,
frames: frameAttributes[],
index?: number,
}
export type nGRP = {
nodeId: number,
nodeAttributes: nodeAttributes,
child: number,
children: number[],
index?: number,
}
export type modelAttributes = [number,{
_f: string,
}]
export type nSHP = {
nodeId: number,
nodeAttributes: any,
numModels: number,
models: modelAttributes[],
index?: number,
}
export type MATL = {
materialId: number,
materialProperties: any,
index?: number,
}
export type layerAttributes = {
_name: string,
_hidden?: string,
}
export type LAYR = {
layerId: number,
layerAttributes: layerAttributes,
reservedId: -1,
index?: number,
}
export type rOBJ = {
renderAttributes: any,
index?: number,
}
export type cameraAttributes = {
_mode: string,
_focus: string,
_angle: string,
_radius: string,
_frustum: string,
_fov: string,
}
export type rCAM = {
cameraId: number,
cameraAttributes: cameraAttributes,
index?: number,
}
export type NOTE = {
numColorNames: number,
colorNames: string[],
index?: number,
}
export type IMAP = {
size: number,
indexAssociations: number[],
index?: number,
}
export type VoxNode = {
id: string,
data: any,
children: Array<VoxNode>,
index?: number,
}
export type VoxStructure = {
PACK?: PACK[],
SIZE: SIZE[],
XYZI: XYZI[],
RGBA: RGBA[],
nTRN?: nTRN[],
nGRP?: nGRP[],
nSHP?: nSHP[],
MATL?: MATL[],
LAYR?: LAYR[],
rOBJ?: rOBJ[],
rCAM?: rCAM[],
NOTE?: NOTE[],
IMAP?: IMAP[],
}