A tool that allows interactive creation and edition of Shapes.

Creation

To create shapes, you can either use one of the preset methods (createSegment, createPolygon...), or start creating a free shape with createShape.

This method allows fine control over the constraints to apply to the shape (how many vertices, styling options, what component to display...).

Edition

The enterEditMode method allows the user to edit any shape that the mouse interacts with. Depending on the constraints put on the shape during the creation (assuming of course that the shape was created with this tool), some operations might not be permitted.

To exit edition mode, call exitEditMode.

Examples of constraints

  • If a shape was created with the createSegment method, it is not possible to insert or remove points, because the constraint forces the shape to have exactly 2 points.

  • If a shape was created with the createPolygon method, then any time the user moves the first or last vertex, the other one is automatically moved at the same position, to ensure the shape remains closed.

Hierarchy (view full)

Implements

Constructors

Methods

  • Creates a vertical measure Shape that displays the vertical distance between the start and end point, as well as the angle between the segment formed by those points and the horizontal plane. The shape looks like a right triangle.

    Parameters

    Returns Promise<null | entities.Shape<EntityUserData>>

    A promise that eventually returns the Shape or null if creation was cancelled.

  • Enter edition mode. In this mode, existing Shapes can be modified (add/remove points, move points).

    Parameters

    • Optional options: {
          onBeforePointMoved?: MouseCallback;
          onBeforePointRemoved?: MouseCallback;
          onSegmentClicked?: MouseCallback;
          pick?: PickCallback;
          shapesToEdit?: entities.Shape<EntityUserData>[];
      }

      The options.

      • Optional onBeforePointMoved?: MouseCallback

        The optional callback called just before a point is clicked, to determine if it can be moved. By default, points are moved with a left click.

      • Optional onBeforePointRemoved?: MouseCallback

        The optional callback called just before a point is clicked, to determine if it can be deleted. By default, points are removed with a click on the middle mouse button or Alt + Left click.

      • Optional onSegmentClicked?: MouseCallback

        The optional callback to test for mouse or key combination when a segment is clicked. By default, points are inserted with a left click.

      • Optional pick?: PickCallback

        The custom picking function. If unspecified, the default one will be used.

      • Optional shapesToEdit?: entities.Shape<EntityUserData>[]

        The shapes to edit. If undefined or empty, all shapes become editable.

    Returns void