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?
 
     
     
     
    