mirror of
https://github.com/DanielnetoDotCom/YouPHPTube
synced 2025-10-05 02:39:46 +02:00
103 lines
2.3 KiB
TypeScript
103 lines
2.3 KiB
TypeScript
import {
|
|
Object3D,
|
|
Ray,
|
|
Vector3
|
|
} from '../../../src/Three';
|
|
|
|
declare 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;
|
|
|
|
}
|
|
|
|
declare 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;
|
|
|
|
}
|
|
|
|
declare class VertexNode {
|
|
|
|
constructor( point: Vector3 );
|
|
point: Vector3;
|
|
prev: VertexNode;
|
|
next: VertexNode;
|
|
face: Face;
|
|
|
|
}
|
|
|
|
declare 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;
|
|
|
|
}
|