1717import type {
1818 LayerActionContext ,
1919 MouseSelectionState ,
20- UserLayer ,
2120} from "#src/layer/index.js" ;
21+ import { UserLayer } from "#src/layer/index.js" ;
2222import type { LoadedDataSubsource } from "#src/layer/layer_data_source.js" ;
2323import { VoxToolTab } from "#src/layer/vox/tabs/tools.js" ;
2424import type {
@@ -48,14 +48,10 @@ import {
4848} from "#src/util/json.js" ;
4949import { TrackableEnum } from "#src/util/trackable_enum.js" ;
5050import { VoxelPreviewMultiscaleSource } from "#src/voxel_annotation/PreviewMultiscaleChunkSource.js" ;
51- import type { VoxelEditControllerHost } from "#src/voxel_annotation/edit_controller.js" ;
51+ import type { VoxelEditControllerHost } from "#src/voxel_annotation/base.js" ;
52+ import { BrushShape } from "#src/voxel_annotation/base.js" ;
5253import { VoxelEditController } from "#src/voxel_annotation/edit_controller.js" ;
5354
54- export enum BrushShape {
55- DISK = 0 ,
56- SPHERE = 1 ,
57- }
58-
5955const BRUSH_SIZE_JSON_KEY = "brushSize" ;
6056const ERASE_MODE_JSON_KEY = "eraseMode" ;
6157const BRUSH_SHAPE_JSON_KEY = "brushShape" ;
@@ -154,10 +150,16 @@ export class VoxelEditingContext
154150
155151 for ( let chunkDim = 0 ; chunkDim < 3 ; ++ chunkDim ) {
156152 let sum = 0 ;
157- for ( let globalDim = 0 ; globalDim < Math . min ( globalRank , 3 ) ; ++ globalDim ) {
153+ for (
154+ let globalDim = 0 ;
155+ globalDim < Math . min ( globalRank , 3 ) ;
156+ ++ globalDim
157+ ) {
158158 const layerDim = globalToRenderLayerDimensions [ globalDim ] ;
159159 if ( layerDim !== - 1 ) {
160- sum += layerToChunkTransform [ chunkDim + layerDim * ( layerRank + 1 ) ] * globalNormal [ globalDim ] ;
160+ sum +=
161+ layerToChunkTransform [ chunkDim + layerDim * ( layerRank + 1 ) ] *
162+ globalNormal [ globalDim ] ;
161163 }
162164 }
163165 voxelNormal [ chunkDim ] = sum ;
@@ -243,11 +245,23 @@ export function UserLayerWithVoxelEditingMixin<
243245
244246 restoreState ( specification : any ) {
245247 super . restoreState ( specification ) ;
246- verifyOptionalObjectProperty ( specification , BRUSH_SIZE_JSON_KEY , v => this . voxBrushRadius . restoreState ( v ) ) ;
247- verifyOptionalObjectProperty ( specification , ERASE_MODE_JSON_KEY , v => this . voxEraseMode . restoreState ( v ) ) ;
248- verifyOptionalObjectProperty ( specification , BRUSH_SHAPE_JSON_KEY , v => this . voxBrushShape . restoreState ( v ) ) ;
249- verifyOptionalObjectProperty ( specification , FLOOD_FILL_MAX_VOXELS_JSON_KEY , v => this . voxFloodMaxVoxels . restoreState ( v ) ) ;
250- verifyOptionalObjectProperty ( specification , PAINT_VALUE_JSON_KEY , v => this . paintValue . restoreState ( v ) ) ;
248+ verifyOptionalObjectProperty ( specification , BRUSH_SIZE_JSON_KEY , ( v ) =>
249+ this . voxBrushRadius . restoreState ( v ) ,
250+ ) ;
251+ verifyOptionalObjectProperty ( specification , ERASE_MODE_JSON_KEY , ( v ) =>
252+ this . voxEraseMode . restoreState ( v ) ,
253+ ) ;
254+ verifyOptionalObjectProperty ( specification , BRUSH_SHAPE_JSON_KEY , ( v ) =>
255+ this . voxBrushShape . restoreState ( v ) ,
256+ ) ;
257+ verifyOptionalObjectProperty (
258+ specification ,
259+ FLOOD_FILL_MAX_VOXELS_JSON_KEY ,
260+ ( v ) => this . voxFloodMaxVoxels . restoreState ( v ) ,
261+ ) ;
262+ verifyOptionalObjectProperty ( specification , PAINT_VALUE_JSON_KEY , ( v ) =>
263+ this . paintValue . restoreState ( v ) ,
264+ ) ;
251265 }
252266
253267 getVoxelPaintValue ( erase : boolean ) : bigint {
@@ -258,7 +272,6 @@ export function UserLayerWithVoxelEditingMixin<
258272 this . paintValue . value = value ;
259273 }
260274
261-
262275 abstract _createVoxelRenderLayer (
263276 source : MultiscaleVolumeChunkSource ,
264277 transform : WatchableValueInterface < RenderLayerTransformOrError > ,
0 commit comments