From ff675ddd26d8b6a4680f14fc579f9c6cce38cf61 Mon Sep 17 00:00:00 2001 From: afonso pinto Date: Tue, 28 Apr 2026 16:01:37 +0100 Subject: [PATCH 1/2] refactor: Use inline 1e-9 instead of METERS_PER_NANOMETER --- src/datasource/catmaid/frontend.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/datasource/catmaid/frontend.ts b/src/datasource/catmaid/frontend.ts index 689125023..1ca882dcf 100644 --- a/src/datasource/catmaid/frontend.ts +++ b/src/datasource/catmaid/frontend.ts @@ -67,8 +67,6 @@ import type { Borrowed } from "#src/util/disposable.js"; import { mat4, vec3 } from "#src/util/geom.js"; import "#src/datasource/catmaid/register_credentials_provider.js"; -const METERS_PER_NANOMETER = 1e-9; - export class CatmaidSpatiallyIndexedSkeletonSource extends WithParameters( WithCredentialsProvider()(SpatiallyIndexedSkeletonSource), @@ -429,9 +427,9 @@ export class CatmaidDataSourceProvider implements DataSourceProvider { // The model-space coordinates we emit are in nanometers, converted to meters for Neuroglancer. const coordinateScaleFactors = Float64Array.from([ - METERS_PER_NANOMETER, - METERS_PER_NANOMETER, - METERS_PER_NANOMETER, + 1e-9, + 1e-9, + 1e-9, ]); // Bounds and chunk sizes are represented in project-space nanometers. From 75936afd9c4af782dd2c33561583ed8f92b5b580 Mon Sep 17 00:00:00 2001 From: afonso pinto Date: Tue, 28 Apr 2026 16:10:07 +0100 Subject: [PATCH 2/2] refactor: Move cast to getMeshSource --- src/datasource/graphene/frontend.ts | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/datasource/graphene/frontend.ts b/src/datasource/graphene/frontend.ts index 6b38e5a10..fd18f6d8d 100644 --- a/src/datasource/graphene/frontend.ts +++ b/src/datasource/graphene/frontend.ts @@ -1333,7 +1333,7 @@ class GraphConnection extends SegmentationGraphSourceConnection { return undefined; } - getMeshSource() { + getMeshSource(): MeshSource | undefined { const { layer } = this; for (const dataSource of layer.dataSources) { const { loadState } = dataSource; @@ -1351,7 +1351,9 @@ class GraphConnection extends SegmentationGraphSourceConnection { (subsource) => subsource.id === "mesh", )[0]; if (meshSubsource) { - return meshSubsource.subsource.mesh; + // `DataSubsource.mesh` is widened for spatial skeleton support, but Graphene + // segment updates still target mesh sources. + return meshSubsource.subsource.mesh as MeshSource | undefined; } } } @@ -1359,9 +1361,7 @@ class GraphConnection extends SegmentationGraphSourceConnection { } meshAddNewSegments(segments: bigint[]) { - // `DataSubsource.mesh` is widened for spatial skeleton support, but Graphene - // segment updates still target mesh sources. - const meshSource = this.getMeshSource() as MeshSource | undefined; + const meshSource = this.getMeshSource(); if (meshSource) { for (const segment of segments) { meshSource.rpc!.invoke(GRAPHENE_MESH_NEW_SEGMENT_RPC_ID, {