UNPKG

rw-parser

Version:

Parses RenderWare DFF and TXD files into usable format!

154 lines (153 loc) 3.48 kB
import { RwFile } from '../RwFile'; export interface RwDff { version: string; versionNumber: number; geometryList: RwGeometryList | null; frameList: RwFrameList | null; atomics: number[]; dummies: string[]; animNodes: RwAnimNode[]; } export interface RwClump { atomicCount: number; lightCount?: number; cameraCount?: number; } export interface RwAnimNode { boneId: number; bonesCount: number; bones: RwBone[]; } export interface RwBone { boneId: number; boneIndex: number; flags: number; } export interface RwFrame { rotationMatrix: RwMatrix3; coordinatesOffset: RwVector3; parentFrame: number; } export interface RwFrameList { frameCount: number; frames: RwFrame[]; } export interface RwTexture { textureFiltering: number; uAddressing: number; vAddressing: number; usesMipLevels: boolean; textureName: string; } export interface RwMaterial { color: RwColor; isTextured: boolean; ambient?: number; specular?: number; diffuse?: number; texture?: RwTexture; } export interface RwMaterialList { materialInstanceCount: number; materialData: RwMaterial[]; } export interface RwGeometry { vertexColorInformation: RwColor[]; textureCoordinatesCount: number; textureMappingInformation: RwTextureCoordinate[][]; hasVertices: boolean; hasNormals: boolean; triangleInformation: RwTriangle[]; vertexInformation: RwVector3[]; normalInformation: RwVector3[]; boundingSphere?: RwSphere; materialList: RwMaterialList; binMesh: RwBinMesh; skin?: RwSkin; } export interface RwGeometryList { geometricObjectCount: number; geometries: RwGeometry[]; } export interface RwAtomic { frameIndex: number; geometryIndex: number; flags: number; } export interface RwBinMesh { meshCount: number; meshes: RwMesh[]; } export interface RwSkin { boneCount: number; usedBoneCount: number; maxWeightsPerVertex: number; boneVertexIndices: number[][]; vertexWeights: number[][]; inverseBoneMatrices: RwMatrix4[]; } export interface RwMesh { materialIndex: number; indexCount: number; indices: number[]; } export interface RwMatrix3 { right: RwVector3; up: RwVector3; at: RwVector3; } export interface RwMatrix4 { right: RwVector4; up: RwVector4; at: RwVector4; transform: RwVector4; } export interface RwColor { r: number; g: number; b: number; a: number; } export interface RwVector2 { x: number; y: number; } export interface RwVector3 { x: number; y: number; z: number; } export interface RwVector4 { x: number; y: number; z: number; t: number; } export interface RwTextureCoordinate { u: number; v: number; } export interface RwTriangle { vector: RwVector3; materialId: number; } export interface RwSphere { vector: RwVector3; radius: number; } export declare class DffParser extends RwFile { constructor(buffer: Buffer); parse(): RwDff; readClump(): RwClump; readFrameList(): RwFrameList; readGeometryList(): RwGeometryList; readGeometry(versionNumber: number): RwGeometry; readBinMesh(): RwBinMesh; readSkin(vertexCount: number): RwSkin; readAnimNode(): RwAnimNode; readMesh(): RwMesh; readMaterialList(): RwMaterialList; readMaterial(): RwMaterial; readTexture(): RwTexture; readAtomic(): RwAtomic; }