Skip to content

createPointCloud#setScaleTransform

Summary

createPointCloud#setScaleTransform replaces the scalar-to-color mapping without rewriting point records. Omitted point-layout fields default to componentCount: 4, componentIndex: 3, stride: 4, and offset: 0.

Syntax

PointCloud.setScaleTransform(transform: ScaleTransformDescriptor | ScaleTransform): void
pointCloud.setScaleTransform(transform);

Parameters

Name Type Required Description
transform ScaleTransformDescriptor \| ScaleTransform Yes Scale transform descriptor/object applied by this call.

Returns

void

Type Details

ScaleTransformDescriptor

type ScaleTransformDescriptor = {

    mode?: ScaleMode;

    clampMode?: ScaleClampMode;

    valueMode?: ScaleValueMode;

    componentCount?: number;

    componentIndex?: number;

    stride?: number;

    offset?: number;

    domainMin?: number;

    domainMax?: number;

    clampMin?: number;

    clampMax?: number;

    percentileLow?: number;

    percentileHigh?: number;

    logBase?: number;

    symlogLinThresh?: number;

    gamma?: number;

    invert?: boolean;

};

ScaleTransformDescriptor Fields

Name Type Required Description
mode ScaleMode No Numeric transform applied before domain normalization.
clampMode ScaleClampMode No Clamping mode used by scale transforms.
valueMode ScaleValueMode No Value extraction mode used when mapping source data into scale inputs.
componentCount number No Number of components considered when extracting each value.
componentIndex number No Selected component for "component" value mode.
stride number No Distance, in f32 values, between source records.
offset number No Initial source offset in f32 values.
domainMin number No Lower bound mapped into the normalized color domain.
domainMax number No Upper bound mapped into the normalized color domain.
clampMin number No Lower value clamp used when clamping is enabled.
clampMax number No Upper value clamp used when clamping is enabled.
percentileLow number No Requested lower percentile, expressed from 0 to 100.

ScaleTransform

type ScaleTransform = {

    mode: ScaleMode;

    clampMode: ScaleClampMode;

    valueMode: ScaleValueMode;

    componentCount: number;

    componentIndex: number;

    stride: number;

    offset: number;

    domainMin: number;

    domainMax: number;

    clampMin: number;

    clampMax: number;

    percentileLow: number;

    percentileHigh: number;

    logBase: number;

    symlogLinThresh: number;

    gamma: number;

    invert: boolean;

};

ScaleTransform Fields

Name Type Required Description
mode ScaleMode Yes Numeric transform applied before domain normalization.
clampMode ScaleClampMode Yes Clamping mode used by scale transforms.
valueMode ScaleValueMode Yes Value extraction mode used when mapping source data into scale inputs.
componentCount number Yes Number of components considered when extracting each value.
componentIndex number Yes Selected component for "component" value mode.
stride number Yes Distance, in f32 values, between source records.
offset number Yes Initial source offset in f32 values.
domainMin number Yes Lower bound mapped into the normalized color domain.
domainMax number Yes Upper bound mapped into the normalized color domain.
clampMin number Yes Lower value clamp used when clamping is enabled.
clampMax number Yes Upper value clamp used when clamping is enabled.
percentileLow number Yes Requested lower percentile, expressed from 0 to 100.

ScaleMode

type ScaleMode = "linear" | "log" | "symlog";

ScaleClampMode

type ScaleClampMode = "none" | "range" | "percentile";

ScaleValueMode

type ScaleValueMode = "component" | "magnitude";

Example

const canvas = document.querySelector("canvas");
const wgpu = await WasmGPU.create(canvas);

const pointCloud = wgpu.createPointCloud({ data: new Float32Array([0, 0, 0, 0.1, 1, 0, 0, 0.8]), scaleTransform: { mode: "linear", domainMin: 0, domainMax: 1 } });
const transform = { mode: "linear", domainMin: 0, domainMax: 1 };
pointCloud.setScaleTransform(transform);
console.log(pointCloud.scaleTransform.domainMax); // 1

See Also