geodesicMesh.d.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. import { Vector3 } from "../Maths/math.vector";
  2. import { _IsoVector } from "../Maths/math.isovector";
  3. /**
  4. * Class representing data for one face OAB of an equilateral icosahedron
  5. * When O is the isovector (0, 0), A is isovector (m, n)
  6. * @internal
  7. */
  8. export declare class _PrimaryIsoTriangle {
  9. m: number;
  10. n: number;
  11. cartesian: Vector3[];
  12. vertices: _IsoVector[];
  13. max: number[];
  14. min: number[];
  15. vecToidx: {
  16. [key: string]: number;
  17. };
  18. vertByDist: {
  19. [key: string]: number[];
  20. };
  21. closestTo: number[][];
  22. innerFacets: string[][];
  23. isoVecsABOB: _IsoVector[][];
  24. isoVecsOBOA: _IsoVector[][];
  25. isoVecsBAOA: _IsoVector[][];
  26. vertexTypes: number[][];
  27. coau: number;
  28. cobu: number;
  29. coav: number;
  30. cobv: number;
  31. IDATA: PolyhedronData;
  32. /**
  33. * Creates the PrimaryIsoTriangle Triangle OAB
  34. * @param m an integer
  35. * @param n an integer
  36. */
  37. setIndices(): void;
  38. calcCoeffs(): void;
  39. createInnerFacets(): void;
  40. edgeVecsABOB(): void;
  41. mapABOBtoOBOA(): void;
  42. mapABOBtoBAOA(): void;
  43. MapToFace(faceNb: number, geodesicData: PolyhedronData): void;
  44. /**Creates a primary triangle
  45. * @internal
  46. */
  47. build(m: number, n: number): this;
  48. }
  49. /** Builds Polyhedron Data
  50. * @internal
  51. */
  52. export declare class PolyhedronData {
  53. /**
  54. * The name of the polyhedron
  55. */
  56. name: string;
  57. /**
  58. * The category of the polyhedron
  59. */
  60. category: string;
  61. /**
  62. * vertex data
  63. */
  64. vertex: number[][];
  65. /**
  66. * face data
  67. */
  68. face: number[][];
  69. /**
  70. * @internal
  71. */
  72. edgematch: (number | string)[][];
  73. constructor(
  74. /**
  75. * The name of the polyhedron
  76. */
  77. name: string,
  78. /**
  79. * The category of the polyhedron
  80. */
  81. category: string,
  82. /**
  83. * vertex data
  84. */
  85. vertex: number[][],
  86. /**
  87. * face data
  88. */
  89. face: number[][]);
  90. }
  91. /**
  92. * This class Extends the PolyhedronData Class to provide measures for a Geodesic Polyhedron
  93. */
  94. export declare class GeodesicData extends PolyhedronData {
  95. /**
  96. * @internal
  97. */
  98. edgematch: (number | string)[][];
  99. /**
  100. * @internal
  101. */
  102. adjacentFaces: number[][];
  103. /**
  104. * @internal
  105. */
  106. sharedNodes: number;
  107. /**
  108. * @internal
  109. */
  110. poleNodes: number;
  111. /**
  112. * @internal
  113. */
  114. innerToData(face: number, primTri: _PrimaryIsoTriangle): void;
  115. /**
  116. * @internal
  117. */
  118. mapABOBtoDATA(faceNb: number, primTri: _PrimaryIsoTriangle): void;
  119. /**
  120. * @internal
  121. */
  122. mapOBOAtoDATA(faceNb: number, primTri: _PrimaryIsoTriangle): void;
  123. /**
  124. * @internal
  125. */
  126. mapBAOAtoDATA(faceNb: number, primTri: _PrimaryIsoTriangle): void;
  127. /**
  128. * @internal
  129. */
  130. orderData(primTri: _PrimaryIsoTriangle): void;
  131. /**
  132. * @internal
  133. */
  134. setOrder(m: number, faces: number[]): number[];
  135. /**
  136. * @internal
  137. */
  138. toGoldbergPolyhedronData(): PolyhedronData;
  139. /**Builds the data for a Geodesic Polyhedron from a primary triangle
  140. * @param primTri the primary triangle
  141. * @internal
  142. */
  143. static BuildGeodesicData(primTri: _PrimaryIsoTriangle): GeodesicData;
  144. }