threepipe
Вы не можете выбрать более 25 тем Темы должны начинаться с буквы или цифры, могут содержать дефисы(-) и должны содержать не более 35 символов.

Vertex.test.ts 5.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. // /*
  2. // * Author: Axel Antoine
  3. // * mail: ax.antoine@gmail.com
  4. // * website: http://axantoine.com
  5. // * Created on Mon Nov 14 2022
  6. // *
  7. // * Loki, Inria project-team with Université de Lille
  8. // * within the Joint Research Unit UMR 9189
  9. // * CNRS - Centrale Lille - Université de Lille, CRIStAL
  10. // * https://loki.lille.inria.fr
  11. // *
  12. // * Licence: Licence.md
  13. // */
  14. //
  15. // import { Vector3 } from "three";
  16. // import { addEdge, } from "../operations/addEdge";
  17. // import { addVertex } from "../operations/addVertex";
  18. // import { removeEdge } from "../operations/removeEdge";
  19. // import { HalfedgeDS } from "./HalfedgeDS";
  20. // import { Vertex } from "./Vertex";
  21. // import { generatorToArray } from "../utils/testutils";
  22. // import { addFace } from "../operations/addFace";
  23. //
  24. // const vec_ = new Vector3();
  25. // let v1: Vertex, v2: Vertex, v3: Vertex, v4: Vertex;
  26. // const struct = new HalfedgeDS();
  27. //
  28. // beforeEach(() => {
  29. // struct.clear();
  30. // v1 = addVertex(struct, vec_.set(1,1,1));
  31. // v2 = addVertex(struct, vec_.set(2,2,2));
  32. // v3 = addVertex(struct, vec_.set(3,3,3));
  33. // v4 = addVertex(struct, vec_.set(4,4,4));
  34. // });
  35. //
  36. // test('Vertex is isolated', () => {
  37. //
  38. // expect(v1.isIsolated()).toBe(true);
  39. // expect(v2.isIsolated()).toBe(true);
  40. //
  41. // const half = addEdge(struct, v1, v2);
  42. //
  43. // expect(v1.isIsolated()).toBe(false);
  44. // expect(v2.isIsolated()).toBe(false);
  45. //
  46. // removeEdge(struct, half);
  47. //
  48. // expect(v1.isIsolated()).toBe(true);
  49. // expect(v2.isIsolated()).toBe(true);
  50. //
  51. // });
  52. //
  53. // test('Vertex is connected to another vertex', () => {
  54. //
  55. // expect(v1.isConnectedToVertex(v2)).toBe(false);
  56. // expect(v2.isConnectedToVertex(v1)).toBe(false);
  57. //
  58. // const half = addEdge(struct, v1, v2);
  59. //
  60. // expect(v1.isConnectedToVertex(v2)).toBe(true);
  61. // expect(v2.isConnectedToVertex(v1)).toBe(true);
  62. //
  63. // removeEdge(struct, half);
  64. //
  65. // expect(v1.isConnectedToVertex(v2)).toBe(false);
  66. // expect(v2.isConnectedToVertex(v1)).toBe(false);
  67. //
  68. // });
  69. //
  70. // test('Vertex loop CW', () => {
  71. //
  72. // let array = generatorToArray(v1.loopCW());
  73. // expect(array).toHaveLength(0);
  74. //
  75. // const v1v2 = addEdge(struct, v1, v2);
  76. // const v1v3 = addEdge(struct, v1, v3);
  77. // const v1v4 = addEdge(struct, v1, v4);
  78. //
  79. // array = generatorToArray(v1.loopCW());
  80. // expect(array).toHaveLength(3);
  81. // expect(array).toContain(v1v2);
  82. // expect(array).toContain(v1v3);
  83. // expect(array).toContain(v1v4);
  84. //
  85. // removeEdge(struct, v1v2);
  86. //
  87. // array = generatorToArray(v1.loopCW());
  88. // expect(array).toHaveLength(2);
  89. // expect(array).toContain(v1v3);
  90. // expect(array).toContain(v1v4);
  91. //
  92. // });
  93. //
  94. // test('Vertex loop CCW', () => {
  95. //
  96. // let array = generatorToArray(v1.loopCCW());
  97. // expect(array).toHaveLength(0);
  98. //
  99. // const v1v2 = addEdge(struct, v1, v2);
  100. // const v1v3 = addEdge(struct, v1, v3);
  101. // const v1v4 = addEdge(struct, v1, v4);
  102. //
  103. // array = generatorToArray(v1.loopCCW());
  104. // expect(array).toHaveLength(3);
  105. // expect(array).toContain(v1v2);
  106. // expect(array).toContain(v1v3);
  107. // expect(array).toContain(v1v4);
  108. //
  109. // removeEdge(struct, v1v2);
  110. //
  111. // array = generatorToArray(v1.loopCCW());
  112. // expect(array).toHaveLength(2);
  113. // expect(array).toContain(v1v3);
  114. // expect(array).toContain(v1v4);
  115. //
  116. // });
  117. //
  118. // test('Boundary in halfedges loop', () => {
  119. //
  120. // let array = generatorToArray(v1.freeHalfedgesInLoop());
  121. // expect(array).toHaveLength(0);
  122. //
  123. // const v1v2 = addEdge(struct, v1, v2);
  124. // const v1v3 = addEdge(struct, v1, v3);
  125. // const v1v4 = addEdge(struct, v1, v4);
  126. //
  127. // array = generatorToArray(v1.freeHalfedgesInLoop());
  128. // expect(array).toHaveLength(3);
  129. // expect(array).toContain(v1v2.twin);
  130. // expect(array).toContain(v1v3.twin);
  131. // expect(array).toContain(v1v4.twin);
  132. //
  133. // // Close 1-2-3 triangles
  134. // const v2v3 = addEdge(struct, v2, v3);
  135. // addFace(struct, [v1v2, v2v3, v1v3.twin]);
  136. // array = generatorToArray(v1.freeHalfedgesInLoop());
  137. // expect(array).toHaveLength(2);
  138. // expect(array).toContain(v1v2.twin);
  139. // expect(array).toContain(v1v4.twin);
  140. //
  141. // // Close 1-3-4 and 1-4-2 triangles
  142. // const v3v4 = addEdge(struct, v3, v4);
  143. // addFace(struct, [v3v4, v1v4.twin, v1v3]);
  144. //
  145. // const v4v2 = addEdge(struct, v4, v2);
  146. // addFace(struct, [v4v2, v1v2.twin, v1v4]);
  147. //
  148. // array = generatorToArray(v1.freeHalfedgesInLoop());
  149. // expect(array).toHaveLength(0);
  150. // });
  151. //
  152. // test('Boundary out halfedges loop', () => {
  153. //
  154. // let array = generatorToArray(v1.freeHalfedgesOutLoop());
  155. // expect(array).toHaveLength(0);
  156. //
  157. // const v1v2 = addEdge(struct, v1, v2);
  158. // const v1v3 = addEdge(struct, v1, v3);
  159. // const v1v4 = addEdge(struct, v1, v4);
  160. //
  161. // array = generatorToArray(v1.freeHalfedgesOutLoop());
  162. // expect(array).toHaveLength(3);
  163. // expect(array).toContain(v1v2);
  164. // expect(array).toContain(v1v3);
  165. // expect(array).toContain(v1v4);
  166. //
  167. // // Close 1-2-3 triangles
  168. // const v2v3 = addEdge(struct, v2, v3);
  169. // addFace(struct, [v1v2, v2v3, v1v3.twin]);
  170. // array = generatorToArray(v1.freeHalfedgesOutLoop());
  171. // expect(array).toHaveLength(2);
  172. // expect(array).toContain(v1v3);
  173. // expect(array).toContain(v1v4);
  174. //
  175. // // Close 1-3-4 and 1-4-2 triangles
  176. // const v3v4 = addEdge(struct, v3, v4);
  177. // addFace(struct, [v3v4, v1v4.twin, v1v3]);
  178. //
  179. // const v4v2 = addEdge(struct, v4, v2);
  180. // addFace(struct, [v4v2, v1v2.twin, v1v4]);
  181. //
  182. // array = generatorToArray(v1.freeHalfedgesOutLoop());
  183. // expect(array).toHaveLength(0);
  184. // });
  185. //