@itwin/core-frontend
Version:
iTwin.js frontend components
38 lines • 1.65 kB
TypeScript
/** @packageDocumentation
* @module Tiles
*/
import { ImdlModel } from "./ImdlModel";
import { VertexIndices } from "../internal/render/VertexIndices";
/** Parameters supplied to [[indexedEdgeParamsFromCompactEdges]].
* @internal
*/
export interface CompactEdgeParams {
/** The number of always-visible edges.
* @note The number of silhouette edges is the same as the number of [[normalPairs]].
*/
numVisibleEdges: number;
/** 2 bit visibility of each edge to the next edge in the triangle, in the same order as the triangle indices in [[vertexIndices]]. */
visibility: Uint8Array;
/** The indices describing the topology of the triangle mesh. */
vertexIndices: VertexIndices;
/** If any silhouettes are present, the [OctEncodedNormalPair]($common)s associated with each. */
normalPairs?: Uint32Array;
/** The maximum width or height for the resultant [[EdgeTable]]. */
maxEdgeTableDimension: number;
}
/** @internal */
export interface CompactEdge {
index0: number;
index1: number;
normals?: number;
}
/** Iterate over the compact edges.
* @note The same object is returned on each iteration, mutated in place.
* @internal
*/
export declare function compactEdgeIterator(visibilityFlags: Uint8Array, normalPairs: Uint32Array | undefined, numIndices: number, decodeIndex: (index: number) => number): IterableIterator<CompactEdge>;
/** Convert an [[ImdlCompactEdges]] to an [[IndexedEdgeParams]].
* @internal
*/
export declare function indexedEdgeParamsFromCompactEdges(compact: CompactEdgeParams): ImdlModel.IndexedEdgeParams | undefined;
//# sourceMappingURL=CompactEdges.d.ts.map