BIM.works SDKs - v3.0.0-b.115
    Preparing search index...

    Represents one LaserMeasurement. There can be multiple LaserMeasurements in one viewer, but only one can be active (moving around) at a time.

    Hierarchy (View Summary)

    Index

    Constructors

    Properties

    toReference: boolean

    Whether the beams end on the reference (centre line, axis plane) of the object they hit instead of its surface (docs/reference-geometry-measurement-design.md §4.2). Toggled by the O key while the laser follows the cursor or is selected (a click on its instrument), and by Measuring.toggleReference

    Accessors

    • get editable(): boolean

      Whether the points of this measurement can be dragged to a new position after it has been finalized (default true). Supported for area, path and point measurements, and for the laser, which is dragged as a whole by its instrument (a click on it selects it instead); the other types have no draggable points. The points show a pointer cursor on hover; while dragging, vertex snapping applies as during measuring (Shift temporarily disables it) and the label (area/length/position) is updated in realtime. Dropping the point fires the committed listener event, Escape cancels the drag

      Returns boolean

    • set editable(editable: boolean): void

      Parameters

      • editable: boolean

      Returns void

    • get editState(): | {
          index: number
          | null;
          moved: boolean;
          originalText: string | null;
      }
      | null

      The point being dragged (see editable): its index, whether it moved yet, and the measurement's value before the drag as its label shows it. Null when no point is dragged. A right-click during the drag puts the point back, like Escape. For a laser, index is the beam end dragged along its beam (0-2 the ends along the axes, 3-5 those opposite), null while it moves as a whole by its instrument; originalText is null

      Returns { index: number | null; moved: boolean; originalText: string | null } | null

    • get finished(): boolean

      Returns boolean

      Whether this measurement is finished

    • get id(): number

      Get the unique identifier of this measurement

      Returns number

    • get lengths(): number[]

      Returns number[]

      The lengths its beams are labelled with (mm), axis by axis: the two beams along an axis read as one length, end to end, and the beam along the face normal stands alone. Empty before anything is hit

    • get placement(): { coordinate: vec3; normal: vec3; qid: string | null } | null

      Returns { coordinate: vec3; normal: vec3; qid: string | null } | null

      Where the laser stands, to place it again with Measuring.addLaserMeasurement: the point (viewer measurement coordinates), the normal of the face it stands on and the qid of that face's object; null until it is placed

    • get pointCount(): number

      Returns number

      The points placed so far while this measurement is being taken (objects picked, for an object distance)

    • get snapsToVertices(): boolean

      Returns boolean

      Whether the points of this measurement snap to vertices and edges (point, length, area, angle)

    Methods

    • Returns boolean

      Whether cycleReferenceMode applies: the laser has hits to re-target

    • Returns boolean

      Whether finish() would complete this measurement now (enough points for a length or an area)

    • The O key: toggle toReference and re-target every beam

      Returns Promise<boolean>

      true when toggled; false when the laser has no hits yet

    • Returns vec3[] | null

      The points (viewer measurement coordinates) a camera fit on this measurement encloses, or null when it has none yet

    • Returns boolean

      Whether this measurement is hovered

    • Returns boolean

      Whther this measurement is only measuring in the z-direction (vertically). When this returns false it is always a 3-axis laser measurement

    • Returns boolean

      Whether this measurement is selected

    • Returns void

      Remove this Measurement

    • Remove the last placed point while this measurement is being taken, see Measuring.undoLastPoint

      Returns boolean

      Whether a point was taken back