Skip to content
Advertisement

three.js Cube Geometry – how to update parameters?

Possibly dumb question but here goes. Three.js geometries have ‘parameter’ feilds associated with them, see the box geometry here…

box Geometry parameters

I am trying to update these parameters like this…

var nodeSize = 10;
var geometry = new THREE.CubeGeometry(nodeSize, nodeSize, nodeSize);
mesh = new THREE.Mesh(geometry, new THREE.MeshNormalMaterial({side:THREE.DoubleSide}));

scene.add(mesh);
mesh.geometry.parameters.depth=20;

But of course, the geometry remains unchanged. Is there a way of updating the geometry by editing these parameters?

fiddle here https://jsfiddle.net/kn3owveg/2/

Any help appreciated!

Advertisement

Answer

Gaitat is totally right, you can’t change geometry with changing of parameters.

And there can be another solution. With scaling of your cube.

function setSize( myMesh, xSize, ySize, zSize){
  scaleFactorX = xSize / myMesh.geometry.parameters.width;
  scaleFactorY = ySize / myMesh.geometry.parameters.height;
  scaleFactorZ = zSize / myMesh.geometry.parameters.depth;
  myMesh.scale.set( scaleFactorX, scaleFactorY, scaleFactorZ );
}
...
setSize(mesh, 10, 10, 20);

jsfiddle example

User contributions licensed under: CC BY-SA
2 People found this is helpful
Advertisement