Skip to main content

TechnicalDrawings

OBC Component that creates and manages TechnicalDrawing instances.

Extends​

Implements​

Constructors​

new TechnicalDrawings()​

new TechnicalDrawings(components): TechnicalDrawings

A TechnicalDrawing is a 2D drawing plane that lives in 3D world space. It contains projection lines and dimension annotations (layer 1 geometry) framed by one or more orthographic DrawingViewports.

The drawing's container (a THREE.Group) can be freely transformed in the 3D world — all viewports and geometry move together as a single unit.

Parameters​

ParameterType
componentsComponents

Returns​

TechnicalDrawings

Overrides​

Component.constructor

Example​

const techDrawings = components.get(TechnicalDrawings);
const drawing = techDrawings.create(world);

// Add layer-1 geometry to the drawing
const lines = new THREE.LineSegments(geometry, material);
lines.layers.set(1);
drawing.three.add(lines);

// Add viewports
const vp = drawing.viewports.create({ left: -1, right: 5, top: 1, bottom: -4 });

Properties​

enabled​

enabled: boolean = true

Component.enabled

Overrides​

Component . enabled


list​

readonly list: DataMap<string, TechnicalDrawing>

All active drawings, keyed by their UUID.


onDisposed​

readonly onDisposed: Event<unknown>

Disposable.onDisposed

Implementation of​

Disposable . onDisposed


systems​

readonly systems: DataMap<Function, AnnotationSystem<any>>

Global system instances keyed by their constructor. Register a system with use; inspect or iterate here for UI purposes.


uuid​

static readonly uuid: "5c7d3b9a-4e8f-4a2b-9c1d-0e3f2a5b7c8d"

A unique identifier for the component. This UUID is used to register the component within the Components system.

Methods​

create()​

create(world): TechnicalDrawing

Creates a new TechnicalDrawing hosted in the given world.

The drawing's Three.js group is added to the world's scene and its lifecycle is tied to the world — it is automatically removed when the world is disposed. Three.js rendering layer 1 is enabled on the world camera so that annotation geometry is visible in the 3D view. Both perspective and orthographic cameras are configured when using OrthoPerspectiveCamera.

To hide the drawing from the 3D view without removing it from the world, either set drawing.three.visible = false or disable layer 1 on the world camera: world.camera.three.layers.disable(1).

Parameters​

ParameterTypeDescription
worldWorldThe world that will host this drawing.

Returns​

TechnicalDrawing

The newly created drawing.


dispose()​

dispose(): void

Disposable.dispose

Returns​

void

Implementation of​

Disposable . dispose


isConfigurable()​

isConfigurable(): this is Configurable<any, any>

Whether is component is Configurable.

Returns​

this is Configurable<any, any>

Inherited from​

Component . isConfigurable


isDisposeable()​

isDisposeable(): this is Disposable

Whether is component is Disposable.

Returns​

this is Disposable

Inherited from​

Component . isDisposeable


isHideable()​

isHideable(): this is Hideable

Whether is component is Hideable.

Returns​

this is Hideable

Inherited from​

Component . isHideable


isResizeable()​

isResizeable(): this is Resizeable

Whether is component is Resizeable.

Returns​

this is Resizeable

Inherited from​

Component . isResizeable


isSerializable()​

isSerializable(): this is Serializable<any, Record<string, any>>

Whether is component is Serializable.

Returns​

this is Serializable<any, Record<string, any>>

Inherited from​

Component . isSerializable


isUpdateable()​

isUpdateable(): this is Updateable

Whether is component is Updateable.

Returns​

this is Updateable

Inherited from​

Component . isUpdateable


use()​

use<T>(SystemClass): T

Returns the global singleton instance of the given system, creating it if it does not yet exist. The system constructor must accept Components as its only argument (new-style global systems). Safe to call multiple times — always returns the same instance.

const dims = techDrawings.use(OBC.LinearAnnotations);
dims.styles.set("default", { ... });

Type parameters​

Type parameter
T extends AnnotationSystem<any>

Parameters​

ParameterType
SystemClassObject

Returns​

T