ConvexHull.d.ts 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  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. }