I’m trying to understand the relationship between these three things. I have a box primitive in my scene. I look at in the console and see that it is an Entity. It has a model property (my box mesh, essentially). That model property has a graphNode property. All this makes sense to me.
But I know that you can reparent a graphNode onto some other node. What would that do exactly? Would the model somehow get reparented too, even though it appears to be the parent of the graphNode?
So those two classes of objects are related, pc.Entity inherits from pc.GraphNode. They can be both used as the translation node for a mesh instance (that is the parts of a model rendered in space).
The difference is pc.GraphNode has limited functionality apart from holding and doing translations in world and local space. pc.Entity can hold in addition components that great expand its purpose in a scene.
Right now in the editor hierarchy only pc.Entity objects are being shown. You can ofcourse reparent a pc.GraphNode, much like you would do with an entity. Then that model will follow the translation of its parent in world space.
That’s a common trick when attaching objects to an animated model, we add the items as children to the nodes of the animation bones.