Reputation: 131
var vertgeometry = new THREE.BoxGeometry(75,75,150);
var vertmaterial = new THREE.MeshPhongMaterial ( {
color: 0xFFFFFF,
wireframe: true
});
var vert = new THREE.Mesh(vertgeometry, vertmaterial);
vert.rotation.x = -Math.PI * 0.5;
vert.position.z = 0;
vert.position.x = 0;
vert.position.y = 75;
vert.recaiveShadow = true
var kogeometry = new THREE.BoxGeometry(15,15,15);
var komaterial = new THREE.MeshPhongMaterial ({
color: 0xFFFFFF,
wireframe: true
});
var ko1 = new THREE.Mesh(kogeometry, komaterial);
ko1.position.z = -30;
ko1.position.x = -30;
ko1.position.y = 157.5;
var ko2 = new THREE.Mesh(kogeometry, komaterial);
ko2.position.set(0,157.5,-30);
var ko3 = new THREE.Mesh(kogeometry, komaterial);
ko3.position.set(30,157.5,-30);
var ko4 = new THREE.Mesh(kogeometry, komaterial);
ko4.position.set(30,157.5,0);
var ko5 = new THREE.Mesh(kogeometry, komaterial);
ko5.position.set(30,157.5,30);
var ko6 = new THREE.Mesh(kogeometry, komaterial);
ko6.position.set(30,157.5,30);
var ko7 = new THREE.Mesh(kogeometry, komaterial);
ko7.position.set(0, 157.5, 30);
var ko8 = new THREE.Mesh(kogeometry, komaterial);
ko8.position.set(-30,157.5, 30);
var ko9 = new THREE.Mesh(kogeometry, komaterial);
ko9.position.set(-30, 157.5, 0);
Bastion = new THREE.Object3D();
Bastion.add(vert, ko1, ko2, ko3, ko4, ko5, ko6, ko7, ko8, ko9);
scene.add(Bastion);
As you can see I merged 10 geometries into one object called 'Bastion'. Now I'd like to add this object to the scene 3 more times with different positions. How could I do that? When I try to add it to the scene the last one I added dissapears. Is there a way to do so or do I have to create 30 more geometries manually and calculate their required positions? I'm a beginner so sorry for my foolish question
Upvotes: 0
Views: 669
Reputation: 131
I did my research and found the solution. I just had to clone my object like this:
var second = Bastion.clone();
second.position.set(100,100,100);
second.add(second);
Upvotes: 2