Skip to content

editorGlobalsSurfaceTessellation

Class: SurfaceTessellation

This class manages the position of all the tessellation lines on one surface. The position and the rotation of the cutting lines are given by a PointOnEdgeAnchor, which is laying exactly on the edge of two cutlines.

Hierarchy

  • SurfaceTessellation

Index

Properties

Methods

Properties

Private anchor

anchor: PointOnEdgeAnchor

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:31

This uses two anchors to define it's position. As long as the PointOnEdgeAnchor stays valid, this is the source of truth. When it get's invalid, which can happen (f.e. with some AddBoxel-Operations), the surfaceAnchor and the signatureInformation are used, to find a new edge for the tessellation, for which then the PointOnEdgeAnchor is newly initialized.


Private lastAssemblyPosition

lastAssemblyPosition: Vector3

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:40


Private lastTranslation

lastTranslation: Vector3 = new Vector3()

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:41


Private movedByUser

movedByUser: boolean = false

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:39


Private signatureInformation

signatureInformation: ISavedEdgeObject = undefined

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:33


Private surfaceAnchor

surfaceAnchor: MeshSurfaceAnchor

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:32


Private tileSize

tileSize: Vector2

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:38

TessellationSize in mm

Methods

Private _generatePlaneObjects

_generatePlaneObjects(): Array‹object›

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:352

Returns: Array‹object›


Private _getSurfaceAnchor

_getSurfaceAnchor(): MeshSurfaceAnchor

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:99

For serialization purpose

Returns: MeshSurfaceAnchor


Private _onEdgeChange

_onEdgeChange(event: any): void

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:303

Parameters:

Name Type
event any

Returns: void


Private _onEdgeTransformsChange

_onEdgeTransformsChange(): void

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:344

Returns: void


Private _pointNearCenter

_pointNearCenter(position: Vector3, upVector: Vector3, rightVector: Vector3, center: Vector3): Vector3

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:397

Parameters:

Name Type
position Vector3
upVector Vector3
rightVector Vector3
center Vector3

Returns: Vector3


Private _refindEdgeWithSurface

_refindEdgeWithSurface(): void

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:313

Returns: void


Private _setSurfaceAnchor

_setSurfaceAnchor(anchor: MeshSurfaceAnchor): void

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:90

For serialization purpose

Parameters:

Name Type Description
anchor MeshSurfaceAnchor -

Returns: void


Private _updateSavedEdgeSignatures

_updateSavedEdgeSignatures(): void

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:331

Returns: void


clone

clone(): SurfaceTessellation

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:47

Returns: SurfaceTessellation


cutPlate

cutPlate(originalPlate: Plate): Promise‹void›

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:135

This will split the plate accordingly to the SurfaceTessellation

Parameters:

Name Type Description
originalPlate Plate The plate supposed to get cut Todo: This might be better to move into a SurfaceTessellationRealizer, as the SurfaceTessellation should more be an Todo: abstract structure keeping only the data.

Returns: Promise‹void›


destroy

destroy(): void

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:73

Returns: void


getAnchor

getAnchor(): PointOnEdgeAnchor

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:81

Returns: PointOnEdgeAnchor


getApproximatedSurfaceIntersectionLines

getApproximatedSurfaceIntersectionLines(): Line3[]

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:202

Return approximated lines we will later cut this surfaceTessellation with. Approximated means that we don't care about holes, or concave inlets in the shape. By convention, the start of the line will be the vector sorted after x, y, z.

Returns: Line3[]


getAreCutlinesOnlyInOneDirection

getAreCutlinesOnlyInOneDirection(): boolean

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:291

Returns true, if in the current position of the tessellation all the cutLines are having the same direction

Returns: boolean


getAssemblyCutPlanes

getAssemblyCutPlanes(): Plane[]

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:156

Returns: Plane[]


getLastTranslation

getLastTranslation(): Vector3

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:282

in assembly space

Returns: Vector3


getMeshCutPlanes

getMeshCutPlanes(): Plane[]

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:165

Returns: Plane[]


getMovedByUser

getMovedByUser(): boolean

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:69

Returns: boolean


getSurfaceIntersectionpoints

getSurfaceIntersectionpoints(): Vector3[]

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:179

Returns the intersection points in mesh-local space

Returns: Vector3[]


getTessellationSize

getTessellationSize(): Vector2

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:60

Returns: Vector2


getTileSize

getTileSize(): Vector2‹›

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:193

Returns: Vector2‹›


jump

jump(width: number, direction?: Vector3): void

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:225

Parameters:

Name Type
width number
direction? Vector3

Returns: void


moveCutlinesToBeInOnlyOneDirection

moveCutlinesToBeInOnlyOneDirection(tessellationSize: Vector2): void

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:245

Tries to find a position for the tessellation, that only has cutLines in one direction. When the object is not bigger than the long edge of the tessellationSize, this is the desired tessellation, as cutLines in 2 directions are too many then

Parameters:

Name Type Description
tessellationSize Vector2 -

Returns: void


setAnchor

setAnchor(positionAnchor: PointOnEdgeAnchor): void

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:103

Parameters:

Name Type
positionAnchor PointOnEdgeAnchor

Returns: void


setMovedByUser

setMovedByUser(moved: boolean): void

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:65

Parameters:

Name Type
moved boolean

Returns: void


setTileSize

setTileSize(size: Vector2): void

Defined in src/modules/kyub.core.tessellate/src/SurfaceTessellation.ts:43

Parameters:

Name Type
size Vector2

Returns: void