UNPKG

arx-level-generator

Version:
48 lines (47 loc) 1.8 kB
import { ArxColor, ArxPolygon, ArxPolygonFlags, ArxTextureContainer } from 'arx-convert/types'; import { Object3D, Box3 } from 'three'; import { Polygon, TransparencyType } from './Polygon.js'; import { Settings } from './Settings.js'; import { Vector3 } from './Vector3.js'; export declare const QUADIFY = "quadify"; export declare const DONT_QUADIFY = "don't quadify"; export declare const SHADING_FLAT = "flat"; export declare const SHADING_SMOOTH = "smooth"; export type MeshImportProps = { tryToQuadify?: typeof QUADIFY | typeof DONT_QUADIFY; shading?: typeof SHADING_FLAT | typeof SHADING_SMOOTH; flags?: ArxPolygonFlags; /** * room id - used when a map has portals, default value is undefined (the Polygon constructor will handle it) */ room?: number; }; type TextureContainer = ArxTextureContainer & { remaining: number; maxRemaining: number; }; export declare class Polygons extends Array<Polygon> { cashedBBox: { numberOfPolygons: number; value: Box3; }; exportTextures(settings: Settings): Promise<Record<string, string>>; toArxData(): Promise<{ polygons: ArxPolygon[]; textureContainers: ArxTextureContainer[]; }>; countNindices(): Record<string, Record<TransparencyType | "opaque", number>>; getTextureContainers(): TextureContainer[]; empty(): void; calculateNormals(): void; addThreeJsMesh(threeJsObj: Object3D): void; addThreeJsMesh(threeJsObj: Object3D, meshImportProps: MeshImportProps): void; addThreeJsMesh(threeJsObj: Object3D, meshImportProps: MeshImportProps, isRoot: false): Polygons; getVertexColors(): ArxColor[]; getBoundingBox(): Box3; getCenter(): Vector3; getHeight(): number; getWidth(): number; getDepth(): number; } export {};