diff --git a/src/mol-math/geometry/common.ts b/src/mol-math/geometry/common.ts index 184034082d4cde217e9e1578ba7e6a01ec961317..4d37da1f4cb58bab7244577213b983658cb32f96 100644 --- a/src/mol-math/geometry/common.ts +++ b/src/mol-math/geometry/common.ts @@ -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 = { diff --git a/src/mol-math/geometry/gaussian-density/cpu.ts b/src/mol-math/geometry/gaussian-density/cpu.ts index bb74c6d120258b3eb704931cd3699559f5d2bac6..4adb4b8de181fe464270dc21619cc39b34085c67 100644 --- a/src/mol-math/geometry/gaussian-density/cpu.ts +++ b/src/mol-math/geometry/gaussian-density/cpu.ts @@ -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 } } } diff --git a/src/mol-math/geometry/gaussian-density/gpu.ts b/src/mol-math/geometry/gaussian-density/gpu.ts index 2128478a68457c677571740be6ccd57627cf1464..901b4736804184dc428e21547fb943845be74ad3 100644 --- a/src/mol-math/geometry/gaussian-density/gpu.ts +++ b/src/mol-math/geometry/gaussian-density/gpu.ts @@ -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