the 3D objects need to override the following virtual functions: getZOrder, getOutline, draw, redraw if necessary.