UNPKG

forge-convert-utils

Version:

Tools for converting Autodesk Forge file formats.

125 lines 3.05 kB
/// <reference types="node" /> export type NodeID = number; export type GeometryID = number; export type MaterialID = number; export type CameraID = number; export type LightID = number; export interface IScene { getMetadata(): IMetadata; getNodeCount(): number; getNode(id: NodeID): Node; getGeometryCount(): number; getGeometry(id: GeometryID): Geometry; getMaterialCount(): number; getMaterial(id: MaterialID): Material; getImage(uri: string): Buffer | undefined; } export interface IMetadata { [key: string]: any; } export interface IVec2 { x: number; y: number; } export interface IVec3 { x: number; y: number; z: number; } export interface IQuaternion { x: number; y: number; z: number; w: number; } export declare enum TransformKind { Matrix = 0, Decomposed = 1 } export interface IMatrixTransform { kind: TransformKind.Matrix; elements: number[]; } export interface IDecomposedTransform { kind: TransformKind.Decomposed; translation?: IVec3; rotation?: IQuaternion; scale?: IVec3; } export type Transform = IMatrixTransform | IDecomposedTransform; export declare enum NodeKind { Group = 0, Object = 1, Camera = 2, Light = 3 } export interface IGroupNode { kind: NodeKind.Group; dbid: number; transform?: Transform; children: NodeID[]; } export interface IObjectNode { kind: NodeKind.Object; dbid: number; transform?: Transform; geometry: GeometryID; material: MaterialID; } export interface ICameraNode { kind: NodeKind.Camera; transform?: Transform; camera: CameraID; } export interface ILightNode { kind: NodeKind.Light; transform?: Transform; light: LightID; } export type Node = IGroupNode | IObjectNode | ICameraNode | ILightNode; export declare enum GeometryKind { Mesh = 0, Lines = 1, Points = 2, Empty = 3 } export interface IMeshGeometry { kind: GeometryKind.Mesh; getIndices(): Uint16Array; getVertices(): Float32Array; getNormals(): Float32Array | undefined; getColors(): Float32Array | undefined; getUvChannelCount(): number; getUvs(channel: number): Float32Array; } export interface ILineGeometry { kind: GeometryKind.Lines; getIndices(): Uint16Array; getVertices(): Float32Array; getColors(): Float32Array | undefined; } export interface IPointGeometry { kind: GeometryKind.Points; getVertices(): Float32Array; getColors(): Float32Array | undefined; } export interface IEmptyGeometry { kind: GeometryKind.Empty; } export type Geometry = IMeshGeometry | ILineGeometry | IPointGeometry | IEmptyGeometry; export declare enum MaterialKind { Physical = 0 } export interface IPhysicalMaterial { kind: MaterialKind.Physical; diffuse: IVec3; metallic: number; roughness: number; opacity: number; maps?: { diffuse?: string; }; scale?: IVec2; } export type Material = IPhysicalMaterial; //# sourceMappingURL=intermediate-format.d.ts.map