diff options
Diffstat (limited to 'source/blender/compositor/intern/COM_Node.h')
-rw-r--r-- | source/blender/compositor/intern/COM_Node.h | 101 |
1 files changed, 60 insertions, 41 deletions
diff --git a/source/blender/compositor/intern/COM_Node.h b/source/blender/compositor/intern/COM_Node.h index 23744adf642..12baa26cd6e 100644 --- a/source/blender/compositor/intern/COM_Node.h +++ b/source/blender/compositor/intern/COM_Node.h @@ -38,83 +38,102 @@ class Node; class NodeOperation; class ExecutionSystem; -typedef vector<Node*> NodeList; +typedef vector<Node *> NodeList; typedef NodeList::iterator NodeIterator; typedef pair<NodeIterator, NodeIterator> NodeRange; /** - * My node documentation. - */ -class Node:public NodeBase { + * My node documentation. + */ +class Node : public NodeBase { private: /** - * @brief stores the reference to the SDNA bNode struct - */ + * @brief stores the reference to the SDNA bNode struct + */ bNode *editorNode; + /** + * @brief Is this node part of the active group + */ + bool inActiveGroup; + public: - Node(bNode *editorNode, bool create_sockets=true); + Node(bNode *editorNode, bool create_sockets = true); /** - * @brief get the reference to the SDNA bNode struct - */ + * @brief get the reference to the SDNA bNode struct + */ bNode *getbNode(); /** - * @brief convert node to operation - * - * @todo this must be described furter - * - * @param system the ExecutionSystem where the operations need to be added - * @param context reference to the CompositorContext - */ - virtual void convertToOperations(ExecutionSystem *system, CompositorContext * context) =0; + * @brief Is this node in the active group (the group that is being edited) + * @param isInActiveGroup + */ + void setIsInActiveGroup(bool isInActiveGroup) { this->inActiveGroup = isInActiveGroup; } + + /** + * @brief Is this node part of the active group + * the active group is the group that is currently being edited. When no group is edited, + * the active group will be the main tree (all nodes that are not part of a group will be active) + * @return bool [false:true] + */ + inline bool isInActiveGroup() { return this->inActiveGroup; } + + /** + * @brief convert node to operation + * + * @todo this must be described furter + * + * @param system the ExecutionSystem where the operations need to be added + * @param context reference to the CompositorContext + */ + virtual void convertToOperations(ExecutionSystem *system, CompositorContext *context) = 0; /** - * this method adds a SetValueOperation as input of the input socket. - * This can only be used from the convertToOperation method. all other usages are not allowed - */ + * this method adds a SetValueOperation as input of the input socket. + * This can only be used from the convertToOperation method. all other usages are not allowed + */ void addSetValueOperation(ExecutionSystem *graph, InputSocket *inputsocket, int editorNodeInputSocketIndex); /** - * this method adds a SetColorOperation as input of the input socket. - * This can only be used from the convertToOperation method. all other usages are not allowed - */ + * this method adds a SetColorOperation as input of the input socket. + * This can only be used from the convertToOperation method. all other usages are not allowed + */ void addSetColorOperation(ExecutionSystem *graph, InputSocket *inputsocket, int editorNodeInputSocketIndex); /** - * this method adds a SetVectorOperation as input of the input socket. - * This can only be used from the convertToOperation method. all other usages are not allowed - */ + * this method adds a SetVectorOperation as input of the input socket. + * This can only be used from the convertToOperation method. all other usages are not allowed + */ void addSetVectorOperation(ExecutionSystem *graph, InputSocket *inputsocket, int editorNodeInputSocketIndex); /** - * Creates a new link between an outputSocket and inputSocket and registrates the link to the graph - * @return the new created link - */ + * Creates a new link between an outputSocket and inputSocket and registrates the link to the graph + * @return the new created link + */ SocketConnection *addLink(ExecutionSystem *graph, OutputSocket *outputSocket, InputSocket *inputsocket); /** - * is this node a group node. - */ + * is this node a group node. + */ virtual bool isGroupNode() const { return false; } /** - * is this node a proxy node. - */ + * is this node a proxy node. + */ virtual bool isProxyNode() const { return false; } /** - * @brief find the InputSocket by bNodeSocket - * - * @param socket - */ + * @brief find the InputSocket by bNodeSocket + * + * @param socket + */ InputSocket *findInputSocketBybNodeSocket(bNodeSocket *socket); /** - * @brief find the OutputSocket by bNodeSocket - * - * @param socket - */ + * @brief find the OutputSocket by bNodeSocket + * + * @param socket + */ OutputSocket *findOutputSocketBybNodeSocket(bNodeSocket *socket); protected: |