Open Search
    nodeslib.h File Reference

    Classes

    class  NodesLib
     
    struct  NodesLib::Variant
     

    Namespaces

     maxon
     
     maxon::nodes
     

    Macros

    #define PRIVATE_MAXON_DECLARATION_REGISTER_BUILTINNODE(id, enable, CNT, ...)
     
    #define MAXON_DECLARATION_REGISTER_BUILTINNODE(id, ...)
     
    #define MAXON_DECLARATION_REGISTER_FEATURE_BUILTINNODE(id, enable, ...)
     
    #define PRIVATE_MAXON_DECLARATION_REGISTER_BUILTINNODE_DELEGATE(id, enable, CNT, ...)
     
    #define MAXON_DECLARATION_REGISTER_FEATURE_BUILTINNODE_DELEGATE(id, enable, ...)
     

    Macro Definition Documentation

    ◆ PRIVATE_MAXON_DECLARATION_REGISTER_BUILTINNODE

    #define PRIVATE_MAXON_DECLARATION_REGISTER_BUILTINNODE (   id,
      enable,
      CNT,
      ... 
    )

    ◆ MAXON_DECLARATION_REGISTER_BUILTINNODE

    #define MAXON_DECLARATION_REGISTER_BUILTINNODE (   id,
      ... 
    )

    Registers a built-in node at the BuiltinNodes registry. After the macro you have to add a code block which returns the NodeTemplate to register. The code block will be executed lazily as it will be wrapped by NodesLib::CreateLazyTemplate.

    Parameters
    [in]idThe identifier to use.
    [in]...This optional argument is passed as second argument to NodesLib::CreateLazyTemplate. It allows to control for which node system classes the node shall be supported.

    ◆ MAXON_DECLARATION_REGISTER_FEATURE_BUILTINNODE

    #define MAXON_DECLARATION_REGISTER_FEATURE_BUILTINNODE (   id,
      enable,
      ... 
    )

    Registers a built-in node at the BuiltinNodes registry. Node enabled state will be tied to the #enable parameter. One can link node to a MAXON_FEATURE_CONFIGURATION_BRANCHES value. After the macro you have to add a code block which returns the NodeTemplate to register. The code block will be executed lazily as it will be wrapped by NodesLib::CreateLazyTemplate. Note that using an enable check in the supplied code block will make the node not instantiate but it would still be registered and visible in node list.

    Parameters
    [in]idThe identifier to use.
    [in]enableConfiguration flag to control if node is to be registered or not.
    [in]...This optional argument is passed as second argument to NodesLib::CreateLazyTemplate. It allows to control for which node system classes the node shall be supported.

    ◆ PRIVATE_MAXON_DECLARATION_REGISTER_BUILTINNODE_DELEGATE

    #define PRIVATE_MAXON_DECLARATION_REGISTER_BUILTINNODE_DELEGATE (   id,
      enable,
      CNT,
      ... 
    )

    ◆ MAXON_DECLARATION_REGISTER_FEATURE_BUILTINNODE_DELEGATE

    #define MAXON_DECLARATION_REGISTER_FEATURE_BUILTINNODE_DELEGATE (   id,
      enable,
      ... 
    )

    Registers a built-in node at the BuiltinNodes registry. Node enabled state will be tied to the #enable parameter. One can link node to a MAXON_FEATURE_CONFIGURATION_BRANCHES value. After the macro you have to add a code block for a function with the parameter list (const InstantiationTrace& parent, const TemplateArguments& args) and return type Result<MutableRoot>, this function will be used to implement the InstantiateImpl method of the registered node template (via NodesLib::CreateTemplateFromDelegate). Note that using an enable check in the supplied code block will make the node not instantiate but it would still be registered and visible in node list.

    Parameters
    [in]idThe identifier to use.
    [in]enableConfiguration flag to control if node is to be registered or not.
    [in]...This optional argument is passed as argument to NodesLib::CreateTemplateFromDelegate. It allows to control for which node system classes the node shall be supported.