Skip to content

editor › Globals › SurfaceTessellation

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