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< TrivialDataPtr, CORENODE_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 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.