2
0

ConvexHull.d.ts 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. import {
  2. Object3D,
  3. Ray,
  4. Vector3
  5. } from '../../../src/Three';
  6. declare class Face {
  7. constructor();
  8. normal: Vector3;
  9. midpoint: Vector3;
  10. area: number;
  11. constant: number;
  12. outside: VertexNode;
  13. mark: number;
  14. edge: HalfEdge;
  15. static create(a: VertexNode, b: VertexNode, c: VertexNode): Face;
  16. compute(): this;
  17. getEdge(i: number): HalfEdge;
  18. }
  19. declare class HalfEdge {
  20. constructor(vertex: VertexNode, face: Face);
  21. vertex: VertexNode;
  22. prev: HalfEdge;
  23. next: HalfEdge;
  24. twin: HalfEdge;
  25. face: Face;
  26. head(): VertexNode;
  27. length(): number;
  28. lengthSquared(): number;
  29. setTwin(edge: HalfEdge): this;
  30. tail(): VertexNode;
  31. }
  32. declare class VertexNode {
  33. constructor(point: Vector3);
  34. point: Vector3;
  35. prev: VertexNode;
  36. next: VertexNode;
  37. face: Face;
  38. }
  39. declare class VertexList {
  40. constructor();
  41. head: VertexNode;
  42. tail: VertexNode;
  43. append(vertex: VertexNode): this;
  44. appendChain(vertex: VertexNode): this;
  45. clear(): this;
  46. first(): VertexNode;
  47. insertAfter(target: VertexNode, vertex: VertexNode): this;
  48. insertBefore(target: VertexNode, vertex: VertexNode): this;
  49. isEmpty(): boolean;
  50. last(): VertexNode;
  51. remove(vertex: VertexNode): this;
  52. removeSubList(a: VertexNode, b: VertexNode): this;
  53. }
  54. export class ConvexHull {
  55. constructor();
  56. tolerance: number;
  57. faces: Face[];
  58. newFaces: Face[];
  59. assigned: VertexList;
  60. unassigned: VertexList;
  61. vertices: VertexNode[];
  62. addAdjoiningFace(eyeVertex: VertexNode, horizonEdge: HalfEdge): HalfEdge;
  63. addNewFaces(eyeVertex: VertexNode, horizon: HalfEdge[]): this;
  64. addVertexToFace(vertex: VertexNode, face: Face): this;
  65. addVertexToHull(eyeVertex: VertexNode): this;
  66. cleanup(): this;
  67. compute(): this;
  68. computeExtremes(): object;
  69. computeHorizon(eyePoint: Vector3, crossEdge: HalfEdge, face: Face, horizon: HalfEdge[]): this;
  70. computeInitialHull(): this;
  71. containsPoint(point: Vector3): boolean;
  72. deleteFaceVertices(face: Face, absorbingFace: Face): this;
  73. intersectRay(ray: Ray, target: Vector3): Vector3 | null;
  74. intersectsRay(ray: Ray): boolean;
  75. makeEmpty(): this;
  76. nextVertexToAdd(): VertexNode | undefined;
  77. reindexFaces(): this;
  78. removeAllVerticesFromFace(face: Face): VertexNode | undefined;
  79. removeVertexFromFace(vertex: VertexNode, face: Face): this;
  80. resolveUnassignedPoints(newFaces: Face[]): this;
  81. setFromPoints(points: Vector3[]): this;
  82. setFromObject(object: Object3D): this;
  83. }