-
首页
-
C4D R23.110 C++ SDK
corenodes.h File Reference
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)>
|
函数
|
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())
|
Macro Definition Documentation
◆
PRIVATE_MAXON_REGISTER_CORE_NODE_A
#define PRIVATE_MAXON_REGISTER_CORE_NODE_A
|
(
|
|
name,
|
|
|
|
cls,
|
|
|
|
initMetadata,
|
|
|
|
line,
|
|
|
|
...
|
|
)
|
|
|
◆
PRIVATE_MAXON_REGISTER_CORE_NODE
#define PRIVATE_MAXON_REGISTER_CORE_NODE
|
(
|
|
name,
|
|
|
|
cls,
|
|
|
|
meta,
|
|
|
|
line,
|
|
|
|
...
|
|
)
|
|
|
◆
MAXON_CORENODE_REGISTER
#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.
|
◆
MAXON_CORENODE_REGISTER_WITH_METADATA
#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.
|
◆
MAXON_CORENODE_REGISTER_PURE
#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.
|
◆
MAXON_CORENODE_REGISTER_PURE_WITH_METADATA
#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.
|
Variable Documentation
◆
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.