Can a mesh has two Object3D parent?

var aMesh = new THREE.Mesh(), bMesh = new THREE.Mesh(), cMesh = new THREE.Mesh()
var aObj = new THREE.Object3D(), bObj = new THREE.Object3D()
aObj.add(aMesh, bMesh)// Easy to change their color
cObj.add(bMesh, cMesh)// Easy to change their positions

Look up, bMesh has two parent, is that right? How can I group them?

normally not, by adding it it will call remove on its previous parent.

But I want to change aMesh’s color and bMesh’color at the same time and change bMesh’s positions and cMesh’s positions at the same time

i dont understand why you wouldn’t be able to do that without binding each object to multiple parents.

what’s the problem doing this?

a.scale.setScalar(2)
b.scale.setScalar(2)
a.material.color.set("peachpuff")
b.material.color.set("peachpuff")

you can also put both into a group and scale it that way

const g = new Group()
g.add(a, b)
// scale both at the same time
g.scale.setScalar(2)

and you can also give them the same material

a.material = foo
b.material = foo
// set color for both at the same time
foo.color.set("peachpuff")