How do you handle rotation for planets?

I've built a satellite system fairly well-removed from ivoyager, essentially just using it's timekeeper. However, now I want to get the current rotation of the earth and apply it to another object.

I tried just getting the rotation of the earth:
Global.bodies_by_name.PLANET_EARTH.rotation
and the basis of earth:
Global.bodies_by_name.PLANET_EARTH.transform.basis
But I found that both of these are always 0. So, you don't directly rotate the earth node... how do you do it? And, if possible, how can I get the earths rotation so that I can apply it to a standard spatial node?

Thanks

Comments

  • edited December 2020
    Body.transform only contains position relative to the Body's parent Body. This transform is never rotated or scaled, since those effects would propagate to children Bodies. If we rotated Earth's transform, for example, that would make the Moon go around the Earth every 24 hrs.

    Instead, it's the model itself that is scaled and rotated. Body.model_manager holds the model and does the rotation each frame. (ModelManager is getting a renamed to BodyGeometry in next version. It will have better API too.)
Sign In or Register to comment.