/** * @typedef {object} RangeEntry Represents a location of a vertex subset * @prop {number} offset in vertices * @prop {number} count in vertices * @prop {import("../utils/binnedIndex.js").Lookup} xIndex */ export class GeometryBuilder { /** * @typedef {import("./arrayBuilder.js").ConverterMetadata} Converter * @typedef {import("../types/encoder.js").Encoder} Encoder */ /** * @param {object} object * @param {Record} object.encoders * @param {string[]} [object.attributes] * @param {number} [object.numVertices] If the number of data items is known, a * preallocated TypedArray is used */ constructor({ encoders, numVertices, attributes }: { encoders: Record; attributes?: string[]; numVertices?: number; }); encoders: Record; variableEncoders: Record; allocatedVertices: number; variableBuilder: ArrayBuilder; /** @type {Partial>} */ attributeNames: Partial>; xIndexConfig: { domain: [number, number]; xAttributeName: string; x2AttributeName: string; }; lastOffset: number; /** @type {Map} keep track of facet locations within the vertex array */ rangeMap: Map; /** * Must be called at the end of `addBatch` * * @param {any} key */ registerBatch(key: any): void; /** * @param {Map} batches */ addBatches(batches: Map): void; /** * @param {any} key The facet id, for example * @param {object[]} data */ addBatch(key: any, data: object[], lo?: number, hi?: number): void; /** * Builds the x-domain lookup for the current batch if x indexing is enabled. * * @param {number} startVertexIndex * @param {number} endVertexIndex * @returns {import("../utils/binnedIndex.js").Lookup | undefined} */ createXIndex(startVertexIndex: number, endVertexIndex: number): import("../utils/binnedIndex.js").Lookup | undefined; toArrays(): { /** @type {Record} */ arrays: Record; /** Number of vertices used */ vertexCount: number; /** Number of vertices allocated in buffers */ allocatedVertices: number; rangeMap: Map; }; } export class RectVertexBuilder extends GeometryBuilder { /** * * @param {Object} object * @param {Record} object.encoders * @param {string[]} object.attributes * @param {number} [object.numItems] Number of data items */ constructor({ encoders, attributes, numItems }: { encoders: Record; attributes: string[]; numItems?: number; }); pushAllSixTimes: any; } export class RuleVertexBuilder extends GeometryBuilder { /** * * @param {Object} object * @param {Record} object.encoders * @param {string[]} object.attributes * @param {number} [object.tessellationThreshold] * If the rule is wider than the threshold, tessellate it into pieces * @param {number[]} [object.visibleRange] * @param {number} [object.numItems] Number of data items */ constructor({ encoders, attributes, tessellationThreshold, visibleRange, numItems, }: { encoders: Record; attributes: string[]; tessellationThreshold?: number; visibleRange?: number[]; numItems?: number; }); visibleRange: number[]; tessellationThreshold: number; updateSide: (arg0: number | number[]) => any; updatePos: (arg0: number | number[]) => any; } export class PointVertexBuilder extends GeometryBuilder { /** * * @param {object} object * @param {Record} object.encoders * @param {string[]} object.attributes * @param {number} [object.numItems] Number of points if known, uses TypedArray */ constructor({ encoders, attributes, numItems }: { encoders: Record; attributes: string[]; numItems?: number; }); } export class LinkVertexBuilder extends GeometryBuilder { /** * @param {object} object * @param {Record} object.encoders * @param {string[]} object.attributes * @param {number} [object.numItems ] Number of points if known, uses TypedArray */ constructor({ encoders, attributes, numItems }: { encoders: Record; attributes: string[]; numItems?: number; }); } export class TextVertexBuilder extends GeometryBuilder { /** * * @param {object} object * @param {Record} object.encoders * @param {string[]} object.attributes * @param {import("../fonts/bmFontMetrics.js").BMFontMetrics} object.fontMetrics * @param {Record} object.properties * @param {number} [object.numCharacters] number of characters * @param {boolean} [object.logoLetters] */ constructor({ encoders, attributes, fontMetrics, properties, numCharacters, }: { encoders: Record; attributes: string[]; fontMetrics: import("../fonts/bmFontMetrics.js").BMFontMetrics; properties: Record; numCharacters?: number; logoLetters?: boolean; }); metadata: import("../fonts/bmFontMetrics.js").BMFontMetrics; metrics: import("../fonts/bmFontMetrics.js").BMFontMetrics; properties: Record; /** @type {(value: any) => string} */ numberFormat: (value: any) => string; updateVertexCoord: (arg0: number | number[]) => any; updateTextureCoord: (arg0: number | number[]) => any; updateWidth: (arg0: number | number[]) => any; } /** * Represents a location of a vertex subset */ export type RangeEntry = { /** * in vertices */ offset: number; /** * in vertices */ count: number; xIndex: import("../utils/binnedIndex.js").Lookup; }; import ArrayBuilder from "./arrayBuilder.js"; //# sourceMappingURL=dataToVertices.d.ts.map