editor › Globals › PlateVisualization
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
↳ PlateVisualization
Index
Constructors
Properties
- asyncUpdateEventEmitter
- debouncedAsyncPipeline
- displayCutoutsAsGeometry
- physicalObject
- runningPipeline
- foamDisconnectionColor
- foamDisconnectionMaterial
- foamInvalidColor
- foamInvalidMaterial
- pointDebugColors
- pointDebugMaterials
- quadShapeChangeConfigurations
- simpleMeshMaterial
- textureOriginColor
- textureOriginLineDebugMaterial
- textureOriginMaterial
Methods
- _attachUvAttributesToFrontBackMiddleGeometry
- _attachUvAttributesToSideGeometry
- _clearThreeNode
- _combineLines
- _createFrontBackMiddleGeometry
- _createMesh
- _createMeshForSheet
- _createSimpleMesh
- _createSingleMesh
- _determineQuadTransforms
- _displayCutoutsAsGeometryChanged
- _displayFoamCoreDisconnection
- _displayJointAsQuads
- _generateEngravingPositionsDebugVisualization
- _generateFakeShapeChangeVisualization
- _generateOutlineDebugVisualization
- _getGeometries
- _getGeometryFromSurfaceList
- _getMaterials
- _getPipelineConfig
- _getShapeChangeGeometry
- _hasCutouts
- _renderAssetLines
- _renderLine
- _renderLines
- _renderPolygon
- _renderPolygonOrnamentDescriptorLines
- _runPipelineAsynchronously
- _shouldDisplayJointAsQuads
- _shouldReverseEdgeJoint
- _shouldReverseTeeJoint
- _showManualNesting
- _showPlates
- _texturizeAddition
- _texturizeCutout
- _visualize
- _visualizePipelineResult
- destroy
- getAsyncUpdateEventEmitter
- getPhysicalObject
- getRepresentationFinishedPromise
- getThreeNode
- isValid
- visualize
- _getFoamDisconnectionMaterial
- _getFoamInvalidMaterial
- canRepresent
- isExclusive
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
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