Skip to content

editorGlobalsTool

Class: Tool

Base class for all tools

Hierarchy

  • Tool

BoxelTool

AssemblePlateTool

AddPlateTool

MirrorTool

SandingJigTool

Index

Constructors

Properties

Methods

Constructors

constructor

+ new Tool(chosenUiManifestation: IToolManifestation, options: IToolOptions): Tool

Defined in src/tools/Tool.ts:162

Parameters:

Name Type Description
chosenUiManifestation IToolManifestation the manifestation object as chosen by the user
options IToolOptions -

Returns: Tool

Properties

Protected Readonly accessUiComponent

accessUiComponent: any = null

Defined in src/tools/Tool.ts:151


Protected Readonly animationFunction

animationFunction: function = null

Defined in src/tools/Tool.ts:147

Type declaration:

▸ (animation: any): void

Parameters:

Name Type
animation any

Protected Readonly chosenUiManifestation

chosenUiManifestation: IToolManifestation

Defined in src/tools/Tool.ts:162


Protected Readonly compositeModel

compositeModel: CompositeModel | null = null

Defined in src/tools/Tool.ts:141


Protected Readonly continueInteractionOnAnimate

continueInteractionOnAnimate: boolean = false

Defined in src/tools/Tool.ts:133


Protected Readonly editor

editor: Editor | null = null

Defined in src/tools/Tool.ts:145


Protected Readonly hintManager

hintManager: HintManager = null

Defined in src/tools/Tool.ts:153


Protected Readonly parameters

parameters: any = null

Defined in src/tools/Tool.ts:160


Protected Readonly pauseFidelityControl

pauseFidelityControl: boolean = true

Defined in src/tools/Tool.ts:137


Protected Readonly pausePhysicsSimulation

pausePhysicsSimulation: boolean = false

Defined in src/tools/Tool.ts:135


Protected Readonly renderContext

renderContext: RenderContext | null = null

Defined in src/tools/Tool.ts:143


Protected Readonly threeNode

threeNode: Object3D = null

Defined in src/tools/Tool.ts:139


Protected Readonly undoEngine

undoEngine: UndoEngine | null = null

Defined in src/tools/Tool.ts:155


Protected Readonly userMessageEventEmitter

userMessageEventEmitter: EventEmitter‹string› = new EventEmitter()

Defined in src/tools/Tool.ts:126


Protected Readonly userProgressCancelEventEmitter

userProgressCancelEventEmitter: EventEmitter‹number› = new EventEmitter()

Defined in src/tools/Tool.ts:129


Protected Readonly userProgressEventEmitter

userProgressEventEmitter: EventEmitterIToolUserProgressEvent = new EventEmitter()

Defined in src/tools/Tool.ts:127


Protected Readonly userProgressFinishEventEmitter

userProgressFinishEventEmitter: EventEmitter‹number› = new EventEmitter()

Defined in src/tools/Tool.ts:128


Protected Readonly visualizationManager

visualizationManager: VisualizationManager | null = null

Defined in src/tools/Tool.ts:157


Protected Readonly wakeUpCallback

wakeUpCallback: function = null

Defined in src/tools/Tool.ts:149

Type declaration:

▸ (): void

Methods

cancel

cancel(): void

Defined in src/tools/Tool.ts:403

Abstract method that should be implemented: Called when the user selects another tool or the InteractionManager throws away this instance or when the InteractionHandler throws it away on mapping change. Note that the content of the three node and modifications on the composite model get cleared automatically.

Returns: void


cancelUserProgress

cancelUserProgress(id: number): void

Defined in src/tools/Tool.ts:234

Parameters:

Name Type
id number

Returns: void


clickInteraction

clickInteraction(mappingResult: IMapping, interactionData: IInteractionData): Promise‹boolean› | void

Defined in src/tools/Tool.ts:371

Called when tool interaction is finished and the user performed a first click interaction, not a drag interaction. This method is called after startInteraction was called. It is also called by consecutiveClick if no custom implementation has been created. Implementing this method is optional, but the default is to forward the call to Tool.finishInteraction.

Parameters:

Name Type Description
mappingResult IMapping object returned from the InteractionMapping specified in startInteraction() or null
interactionData IInteractionData -

Returns: Promise‹boolean› | void

Same as Tool.finishInteraction


consecutiveClick

consecutiveClick(mappingResult: IMapping, interactionData: IInteractionData, n: number): Promise‹boolean› | void

Defined in src/tools/Tool.ts:386

Called after start, continue when there has been a consecutive click, signaling that there has been a double or triple etc. click. It never signals the first click! No new tool instance will be created, consecutiveClick will be called on the same instance that already received the click. It will only be called if the tool specifies worksWithConsecutiveClick as true in the toolManifestations Defaults to forwarding the interaction to Tool.clickInteraction

Parameters:

Name Type Default Description
mappingResult IMapping - object returned from the InteractionMapping specified in startInteraction() or null
interactionData IInteractionData - -
n number 2 the in in this is the nTh click. The first click (consumed by clickInteraction) would have n=1, so the lowest value in consecutiveClick is 2.

Returns: Promise‹boolean› | void

Same as Tool.finishInteraction


continueInteraction

continueInteraction(mappingResult: IMapping, interactionData: IInteractionData): void

Defined in src/tools/Tool.ts:341

Abstract method that needs to be implemented: Called when tool interaction is continued (after startInteraction) Typical use-case is supporting mouse-dragging operations

Parameters:

Name Type Description
mappingResult IMapping object returned from the InteractionMapping specified in startInteraction() or null
interactionData IInteractionData -

Returns: void


displayUserMessage

displayUserMessage(message: string): void

Defined in src/tools/Tool.ts:216

Parameters:

Name Type
message string

Returns: void


displayUserProgress

displayUserProgress(id: number, progress: number, message: string, type: string, cancelFunction: function): void

Defined in src/tools/Tool.ts:220

Parameters:

id: number

progress: number

message: string

type: string

cancelFunction: function

▸ (): void

Returns: void


equals

equals(otherTool: Tool): boolean

Defined in src/tools/Tool.ts:410

Parameters:

Name Type
otherTool Tool

Returns: boolean

whether otherTool is the same kind of tool as this one


finishInteraction

finishInteraction(mappingResult: IMapping, interactionData: IInteractionData): Promise‹boolean› | void

Defined in src/tools/Tool.ts:358

Abstract method that needs to be implemented: Called when tool interaction is finished (after start/continue) and the interaction has been a drag interaction (note that clickInteraction by default forwards to this method) This method is called after startInteraction was called.

Parameters:

Name Type Description
mappingResult IMapping object returned from the InteractionMapping specified in startInteraction() or null
interactionData IInteractionData -

Returns: Promise‹boolean› | void

Tool has to return a Promise that resolves when all tool logic has finished. If this tool can handle multiple interactions, it has to resolve to true when the last interaction was handled and overall tool interaction finished, else, the promise has to resolve to false. In the latter case, the same tool instance will be used. So, it will receive start, continue, finish cycles until it return true.


finishUserProgress

finishUserProgress(id: number): void

Defined in src/tools/Tool.ts:230

Parameters:

Name Type
id number

Returns: void


getAnimationFunction

getAnimationFunction(): function

Defined in src/tools/Tool.ts:284

Returns: function

the addAnimation function of the render context

▸ (animation: any): void

Parameters:

Name Type
animation any

getCanHandleMultipleInteractions

getCanHandleMultipleInteractions(): boolean

Defined in src/tools/Tool.ts:242

Returns: boolean


getCanWorkWithHints

getCanWorkWithHints(): boolean

Defined in src/tools/Tool.ts:238

Returns: boolean


getChosenUiManifestation

getChosenUiManifestation(): IToolManifestation

Defined in src/tools/Tool.ts:258

Returns: IToolManifestation


getCompositeModel

getCompositeModel(): CompositeModel | null

Defined in src/tools/Tool.ts:307

Returns: CompositeModel | null


getEditor

getEditor(): Editor | null

Defined in src/tools/Tool.ts:288

Returns: Editor | null


getHintManager

getHintManager(): HintManager

Defined in src/tools/Tool.ts:311

Returns: HintManager


getInteractionCancelled

getInteractionCancelled(): object

Defined in src/tools/Tool.ts:188

Returns: object


getInteractionStarted

getInteractionStartedT›(mappings: T): object

Defined in src/tools/Tool.ts:176

Type parameters:

T: AbstractInteractionMapping[]

Parameters:

Name Type Default
mappings T [] as T

Returns: object


getInternalName

getInternalName(): string

Defined in src/tools/Tool.ts:433

Get tool name from the instance

Returns: string


getManifestationParameters

getManifestationParameters(): any

Defined in src/tools/Tool.ts:269

Returns: any

the parameters that were specified in the tool manifestation


getParameters

getParameters(): any

Defined in src/tools/Tool.ts:262

Returns: any


getPauseFidelityControl

getPauseFidelityControl(): boolean

Defined in src/tools/Tool.ts:254

Returns: boolean


getPausePhysicsSimulation

getPausePhysicsSimulation(): boolean

Defined in src/tools/Tool.ts:250

Returns: boolean


getRenderContext

getRenderContext(): RenderContext

Defined in src/tools/Tool.ts:273

Returns: RenderContext


getReproduceInfo

getReproduceInfo(): ISerializableObject

Defined in src/tools/Tool.ts:426

returns information to reproduce the current state of the tool on error. Can essentially be any object, should be human-readable and enable you to understand the error when looking at a log.

Returns: ISerializableObject


getRequiresContinuousModelIntersection

getRequiresContinuousModelIntersection(): boolean

Defined in src/tools/Tool.ts:246

Returns: boolean


getThreeNode

getThreeNode(): Object3D

Defined in src/tools/Tool.ts:303

Returns the reference to the THREE node

Returns: Object3D


getUiComponentAccessMethod

getUiComponentAccessMethod(): any

Defined in src/tools/Tool.ts:296

Returns: any


getUndoEngine

getUndoEngine(): UndoEngine

Defined in src/tools/Tool.ts:277

Returns: UndoEngine


getUserMessageEventEmitter

getUserMessageEventEmitter(): IPublicEventEmitterInterface‹string›

Defined in src/tools/Tool.ts:200

Returns: IPublicEventEmitterInterface‹string›


getUserProgressCancelEventEmitter

getUserProgressCancelEventEmitter(): IPublicEventEmitterInterface‹number›

Defined in src/tools/Tool.ts:212

Returns: IPublicEventEmitterInterface‹number›


getUserProgressEventEmitter

getUserProgressEventEmitter(): IPublicEventEmitterInterfaceIToolUserProgressEvent

Defined in src/tools/Tool.ts:204

Returns: IPublicEventEmitterInterfaceIToolUserProgressEvent


getUserProgressFinishEventEmitter

getUserProgressFinishEventEmitter(): IPublicEventEmitterInterface‹number›

Defined in src/tools/Tool.ts:208

Returns: IPublicEventEmitterInterface‹number›


getVisualizationManager

getVisualizationManager(): VisualizationManager

Defined in src/tools/Tool.ts:315

Returns: VisualizationManager


getWakeUpCallback

getWakeUpCallback(): function

Defined in src/tools/Tool.ts:292

Returns: function

▸ (): void


getWorksInEmptySpace

getWorksInEmptySpace(): boolean

Defined in src/tools/Tool.ts:192

Returns: boolean


getWorksWithConsecutiveClicks

getWorksWithConsecutiveClicks(): boolean

Defined in src/tools/Tool.ts:196

Returns: boolean


needsReset

needsReset(): boolean

Defined in src/tools/Tool.ts:394

If the model should be reset when another tool takes over. Only used to declare no need for resets on non-sticky multiclicks with the moveTool as the default tool.

Returns: boolean


startInteraction

startInteraction(interactionData: IInteractionData, canHandleResult: ICanHandleInteractionResult["resultObject"]): object

Defined in src/tools/Tool.ts:328

Abstract method that needs to be implemented: Called when tool interaction is started

Parameters:

Name Type
interactionData IInteractionData
canHandleResult ICanHandleInteractionResult["resultObject"]

Returns: object

desired interaction mappings for future interaction events. {interaction: interactionStarted} if the tool can work without mappings {interaction: interactionStarted, mappings: [mapping1, …]} if the tool works with mappings {interaction: interactionCancelled} if the user selected an invalid object or area and the tool cannot work and should be canceled. If the tool is canceled, it remains selected.


Static canHandleInteraction

canHandleInteraction(interactionData: IInteractionData, parameters?: any): CanHandleInteractionResult

Defined in src/tools/Tool.ts:113

Checks whether the tool is able to do something meaningful with the given interaction data. This method is guaranteed to be called before startInteraction, so null checks should only happen here. It can provide a resultObject which will get passed to startInteraction (eg for found model elements).

Parameters:

Name Type Description
interactionData IInteractionData -
parameters? any additional parameters to configure behavior (eg when not triggered from the menu))

Returns: CanHandleInteractionResult

a quality and an optional resultObject if the tool wants to handle the interaction itself. A quality with a delegation object and optional resultObject if the tool knows where to delegate the interaction for sure. null when the interaction cannot be handled or delegated by the tool.


Static getInternalName

getInternalName(): string

Defined in src/tools/Tool.ts:80

Returns: string

the internal, unique name of the tool. Used by the menu items to define which tool to use.


Static keepLastBoxelUnMerged

keepLastBoxelUnMerged(): boolean

Defined in src/tools/Tool.ts:122

When the tool is selected and this returns true, the last boxel in the boxelqueue will stay unconnected to the base mesh so we can apply rotations to it.

Returns: boolean


Static onSelected

onSelected(editorInstance: Editor, toolManifestation?: IToolManifestation, parameters?: any): boolean

Defined in src/tools/Tool.ts:87

Parameters:

Name Type
editorInstance Editor
toolManifestation? IToolManifestation
parameters? any

Returns: boolean

whether the tool requires rendering the scene after it was selected.


Static onUserDeselected

onUserDeselected(editorInstance: Editor): void

Defined in src/tools/Tool.ts:92

Parameters:

Name Type
editorInstance Editor

Returns: void


Static requiresHintReset

requiresHintReset(): boolean

Defined in src/tools/Tool.ts:100

Defines whether any hints added by previous tools used should be cleared.

Returns: boolean