ik ben een 3d engine aan het maken, ik zal in het kort de structuur uitleggen zoals ik die nu heb:
class node
hierin wordt de positie en rotatie van alles wat er onder hangt opgeslagen. onder een node kunnen andere nodes of entities hangen.
class entity
van dit object zijn meerdere subentities afgeleid, zoals een entity_camera, entity_drawable etc.
een scene in de praktijk:
node *root
|-- node *auto
| |-- entity_drawable *wiel1
| |-- entity_drawable *carosserie
|-- node *camera
| |-- entity_camera *mijn_camera
etc.
deze entities worden gemaakt door pluggable factories; dwz: er is een entityfactory_drawable die zich bij program startup registreert bij de entityfactory, als de gebruiker iets doet als 'entityfactory.create(DRAWABLE, "wiel1");' wordt de juiste subfactory gezocht en het drawable object door deze subfactory in een map met drawables (in de zgn scenemanager) geplaatst.
maar het probleem is: als ik nu een drawable wil die via multiple inheritance net-aware en/of physics-aware is, moet ik dan bakken met subfactories maken? (entityfactory_drawable, entityfactory_drawable_physics, entityfactory_net, entityfactory_drawable_net, entityfactory_drawable_physics_net ..)
lijkt me niet praktisch. sowieso vraagt ik me af of ik alle entities wel van een hoofdentity moet afleiden (ivm de 'dreaded diamond' bij multiple inheritance), maar dan nog blijft het probleem. is wat ik wil wel mogelijk, of zijn factories hier gewoon niet geschikt voor?
class node
hierin wordt de positie en rotatie van alles wat er onder hangt opgeslagen. onder een node kunnen andere nodes of entities hangen.
class entity
van dit object zijn meerdere subentities afgeleid, zoals een entity_camera, entity_drawable etc.
een scene in de praktijk:
node *root
|-- node *auto
| |-- entity_drawable *wiel1
| |-- entity_drawable *carosserie
|-- node *camera
| |-- entity_camera *mijn_camera
etc.
deze entities worden gemaakt door pluggable factories; dwz: er is een entityfactory_drawable die zich bij program startup registreert bij de entityfactory, als de gebruiker iets doet als 'entityfactory.create(DRAWABLE, "wiel1");' wordt de juiste subfactory gezocht en het drawable object door deze subfactory in een map met drawables (in de zgn scenemanager) geplaatst.
maar het probleem is: als ik nu een drawable wil die via multiple inheritance net-aware en/of physics-aware is, moet ik dan bakken met subfactories maken? (entityfactory_drawable, entityfactory_drawable_physics, entityfactory_net, entityfactory_drawable_net, entityfactory_drawable_physics_net ..)
lijkt me niet praktisch. sowieso vraagt ik me af of ik alle entities wel van een hoofdentity moet afleiden (ivm de 'dreaded diamond' bij multiple inheritance), maar dan nog blijft het probleem. is wat ik wil wel mogelijk, of zijn factories hier gewoon niet geschikt voor?