error C2653: 'SUPER' : no class or na...



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

    On 28/08/2005 at 04:11, xxxxxxxx wrote:

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

    ---------
    Hi,

    I just want to add some drawings to my plugin object. The SDK docs tell, one has to add a call to the parent of the draw function by including

    return SUPER::Draw(op, drawpass, bd, bh);  
    

    at the end of the function. But this ends with a comiler error (MS VC++ 6) :

    error C2653: 'SUPER' : no class or namespace

    What am I doing wrong? I didn't find any definition of "SUPER" in the h files...



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

    On 28/08/2005 at 08:26, xxxxxxxx wrote:

    you need to use the parent class instead of SUPER. If you have an object then use ObjectData::Draw(...)



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

    On 30/08/2005 at 03:54, xxxxxxxx wrote:

    You needed to define the INSTANCEOF in your class, then you can use SUPER. It makes it much easier to do changes later on rather then directly referencing a class name. (see the SDK DoubleCircle example)



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

    On 30/08/2005 at 10:41, xxxxxxxx wrote:

    Thanks. But the Draw routine of doublecircle just returns TRUE (as I also always did by now) :

      
    Bool DoubleCircleData::Draw(PluginObject *op, LONG type, BaseDraw *bd, BaseDrawHelp *bh)  
    {  
         if (type!=DRAWPASS_HANDLES) return TRUE;  
      
         BaseContainer *data = op->GetDataInstance();  
      
         Matrix m = bh->GetMg();  
           
         bd->SetPen(GetWorldColor(COLOR_ACTIVEPOINT));  
      
         bd->Handle3D(GetRTHandle(op,0)*m,HANDLE_BIG);  
         bd->Line3D(GetRTHandle(op,0)*m,m.off);  
           
         return TRUE;  
      
    

    What I mean, is the advice in the sdk docs:

    >>
    Draw additional information for your object in the editor. Be sure to call the parent version by including this call at the end of the function:

    return SUPER::Draw(op, drawpass, bd, bh);
    <<

    Or do I missunderstand something?



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

    On 30/08/2005 at 14:10, xxxxxxxx wrote:

    Take a look at the class definition, I was referring to the INSTANCEOF and how to use it so you can reference the SUPER marco. Generally it is best to call the SUPER::function and leave it as the default unless you want to be sure a certain value (non-default) is returned (i.e. on error etc.).


Log in to reply