Skip to content

editorGlobalsAutoTessellationGenerator

Class: AutoTessellationGenerator

Hierarchy

  • AutoTessellationGenerator

Index

Properties

Methods

Properties

Static Private maximumAngleDifferenceForCutsNearOutlineSections

maximumAngleDifferenceForCutsNearOutlineSections: number = Math.PI / 16

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:29


Static Private maximumDistanceForCutsNearOutlineSections

maximumDistanceForCutsNearOutlineSections: number = 30

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:28


Static Private maximumDistanceForDoubleIntersectionPoints

maximumDistanceForDoubleIntersectionPoints: number = 10

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:27


Static Private numberOfGoodTessellationsForEarlyReturn

numberOfGoodTessellationsForEarlyReturn: number = 10

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:26


Static Private offsetLengthFromOutlineSection

offsetLengthFromOutlineSection: number = 20

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:25

Methods

Static Private _generateSurfaceTessellation

_generateSurfaceTessellation(position: Vector3, sampledMeshEdge: MeshHalfEdge, mesh: Mesh, tileSize: Vector2, angle: number): SurfaceTessellation‹›

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:346

Parameters:

Name Type
position Vector3
sampledMeshEdge MeshHalfEdge
mesh Mesh
tileSize Vector2
angle number

Returns: SurfaceTessellation‹›


Static Private _generateTessellationsPerSurface

_generateTessellationsPerSurface(mesh: Mesh, surface: MeshSurface, tileSize: Vector2): SurfaceTessellation[]

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:246

Parameters:

Name Type
mesh Mesh
surface MeshSurface
tileSize Vector2

Returns: SurfaceTessellation[]


Static Private _getAveragePointDistanceOfLastSurface

_getAveragePointDistanceOfLastSurface(intersectionPointsLastSurface: Vector3[]): number

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:136

Parameters:

Name Type
intersectionPointsLastSurface Vector3[]

Returns: number


Static Private _getCrossingIntersectionsCount

_getCrossingIntersectionsCount(surfaceTessellations: SurfaceTessellation[]): number

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:150

Parameters:

Name Type
surfaceTessellations SurfaceTessellation[]

Returns: number


Static Private _getDoubleIntersectionPointCount

_getDoubleIntersectionPointCount(intersectionPoints: Vector3[]): number

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:164

Parameters:

Name Type
intersectionPoints Vector3[]

Returns: number


Static Private _getPushPullPenalty

_getPushPullPenalty(surfaceTessellations: SurfaceTessellation[]): number

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:185

The push-pull-penalty is meant count edges, where tessellations move with each other instead of against each other. So when push pulling, on this edge the tessellations will either both move, or both stay stationary. This will lead to SurfaceTessellations that don't jump above each other well. We want to avoid that.

Parameters:

Name Type Description
surfaceTessellations SurfaceTessellation[] -

Returns: number


Static Private _getSummedUpMinimalOutlinePointDistance

_getSummedUpMinimalOutlinePointDistance(surfaceTessellations: SurfaceTessellation[]): number

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:216

For each intersectionPoint of the surfaceTessellations, this will sum up the length to the shortest outlinePoint of the surface. This is measured, because the cutLines of the tessellation will then more likely be near edges of the surface, which leads to a more stable object. (Than to cut through the middle)

Parameters:

Name Type Description
surfaceTessellations SurfaceTessellation[] -

Returns: number


Static Private _isGoodSurfaceTessellation

_isGoodSurfaceTessellation(surfaceTessellation: any): boolean

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:298

Parameters:

Name Type
surfaceTessellation any

Returns: boolean


Static Private _numberOfCutLinesNearOutlineSections

_numberOfCutLinesNearOutlineSections(surfaceTessellation: SurfaceTessellation): number

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:305

Parameters:

Name Type
surfaceTessellation SurfaceTessellation

Returns: number


Static Private _producesCrossingIntersection

_producesCrossingIntersection(cutPlane: Plane, cutLine: Line3, surface: MeshSurface): boolean

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:233

Parameters:

Name Type
cutPlane Plane
cutLine Line3
surface MeshSurface

Returns: boolean


Static evaluateTessellation

evaluateTessellation(surfaceTessellations: SurfaceTessellation[]): number

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:124

Rates surfaceTessellations in a range from (-infinity, infinity). While the range is arbitrary, this should only be used to compare different arrays of surfaceTessellations against each other. The higher the number, the better the surfaceTessellations.

Parameters:

Name Type Description
surfaceTessellations SurfaceTessellation[] -

Returns: number


Static generateAutoTessellation

generateAutoTessellation(tessellationDescriptor: TessellationDescriptor, surfacesToTessellate: MeshSurface[], tileSize: Vector2): SurfaceTessellation[]

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

Parameters:

Name Type
tessellationDescriptor TessellationDescriptor
surfacesToTessellate MeshSurface[]
tileSize Vector2

Returns: SurfaceTessellation[]


Static generateMetrics

generateMetrics(surfaceTessellations: SurfaceTessellation[]): ITessellationMetric

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:98

Parameters:

Name Type
surfaceTessellations SurfaceTessellation[]

Returns: ITessellationMetric


Static surfaceNeedsTessellation

surfaceNeedsTessellation(surface: MeshSurface, tessellationSize: Vector2): boolean

Defined in src/modules/kyub.core.tessellate/src/AutoTessellationGenerator.ts:76

Parameters:

Name Type
surface MeshSurface
tessellationSize Vector2

Returns: boolean