@@ -14,11 +14,12 @@ export interface PositionData {
x: ArrayLike<number>,
y: ArrayLike<number>,
z: ArrayLike<number>,
- id: ArrayLike<number>,
/** subset of indices into the x/y/z/radius arrays */
indices: OrderedSet,
/** optional element radius */
- radius?: ArrayLike<number>
+ radius?: ArrayLike<number>,
+ /** optional element id */
+ id?: ArrayLike<number>,
}
export type DensityData = {
@@ -100,7 +100,7 @@ export async function GaussianDensityCPU(ctx: RuntimeContext, position: Position
data[idx] += dens
if (dens > densData[idx]) {
densData[idx] = dens
- idData[idx] = id[i]
+ idData[idx] = id ? id[i] : i
@@ -242,7 +242,7 @@ function prepareGaussianDensityData(position: PositionData, box: Box3D, radius:
const r = radius(j) + radiusOffset
if (maxRadius < r) maxRadius = r
radii[i] = r
- groups[i] = id[i]
+ groups[i] = id ? id[i] : i
const pad = maxRadius * 2 + resolution * 4