@polygonjs/polygonjs
Version:
node-based WebGL 3D engine https://polygonjs.com
102 lines (92 loc) • 3.19 kB
text/typescript
// /**
// * Creates a box filled with tetrahedrons.
// *
// *
// */
// import {TetSopNode} from './_BaseTet';
// import {NodeParamsConfig, ParamConfig} from '../utils/params/ParamsConfig';
// import {CoreGroup} from '../../../core/geometry/Group';
// import {SopType} from '../../poly/registers/nodes/types/Sop';
// import {TetGeometry} from '../../../core/geometry/modules/tet/TetGeometry';
// import {VERTICES_X} from '../../../core/geometry/modules/tet/TetCommon';
// import {Number4} from '../../../types/GlobalTypes';
// import {Vector3} from 'three';
// const _tetOffset = new Vector3();
// const _v = new Vector3();
// const pointIndices: Number4 = [-1, -1, -1, -1];
// const VERTICES_COUNT_X = VERTICES_X.length;
// // const VERTICES_COUNT_Y = VERTICES_Y.length;
// class TetBoxSopParamsConfig extends NodeParamsConfig {
// /** @param size of the box */
// size = ParamConfig.FLOAT(1, {
// range: [0, 2],
// rangeLocked: [true, false],
// });
// /** @param sizes on each axis */
// sizes = ParamConfig.VECTOR3([1, 1, 1]);
// /** @param number of tetrahedrons on each axis */
// divisions = ParamConfig.VECTOR3([4, 4, 4]);
// /** @param center of the geometry */
// center = ParamConfig.VECTOR3([0, 0, 0]);
// }
// const ParamsConfig = new TetBoxSopParamsConfig();
// export class TetBoxSopNode extends TetSopNode<TetBoxSopParamsConfig> {
// override paramsConfig = ParamsConfig;
// static override type() {
// return SopType.TET_BOX;
// }
// override cook(inputCoreGroups: CoreGroup[]) {
// const geometry = new TetGeometry();
// const {center} = this.pv;
// const scale = 1;
// let verticesIndexX = 0;
// const countX = 7;
// for (let x = 0; x < countX; x++) {
// // let countY = 1;
// // switch (x) {
// // case 0: {
// // countY = 2;
// // break;
// // }
// // case 1: {
// // countY = 1;
// // break;
// // }
// // }
// // for (let y = 0; y < countY; y++) {
// _tetOffset.set(x * scale, 0, 0);
// const vertices = VERTICES_X[verticesIndexX];
// console.log('vertices', verticesIndexX, vertices);
// let i = 0;
// for (let v of vertices) {
// _v.copy(v).multiplyScalar(scale).add(_tetOffset).add(center);
// pointIndices[i] = geometry.addPoint(_v.x, _v.y, _v.z);
// i++;
// }
// geometry.addTetrahedron(pointIndices[0], pointIndices[1], pointIndices[2], pointIndices[3]);
// verticesIndexX++;
// if (verticesIndexX >= VERTICES_COUNT_X) {
// verticesIndexX = 0;
// }
// // }
// }
// // let verticesIndexY = 1;
// // const count = 7;
// // for (let y = 1; y < count; y++) {
// // _v.set(0, y * scale, 0);
// // let i = 0;
// // const vertices = VERTICES_Y[verticesIndexY];
// // console.log('vertices', VERTICES_COUNT_Y, vertices);
// // for (let v of vertices) {
// // pointIndices[i] = geometry.addPoint(v.clone().multiplyScalar(scale).add(_v).add(center));
// // i++;
// // }
// // geometry.addTetrahedron(pointIndices);
// // verticesIndexY++;
// // if (verticesIndexY >= VERTICES_COUNT_Y) {
// // verticesIndexY = 0;
// // }
// // }
// this.setTetGeometries([geometry]);
// }
// }