import { CanonicalMaterial } from "./canonical_material.js"; import { CanonicalMesh } from "./canonical_mesh.js"; import { CanonicalProfile } from "./canonical_profile.js"; import { Entity } from "./entity.js"; import { IIndexSetCursor } from "./i_index_set_cursor.js"; import { ModelMaterials } from "./model_materials.js"; import { SceneNodeGeometry } from "./scene_node.js"; /** * Geometry capability, this model has geometry. */ export interface ModelGeometry extends Iterable { length: number; getByLocalID(localID: number): CanonicalMesh | undefined; } /** * Geometry capability, this model has profiles. */ export interface ModelProfile extends Iterable { length: number; getByLocalID(localID: number): CanonicalProfile | undefined; } export interface Model extends Iterable { getElementByLocalID(localID: number): Entity | undefined; extract(from: Iterable): IterableIterator; from(cursor: IIndexSetCursor, freeCursor: boolean): IterableIterator; /** * Get the material matching a geometry node. * * Geometry must have been extracted first. * * @param node The geometry node to match a material for. * @return {CanonicalMaterial | undefined} A material, or undefined if it is not found. */ getMaterialFromGeometryNode(node: SceneNodeGeometry): CanonicalMaterial | undefined; /** * Get the mesh matching a geometry node. * * Geometry must have been extracted first. * * @param node The geometry node to match a mesh for. * @return {CanonicalMesh | undefined} A mesh, or undefined if it is not found. */ getMeshFromGeometryNode(node: SceneNodeGeometry): CanonicalMesh | undefined; readonly geometry?: ModelGeometry; readonly materials?: ModelMaterials; readonly size: number; } //# sourceMappingURL=model.d.ts.map