Skip to content

editor › Globals › AutoTessellationGenerator

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