editor › Globals › AutoTessellationGenerator
Class: AutoTessellationGenerator
Hierarchy
- AutoTessellationGenerator
Index
Properties
- maximumAngleDifferenceForCutsNearOutlineSections
- maximumDistanceForCutsNearOutlineSections
- maximumDistanceForDoubleIntersectionPoints
- numberOfGoodTessellationsForEarlyReturn
- offsetLengthFromOutlineSection
Methods
- _generateSurfaceTessellation
- _generateTessellationsPerSurface
- _getAveragePointDistanceOfLastSurface
- _getCrossingIntersectionsCount
- _getDoubleIntersectionPointCount
- _getPushPullPenalty
- _getSummedUpMinimalOutlinePointDistance
- _isGoodSurfaceTessellation
- _numberOfCutLinesNearOutlineSections
- _producesCrossingIntersection
- evaluateTessellation
- generateAutoTessellation
- generateMetrics
- surfaceNeedsTessellation
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