Fixed some scale problems

broken-cursed-links
Mike Lynch 2024-04-26 08:59:26 +10:00
parent e478abe7c6
commit fb9c78d82f
2 changed files with 7 additions and 9 deletions

View File

@ -15,10 +15,8 @@ class FourDShape extends THREE.Group {
this.nodes3 = {};
this.links = structure.links;
this.faces = ( "faces" in structure ) ? structure.faces : [];
this.node_size = structure.geometry.node_size;
this.link_size = structure.geometry.link_size;
this.node_scale = 1;
this.link_scale = 1;
this.node_scale = structure.geometry.node_size;
this.link_scale = structure.geometry.link_size;
this.hyperplane = HYPERPLANE;
this.initShapes();
}
@ -51,7 +49,7 @@ class FourDShape extends THREE.Group {
const length = n1.v3.distanceTo(n2.v3);
const centre = new THREE.Vector3();
centre.lerpVectors(n1.v3, n2.v3, 0.5);
const geometry = new THREE.CylinderGeometry(this.link_size * s2, this.link_size * s1, 1);
const geometry = new THREE.CylinderGeometry(this.link_scale * s2, this.link_scale * s1, 1);
const cyl = new THREE.Mesh(geometry, material);
const edge = new THREE.Group();
edge.add(cyl);
@ -71,7 +69,7 @@ class FourDShape extends THREE.Group {
const length = n1.v3.distanceTo(n2.v3);
const centre = new THREE.Vector3();
centre.lerpVectors(n1.v3, n2.v3, 0.5);
link.object.scale.copy(new THREE.Vector3(this.link_size * s2, this.link_size * s1, length));
link.object.scale.copy(new THREE.Vector3(this.link_scale * s2, this.link_scale * s1, length));
link.object.position.copy(centre);
link.object.lookAt(n2.v3);
link.object.children[0].rotation.x = Math.PI / 2.0;

6
gui.js
View File

@ -2,8 +2,8 @@ import { GUI } from 'lil-gui';
const DEFAULTS = {
thickness: 0.5,
nodesize: 1.5,
thickness: 0.02,
nodesize: 0.02,
linkopacity: 0.5,
link2opacity: 0.5,
shape: '120-cell',
@ -74,7 +74,7 @@ class FourDGUI {
this.gui.add(this.params, 'link2opacity', 0, 1).onChange(
(v) => setLinkOpacity(v, false)
);
this.gui.add(this.params, 'nodesize', 0.1, 4);
this.gui.add(this.params, 'nodesize', 0, 1);
this.gui.addColor(this.params, 'color').onChange(setColor);
this.gui.addColor(this.params, 'background').onChange(setBackground);
this.gui.add(this.params, 'xRotate', [ 'YW', 'YZ', 'ZW' ]);