Namespaces | |
| maxon | |
| maxon::corenodes | |
| maxon::corenodes::details | |
Macros | |
| #define | PRIVATE_MAXON_REGISTER_CORE_NODE_A(name, cls, initMetadata, line, ...) |
| #define | PRIVATE_MAXON_REGISTER_CORE_NODE(name, cls, meta, line, ...) |
| #define | MAXON_CORENODE_REGISTER(CLS, id, ...) |
| #define | MAXON_CORENODE_REGISTER_WITH_METADATA(CLS, id, META, ...) |
| #define | MAXON_CORENODE_REGISTER_PURE(CLS, id, ...) |
| #define | MAXON_CORENODE_REGISTER_PURE_WITH_METADATA(CLS, id, META, ...) |
Typedefs | |
| using | CoreNodeFactory = Factory< CoreNode(const DataDictionary &)> |
| using | Optimizer = Delegate< Result< Opt< OptimizationInfo > >(const CoreNode &node, const Block< const Tuple< ConstDataPtr, PORT_FLAGS > > &args)> |
Functions | |
| template<typename N , typename... ARGS> | |
| Result< typename std::decay< typename GetSignature< decltype(&N::Init)>::Parameters::template At< 0 >::type >::type > | CreateNode (OverloadRank0, const Id &nodeId, ARGS &&... args) |
| template<typename N , typename = decltype(&N::GetPortType), typename... ARGS> | |
| Result< typename std::decay< typename GetSignature< decltype(&N::Init)>::Parameters::template At< 0 >::type >::type > | CreateNode (OverloadRank1, const Id &nodeId, ARGS &&... args) |
| template<typename N , typename... ARGS> | |
| Result< CoreNode > | CreateNode (const Id &nodeId, ARGS &&... args) |
| template<typename N > | |
| Result< CoreNode > | CreateNode () |
| MAXON_MEMBERFUNCTION_DETECTOR (Optimize) | |
| template<typename NODE , typename = typename std::enable_if<maxon::corenodes::details::HasOptimize<NODE>::value>::type> | |
| Result< void > | AddOptimizer (DataDictionary &meta, Bool dummy=false) |
| template<typename NODE , typename = typename std::enable_if<!maxon::corenodes::details::HasOptimize<NODE>::value>::type> | |
| ResultOk< void > | AddOptimizer (DataDictionary &meta) |
| MAXON_REGISTRY (CoreNodeFactory, CoreNodes, "net.maxon.corenode.registry.corenodes") | |
| template<typename CORENODE > | |
| Result< CoreNodeFactory > | CreateCoreNodeFactory (DataDictionary &&meta=DataDictionary()) |
Variables | |
| NONE | |
| DEEP | |
| PORTS | |
| NANO_EMBEDDED | |
| NANO | |
| BLOCK | |
| HIDDEN_PORTS | |
| VERBOSE | |
| #define PRIVATE_MAXON_REGISTER_CORE_NODE_A | ( | name, | |
| cls, | |||
| initMetadata, | |||
| line, | |||
| ... | |||
| ) |
| #define PRIVATE_MAXON_REGISTER_CORE_NODE | ( | name, | |
| cls, | |||
| meta, | |||
| line, | |||
| ... | |||
| ) |
| #define MAXON_CORENODE_REGISTER | ( | CLS, | |
| id, | |||
| ... | |||
| ) |
Registers the given core node implementation class #CLS at the CoreNodes registry. The class has to contain an Init function with one or two parameters where the first parameter is either a MicroNodeGroupRef or a CoreNodeGroupRef and the optional second one is a DataDictionary which receives the parameters given to the factory's Create method. For an example of such a class have a look at MicroNodeGroupInterface.
| [in] | CLS | The class which implements the node. It has to contain an Init function with either a MicroNodeGroupRef or a CoreNodeGroupRef as first parameter. If CLS is a class template, you have to specify the template arguments in ... |
| [in] | id | The identifier to use for the registry entry. |
| [in] | ... | Optional template arguments if CLS is a class template. The identifier will be extended by the arguments, see IdBuilder. |
| #define MAXON_CORENODE_REGISTER_WITH_METADATA | ( | CLS, | |
| id, | |||
| META, | |||
| ... | |||
| ) |
Registers the given core node implementation class #CLS at the CoreNodes registry. The class has to contain an Init function with one or two parameters where the first parameter is either a MicroNodeGroupRef or a CoreNodeGroupRef and the optional second one is a DataDictionary which receives the parameters given to the factory's Create method. For an example of such a class have a look at MicroNodeGroupInterface.
| [in] | CLS | The class which implements the node. It has to contain an Init function with either a MicroNodeGroupRef or a CoreNodeGroupRef as first parameter. If CLS is a class template, you have to specify the template arguments in ... |
| [in] | id | The identifier to use for the registry entry. |
| [in] | META | Additional code to set up meta data for the core node. Within the code you have access to the variable #meta of type DataDictionary which is used to setup the factory's meta data. The meta data can be accessed later through the factory's base interface DataDictionaryObjectInterface. |
| [in] | ... | Optional template arguments if CLS is a class template. The identifier will be extended by the arguments, see IdBuilder. |
| #define MAXON_CORENODE_REGISTER_PURE | ( | CLS, | |
| id, | |||
| ... | |||
| ) |
Registers the given core node implementation class #CLS at the CoreNodes registry, see MAXON_CORENODE_REGISTER. This macro should be used for core nodes which implement a pure function, it sets the CoreNodeInterface::Pure attribute of the factory to true.
| [in] | CLS | The class which implements the node. It has to contain an Init function with either a MicroNodeGroupRef or a CoreNodeGroupRef as first parameter. If CLS is a class template, you have to specify the template arguments in ... |
| [in] | id | The identifier to use for the registry entry. |
| [in] | ... | Optional template arguments if CLS is a class template. The identifier will be extended by the arguments, see IdBuilder. |
| #define MAXON_CORENODE_REGISTER_PURE_WITH_METADATA | ( | CLS, | |
| id, | |||
| META, | |||
| ... | |||
| ) |
Registers the given core node implementation class #CLS at the CoreNodes registry, see MAXON_CORENODE_REGISTER_WITH_METADATA. This macro should be used for core nodes which implement a pure function, it sets the CoreNodeInterface::Pure attribute of the factory to true.
| [in] | CLS | The class which implements the node. It has to contain an Init function with either a MicroNodeGroupRef or a CoreNodeGroupRef as first parameter. If CLS is a class template, you have to specify the template arguments in ... |
| [in] | id | The identifier to use for the registry entry. |
| [in] | META | Additional code to set up meta data for the core node. Within the code you have access to the variable #meta of type DataDictionary which is used to setup the factory's meta data. The meta data can be accessed later through the factory's base interface DataDictionaryObjectInterface. |
| [in] | ... | Optional template arguments if CLS is a class template. The identifier will be extended by the arguments, see IdBuilder. |
| NONE |
No flags.
| DEEP |
Write groups deeply, so the complete graph is written up to the micro node level.
| PORTS |
Include ports.
| NANO_EMBEDDED |
Write nano nodes embedded in their micro nodes.
| NANO |
Write the nano graph instead of the core node graph.
| BLOCK |
Write the compiled block graph instead of the core node graph.
| HIDDEN_PORTS |
Include hidden ports.
| VERBOSE |
Verbose output with a lot of information.