I'm preparing to build a 2D scene graph for my game, and i would like to know whether i should use at it's root an interface or two or a couple of abstract classes. Here's my requirements:
- Base node item
- needs to be able to store a matrix
- also needs to be able to store a list of child nodes
- as well as a single parent node
- Transform node items
- needs to have a Draw method (implementation is highly probable to be the same)
- requires that the base node item be implemented/derived from
- Drawable node item
- needs to have a Draw method (implementation may be different)
- requires that the base node item be implemented/derived from and cannot be implemented/derived from alongside the transform node item
What scheme of base classes/interfaces should i use for this?