Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware API
      • ZBrush Python API
      • ZBrush GoZ API
      • Code Examples on Github
    • Forum
    • Downloads
    • Support
      • Support Procedures
      • Registered Developer Program
      • Plugin IDs
      • Contact Us
    • Categories
      • Overview
      • News & Information
      • Cinema 4D SDK Support
      • Cineware SDK Support
      • ZBrush 4D SDK Support
      • Bugs
      • General Talk
    • Unread
    • Recent
    • Tags
    • Users
    • Login

    creating custom tags

    SDK Help
    0
    9
    1.2k
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      Helper
      last edited by

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

      On 23/01/2003 at 08:57, xxxxxxxx wrote:

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

      ---------
      Hi,
      my first post here...
      I want to make a custom tag for an 3d-engine exporter.
      To do this, I have to define a new tag class by extending the
      BaseTag class, right?
      This is a first test with no additional functions:
      _

          
          
          _
          
          
          
          
           class zSortTag: BaseTag  
          {  
          public:  
          zSortTag();  
          }  
            
          zSortTag::zSortTag() {  
          return super();  
          }  
           _
      

      _
      Now, when I try to apply this to an object (via object->InsertTag ), I get FALSE as result. What´s wrong with my class?

      1 Reply Last reply Reply Quote 0
      • H
        Helper
        last edited by

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

        On 23/01/2003 at 14:13, xxxxxxxx wrote:

        I think you need to add Edit() as well and return TRUE. (Otherwise C4D thinks that the user pressed Cancel in your dialog, so it creates no tag.)

        1 Reply Last reply Reply Quote 0
        • H
          Helper
          last edited by

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

          On 24/01/2003 at 09:37, xxxxxxxx wrote:

          this doesn´t work:

            
          class zSortTag : BaseTag  
          {  
          public:  
          zSortTag();  
          Edit();  
          }  
            
          zSortTag::zSortTag() {  
          return super();  
          }  
            
          zSortTag::Edit() {  
          return TRUE;  
          }  
          

          any clues?

          thx,
          Florian

          1 Reply Last reply Reply Quote 0
          • H
            Helper
            last edited by

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

            On 26/01/2003 at 23:44, xxxxxxxx wrote:

            Do Constructors need a return? I don't think so.

                
                
                
                
                zSortTag::zSortTag() {  
                  super();  
                }
                
                
                
            
            1 Reply Last reply Reply Quote 0
            • H
              Helper
              last edited by

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

              On 27/01/2003 at 13:54, xxxxxxxx wrote:

              You also need a GetID() that returns a unique ID from PluginCafe.

              1 Reply Last reply Reply Quote 0
              • H
                Helper
                last edited by

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

                On 28/01/2003 at 01:02, xxxxxxxx wrote:

                added GetName() and GetID(),
                but doesn´t help...

                1 Reply Last reply Reply Quote 0
                • H
                  Helper
                  last edited by

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

                  On 28/01/2003 at 11:47, xxxxxxxx wrote:

                  Hmm, that's really strange. I have tags running with C.O.F.F.E.E. in R8. Here's a simple example that works for me:

                      
                      
                      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"); 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);  
                      }
                  

                  (The culprit might have been UseMenu().)

                  1 Reply Last reply Reply Quote 0
                  • H
                    Helper
                    last edited by

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

                    On 29/01/2003 at 09:34, xxxxxxxx wrote:

                    great!
                    I should have tried ExpressionPluginTag instead of extending BaseTag! that probably doesn´t work.

                    Thanks a lot for your help!
                    I think it will be no problem now, to build the tag I need.

                    Florian

                    1 Reply Last reply Reply Quote 0
                    • H
                      Helper
                      last edited by

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

                      On 29/01/2003 at 14:44, xxxxxxxx wrote:

                      Doh, didn't see that. PluginTag should be fine as well if you want to show up in the Tag menu instead of Expressions menu.

                      1 Reply Last reply Reply Quote 0
                      • First post
                        Last post