void Setup(
void ) {};
void Cleanup(
void ) {};
void InsertObject(
DrawableObject *object );
void RemoveObject(
DrawableObject *object );
void InsertUpdateCallbacks(
UpdateCallBack*, SortCallBack*, void *self );
void RemoveUpdateCallbacks(
UpdateCallBack*, SortCallBack*, void *self );
void UpdateMetrics(
Tpoint *pos ); // do update without moving around in lists
void UpdateMetrics(
long listNo, Tpoint *pos, TransportStr *transList );
void SortForViewpoint(
void );
void
ResetTraversal( void )
{ nextToDraw = head; };
float
GetNextDrawDistance( void ) { if (nextToDraw) return
nextToDraw->distance; else return -1.0f; };
void DrawBeyond( float ringDistance, int LOD, RenderOTW
*renderer );
void DrawBeyond(
float ringDistance, Render3D *renderer );
DrawableObject*
GetNearest( void )
{ return tail; };
DrawableObject*
GetNext( void )
{ return nextToDraw; };
DrawableObject*
GetNextAndAdvance( void ) { DrawableObject
*p = nextToDraw; if (nextToDraw) nextToDraw = nextToDraw->next; return
p; };
void InsertionSortLink(DrawableObject **listhead, DrawableObject *listend);
void QuickSortLink(DrawableObject
**head, DrawableObject *end);
protected:
DrawableObject
*head;
DrawableObject
*tail;
DrawableObject
*nextToDraw;
UpdateCallBack
*updateCBlist;
SortCallBack
*sortCBlist;