Expression tag evaluation



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

    On 08/02/2003 at 13:37, xxxxxxxx wrote:

    User Information:
    Cinema 4D Version:   8.012 
    Platform:      
    Language(s) :   C.O.F.F.E.E  ;

    ---------
    it seems that the "Execute" part of an expression tag is only evaluated when the object which it's attached to has it's parameters changed/is manipulated.

    is there any way to have a small section of code that is constantly evaluated (i want to change a variable parameter within my expression tag when the currently active object in the document changes).



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

    On 09/02/2003 at 02:02, xxxxxxxx wrote:

    I can't reproduce the behaviour you describe. This test script seems to be executed also when I change parameters of another object or move the time slider, also when the active object changes:

        
        
        const var MYTAG_ID = 1011203;  
        var mytag_icon;
        
        
        
        
        class MyTag : ExpressionPluginTag  
        {  
        public:  
          MyTag();  
            
          GetID();  
          GetIcon();  
          Edit();  
          GetName();  
          Execute(doc, op);  
          GetHelpText();  
            
          MultipleAllowed();  
          DisplayAllowed();  
          UseMenu();  
        }
        
        
        
        
        MyTag::MyTag() { println("MyTag"); super(); }  
        MyTag::GetID() { println("GetID"); return MYTAG_ID; }  
        MyTag::Edit() { println("Edit"); return TRUE; }  
        MyTag::GetName() { println("GetName"); return "My Tag"; }  
        MyTag::Execute(doc, op) { println("Execute: ", time()); return TRUE; }  
        MyTag::GetHelpText() { println("GetHelpText"); return "My Tag"; }  
        MyTag::MultipleAllowed()   { println("MultipleAllowed"); return TRUE; }  
        MyTag::DisplayAllowed()    { println("DisplayAllowed"); return TRUE; }  
        MyTag::GetIcon() { println("GetIcon()"); return mytag_icon; }  
        MyTag::UseMenu() { println("UseMenu"); return TRUE; }
        
        
        
        
        main()  
        {  
          mytag_icon = new(BaseBitmap, PLUGINTAG_ICON_SIZE, PLUGINTAG_ICON_SIZE);  
          mytag_icon->SetPen(vector(0.2, 0.3, 0.7));  
          mytag_icon->DrawRect(0,0,PLUGINTAG_ICON_SIZE,PLUGINTAG_ICON_SIZE);  
          println("main");  
          Register(MyTag);  
        }
    

    Unfortunately it's not possible to set the camera dependent flag, since it's in a custom datatype not accessible from C.O.F.F.E.E., so you won't get called when the camera is moved.


Log in to reply