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
    • Recent
    • Tags
    • Users
    • Register
    • Login

    claude bonet - how to get datacount

    Scheduled Pinned Locked Moved SDK Help
    7 Posts 0 Posters 565 Views
    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 Offline
      Helper
      last edited by

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

      On 16/12/2004 at 06:31, xxxxxxxx wrote:

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

      ---------
      hi,
      my problem is, that my plugin finds all claudebonet tags, but the datacount is wired, i can´t get the right count of elements/vertices per cb-tag
      code:

          
          
          BaseTag *tag = obj->GetFirstTag();  
              
            int i=0; int count;  
            char ibuffer [33], cbbuffer [33];
          
          
          
          
            while(tag->GetType() == Tclaudebonet)  
            {  
             VariableTag *gtag = (VariableTag * )tag; 
          
          
          
          
             Real *cnt = (Real* )gtag->GetDataAddress();  
             //count = sizeof(cnt) / sizeof(cnt[0]);
          
          
          
          
             count=0;  
             LONG anz = cnt[count];  
             while(anz != NULL)  
             {  
              count++;  
              anz = cnt[count];  
             }
          
          
          
          
             //CBs ausgeben  
             GePrint(itoa(i,ibuffer,10));  
             GePrint(itoa(count,cbbuffer,10));
          
          
          
          
             //zum nächsten Tag gehen  
             tag = tag->GetNext();
          
          
          
          
            
             //CBs zaehlen  
             i++;  
             strcpy(ibuffer,"");  
             strcpy(cbbuffer,"");  
            }   
      
      1 Reply Last reply Reply Quote 0
      • H Offline
        Helper
        last edited by

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

        On 19/12/2004 at 03:29, xxxxxxxx wrote:

        no idea ??

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

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

          On 16/01/2005 at 08:39, xxxxxxxx wrote:

          hey admin,
          delete this thread, problem solved 🙂

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

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

            On 17/01/2005 at 23:33, xxxxxxxx wrote:

            Hello

            Don't you wanna share your knowledge about this
            problem and how you solved it.
            I want to learn about the way to handle
            the tag.

            If you not wish, I'm to say 'sorry'.

            With all my respects ...
            ZawMinTun

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

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

              On 19/01/2005 at 13:59, xxxxxxxx wrote:

              momento ...
              code:
              ------------------------------------------------------------------------
              #include <iostream.h>
              #include <stdlib.h>
              #include <string.h>
              #include <c4d.h>
              class SMDFilter : SceneSaverData
              {
                  public:
                virtual LONG Save(PluginSceneSaver *node, const Filename &name, BaseDocument *doc, LONG filterflags);
                static NodeData *Alloc(void) { return gNew SMDFilter; }
              };

              LONG SMDFilter::Save(PluginSceneSaver *node, const Filename &name, BaseDocument *doc, LONG flags)
              {
               doc = GetActiveDocument();
                  BaseObject *obj = doc->GetActiveObject();
                  if(obj)
                  {
                //Polygoncount
                char polybuffer [33];
                GePrint("all Vertices: ");
                GePrint(itoa(static_cast<PolygonObject *>(obj)->GetPointCount(),polybuffer,10));
                GePrint("Claude Bonet Tags: ");
                //Claudebonet test
                      BaseTag *tag = obj->GetFirstTag();
                
                char ibuffer [33];
                int i=0;
                      while(tag->GetType() == Tclaudebonet)
                      {
                 GePrint(".............");
                 VariableTag *gtag = (VariableTag * )tag; 
                 int cnt = gtag->GetDataCount();
                 Real *value = (Real * )gtag->GetDataAddress();
                 //read relevant values
                 i=0;
                 for(int a=0; a<cnt; a++)
                 {
                  if(value[a]==1.0) i++;
                 }
                 GePrint(itoa(i,ibuffer,10));
                 //go to the next tag
                 tag = tag->GetNext();
                      }  
                  } 
                  else GePrint(" - no object");
                 
                  return TRUE;
              }
              Bool RegisterSMD(void)
              {
                if(!RegisterSceneSaverPlugin(1111111,"SMDex",0, SMDFilter::Alloc, EXECUTION_RESULT_OK, 0, NULL)) return FALSE;
                return TRUE;
              }

              --------------------------------------------------------
              i hope this help,
              dont hesitate to ask 🙂

              sorry for delay.

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

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

                On 19/01/2005 at 17:06, xxxxxxxx wrote:

                Always nice to share!!! Thanks dojoman! (are you into martial arts, btw?)

                Robert

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

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

                  On 21/01/2005 at 10:05, xxxxxxxx wrote:

                  no 🙂
                  but i really like movies based on it. so when i had to decide
                  a cool name for my first email-address (in 1998) i chose this one.
                  so from then, it became my synonym, that´s the simple reason 🙂

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