Skip to content

editorGlobalsTriangle

Class: Triangle

Hierarchy

  • Triangle

Index

Constructors

Properties

Methods

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

Returns: [SideCode, SideCode]


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