@itwin/core-frontend
Version:
iTwin.js frontend components
63 lines • 2.29 kB
TypeScript
/** @packageDocumentation
* @module Rendering
*/
import { RenderFeatureTable, RenderMaterial } from "@itwin/core-common";
import { VertexTable } from "./VertexTable";
import { VertexIndices } from "./VertexIndices";
import { SurfaceMaterial } from "./SurfaceParams";
import { MaterialParams } from "../../render/MaterialParams";
import { MeshParams } from "./MeshParams";
import { PointStringParams } from "./PointStringParams";
import { PolylineParams } from "./PolylineParams";
/** @internal */
export interface VertexTableWithIndices {
vertices: VertexTable;
indices: VertexIndices;
material?: SurfaceMaterial;
}
/** Builds up a [[VertexIndices]].
* Exported strictly for tests.
* @internal
*/
export declare class IndexBuffer {
private readonly _builder;
private readonly _index32;
private readonly _index8;
constructor(initialCapacity?: number);
get numIndices(): number;
push(index: number): void;
toVertexIndices(): VertexIndices;
}
type CreateRenderMaterial = (args: MaterialParams) => RenderMaterial | undefined;
/** @internal */
export type ComputeAnimationNodeId = (featureIndex: number) => number;
/** @internal */
export interface SplitVertexTableArgs {
featureTable: RenderFeatureTable;
maxDimension: number;
computeNodeId: ComputeAnimationNodeId;
}
/** @internal */
export interface SplitPointStringArgs extends SplitVertexTableArgs {
params: PointStringParams;
}
/** Given a PointStringParams and a function that can associate a node Id with an element Id, produce a mapping of nodes to PointStringParams, splitting up
* the input params as needed.
* @internal
*/
export declare function splitPointStringParams(args: SplitPointStringArgs): Map<number, PointStringParams>;
/** @internal */
export interface SplitMeshArgs extends SplitVertexTableArgs {
params: MeshParams;
createMaterial: CreateRenderMaterial;
}
/** @internal */
export declare function splitMeshParams(args: SplitMeshArgs): Map<number, MeshParams>;
/** @internal */
export interface SplitPolylineArgs extends SplitVertexTableArgs {
params: PolylineParams;
}
/** @internal */
export declare function splitPolylineParams(args: SplitPolylineArgs): Map<number, PolylineParams>;
export {};
//# sourceMappingURL=VertexTableSplitter.d.ts.map