Map Refactor (Ability to have N Geometry Maps)
Currently DynamicObjects have a physicsToVisualMap, physicsToCollidingMap, ...
It would be much better if we just generically had N maps under a SceneObject (maybe even move them if we later get to an entity component architecture).
There is then also contextual information of the maps. ie: The physicsToCollidingMap must be updated before fetching the latest colliding geometry (which could be done at any point, or even multiple times are differing states). With N maps, if you have the collision geometry, you should be able to quickly deduce which map corresponds to it. ie: For all geometry maps { update map that produces said geometry }
Frequently I have a tool with multiple parts where I need N mappings. These then become useless. What I normally do is subclass and implement update of the object, or even place it elsewhere in the objects pipeline using the task graph.
update() override
{
for all maps
update maps
}
Or even for a simple isometric one:
update() override
{
// Transform A, B, and C along with D
geometryA->setTransform(geometryD->getTransform());
geometryB->setTransform(geometryD->getTransform());
geometryC->setTransform(geometryD->getTransform());
}
This works and is nice but then physicsToVisualMap, physicsToCollidingMap, etc start to really serve no purpose.