Skip to content

editorGlobalsFingerJoint

Class: FingerJoint

Hierarchy

EdgeJoint

FingerJoint

CellMembraneJoint

Index

Constructors

Properties

Methods

Constructors

constructor

+ new FingerJoint(jointPossibilityA?: JointPossibility, jointPossibilityB?: JointPossibility): FingerJoint

Inherited from Joint.constructor

Defined in src/model/data/Joints/Joints/Joint.ts:72

Either supply joint possibilities in constructor, or defer it and do it later with assign()

Parameters:

Name Type
jointPossibilityA? JointPossibility
jointPossibilityB? JointPossibility

Returns: FingerJoint

Properties

Protected Readonly destroyEventEmitter

destroyEventEmitter: EventEmitter‹void› = new EventEmitter()

Inherited from Joint.destroyEventEmitter

Defined in src/model/data/Joints/Joints/Joint.ts:72


Private endProperties

endProperties: FingerJointProperties = FingerJoint._getEmptyPropertiesObject()

Defined in src/model/data/Joints/Joints/FingerJoint.ts:113


Protected isDestroyed

isDestroyed: boolean = false

Inherited from Joint.isDestroyed

Defined in src/model/data/Joints/Joints/Joint.ts:71


Protected objectA

objectA: PhysicalObject

Inherited from Joint.objectA

Defined in src/model/data/Joints/Joints/Joint.ts:69


Protected objectB

objectB: PhysicalObject

Inherited from Joint.objectB

Defined in src/model/data/Joints/Joints/Joint.ts:70


Protected outlineSectionA

outlineSectionA: OutlineSection

Inherited from EdgeJoint.outlineSectionA

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:168


Protected outlineSectionB

outlineSectionB: OutlineSection

Inherited from EdgeJoint.outlineSectionB

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:169


Private startProperties

startProperties: FingerJointProperties = FingerJoint._getEmptyPropertiesObject()

Defined in src/model/data/Joints/Joints/FingerJoint.ts:112


unfoldingProperties

unfoldingProperties: IEdgeUnfoldingProperties = EdgeUnfoldingAnnotation.getDefaultUnfoldingProperties()

Inherited from EdgeJoint.unfoldingProperties

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:166

Methods

_ensureAssigned

_ensureAssigned(): void | never

Inherited from Joint._ensureAssigned

Defined in src/model/data/Joints/Joints/Joint.ts:122

Returns: void | never


Private _getProperties

_getProperties(outlinePoint: OutlinePoint): FingerJointProperties | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:257

Parameters:

Name Type
outlinePoint OutlinePoint

Returns: FingerJointProperties | never


Private _isEnd

_isEnd(outlinePoint: OutlinePoint): boolean | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:273

Parameters:

Name Type
outlinePoint OutlinePoint

Returns: boolean | never


Private _isStart

_isStart(outlinePoint: OutlinePoint): boolean | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:268

Parameters:

Name Type
outlinePoint OutlinePoint

Returns: boolean | never


Protected _mergeSections

_mergeSections(sectionA: OutlineSection, sectionB: OutlineSection): void

Inherited from EdgeJoint._mergeSections

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:307

Performs actual joining logic by merging the vertices of two sections

Parameters:

Name Type
sectionA OutlineSection
sectionB OutlineSection

Returns: void


Protected _onObjectShapeChange

_onObjectShapeChange(): void

Overrides Joint._onObjectShapeChange

Defined in src/model/data/Joints/Joints/FingerJoint.ts:251

Returns: void


Protected _onObjectTransformsChange

_onObjectTransformsChange(changedObject: PhysicalObject): void

Inherited from Joint._onObjectTransformsChange

Defined in src/model/data/Joints/Joints/Joint.ts:211

Method that is called when the transforms of one of the joined objects change. Can be overwritten in subclass.

Parameters:

Name Type
changedObject PhysicalObject

Returns: void


areSectionsReversed

areSectionsReversed(): boolean | never

Inherited from EdgeJoint.areSectionsReversed

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:268

Returns: boolean | never


assign

assign(jointPossibilityA: any, jointPossibilityB: any): void

Inherited from EdgeJoint.assign

Overrides Joint.assign

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:171

Parameters:

Name Type
jointPossibilityA any
jointPossibilityB any

Returns: void


createTemporaryClone

createTemporaryClone(): Joint

Inherited from Joint.createTemporaryClone

Defined in src/model/data/Joints/Joints/Joint.ts:183

This method creates a new Joint with the two physicalObjects of this joint instance. This is useful for operations where you need a temporary joint to keep an assembly from falling apart (e.g. Joint.recreate).

Returns: Joint

the temporary joint


destroy

destroy(): void

Inherited from EdgeJoint.destroy

Overrides Joint.destroy

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:234

Returns: void


determineJointDirection

determineJointDirection(section: OutlineSection): PlateSide

Inherited from EdgeJoint.determineJointDirection

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:276

Returns "front" or "back" depending on where the other plate is joined to the passed plate.

Parameters:

Name Type
section OutlineSection

Returns: PlateSide


getCutoutPriorityPlate

getCutoutPriorityPlate(outlinePoint: OutlinePoint): Plate | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:153

Get the plate which gets a cutout when two collide near the corner determined by outlinePoint

Parameters:

Name Type Description
outlinePoint OutlinePoint corner in which the master plate will be updated

Returns: Plate | never


getDestroyEventEmitter

getDestroyEventEmitter(): IPublicEventEmitterInterface‹void›

Inherited from Joint.getDestroyEventEmitter

Defined in src/model/data/Joints/Joints/Joint.ts:86

Returns: IPublicEventEmitterInterface‹void›


getEnd

getEnd(): OutlinePoint | never

Inherited from EdgeJoint.getEnd

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:263

Returns: OutlinePoint | never


getIsAssigned

getIsAssigned(): boolean

Inherited from Joint.getIsAssigned

Defined in src/model/data/Joints/Joints/Joint.ts:118

Returns: boolean

true, if the joint has been assigned to two objects


getMasterPlate

getMasterPlate(outlinePoint: OutlinePoint): Plate | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:134

Get the plate which gets two fingers in the corner determined by outlinePoint

Parameters:

Name Type Description
outlinePoint OutlinePoint corner in which the master plate will be retrieved

Returns: Plate | never

master plate in this corner or null


getOtherPhysicalObject

getOtherPhysicalObject(thisPhysicalObject: PhysicalObject): PhysicalObject | never

Inherited from Joint.getOtherPhysicalObject

Defined in src/model/data/Joints/Joints/Joint.ts:131

Convenience function to get the 'other' physical object that is connected to this joint

Parameters:

Name Type
thisPhysicalObject PhysicalObject

Returns: PhysicalObject | never


getOtherSection

getOtherSection(section: OutlineSection): OutlineSection | never

Inherited from EdgeJoint.getOtherSection

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:222

Convenience Function to get the other OutlineSection

Parameters:

Name Type
section OutlineSection

Returns: OutlineSection | never


getOutlineSection

getOutlineSection(physicalObject: any): OutlineSection | never

Inherited from EdgeJoint.getOutlineSection

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:197

Parameters:

Name Type
physicalObject any

Returns: OutlineSection | never

the outline section that is attached


getOutlineSections

getOutlineSections(): [OutlineSection, OutlineSection]

Inherited from EdgeJoint.getOutlineSections

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:190

Returns: [OutlineSection, OutlineSection]

the two OutlineSections of this joint


getPhysicalObjects

getPhysicalObjects(): [Plate, Plate]

Overrides Joint.getPhysicalObjects

Defined in src/model/data/Joints/Joints/FingerJoint.ts:125

Returns: [Plate, Plate]


getRemovalDirection

getRemovalDirection(section: OutlineSection): IDirectionSpace

Inherited from EdgeJoint.getRemovalDirection

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:283

Parameters:

Name Type
section OutlineSection

Returns: IDirectionSpace


getSafetyMargin

getSafetyMargin(outlinePoint: OutlinePoint): number | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:185

Parameters:

Name Type Description
outlinePoint OutlinePoint point representing one end of the joint

Returns: number | never

the safety margin at this end of the joint


getStart

getStart(): OutlinePoint | never

Inherited from EdgeJoint.getStart

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:258

Returns: OutlinePoint | never


getStrictlyEnforceMargin

getStrictlyEnforceMargin(outlinePoint: OutlinePoint): boolean | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:199

Parameters:

Name Type
outlinePoint OutlinePoint

Returns: boolean | never


hasFingerInCorner

hasFingerInCorner(outlinePoint: OutlinePoint, plate: Plate): boolean | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:164

Check whether the joint has a finger on the given plate in the corner of outlinePoint

Parameters:

Name Type Description
outlinePoint OutlinePoint point representing one end of the joint
plate Plate determines which plate's side of the joint is checked

Returns: boolean | never

whether there is a finger (true) or a cutout (false)


hasOutlinePoint

hasOutlinePoint(outlinePoint: OutlinePoint): boolean

Inherited from EdgeJoint.hasOutlinePoint

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:212

Parameters:

Name Type
outlinePoint OutlinePoint

Returns: boolean

if the given point is merged with this joint's first section


isPhysicallyConnected

isPhysicallyConnected(): boolean | never

Inherited from EdgeJoint.isPhysicallyConnected

Overrides Joint.isPhysicallyConnected

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:253

Checks if vertices of both sections are still merged/at the same position

Returns: boolean | never


isValid

isValid(): boolean | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:207

Returns: boolean | never

whether this joint's OutlinePoints are properly merged


recreate

recreate(): FingerJoint

Overrides Joint.recreate

Defined in src/model/data/Joints/Joints/FingerJoint.ts:217

Destroys this FingerJoint and instantiates a new FingerJoint with the same outline sections.

Returns: FingerJoint


recreateWithDifferentObject

recreateWithDifferentObject(objectToBeReplaced: Plate, newObject: Plate): FingerJoint | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:231

Destroys this FingerJoint and instantiates a new FingerJoint with a different object at the same outline section.

Parameters:

Name Type
objectToBeReplaced Plate
newObject Plate

Returns: FingerJoint | never


setCutoutPriorityPlate

setCutoutPriorityPlate(outlinePoint: OutlinePoint, priorityPlate: Plate): void | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:144

Set the plate which gets a cutout when two collide near the corner determined by outlinePoint

Parameters:

Name Type Description
outlinePoint OutlinePoint corner in which the master plate will be updated
priorityPlate Plate will be set as new cutout priority plate

Returns: void | never


setMasterPlate

setMasterPlate(outlinePoint: OutlinePoint, masterPlate: Plate): void | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:120

Set the plate which gets two fingers in the corner determined by outlinePoint

Parameters:

Name Type Description
outlinePoint OutlinePoint corner in which the master plate will be updated
masterPlate Plate will be set as new master

Returns: void | never


setSafetyMargin

setSafetyMargin(outlinePoint: OutlinePoint, margin: number): void | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:175

Set the safety margin for this joint in the given corner

Parameters:

Name Type Description
outlinePoint OutlinePoint point representing one end of the joint
margin number the margin to set

Returns: void | never


setStrictlyEnforceMargin

setStrictlyEnforceMargin(outlinePoint: OutlinePoint, strictlyEnforceMargin: boolean): void | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:194

Parameters:

Name Type Description
outlinePoint OutlinePoint point representing one end of the joint
strictlyEnforceMargin boolean Whether both plates need to have cutouts at this end

Returns: void | never


Static _checkLengthTolerance

_checkLengthTolerance(sectionA: OutlineSection, sectionB: OutlineSection): void | never

Defined in src/model/data/Joints/Joints/FingerJoint.ts:60

Checks if both sections have the same length in order to be joined. Throws an error if not

Parameters:

Name Type
sectionA OutlineSection
sectionB OutlineSection

Returns: void | never


Static Private _getEmptyPropertiesObject

_getEmptyPropertiesObject(): FingerJointProperties

Defined in src/model/data/Joints/Joints/FingerJoint.ts:103

Returns: FingerJointProperties

an object, that is used to store information about properties of this finger joint at one of the two ends, see FingerJointProperties


Static assignFromSections

assignFromSections(outlineSectionA: OutlineSection, outlineSectionB: OutlineSection, jointInstance: EdgeJoint): void

Inherited from EdgeJoint.assignFromSections

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:132

Parameters:

Name Type
outlineSectionA OutlineSection
outlineSectionB OutlineSection
jointInstance EdgeJoint

Returns: void


Static canBeJoined

canBeJoined(objectA: PhysicalObject, objectB: PhysicalObject, params: object): boolean

Inherited from EdgeJoint.canBeJoined

Overrides Joint.canBeJoined

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:107

Parameters:

objectA: PhysicalObject

objectB: PhysicalObject

Default value params: object= { onlyConvex: false }

Name Type
onlyConvex boolean

Returns: boolean


Static canSectionsBeJoined

canSectionsBeJoined(sectionA: OutlineSection, sectionB: OutlineSection, onlyConvex: boolean, allowRejoin: boolean): boolean

Inherited from EdgeJoint.canSectionsBeJoined

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:41

Checks whether outlineSections are identical, already have joints to determine if they can be joined.

Parameters:

Name Type Default Description
sectionA OutlineSection - to be checked
sectionB OutlineSection - second outline section to be checked
onlyConvex boolean false (option) true if only convex edges should be considered, default is false
allowRejoin boolean false (option) true if already joined sections should be considered join-able as well, default is false

Returns: boolean

true if outlineSections can be joined


Static createFromPhysicalObjects

createFromPhysicalObjects(objectA: Plate, objectB: Plate, JointClass: FingerJoint): EdgeJoint‹›[]

Overrides EdgeJoint.createFromPhysicalObjects

Defined in src/model/data/Joints/Joints/FingerJoint.ts:29

Parameters:

Name Type Default
objectA Plate -
objectB Plate -
JointClass FingerJoint FingerJoint

Returns: EdgeJoint‹›[]


Static createFromSections

createFromSectionsJointType›(outlineSectionA: OutlineSection, outlineSectionB: OutlineSection): FingerJoint

Overrides EdgeJoint.createFromSections

Defined in src/model/data/Joints/Joints/FingerJoint.ts:78

Type parameters:

JointType: EdgeJoint

Parameters:

Name Type
outlineSectionA OutlineSection
outlineSectionB OutlineSection

Returns: FingerJoint

createFromSectionsJointType›(outlineSectionA: OutlineSection, outlineSectionB: OutlineSection, EdgeJointClass?: Constructor‹JointType›, unfoldingProperties?: IEdgeUnfoldingProperties): JointType

Overrides EdgeJoint.createFromSections

Defined in src/model/data/Joints/Joints/FingerJoint.ts:82

Type parameters:

JointType: EdgeJoint

Parameters:

Name Type
outlineSectionA OutlineSection
outlineSectionB OutlineSection
EdgeJointClass? Constructor‹JointType›
unfoldingProperties? IEdgeUnfoldingProperties

Returns: JointType


Static getJointsBetween

getJointsBetweenT›(plateA: Plate, plateB: Plate, type: Constructor‹T›): T[]

Inherited from Joint.getJointsBetween

Defined in src/model/data/Joints/Joints/Joint.ts:11

Type parameters:

T: Joint

Parameters:

Name Type
plateA Plate
plateB Plate
type Constructor‹T›

Returns: T[]


Static getRequiredPossibilities

getRequiredPossibilities(): [EdgeJointPossibility, EdgeJointPossibility]

Overrides Joint.getRequiredPossibilities

Defined in src/model/data/Joints/Joints/FingerJoint.ts:33

Returns: [EdgeJointPossibility, EdgeJointPossibility]


Static getSpansAcrossAssemblies

getSpansAcrossAssemblies(): boolean

Inherited from Joint.getSpansAcrossAssemblies

Defined in src/model/data/Joints/Joints/Joint.ts:65

Returns: boolean

whether joints of this class span across assemblies. In that case, physical objects will be linked with physics constraints rather than merging assemblies during joining


Static isPointOnEdgeJoint

isPointOnEdgeJoint(point: OutlinePoint, type: Constructor‹EdgeJoint›): boolean

Inherited from EdgeJoint.isPointOnEdgeJoint

Defined in src/model/data/Joints/Joints/EdgeJoint.ts:25

Parameters:

Name Type Default
point OutlinePoint -
type Constructor‹EdgeJoint EdgeJoint

Returns: boolean


Static performPreJoinTransformation

performPreJoinTransformation(jointPossibilityA: any, jointPossibilityB: any): void

Overrides Joint.performPreJoinTransformation

Defined in src/model/data/Joints/Joints/FingerJoint.ts:41

Moves object A onto object B so that their edge matches and both objects have a 90° edge angle to each other

Parameters:

Name Type
jointPossibilityA any
jointPossibilityB any

Returns: void