All files / Sources/Widgets/Widgets3D/RectangleWidget state.js

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

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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61        1x                                                                                                                
import vtkStateBuilder from 'vtk.js/Sources/Widgets/Core/StateBuilder';
import { TextPosition } from 'vtk.js/Sources/Widgets/Widgets3D/ShapeWidget/Constants';
 
export default function generateState() {
  return (
    vtkStateBuilder
      .createBuilder()
      .addStateFromMixin({
        labels: ['moveHandle'],
        mixins: ['origin', 'color', 'scale1', 'visible', 'manipulator'],
        name: 'point1Handle',
        initialValues: {
          scale1: 10,
          visible: false,
        },
      })
      .addStateFromMixin({
        labels: ['moveHandle'],
        mixins: ['origin', 'color', 'scale1', 'visible', 'manipulator'],
        name: 'point2Handle',
        initialValues: {
          scale1: 10,
          visible: false,
        },
      })
      .addStateFromMixin({
        labels: ['rectangleHandle'],
        mixins: ['origin', 'corner', 'color', 'visible', 'orientation'],
        name: 'rectangleHandle',
        initialValues: {
          visible: false,
        },
      })
      // FIXME: How to not duplicate with EllipseWidget
      .addStateFromMixin({
        labels: ['SVGtext'],
        mixins: ['origin', 'color', 'text', 'visible'],
        name: 'text',
        initialValues: {
          /* text is empty to set a text filed in the SVGLayer and to avoid
           * displaying text before positioning the handles */
          text: '',
        },
      })
      // FIXME: to move in text handle sub state
      .addField({
        name: 'textPosition',
        initialValue: [
          TextPosition.CENTER,
          TextPosition.CENTER,
          TextPosition.CENTER,
        ],
      })
      .addField({
        name: 'textWorldMargin',
        initialValue: 0,
      })
      .build()
  );
}