TypeScript types
All public types are exported from "pointflow". Import them with import type to avoid including them in your runtime bundle.
Core types
PointRecord
type PointRecord = {
x: number;
y: number;
z: number;
attributes?: Record<string, number>;
};
PointChunk
type PointChunk = {
points: PointRecord[];
};
PackedAttributeChannel
type PackedAttributeChannel = {
key: string;
values: Float32Array;
present: Uint8Array; // 1 = value present, 0 = missing
};
DenseAttributeChannel
type DenseAttributeChannel = {
key: string;
values: Float32Array; // all values present — no presence bitmap needed
};
PickedPoint
type PickedPoint = {
x: number;
y: number;
z: number;
attributes: Record<string, number>;
screenDist: number;
slotIndex: number;
confidence: number;
};
PickStrategy
type PickStrategy = "highestImportance" | "nearest" | "recentFirst";
RendererBackend
type RendererBackend = "auto" | "webgpu" | "webgl";
PointCloudSource
type PointCloudSource = string | URL | Request | File | Blob;
Policy types
RuntimeMode
type RuntimeMode = "eco" | "balanced" | "max_throughput" | "custom";
TierLevel
type TierLevel = "L" | "M" | "H";
UserConstraints
type UserConstraints = {
pointBudgetCap?: number;
updateCadenceMinMs?: number;
};
ActivePolicy
type ActivePolicy = {
tier: TierLevel;
mode: RuntimeMode;
pointBudget: number;
updateCadenceMs: number;
expensivePassesEnabled: boolean;
};
Streaming metrics
StreamedPointCloudRenderMetrics
type StreamedPointCloudRenderMetrics = {
drawCalls: number;
renderedPoints: number;
gpuTimeMs: number | null;
frameTimeMs: number;
fps: number;
};
TemporalStats
type TemporalStats = {
windowedCount: number;
totalCount: number;
oldestPointAgeMs: number;
};
COPC types
AtlasTierConfig
type AtlasTierConfig = {
slotCount: number;
pointsPerSlot: number;
};
CopcPrefetchStrategy
type CopcPrefetchStrategy =
| "frustum-priority"
| "depth-first"
| "nearest"
| "bandwidth-saver";
Quantized transport types
QuantizedSchema
type QuantizedSchema = {
attributes: QuantizedAttrSchema[];
};
QuantizedAttrSchema
type QuantizedAttrSchema = {
key: string;
min: number;
max: number;
};
Load lifecycle
PointCloudLoadTelemetryEvent
type PointCloudLoadTelemetryEvent = {
phase: "start" | "header" | "chunk" | "done" | "error" | "abort";
progress?: number; // 0-1, present on "chunk" and "done"
};
PointCloudStatus
type PointCloudStatus = "idle" | "loading" | "ready" | "error" | "aborted";