import { ConwayGeometry, NativeTransform4x4 } from "../../dependencies/conway-geom/index.js"; import { CanonicalMaterial } from "../core/canonical_material.js"; import { CanonicalMesh } from "../core/canonical_mesh.js"; import { Model } from "../core/model.js"; import { PackedMesh } from "../core/packed_mesh.js"; import { WalkableScene, SceneListener, SceneListenerOptions } from "../core/scene.js"; import { SceneNodeModelType, SceneNodeGeometry, SceneNodeTransform } from "../core/scene_node.js"; import StepEntityBase from "../step/step_entity_base.js"; import EntityTypesAP214 from "./AP214E3_2010_gen/entity_types_ap214.gen.js"; import { AP214MaterialCache } from "./ap214_material_cache.js"; import AP214StepModel from "./ap214_step_model.js"; /** * */ export declare class AP214SceneTransform implements SceneNodeTransform { readonly model: Model; readonly transform: ReadonlyArray; readonly absoluteTransform: ReadonlyArray; readonly localID: number; readonly index: number; readonly nativeTransform: NativeTransform4x4; readonly absoluteNativeTransform: NativeTransform4x4; readonly parentIndex?: number | undefined; readonly type = SceneNodeModelType.TRANSFORM; /** * * @param model * @param transform * @param absoluteTransform * @param localID * @param index * @param nativeTransform * @param absoluteNativeTransform * @param parentIndex */ constructor(model: Model, transform: ReadonlyArray, absoluteTransform: ReadonlyArray, localID: number, index: number, nativeTransform: NativeTransform4x4, absoluteNativeTransform: NativeTransform4x4, parentIndex?: number | undefined); children: number[]; } /** * */ export declare class AP214SceneGeometry implements SceneNodeGeometry { readonly model: Model; readonly localID: number; readonly index: number; readonly relatedElementLocalId?: number | undefined; readonly parentIndex?: number | undefined; readonly materialOverideLocalID?: number | undefined; readonly type = SceneNodeModelType.GEOMETRY; /** * No Spaces for AP214 * * @return {boolean} Always false, no spaces. */ get isSpace(): boolean; /** * Construct a scene geometry node * * @param model * @param localID * @param index * @param relatedElementLocalId * @param parentIndex * @param materialOverideLocalID */ constructor(model: Model, localID: number, index: number, relatedElementLocalId?: number | undefined, parentIndex?: number | undefined, materialOverideLocalID?: number | undefined); } export type AP214SceneNode = AP214SceneTransform | AP214SceneGeometry; /** * */ export declare class AP214SceneBuilder implements WalkableScene> { readonly model: AP214StepModel; readonly conwayGeometry: ConwayGeometry; readonly materials: AP214MaterialCache; roots: number[]; private scene_; private sceneLocalIdMap_; private geometrySet_; private sceneStack_; private currentParent_?; private transformListeners_?; private geometryListeners_?; /** * * @param model * @param conwayGeometry * @param materials */ constructor(model: AP214StepModel, conwayGeometry: ConwayGeometry, materials: AP214MaterialCache); get currentParent(): AP214SceneTransform | undefined; /** * * @param listener * @param options */ addSceneListener(listener: SceneListener, options?: SceneListenerOptions): void; /** * * @param listener */ removeSceneListener(listener: SceneListener): void; /** * * @param nodeIndex * @return {AP214SceneNode | undefined} */ getByNodeIndex(nodeIndex: number): AP214SceneNode | undefined; /** * * @param localID * @return {AP214SceneNode | undefined} */ private get; /** * Get the current stack deoth. * * @return {number} The current stack depth. */ get stackLength(): number; /** * */ clearParentStack(): void; /** * * @param localID * @return {AP214SceneTransform | undefined} */ getTransform(localID: number): AP214SceneTransform | undefined; /** * Build a packed/optimised mesh model with triangle element maps. * * @return {PackedMesh< AP214StepModel >} Maps materials to a geometry object * and triangle element map. */ buildPackedMeshModel(): PackedMesh; /** * Are all the geometry nodes in the scene spaces * * @return {boolean} Are all the geometry nodes in the scene spaces */ isAllSpaces(): boolean; /** * Walk the current scene. * * @yields Raw absolute matrix transform, the native absolute transform, the canonical mesh, * @param includeSpaces * the canonical material and the associated step element as it walks the hierarchy. */ walk(includeSpaces?: boolean): IterableIterator<[ readonly number[] | undefined, NativeTransform4x4 | undefined, CanonicalMesh, CanonicalMaterial | undefined, StepEntityBase | undefined ]>; /** * */ popTransform(): void; /** * * @param transform */ pushTransform(transform: AP214SceneTransform): void; /** * Does this scene have a particular piece of geometry? * * @param localID The local ID of the geometry * @return {boolean} True if the scene has this geometry. */ hasGeometry(localID: number): boolean; /** * * @param localID * @param owningElementLocalID * @param materialOverridLocalID * @return {AP214SceneGeometry} */ addGeometry(localID: number, owningElementLocalID?: number, materialOverridLocalID?: number): AP214SceneGeometry; /** * * @param localID * @param transform * @param nativeTransform * @param mappedItem * @return {AP214SceneTransform} */ addTransform(localID: number, transform: ReadonlyArray, nativeTransform: NativeTransform4x4, mappedItem?: boolean): AP214SceneTransform; } //# sourceMappingURL=ap214_scene_builder.d.ts.map