@itwin/core-frontend
Version:
iTwin.js frontend components
47 lines • 2.9 kB
TypeScript
import { Transform } from "@itwin/core-geometry";
import { FeatureSymbolizedRenderer } from "../../../../tile/internal";
/** Interface defining minimal implementation needed to create an ArcGIS geometry renderer,
* that will ultimately be called by an [[ArcGisFeatureReader]] implementation.
* @internal
*/
export interface FeatureGeometryRenderer {
transform: Transform | undefined;
hasSymbologyRenderer(): this is FeatureSymbolizedRenderer;
renderPath(geometryLengths: number[], geometryCoords: number[], fill: boolean, stride: number, relativeCoords: boolean): Promise<void>;
renderPoint(geometryLengths: number[], geometryCoords: number[], stride: number, relativeCoords: boolean): Promise<void>;
}
/** Internal implementation of [[FeatureGeometryRenderer]]
* @internal
*/
export declare abstract class FeatureGeometryBaseRenderer implements FeatureGeometryRenderer {
private _transform;
constructor(world2PixelTransform?: Transform);
abstract hasSymbologyRenderer(): this is FeatureSymbolizedRenderer;
get transform(): Transform | undefined;
protected abstract beginPath(): void;
protected abstract closePath(): void;
protected abstract lineTo(x: number, y: number): void;
protected abstract moveTo(x: number, y: number): void;
protected abstract stroke(): Promise<void>;
protected abstract fill(): Promise<void>;
protected abstract drawPoint(x: number, y: number): void;
protected abstract finishPoints(): Promise<void>;
/**
* Render a path on the renderer's context.
* Note: Inputs are designed based on the PBF format, to avoid any data transformation.
* @param geometryLengths Array be used to determine the start and end of each sub-path / rings. (i.e. [5,5] = two rings of 5 vertices)
* @param geometryCoords Array that linearly encodes the vertices of each sub-path of a polyline / ring of a polygon
* @param fill Indicates if the path should be filled or not.
* @param stride Dimension of each vertices (i.e. 2 or 3. 3 could be X,Y,Z, X,YM) Currently 3rd dimension is ignored.
*/
renderPath(geometryLengths: number[], geometryCoords: number[], fill: boolean, stride: number, relativeCoords: boolean): Promise<void>;
/**
* Render a point on the renderer's context.
* Note: Inputs are designed based on the PBF format, to avoid any data transformation.
* @param geometryLengths Array be used to determine the start and end of each multi-point array, empty for single point.
* @param geometryCoords Array that linearly encodes vertices.
* @param stride Dimension of each vertices (i.e. 2 or 3. 3 could be X,Y,Z, X,YM) Currently 3rd dimension is ignored.
*/
renderPoint(geometryLengths: number[], geometryCoords: number[], stride: number, relativeCoords: boolean): Promise<void>;
}
//# sourceMappingURL=FeatureGeometryRenderer.d.ts.map