@threepipe/plugin-svg-renderer
Version:
Plugins for SVG Rendering of 3d objects for Threepipe
186 lines (185 loc) • 5.54 kB
text/typescript
// /*
// * Author: Axel Antoine
// * mail: ax.antoine@gmail.com
// * website: http://axantoine.com
// * Created on Mon Nov 14 2022
// *
// * Loki, Inria project-team with Université de Lille
// * within the Joint Research Unit UMR 9189
// * CNRS - Centrale Lille - Université de Lille, CRIStAL
// * https://loki.lille.inria.fr
// *
// * Licence: Licence.md
// */
//
// import { Vector3 } from "three";
// import { addEdge, } from "../operations/addEdge";
// import { addVertex } from "../operations/addVertex";
// import { removeEdge } from "../operations/removeEdge";
// import { HalfedgeDS } from "./HalfedgeDS";
// import { Vertex } from "./Vertex";
// import { generatorToArray } from "../utils/testutils";
// import { addFace } from "../operations/addFace";
//
// const vec_ = new Vector3();
// let v1: Vertex, v2: Vertex, v3: Vertex, v4: Vertex;
// const struct = new HalfedgeDS();
//
// beforeEach(() => {
// struct.clear();
// v1 = addVertex(struct, vec_.set(1,1,1));
// v2 = addVertex(struct, vec_.set(2,2,2));
// v3 = addVertex(struct, vec_.set(3,3,3));
// v4 = addVertex(struct, vec_.set(4,4,4));
// });
//
// test('Vertex is isolated', () => {
//
// expect(v1.isIsolated()).toBe(true);
// expect(v2.isIsolated()).toBe(true);
//
// const half = addEdge(struct, v1, v2);
//
// expect(v1.isIsolated()).toBe(false);
// expect(v2.isIsolated()).toBe(false);
//
// removeEdge(struct, half);
//
// expect(v1.isIsolated()).toBe(true);
// expect(v2.isIsolated()).toBe(true);
//
// });
//
// test('Vertex is connected to another vertex', () => {
//
// expect(v1.isConnectedToVertex(v2)).toBe(false);
// expect(v2.isConnectedToVertex(v1)).toBe(false);
//
// const half = addEdge(struct, v1, v2);
//
// expect(v1.isConnectedToVertex(v2)).toBe(true);
// expect(v2.isConnectedToVertex(v1)).toBe(true);
//
// removeEdge(struct, half);
//
// expect(v1.isConnectedToVertex(v2)).toBe(false);
// expect(v2.isConnectedToVertex(v1)).toBe(false);
//
// });
//
// test('Vertex loop CW', () => {
//
// let array = generatorToArray(v1.loopCW());
// expect(array).toHaveLength(0);
//
// const v1v2 = addEdge(struct, v1, v2);
// const v1v3 = addEdge(struct, v1, v3);
// const v1v4 = addEdge(struct, v1, v4);
//
// array = generatorToArray(v1.loopCW());
// expect(array).toHaveLength(3);
// expect(array).toContain(v1v2);
// expect(array).toContain(v1v3);
// expect(array).toContain(v1v4);
//
// removeEdge(struct, v1v2);
//
// array = generatorToArray(v1.loopCW());
// expect(array).toHaveLength(2);
// expect(array).toContain(v1v3);
// expect(array).toContain(v1v4);
//
// });
//
// test('Vertex loop CCW', () => {
//
// let array = generatorToArray(v1.loopCCW());
// expect(array).toHaveLength(0);
//
// const v1v2 = addEdge(struct, v1, v2);
// const v1v3 = addEdge(struct, v1, v3);
// const v1v4 = addEdge(struct, v1, v4);
//
// array = generatorToArray(v1.loopCCW());
// expect(array).toHaveLength(3);
// expect(array).toContain(v1v2);
// expect(array).toContain(v1v3);
// expect(array).toContain(v1v4);
//
// removeEdge(struct, v1v2);
//
// array = generatorToArray(v1.loopCCW());
// expect(array).toHaveLength(2);
// expect(array).toContain(v1v3);
// expect(array).toContain(v1v4);
//
// });
//
// test('Boundary in halfedges loop', () => {
//
// let array = generatorToArray(v1.freeHalfedgesInLoop());
// expect(array).toHaveLength(0);
//
// const v1v2 = addEdge(struct, v1, v2);
// const v1v3 = addEdge(struct, v1, v3);
// const v1v4 = addEdge(struct, v1, v4);
//
// array = generatorToArray(v1.freeHalfedgesInLoop());
// expect(array).toHaveLength(3);
// expect(array).toContain(v1v2.twin);
// expect(array).toContain(v1v3.twin);
// expect(array).toContain(v1v4.twin);
//
// // Close 1-2-3 triangles
// const v2v3 = addEdge(struct, v2, v3);
// addFace(struct, [v1v2, v2v3, v1v3.twin]);
// array = generatorToArray(v1.freeHalfedgesInLoop());
// expect(array).toHaveLength(2);
// expect(array).toContain(v1v2.twin);
// expect(array).toContain(v1v4.twin);
//
// // Close 1-3-4 and 1-4-2 triangles
// const v3v4 = addEdge(struct, v3, v4);
// addFace(struct, [v3v4, v1v4.twin, v1v3]);
//
// const v4v2 = addEdge(struct, v4, v2);
// addFace(struct, [v4v2, v1v2.twin, v1v4]);
//
// array = generatorToArray(v1.freeHalfedgesInLoop());
// expect(array).toHaveLength(0);
// });
//
// test('Boundary out halfedges loop', () => {
//
// let array = generatorToArray(v1.freeHalfedgesOutLoop());
// expect(array).toHaveLength(0);
//
// const v1v2 = addEdge(struct, v1, v2);
// const v1v3 = addEdge(struct, v1, v3);
// const v1v4 = addEdge(struct, v1, v4);
//
// array = generatorToArray(v1.freeHalfedgesOutLoop());
// expect(array).toHaveLength(3);
// expect(array).toContain(v1v2);
// expect(array).toContain(v1v3);
// expect(array).toContain(v1v4);
//
// // Close 1-2-3 triangles
// const v2v3 = addEdge(struct, v2, v3);
// addFace(struct, [v1v2, v2v3, v1v3.twin]);
// array = generatorToArray(v1.freeHalfedgesOutLoop());
// expect(array).toHaveLength(2);
// expect(array).toContain(v1v3);
// expect(array).toContain(v1v4);
//
// // Close 1-3-4 and 1-4-2 triangles
// const v3v4 = addEdge(struct, v3, v4);
// addFace(struct, [v3v4, v1v4.twin, v1v3]);
//
// const v4v2 = addEdge(struct, v4, v2);
// addFace(struct, [v4v2, v1v2.twin, v1v4]);
//
// array = generatorToArray(v1.freeHalfedgesOutLoop());
// expect(array).toHaveLength(0);
// });
//