Open maneetgoyal opened 1 year ago
A start:
declare module "three-halfedge-dcel" {
import type { BufferGeometry, Vector3 } from "three";
interface HalfEdge {
face: DCELFace;
next: HalfEdge;
prev: HalfEdge;
twin: HalfEdge;
vertex: DCELVertex;
}
interface DCELFace {
area: number;
constant: number;
edge: HalfEdge;
index: number;
mark: number;
midpoint: Vector3;
normal: Vector3;
}
interface DCELVertex {
index: number;
origIndex: number;
point: Vector3;
}
export class Dcel {
faces: DCELFace[];
vertices: DCELVertex[];
constructor(input: BufferGeometry, options?: { mergeVerticesThreshold: number });
forAdjacentFaces(faceID: number, callback: (adjacentFaceID: number) => void): void;
forEdges(face: DCELFace, callback: (edge: HalfEdge, face?: DCELFace) => void): void;
}
}
Will be great to have for TS support.