SceneHookData::Draw not clearing



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 16/03/2004 at 15:30, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   8.206 
    Platform:      
    Language(s) :     C++  ;

    ---------
    Hi,
    Im trying to draw a line in the editor with a SceneHookData plugin.
    The problem I'm having is that the an 'echo' of my drawing is left behind in the editor until it is rotated, moved or scaled.

      
    Bool SceneHookTest::Draw(PluginSceneHook *node, BaseDocument *doc, BaseDraw *bd, BaseDrawHelp *bh, BaseThread *bt, LONG flags)  
    {  
      
         GePrint(LongToString(GeGetTimer()) + ": SceneHookTest::Draw()");  
           
         BaseObject *op = doc->GetActiveObject();  
         if(!op) return SceneHookData::Draw(node,doc,bd,bh,bt,flags);  
      
         bd->SetPen(Vector(1,1,0));  
         bd->Line3D(Vector(0), op->GetPos()*bh->GetMg());  
      
         return SceneHookData::Draw(node,doc,bd,bh,bt,flags);  
    }  
    

    This draws a line like it should, if I move an object around with the move tool, a line3d updates like it should, but if I rotate the viewport and then drag the object, two line3d's appear.
    One of them is in the old location, and one of them is in the correct location.

    Have a look at the image below for an animated example, you can see at the end of the animation, there are now two lines. If I rotate the viewport, the old line will be erased, but the problem starts over again with new locations.

    What am I doing wrong?



  • THE POST BELOW IS MORE THAN 5 YEARS OLD. RELATED SUPPORT INFORMATION MIGHT BE OUTDATED OR DEPRECATED

    On 20/03/2004 at 02:34, xxxxxxxx wrote:

    Hi Ian,
    just a guess, but could it be an OpenGL issue? It seems that the old line is not deleted because of a "smart refresh" of the editor...

    Cheers,
    Arndt


Log in to reply