All files / tools/src/stateManagement/segmentation/models SegmentationModel.ts

0% Statements 0/7
100% Branches 0/0
0% Functions 0/7
0% Lines 0/7

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37                                                                         
import type { Segmentation } from '../../../types/SegmentationStateTypes';
import type { LabelmapLayer } from '../../../types/LabelmapTypes';
import SegmentModel from './SegmentModel';
import {
  ensureLabelmapState,
  getLabelmaps,
  getSegmentBinding,
} from '../helpers/labelmapSegmentationState';
 
export default class SegmentationModel {
  constructor(private readonly state: Segmentation) {
    ensureLabelmapState(state);
  }
 
  get segmentationId(): string {
    return this.state.segmentationId;
  }
 
  get segments(): SegmentModel[] {
    return Object.values(this.state.segments).map(
      (segment) => new SegmentModel(this.state, segment)
    );
  }
 
  getLabelmaps(): LabelmapLayer[] {
    return getLabelmaps(this.state);
  }
 
  getBinding(segmentIndex: number) {
    return getSegmentBinding(this.state, segmentIndex);
  }
 
  toState(): Segmentation {
    return this.state;
  }
}