The scene is an Object3d. You add Other Object3Ds to the scene and they become children of the scene. If you rotate the scene, or scale the scene, of translate its position, it will affect all if its child objects.
You make an Object3D a child of another Object3D by using the parents
You can also add Object3Ds to other Object3Ds that are already part of the scene. Any changes to the Object3D such as position, scale, rotation will affect all if the children under it equally.
It is a Hierarchy of Object 3Ds.
1 2 3 4
In this example, the blue ball is a child of the green ball, which in turn is a child of the red ball.
Any changes to the red ball will effect the green and blue balls,
Any changes to the green ball, will affect the blue ball, but not its parent, the red ball.
Any changes to the blue ball, have no effect on its parent, or grand parent balls.
Any number of Object3Ds can be added as children of other Object3Ds.
An Object3D can have only 1 parent, and you can change its parent dynamically any time.
Changing an Object3Ds parent will affect the current position, scale and rotation based in the parent it has now become a child of.
1 2 3 4 5 6
Getting an Object3D transform, such as position, rotation/quaternion and scale will return the values in local transform space. If the Object3D is a direct descendant of the scene, then the world space values will be identical.
If your Object3D is a child of another Object3D which is already a child of the scene, then the world transform values will also consider the transforms of its parent, grandparents, great grandparents etc.
1 2 3
To get the world transforms of an object,
1 2 3 4 5 6 7 8 9 10 11