Class: Triangle
Hierarchy
- Triangle
Index
Constructors
Properties
- aabb
- cachedIsDegenerated
- center
- distanceEpsilon
- id
- labels
- mesh
- neighborAB
- neighborBC
- neighborCA
- pointA
- pointB
- pointC
- sideCodes
- triangleId
Methods
- _clearNeighbor
- _normalizePoints
- _pointDistanceToSide
- clearLabel
- getAABB
- getCenter
- getDegeneratedPointOnSide
- getDegeneratedSide
- getId
- getLabels
- getMesh
- getNeighbor
- getNeighborAB
- getNeighborBC
- getNeighborCA
- getNeighborSideCode
- getNeighbors
- getPoint
- getPoints
- getSide
- getSideCode
- getSideOfTouchingPoint
- hasLabel
- hasNeighbor
- isDegenerated
- isNeighborOf
- isPointOnSide
- pointInside
- removeSelf
- replacePoint
- setLabel
- setMesh
- setNeighborByPoints
- setNeighborBySide
- sortOnSide
- toString
- areSidesAdjacent
- getAdjacentSides
- getOppositePoint
- getOppositeSide
- getSharedPoint
- resetIdCounter
Constructors
constructor
+ new Triangle(points: Vector3[], labels: string[] | Set‹string›, suppressDegenerationWarning: boolean): Triangle
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:115
Parameters:
| Name | Type | Default |
|---|---|---|
points |
Vector3[] | - |
labels |
string[] | Set‹string› | [] |
suppressDegenerationWarning |
boolean | false |
Returns: Triangle
Properties
Private aabb
• aabb: AABB | null = null
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:103
Private cachedIsDegenerated
• cachedIsDegenerated: boolean | null = null
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:102
Private center
• center: Vector3 | null = null
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:104
Private distanceEpsilon
• distanceEpsilon: number = Config.get("approximateSolutions.polygonClippingDistanceEpsilon")
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:101
Private Readonly id
• id: number = Triangle.triangleId++
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:95
Private Readonly labels
• labels: Set‹string›
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:106
Private mesh
• mesh: TriangleMesh2D = null
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:115
Private neighborAB
• neighborAB: Triangle = null
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:110
Private neighborBC
• neighborBC: Triangle = null
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:111
Private neighborCA
• neighborCA: Triangle = null
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:112
Private pointA
• pointA: Vector3
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:97
Private pointB
• pointB: Vector3
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:98
Private pointC
• pointC: Vector3
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:99
Static sideCodes
▪ sideCodes: string[] = ["AB", "BC", "CA"]
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:22
Static triangleId
▪ triangleId: number = 0
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:21
Methods
Private _clearNeighbor
▸ _clearNeighbor(neighbor: Triangle): void
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:468
Only to be called by other triangles when they remove themselves
Parameters:
| Name | Type |
|---|---|
neighbor |
Triangle |
Returns: void
Private _normalizePoints
▸ _normalizePoints(points: Vector3[]): void
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:495
Sorts points by x (leftmost first) and then CCW (assuming y-up coordinate system). A will always be the leftmost, if multiple points are left also bottommost, point Modifies the array.
Parameters:
| Name | Type |
|---|---|
points |
Vector3[] |
Returns: void
Private _pointDistanceToSide
▸ _pointDistanceToSide(point: Vector3, sideCode: SideCode): number
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:484
Parameters:
| Name | Type |
|---|---|
point |
Vector3 |
sideCode |
SideCode |
Returns: number
clearLabel
▸ clearLabel(label: string): void
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:149
Removes a given label from a triangle
Parameters:
| Name | Type |
|---|---|
label |
string |
Returns: void
getAABB
▸ getAABB(): AABB‹›
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:345
Returns: AABB‹›
getCenter
▸ getCenter(): Vector3‹›
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:334
Returns: Vector3‹›
the center of gravity, also called centroid. Arithmetic mean of all points
getDegeneratedPointOnSide
▸ getDegeneratedPointOnSide(): object
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:451
Returns: object
The first point that is within epsilon distance to a side and thus causes the triangle to be degenerated. null, if no points are degenerated.
getDegeneratedSide
▸ getDegeneratedSide(): SideCode
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:434
Returns: SideCode
SideCode of the first two points that are within epsilon distance to each other and thus cause a degenerated triangle. null, if no points are degenerated.
getId
▸ getId(): number
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:135
Returns: number
getLabels
▸ getLabels(): Set‹string›
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:175
Returns: Set‹string›
getMesh
▸ getMesh(): TriangleMesh2D‹›
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:171
Returns: TriangleMesh2D‹›
The mesh the triangle is part of
getNeighbor
▸ getNeighbor(sideCode: SideCode): Triangle
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:234
Parameters:
| Name | Type |
|---|---|
sideCode |
SideCode |
Returns: Triangle
getNeighborAB
▸ getNeighborAB(): Triangle‹›
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:212
Returns: Triangle‹›
getNeighborBC
▸ getNeighborBC(): Triangle‹›
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:216
Returns: Triangle‹›
getNeighborCA
▸ getNeighborCA(): Triangle‹›
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:220
Returns: Triangle‹›
getNeighborSideCode
▸ getNeighborSideCode(neighbor: Triangle): SideCode
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:238
Parameters:
| Name | Type |
|---|---|
neighbor |
Triangle |
Returns: SideCode
getNeighbors
▸ getNeighbors(): Triangle‹›[]
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:224
Returns: Triangle‹›[]
getPoint
▸ getPoint(point: PointCode): Vector3‹›
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:259
Parameters:
| Name | Type |
|---|---|
point |
PointCode |
Returns: Vector3‹›
getPoints
▸ getPoints(): [Vector3, Vector3, Vector3]
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:255
Returns: [Vector3, Vector3, Vector3]
getSide
▸ getSide(side: SideCode): [Vector3, Vector3]
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:273
Parameters:
| Name | Type |
|---|---|
side |
SideCode |
Returns: [Vector3, Vector3]
getSideCode
▸ getSideCode(points: [Vector3, Vector3]): SideCode
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:286
Parameters:
| Name | Type |
|---|---|
points |
[Vector3, Vector3] |
Returns: SideCode
getSideOfTouchingPoint
▸ getSideOfTouchingPoint(point: Vector3): SideCode
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:305
Checks if the point is on any side, and if true, returns its side code
Parameters:
| Name | Type |
|---|---|
point |
Vector3 |
Returns: SideCode
hasLabel
▸ hasLabel(label: string): boolean
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:157
Checks if the triangle has set the given label
Parameters:
| Name | Type | Description |
|---|---|---|
label |
string | - |
Returns: boolean
hasNeighbor
▸ hasNeighbor(sideCode: SideCode): boolean
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:230
Parameters:
| Name | Type |
|---|---|
sideCode |
SideCode |
Returns: boolean
isDegenerated
▸ isDegenerated(distanceEpsilon: number): boolean
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:423
Parameters:
| Name | Type | Default |
|---|---|---|
distanceEpsilon |
number | this.distanceEpsilon |
Returns: boolean
isNeighborOf
▸ isNeighborOf(triangle: Triangle): boolean
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:251
Parameters:
| Name | Type |
|---|---|
triangle |
Triangle |
Returns: boolean
isPointOnSide
▸ isPointOnSide(point: Vector3, sideCode: SideCode): boolean
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:298
Parameters:
| Name | Type |
|---|---|
point |
Vector3 |
sideCode |
SideCode |
Returns: boolean
pointInside
▸ pointInside(point: Vector3, allowEpsilonDistance: boolean, epsilon: number): boolean
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:360
Parameters:
| Name | Type | Default | Description |
|---|---|---|---|
point |
Vector3 | - | - |
allowEpsilonDistance |
boolean | - | - If true, points are considered to be inside even if they are < epsilon-length outside/within the triangle If false, points aren't considered to be inside if they are within an epsilon-length distance near the triangle border |
epsilon |
number | this.distanceEpsilon | - |
Returns: boolean
removeSelf
▸ removeSelf(): void
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:368
Clears all neighborhood relationships, effectively removing the triangle from the surrounding data structure
Returns: void
replacePoint
▸ replacePoint(oldPoint: Vector3, newPoint: Vector3): void
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:405
Parameters:
| Name | Type |
|---|---|
oldPoint |
Vector3 |
newPoint |
Vector3 |
Returns: void
setLabel
▸ setLabel(label: string): void
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:142
Set a label. A triangle can have multiple (string) labels
Parameters:
| Name | Type |
|---|---|
label |
string |
Returns: void
setMesh
▸ setMesh(mesh: TriangleMesh2D): void
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:164
Only to be used by the TriangleMesh2D class
Parameters:
| Name | Type |
|---|---|
mesh |
TriangleMesh2D |
Returns: void
setNeighborByPoints
▸ setNeighborByPoints(points: [Vector3, Vector3], triangle: Triangle): void
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:179
Parameters:
| Name | Type |
|---|---|
points |
[Vector3, Vector3] |
triangle |
Triangle |
Returns: void
setNeighborBySide
▸ setNeighborBySide(sideCode: SideCode, triangle: Triangle): void
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:194
Parameters:
| Name | Type |
|---|---|
sideCode |
SideCode |
triangle |
Triangle |
Returns: void
sortOnSide
▸ sortOnSide(points: Vector3[], sideCode: SideCode): Vector3‹›[]
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:388
Assuming all points are on the specified side, they are sorted semantically (for side "AB": from point A to point B, CCW along the outline direction) Note: The input array is modified
Parameters:
| Name | Type |
|---|---|
points |
Vector3[] |
sideCode |
SideCode |
Returns: Vector3‹›[]
toString
▸ toString(): string
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:131
Returns: string
Static areSidesAdjacent
▸ areSidesAdjacent(sideCode0: SideCode, sideCode1: SideCode): boolean
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:46
Parameters:
| Name | Type |
|---|---|
sideCode0 |
SideCode |
sideCode1 |
SideCode |
Returns: boolean
Static getAdjacentSides
▸ getAdjacentSides(pointName: PointCode): [SideCode, SideCode]
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:81
Parameters:
| Name | Type |
|---|---|
pointName |
PointCode |
Static getOppositePoint
▸ getOppositePoint(sideCode: SideCode): PointCode
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:30
Parameters:
| Name | Type |
|---|---|
sideCode |
SideCode |
Returns: PointCode
Static getOppositeSide
▸ getOppositeSide(pointName: PointCode): "AB" | "BC" | "CA"
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:66
Parameters:
| Name | Type |
|---|---|
pointName |
PointCode |
Returns: "AB" | "BC" | "CA"
Static getSharedPoint
▸ getSharedPoint(sideCodeA: SideCode, sideCodeB: SideCode): PointCode
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:25
Parameters:
| Name | Type |
|---|---|
sideCodeA |
SideCode |
sideCodeB |
SideCode |
Returns: PointCode
Static resetIdCounter
▸ resetIdCounter(): void
Defined in src/util/polygon/triangulatingClipper/Triangle.ts:61
Returns: void