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
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;
};
| 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. |
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;
};
| 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