Skip to content

editorGlobalsPlateVisualization

Class: PlateVisualization

For a plate, the following geometries will be created: - Front and back side geometry - If cutouts exist, this will be split into cutoutArea geometry that fills the center area of the plate and margin geometry that exists along the plate border. This is used to create a visualization of the safety margin that is applied to cutouts. - If the fakeBurntEdges config flags in rendering are set accordingly, copies of the front geometry that are offset into the plate (currently it should create two of these, one at 1/3 of the height and one at 2/3 of the height. These are used to create the impression of burnt wood edges at the border of cutouts. - Outline side geometry and hole side geometry. These will connect the front and the back side.

Hierarchy

ObjectVisualization

PlateVisualization

Index

Constructors

Properties

Methods

Constructors

constructor

+ new PlateVisualization(physicalObject: any): PlateVisualization

Overrides ObjectRepresentation.constructor

Defined in src/model/visualization/PlateVisualization.ts:170

Parameters:

Name Type
physicalObject any

Returns: PlateVisualization

Properties

Protected Readonly asyncUpdateEventEmitter

asyncUpdateEventEmitter: EventEmitter‹void› = new EventEmitter()

Inherited from ObjectVisualization.asyncUpdateEventEmitter

Defined in src/model/visualization/ObjectVisualization.ts:20


Private debouncedAsyncPipeline

debouncedAsyncPipeline: any = debounce(this._runPipelineAsynchronously.bind(this), 300)

Defined in src/model/visualization/PlateVisualization.ts:168


Private displayCutoutsAsGeometry

displayCutoutsAsGeometry: boolean = Config.get("rendering.displayCutoutsAsGeometry", true)

Defined in src/model/visualization/PlateVisualization.ts:170


Protected Readonly physicalObject

physicalObject: Plate

Overrides ObjectRepresentation.physicalObject

Defined in src/model/visualization/PlateVisualization.ts:164


Private runningPipeline

runningPipeline: PlatePipeline = null

Defined in src/model/visualization/PlateVisualization.ts:167


Static Private foamDisconnectionColor

foamDisconnectionColor: number = 0

Defined in src/model/visualization/PlateVisualization.ts:124


Static Private foamDisconnectionMaterial

foamDisconnectionMaterial: Material = null

Defined in src/model/visualization/PlateVisualization.ts:122


Static Private foamInvalidColor

foamInvalidColor: number = 16711680

Defined in src/model/visualization/PlateVisualization.ts:125


Static Private foamInvalidMaterial

foamInvalidMaterial: Material = null

Defined in src/model/visualization/PlateVisualization.ts:123


Static Private pointDebugColors

pointDebugColors: number[] = [0x556270, 0x4ecdc4, 0xff6b6b, 0xc7f464, 0xc44d58, 0x69d2e7, 0xfa6900, 0x8a9b0f]

Defined in src/model/visualization/PlateVisualization.ts:116


Static Private pointDebugMaterials

pointDebugMaterials: any[] = []

Defined in src/model/visualization/PlateVisualization.ts:119


Static Private quadShapeChangeConfigurations

quadShapeChangeConfigurations: Map‹Joint, object› = new Map([ [TeeJoint, { objectA: false, objectB: true }], [EmbedJoint, { objectA: false, objectB: false }], ])

Defined in src/model/visualization/PlateVisualization.ts:137

Default is, that all shape changes are displayed as quads. This map allows further configuration. See PlateVisualization._shouldDisplayJointAsQuads for more information


Static Private simpleMeshMaterial

simpleMeshMaterial: MeshBasicMaterial‹› = new MeshBasicMaterial({ visible: false })

Defined in src/model/visualization/PlateVisualization.ts:142


Static Private textureOriginColor

textureOriginColor: number = 16545536

Defined in src/model/visualization/PlateVisualization.ts:127


Static Private textureOriginLineDebugMaterial

textureOriginLineDebugMaterial: LineBasicMaterial‹› = new LineBasicMaterial({ color: PlateVisualization.textureOriginColor, })

Defined in src/model/visualization/PlateVisualization.ts:129


Static Private textureOriginMaterial

textureOriginMaterial: MeshBasicMaterial‹› = new MeshBasicMaterial({ color: PlateVisualization.textureOriginColor })

Defined in src/model/visualization/PlateVisualization.ts:128

Methods

Private _attachUvAttributesToFrontBackMiddleGeometry

_attachUvAttributesToFrontBackMiddleGeometry(geometries: IFrontBackMiddleGeometry, frontSurfaces: PlateRenderSurface[], plate: Plate): AABB

Defined in src/model/visualization/PlateVisualization.ts:538

Parameters:

Name Type
geometries IFrontBackMiddleGeometry
frontSurfaces PlateRenderSurface[]
plate Plate

Returns: AABB


Private _attachUvAttributesToSideGeometry

_attachUvAttributesToSideGeometry(geometry: BufferGeometry, surfaces: PlateRenderSurface[], plate: Plate): void

Defined in src/model/visualization/PlateVisualization.ts:524

Parameters:

Name Type
geometry BufferGeometry
surfaces PlateRenderSurface[]
plate Plate

Returns: void


Private _clearThreeNode

_clearThreeNode(threeNode: Object3D): void

Defined in src/model/visualization/PlateVisualization.ts:982

Parameters:

Name Type
threeNode Object3D

Returns: void


Private _combineLines

_combineLines(plateLines: Vector3[][]): Vector3[][]

Defined in src/model/visualization/PlateVisualization.ts:1183

Reduces the amount of lines that are rendered. This is done by combining lines that have the same direction and are adjacent to each another.

Parameters:

Name Type Description
plateLines Vector3[][] the lines to combine. The array contains lines that are represented as a pair of Vector3 of the start and end point of the line.

Returns: Vector3[][]

a reduced list of lines to render. This has the same format as the input.


Private _createFrontBackMiddleGeometry

_createFrontBackMiddleGeometry(frontSurfaces: PlateRenderSurface[], backSurfaces: PlateRenderSurface[], middleSurfaces?: PlateRenderSurface[][]): IFrontBackMiddleGeometry

Defined in src/model/visualization/PlateVisualization.ts:430

Parameters:

Name Type
frontSurfaces PlateRenderSurface[]
backSurfaces PlateRenderSurface[]
middleSurfaces? PlateRenderSurface[][]

Returns: IFrontBackMiddleGeometry


Private _createMesh

_createMesh(plateGeometries: IPlateGeometryResult, plateMaterials: IPlateMaterialInformation): IPlateMeshResult

Defined in src/model/visualization/PlateVisualization.ts:572

Parameters:

Name Type
plateGeometries IPlateGeometryResult
plateMaterials IPlateMaterialInformation

Returns: IPlateMeshResult


Private _createMeshForSheet

_createMeshForSheet(sheet: Polygon, plateMaterials: any, localToNestingRotation: Quaternion, globalOrigin: ReadonlyVector3, sheetTransform: Matrix4): Mesh

Defined in src/model/visualization/PlateVisualization.ts:283

Parameters:

Name Type
sheet Polygon
plateMaterials any
localToNestingRotation Quaternion
globalOrigin ReadonlyVector3
sheetTransform Matrix4

Returns: Mesh


Private _createSimpleMesh

_createSimpleMesh(threeNode: Object3D, frontSurfaces: PlateRenderSurface[], backSurfaces: PlateRenderSurface[], sideFaces: PlateRenderSurface[]): void

Defined in src/model/visualization/PlateVisualization.ts:654

Parameters:

Name Type
threeNode Object3D
frontSurfaces PlateRenderSurface[]
backSurfaces PlateRenderSurface[]
sideFaces PlateRenderSurface[]

Returns: void


Private _createSingleMesh

_createSingleMesh(geometry: BufferGeometry, material: Material): Mesh

Defined in src/model/visualization/PlateVisualization.ts:673

Parameters:

Name Type
geometry BufferGeometry
material Material

Returns: Mesh


Private _determineQuadTransforms

_determineQuadTransforms(reverse: boolean, offset: number): Vector3

Defined in src/model/visualization/PlateVisualization.ts:926

Parameters:

Name Type
reverse boolean
offset number

Returns: Vector3


Private _displayCutoutsAsGeometryChanged

_displayCutoutsAsGeometryChanged(newValue: any): void

Defined in src/model/visualization/PlateVisualization.ts:249

Callback function for Config.watch

Parameters:

Name Type Description
newValue any -

Returns: void


Private _displayFoamCoreDisconnection

_displayFoamCoreDisconnection(joint: EdgeJoint, target: Mesh[], isInvalid: boolean): void

Defined in src/model/visualization/PlateVisualization.ts:740

Parameters:

Name Type
joint EdgeJoint
target Mesh[]
isInvalid boolean

Returns: void


Private _displayJointAsQuads

_displayJointAsQuads(joint: Joint, additions: ShapeChange[], cutouts: ShapeChange[], transforms: Vector3, transformsReversed: Vector3, target: Mesh[]): void

Defined in src/model/visualization/PlateVisualization.ts:768

Parameters:

Name Type
joint Joint
additions ShapeChange[]
cutouts ShapeChange[]
transforms Vector3
transformsReversed Vector3
target Mesh[]

Returns: void


Private _generateEngravingPositionsDebugVisualization

_generateEngravingPositionsDebugVisualization(): Object3D

Defined in src/model/visualization/PlateVisualization.ts:407

Returns: Object3D


Private _generateFakeShapeChangeVisualization

_generateFakeShapeChangeVisualization(shapeChangesMap: Map‹Joint, object›, additionalOffset: number): Mesh[]

Defined in src/model/visualization/PlateVisualization.ts:716

Parameters:

Name Type Default
shapeChangesMap Map‹Joint, object› -
additionalOffset number 0

Returns: Mesh[]


Private _generateOutlineDebugVisualization

_generateOutlineDebugVisualization(): Object3D

Defined in src/model/visualization/PlateVisualization.ts:311

Returns: Object3D


Private _getGeometries

_getGeometries(plateModel: IPlatePipelineResult): IPlateGeometryResult

Defined in src/model/visualization/PlateVisualization.ts:449

Parameters:

Name Type
plateModel IPlatePipelineResult

Returns: IPlateGeometryResult


Private _getGeometryFromSurfaceList

_getGeometryFromSurfaceList(surfaces: PlateRenderSurface[]): BufferGeometry

Defined in src/model/visualization/PlateVisualization.ts:492

Parameters:

Name Type
surfaces PlateRenderSurface[]

Returns: BufferGeometry


Private _getMaterials

_getMaterials(plateGeometries: IPlateGeometryResult, renderCutouts: boolean, minMaxPlateCoordinates: AABB): IPlateMaterialInformation

Defined in src/model/visualization/PlateVisualization.ts:505

Parameters:

Name Type
plateGeometries IPlateGeometryResult
renderCutouts boolean
minMaxPlateCoordinates AABB

Returns: IPlateMaterialInformation


Private _getPipelineConfig

_getPipelineConfig(renderOrnamentCutoutGeometry: boolean, renderFingerJoints: boolean): PlatePipelineConfig

Defined in src/model/visualization/PlateVisualization.ts:950

Returns the pipeline config for the current state of the plate.

Parameters:

Name Type Description
renderOrnamentCutoutGeometry boolean - If true, ornament cutouts will be applied to the mesh. If false, ornament cutouts should be rendered using the alphamap-texture method.
renderFingerJoints boolean -

Returns: PlatePipelineConfig


Private _getShapeChangeGeometry

_getShapeChangeGeometry(shapeChange: ShapeChange, reverse: boolean): BufferGeometry

Defined in src/model/visualization/PlateVisualization.ts:843

Parameters:

Name Type
shapeChange ShapeChange
reverse boolean

Returns: BufferGeometry


Private _hasCutouts

_hasCutouts(side: PlateSides): boolean

Defined in src/model/visualization/PlateVisualization.ts:691

Parameters:

Name Type Default
side PlateSides PlateSides.BOTH

Returns: boolean


Private _renderAssetLines

_renderAssetLines(): Object3D[]

Defined in src/model/visualization/PlateVisualization.ts:1251

Returns: Object3D[]


Private _renderLine

_renderLine(start: Vector3, end: Vector3, color: Color): Object3D

Defined in src/model/visualization/PlateVisualization.ts:1333

renders a line in the editor. This is done using Three.js cylinders because the Three.js line has no way to change the line-width (even though they have the property it doesn't work in the WebGL version we use).

Parameters:

Name Type Description
start Vector3 start point of the line in plate coordinates
end Vector3 end point of the line in plate coordinates
color Color the color of the line

Returns: Object3D

the created instance of the line


Private _renderLines

_renderLines(plateLines: Vector3[][]): Object3D[]

Defined in src/model/visualization/PlateVisualization.ts:1236

Parameters:

Name Type
plateLines Vector3[][]

Returns: Object3D[]


Private _renderPolygon

_renderPolygon(points: Vector3[]): Object3D[]

Defined in src/model/visualization/PlateVisualization.ts:1309

Parameters:

Name Type
points Vector3[]

Returns: Object3D[]


Private _renderPolygonOrnamentDescriptorLines

_renderPolygonOrnamentDescriptorLines(): Object3D[]

Defined in src/model/visualization/PlateVisualization.ts:1133

Returns: Object3D[]


Private _runPipelineAsynchronously

_runPipelineAsynchronously(pipeline: PlatePipeline, threeNode: Object3D): void

Defined in src/model/visualization/PlateVisualization.ts:700

Parameters:

Name Type
pipeline PlatePipeline
threeNode Object3D

Returns: void


Private _shouldDisplayJointAsQuads

_shouldDisplayJointAsQuads(joint: Joint): boolean

Defined in src/model/visualization/PlateVisualization.ts:733

Parameters:

Name Type
joint Joint

Returns: boolean


Private _shouldReverseEdgeJoint

_shouldReverseEdgeJoint(joint: EdgeJoint, physicalObject: Plate): boolean

Defined in src/model/visualization/PlateVisualization.ts:819

Determines whether the fake cutouts and additions of an EdgeJoint (typically a FingerJoint) should be visualized on the back side of the plate.

Parameters:

Name Type
joint EdgeJoint
physicalObject Plate

Returns: boolean


Private _shouldReverseTeeJoint

_shouldReverseTeeJoint(joint: TeeJoint): boolean

Defined in src/model/visualization/PlateVisualization.ts:835

Determines whether the fake cutouts of a TeeJoint should be visualized on the back side of the plate.

Parameters:

Name Type
joint TeeJoint

Returns: boolean


Private _showManualNesting

_showManualNesting(plateMaterials: IPlateMaterialInformation, threeNode: Object3D): void

Defined in src/model/visualization/PlateVisualization.ts:991

Parameters:

Name Type
plateMaterials IPlateMaterialInformation
threeNode Object3D

Returns: void


Private _showPlates

_showPlates(meshes: IPlateMeshResult, threeNode: Object3D, result: IPlatePipelineResult): void

Defined in src/model/visualization/PlateVisualization.ts:1055

Parameters:

Name Type
meshes IPlateMeshResult
threeNode Object3D
result IPlatePipelineResult

Returns: void


Private _texturizeAddition

_texturizeAddition(geometry: BufferGeometry, texture: KyubTexture): void

Defined in src/model/visualization/PlateVisualization.ts:853

Parameters:

Name Type
geometry BufferGeometry
texture KyubTexture

Returns: void


Private _texturizeCutout

_texturizeCutout(geometry: BufferGeometry, texture: UvPositionable, otherPhysicalObject: Plate): void

Defined in src/model/visualization/PlateVisualization.ts:888

Parameters:

Name Type
geometry BufferGeometry
texture UvPositionable
otherPhysicalObject Plate

Returns: void


Protected _visualize

_visualize(threeNode: Object3D): Object3D

Overrides ObjectVisualization._visualize

Defined in src/model/visualization/PlateVisualization.ts:198

Create the visualization of a plate, being a simple box based on the outline AABB

Parameters:

Name Type Description
threeNode Object3D -

Returns: Object3D


Private _visualizePipelineResult

_visualizePipelineResult(result: IPlatePipelineResult, threeNode: Object3D, renderSideMehes: boolean): void

Defined in src/model/visualization/PlateVisualization.ts:259

Parameters:

Name Type Default
result IPlatePipelineResult -
threeNode Object3D -
renderSideMehes boolean false

Returns: void


destroy

destroy(): void

Overrides ObjectVisualization.destroy

Defined in src/model/visualization/PlateVisualization.ts:178

Returns: void


getAsyncUpdateEventEmitter

getAsyncUpdateEventEmitter(): IPublicEventEmitterInterface‹void›

Inherited from ObjectVisualization.getAsyncUpdateEventEmitter

Defined in src/model/visualization/ObjectVisualization.ts:23

Returns: IPublicEventEmitterInterface‹void›


getPhysicalObject

getPhysicalObject(): PhysicalObject‹›

Inherited from ObjectRepresentation.getPhysicalObject

Defined in src/model/ObjectRepresentation.ts:30

Returns: PhysicalObject‹›

Associated physical object


getRepresentationFinishedPromise

getRepresentationFinishedPromise(): Promise‹void›

Overrides ObjectRepresentation.getRepresentationFinishedPromise

Defined in src/model/visualization/PlateVisualization.ts:186

Returns: Promise‹void›


getThreeNode

getThreeNode(): Object3D

Inherited from ObjectVisualization.getThreeNode

Defined in src/model/visualization/ObjectVisualization.ts:57

Returns an instance to the THREE.Object3D created during visualize()

Returns: Object3D


isValid

isValid(): boolean

Inherited from ObjectVisualization.isValid

Defined in src/model/visualization/ObjectVisualization.ts:50

Offers possibility for the visualization to invalidate itself.

Returns: boolean

false if objectVisualization should be rebuilt, true if it's still valid.


visualize

visualize(): Object3D

Inherited from ObjectVisualization.visualize

Defined in src/model/visualization/ObjectVisualization.ts:31

Generate the visualization to add to the scene graph

Returns: Object3D

the generated visualization


Static Private _getFoamDisconnectionMaterial

_getFoamDisconnectionMaterial(): Material

Defined in src/model/visualization/PlateVisualization.ts:148

Returns: Material


Static Private _getFoamInvalidMaterial

_getFoamInvalidMaterial(): Material

Defined in src/model/visualization/PlateVisualization.ts:156

Returns: Material


Static canRepresent

canRepresent(physicalObject: PhysicalObject): boolean

Overrides ObjectRepresentation.canRepresent

Defined in src/model/visualization/PlateVisualization.ts:144

Parameters:

Name Type
physicalObject PhysicalObject

Returns: boolean


Static isExclusive

isExclusive(): boolean

Inherited from ObjectVisualization.isExclusive

Defined in src/model/visualization/ObjectVisualization.ts:16

Determines whether other visualizations may visualize the same object.

Returns: boolean