class HT_Update_Status
See Also Synopsis Details  
No mechanism is provided for the draw calls.  It is assumed that each draw call will be relatively short¾precluding the need for cancel. Also, within the draw call, there is no notion of "overall" progress.

The application subclasses off of HT_Update_Status to create "real" update objects. Following is an example class defined for testing:
 

class My_Update_Status : public HT_Update_Status {
    private:
        HT_Boolean  m_cancel;
        int         m_percentage;
    public:
        My_Update_Status (void) : m_cancel (HK_False), m_percentage (0) {}
        void        request_cancel (void) {m_cancel = HK_False;}
        HT_Boolean  cancel_requested (void) {return m_cancel;}
        int         percentage (void) {return m_percentage;}
        void        set_percentage (int percentage) {m_percentage = percentage;}
};
Currently, only the EOV (elimination of overlapping vectors) renderer supports the update status interface.  The update object gets passed to the EOV renderer as a configuration parameter as exemplified in the following code snippets from ad hoc testing:
 
    pUS = new My_Update_Status ();
        ....
    // get the EOV renderer going
    m_render = (*mx_render) (m_device);
    HD_Assert (m_render != null);
    m_render.set_configure ("Process Diagonals", HT_Option_Value(HK_True));
    m_render.set_configure ("Update Monitor", HT_Option_Value((void *) pUS));
    m_render.establish ();
The EOV renderer update() checks for a cancel request and updates progress approximately every second.