Maxon Developers Maxon Developers
    • Documentation
      • Cinema 4D Python API
      • Cinema 4D C++ API
      • Cineware 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

    getDDescription parameters

    SDK Help
    0
    3
    314
    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 07/02/2006 at 10:20, xxxxxxxx wrote:

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

      ---------

      Hi,

      I'm still at this comboBox problem.
      (I want to add items to a CYCLE at runtime).
      Two things I don't understand:

      - with "node->GetDescription(description, ... );"
         I get a description, I already have through
         the "GetDDescription(node, description..."
         Why is that? Can I leave out this line?

      - description->GetParameterI(DescLevel(VP_DISPLAY_MODE),
         NULL); only delivers a NULL pointer, but it's
         defined in the .res file properly (please see below)
         How do I know from description which elements
         are available?

      - What's the use of the node parameter in the
         context of a VideoPostPlugin?

      Any short answer would help me a lot!

      Thanks,
      Sascha

      -------------

      Bool MyVideoPost::GetDDescription(GeListNode* node, Description* description, LONG& flags)
      {
      // Do I really need this line?
      if (!description->LoadDescription(ID_MYVIDEOPOST)) return FALSE;

      if (flags & DESCFLAGS_DESC_RECURSIONLOCK) return FALSE;
      Bool bRes = node->GetDescription(description, DESCFLAGS_DESC_RECURSIONLOCK);
      if (!bRes) return FALSE;
      flags |= DESCFLAGS_DESC_LOADED;

      comboBox = description->GetParameterI(DescLevel(VP_DISPLAY_MODE), NULL);

      }

      ---------------

      CONTAINER VPmypost
      {
           NAME VPmypost;
           INCLUDE VPbase;

      GROUP ID_VIDEOPOSTPROPERTIES
           {
            LONG VP_DISPLAY_MODE     { CYCLE { } }
           }
      }

      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 07/02/2006 at 12:05, xxxxxxxx wrote:

        1. Yes, you really need that! It doesn't get a description*, it fills Description* description with the descriptions and their parameters from the .res file. Otherwise, the static resources are ignored.

        2. In order to get to these non-dynamic resources, first get the node's data instance:

        BaseContainer* bc = (static_cast<BaseList2D*>node)->GetDataInstance();
        

        As for dynamically filling the CYCLE, I'm skeptical because of this line in the docs:

        The values must correspond to entries in the descname.h and descname.str files.

        It appears that if you define a static ComboBox resource, it must be statically filled with select items. If you want to dynamically fill it, you may need to dynamically create the ComboBox as well. See 'Description' (class Description) in the docs.

        3. GeListNode* node is the actual 'object' to which the NodeData for your plugin (xxxData) is attached. For instance, when you make a PluginTag, you declare a TagData class. TagData is a NodeData derivative (not the Tag itself!!!). The Tag itself is passed to the TagData as a GeListNode* node. Casting it appropriately, BaseTag* tag = static_cast <BaseTag*>node, reveals the plugin object.

        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 13/02/2006 at 08:41, xxxxxxxx wrote:

          Thank you! This helped me solving it.

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