three-stdlib
Version:
stand-alone library of threejs examples
90 lines (79 loc) • 2.32 kB
TypeScript
import { Object3D, Ray, Vector3 } from 'three'
export class Face {
constructor()
normal: Vector3
midpoint: Vector3
area: number
constant: number
outside: VertexNode
mark: number
edge: HalfEdge
static create(a: VertexNode, b: VertexNode, c: VertexNode): Face
compute(): this
getEdge(i: number): HalfEdge
}
export class HalfEdge {
constructor(vertex: VertexNode, face: Face)
vertex: VertexNode
prev: HalfEdge
next: HalfEdge
twin: HalfEdge
face: Face
head(): VertexNode
length(): number
lengthSquared(): number
setTwin(edge: HalfEdge): this
tail(): VertexNode
}
export class VertexNode {
constructor(point: Vector3)
point: Vector3
prev: VertexNode
next: VertexNode
face: Face
}
export class VertexList {
constructor()
head: VertexNode
tail: VertexNode
append(vertex: VertexNode): this
appendChain(vertex: VertexNode): this
clear(): this
first(): VertexNode
insertAfter(target: VertexNode, vertex: VertexNode): this
insertBefore(target: VertexNode, vertex: VertexNode): this
isEmpty(): boolean
last(): VertexNode
remove(vertex: VertexNode): this
removeSubList(a: VertexNode, b: VertexNode): this
}
export class ConvexHull {
constructor()
tolerance: number
faces: Face[]
newFaces: Face[]
assigned: VertexList
unassigned: VertexList
vertices: VertexNode[]
addAdjoiningFace(eyeVertex: VertexNode, horizonEdge: HalfEdge): HalfEdge
addNewFaces(eyeVertex: VertexNode, horizon: HalfEdge[]): this
addVertexToFace(vertex: VertexNode, face: Face): this
addVertexToHull(eyeVertex: VertexNode): this
cleanup(): this
compute(): this
computeExtremes(): object
computeHorizon(eyePoint: Vector3, crossEdge: HalfEdge, face: Face, horizon: HalfEdge[]): this
computeInitialHull(): this
containsPoint(point: Vector3): boolean
deleteFaceVertices(face: Face, absorbingFace: Face): this
intersectRay(ray: Ray, target: Vector3): Vector3 | null
intersectsRay(ray: Ray): boolean
makeEmpty(): this
nextVertexToAdd(): VertexNode | undefined
reindexFaces(): this
removeAllVerticesFromFace(face: Face): VertexNode | undefined
removeVertexFromFace(vertex: VertexNode, face: Face): this
resolveUnassignedPoints(newFaces: Face[]): this
setFromPoints(points: Vector3[]): this
setFromObject(object: Object3D): this
}