@itwin/core-frontend
Version:
iTwin.js frontend components
85 lines • 3.94 kB
TypeScript
/** @packageDocumentation
* @module Rendering
*/
import { Dictionary, Id64String } from "@itwin/core-bentley";
import { Range3d } from "@itwin/core-geometry";
import { Feature, FeatureTable } from "@itwin/core-common";
import { DisplayParams } from "./DisplayParams";
import { MeshPrimitiveType } from "./MeshPrimitive";
import { GeometryList } from "./GeometryList";
import { Geometry } from "./GeometryPrimitives";
import { PolyfacePrimitive } from "./Polyface";
import { GeometryOptions } from "./Primitives";
import { StrokesPrimitive } from "./Strokes";
import { MeshBuilder } from "./MeshBuilder";
import { Mesh, MeshList } from "./MeshPrimitives";
/** @internal */
export declare class MeshBuilderMap extends Dictionary<MeshBuilderMap.Key, MeshBuilder> {
readonly range: Range3d;
readonly vertexTolerance: number;
readonly facetAreaTolerance: number;
readonly tolerance: number;
readonly is2d: boolean;
readonly features?: FeatureTable;
readonly options: GeometryOptions;
private readonly _isVolumeClassifier;
private _keyOrder;
constructor(tolerance: number, range: Range3d, is2d: boolean, options: GeometryOptions, pickable: {
isVolumeClassifier?: boolean;
modelId?: Id64String;
} | undefined);
static createFromGeometries(geometries: GeometryList, tolerance: number, range: Range3d, is2d: boolean, options: GeometryOptions, pickable: {
isVolumeClassifier?: boolean;
modelId?: Id64String;
} | undefined): MeshBuilderMap;
toMeshes(): MeshList;
/**
* extract polyfaces and strokes from geometry into MeshBuilder stored in builderMap
* @param geom Geometry instance to extract polyfaces and strokes from
*/
loadGeometry(geom: Geometry): void;
/**
* extract polyface primitives from geometry in meshBuilder stored in builderMap
* @param geom Geometry instance to extract polyfaces from
*/
loadPolyfacePrimitiveList(geom: Geometry): void;
/**
* extract indexed polyfaces into meshBuilder stored in builderMap
* @param polyface PolyfacePrimitive to extract indexed polyfaces from
*/
loadIndexedPolyface(polyface: PolyfacePrimitive, feature: Feature | undefined): void;
/**
* extract stroke primitives from geometry in meshBuilder stored in builderMap
* @param geom Geometry instance to extract strokes from
*/
loadStrokePrimitiveList(geom: Geometry): void;
/**
* extract strokes primitive into meshBuilder stored in builderMap
* @param strokePrimitive StrokesPrimitive instance to extractfrom
*/
loadStrokesPrimitive(strokePrimitive: StrokesPrimitive, feature: Feature | undefined): void;
getBuilder(displayParams: DisplayParams, type: MeshPrimitiveType, hasNormals: boolean, isPlanar: boolean): MeshBuilder;
getKey(displayParams: DisplayParams, type: MeshPrimitiveType, hasNormals: boolean, isPlanar: boolean): MeshBuilderMap.Key;
/**
* gets builder associated with key if defined, otherwise creates a new builder and sets that with key
* @param key MeshBuilderMap.Key to associate with builder
* @param props MeshBuilder.Props required to create builder if it does not already exist
* @returns builder reference, changes will update instance stored in builderMap
*/
getBuilderFromKey(key: MeshBuilderMap.Key, props: MeshBuilder.Props): MeshBuilder;
}
/** @internal */
export declare namespace MeshBuilderMap {
class Key {
order: number;
readonly params: DisplayParams;
readonly type: MeshPrimitiveType;
readonly hasNormals: boolean;
readonly isPlanar: boolean;
constructor(params: DisplayParams, type: MeshPrimitiveType, hasNormals: boolean, isPlanar: boolean);
static createFromMesh(mesh: Mesh): Key;
compare(rhs: Key): number;
equals(rhs: Key): boolean;
}
}
//# sourceMappingURL=MeshBuilderMap.d.ts.map