getDDescription parameters



  • 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 { } }
         }
    }



  • 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.



  • 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.


Log in to reply