diff options
author | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:17:24 +0300 |
---|---|---|
committer | Campbell Barton <ideasman42@gmail.com> | 2019-04-17 07:21:24 +0300 |
commit | e12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch) | |
tree | 8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/compositor/intern/COM_Node.h | |
parent | b3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff) |
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211.
For details on usage and instructions for migrating branches
without conflicts, see:
https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/compositor/intern/COM_Node.h')
-rw-r--r-- | source/blender/compositor/intern/COM_Node.h | 487 |
1 files changed, 276 insertions, 211 deletions
diff --git a/source/blender/compositor/intern/COM_Node.h b/source/blender/compositor/intern/COM_Node.h index 33c86bd2cc1..9bacf271283 100644 --- a/source/blender/compositor/intern/COM_Node.h +++ b/source/blender/compositor/intern/COM_Node.h @@ -38,230 +38,295 @@ class NodeConverter; * My node documentation. */ class Node { -public: - typedef std::vector<NodeInput *> Inputs; - typedef std::vector<NodeOutput *> Outputs; - -private: - /** - * \brief stores the reference to the SDNA bNode struct - */ - bNodeTree *m_editorNodeTree; - - /** - * \brief stores the reference to the SDNA bNode struct - */ - bNode *m_editorNode; - - /** - * \brief the list of actual inputsockets \see NodeInput - */ - Inputs m_inputsockets; - - /** - * \brief the list of actual outputsockets \see NodeOutput - */ - Outputs m_outputsockets; - - /** - * \brief Is this node part of the active group - */ - bool m_inActiveGroup; - - /** - * \brief Instance key to identify the node in an instance hash table - */ - bNodeInstanceKey m_instanceKey; - -protected: - /** - * \brief get access to the vector of input sockets - */ - const Inputs &getInputSockets() const { return this->m_inputsockets; } - - /** - * \brief get access to the vector of input sockets - */ - const Outputs &getOutputSockets() const { return this->m_outputsockets; } - -public: - Node(bNode *editorNode, bool create_sockets = true); - virtual ~Node(); - - /** - * \brief get the reference to the SDNA bNode struct - */ - bNode *getbNode() const {return m_editorNode;} - - /** - * \brief get the reference to the SDNA bNodeTree struct - */ - bNodeTree *getbNodeTree() const {return m_editorNodeTree;} - - /** - * \brief set the reference to the bNode - * \note used in Node instances to receive the storage/settings and complex node for highlight during execution - * \param bNode: - */ - void setbNode(bNode *node) {this->m_editorNode = node;} - - /** - * \brief set the reference to the bNodeTree - * \param bNodeTree: - */ - void setbNodeTree(bNodeTree *nodetree) {this->m_editorNodeTree = nodetree;} - - /** - * \brief Return the number of input sockets of this node. - */ - unsigned int getNumberOfInputSockets() const { return this->m_inputsockets.size(); } - - /** - * \brief Return the number of output sockets of this node. - */ - unsigned int getNumberOfOutputSockets() const { return this->m_outputsockets.size(); } - - /** - * get the reference to a certain outputsocket - * \param index: - * the index of the needed outputsocket - */ - NodeOutput *getOutputSocket(const unsigned int index) const; - - /** - * get the reference to the first outputsocket - * \param index: - * the index of the needed outputsocket - */ - inline NodeOutput *getOutputSocket() const { return getOutputSocket(0); } - - /** - * get the reference to a certain inputsocket - * \param index: - * the index of the needed inputsocket - */ - NodeInput *getInputSocket(const unsigned int index) const; - - /** Check if this is an input node - * An input node is a node that only has output sockets and no input sockets - */ - bool isInputNode() const { return m_inputsockets.empty(); } - - /** - * \brief Is this node in the active group (the group that is being edited) - * \param isInActiveGroup: - */ - void setIsInActiveGroup(bool value) { this->m_inActiveGroup = value; } - - /** - * \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() const { return this->m_inActiveGroup; } - - /** - * \brief convert node to operation - * - * \todo this must be described further - * - * \param system: the ExecutionSystem where the operations need to be added - * \param context: reference to the CompositorContext - */ - virtual void convertToOperations(NodeConverter &converter, const CompositorContext &context) const = 0; - - /** - * Create dummy warning operation, use when we can't get the source data. - */ - NodeOperation *convertToOperations_invalid_index(NodeConverter *compiler, int index) const; - /** - * when a node has no valid data (missing image or a group nodes ID pointer is NULL) - * call this function from #convertToOperations, this way the node sockets are converted - * into valid outputs, without this the compositor system gets confused and crashes, see [#32490] - */ - void convertToOperations_invalid(NodeConverter *compiler) const; - - void setInstanceKey(bNodeInstanceKey instance_key) { m_instanceKey = instance_key; } - bNodeInstanceKey getInstanceKey() const { return m_instanceKey; } - -protected: - /** - * \brief add an NodeInput to the collection of inputsockets - * \note may only be called in an constructor - * \param socket: the NodeInput to add - */ - void addInputSocket(DataType datatype); - void addInputSocket(DataType datatype, bNodeSocket *socket); - - /** - * \brief add an NodeOutput to the collection of outputsockets - * \note may only be called in an constructor - * \param socket: the NodeOutput to add - */ - void addOutputSocket(DataType datatype); - void addOutputSocket(DataType datatype, bNodeSocket *socket); - - bNodeSocket *getEditorInputSocket(int editorNodeInputSocketIndex); - bNodeSocket *getEditorOutputSocket(int editorNodeOutputSocketIndex); + public: + typedef std::vector<NodeInput *> Inputs; + typedef std::vector<NodeOutput *> Outputs; + + private: + /** + * \brief stores the reference to the SDNA bNode struct + */ + bNodeTree *m_editorNodeTree; + + /** + * \brief stores the reference to the SDNA bNode struct + */ + bNode *m_editorNode; + + /** + * \brief the list of actual inputsockets \see NodeInput + */ + Inputs m_inputsockets; + + /** + * \brief the list of actual outputsockets \see NodeOutput + */ + Outputs m_outputsockets; + + /** + * \brief Is this node part of the active group + */ + bool m_inActiveGroup; + + /** + * \brief Instance key to identify the node in an instance hash table + */ + bNodeInstanceKey m_instanceKey; + + protected: + /** + * \brief get access to the vector of input sockets + */ + const Inputs &getInputSockets() const + { + return this->m_inputsockets; + } + + /** + * \brief get access to the vector of input sockets + */ + const Outputs &getOutputSockets() const + { + return this->m_outputsockets; + } + + public: + Node(bNode *editorNode, bool create_sockets = true); + virtual ~Node(); + + /** + * \brief get the reference to the SDNA bNode struct + */ + bNode *getbNode() const + { + return m_editorNode; + } + + /** + * \brief get the reference to the SDNA bNodeTree struct + */ + bNodeTree *getbNodeTree() const + { + return m_editorNodeTree; + } + + /** + * \brief set the reference to the bNode + * \note used in Node instances to receive the storage/settings and complex node for highlight during execution + * \param bNode: + */ + void setbNode(bNode *node) + { + this->m_editorNode = node; + } + + /** + * \brief set the reference to the bNodeTree + * \param bNodeTree: + */ + void setbNodeTree(bNodeTree *nodetree) + { + this->m_editorNodeTree = nodetree; + } + + /** + * \brief Return the number of input sockets of this node. + */ + unsigned int getNumberOfInputSockets() const + { + return this->m_inputsockets.size(); + } + + /** + * \brief Return the number of output sockets of this node. + */ + unsigned int getNumberOfOutputSockets() const + { + return this->m_outputsockets.size(); + } + + /** + * get the reference to a certain outputsocket + * \param index: + * the index of the needed outputsocket + */ + NodeOutput *getOutputSocket(const unsigned int index) const; + + /** + * get the reference to the first outputsocket + * \param index: + * the index of the needed outputsocket + */ + inline NodeOutput *getOutputSocket() const + { + return getOutputSocket(0); + } + + /** + * get the reference to a certain inputsocket + * \param index: + * the index of the needed inputsocket + */ + NodeInput *getInputSocket(const unsigned int index) const; + + /** Check if this is an input node + * An input node is a node that only has output sockets and no input sockets + */ + bool isInputNode() const + { + return m_inputsockets.empty(); + } + + /** + * \brief Is this node in the active group (the group that is being edited) + * \param isInActiveGroup: + */ + void setIsInActiveGroup(bool value) + { + this->m_inActiveGroup = value; + } + + /** + * \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() const + { + return this->m_inActiveGroup; + } + + /** + * \brief convert node to operation + * + * \todo this must be described further + * + * \param system: the ExecutionSystem where the operations need to be added + * \param context: reference to the CompositorContext + */ + virtual void convertToOperations(NodeConverter &converter, + const CompositorContext &context) const = 0; + + /** + * Create dummy warning operation, use when we can't get the source data. + */ + NodeOperation *convertToOperations_invalid_index(NodeConverter *compiler, int index) const; + /** + * when a node has no valid data (missing image or a group nodes ID pointer is NULL) + * call this function from #convertToOperations, this way the node sockets are converted + * into valid outputs, without this the compositor system gets confused and crashes, see [#32490] + */ + void convertToOperations_invalid(NodeConverter *compiler) const; + + void setInstanceKey(bNodeInstanceKey instance_key) + { + m_instanceKey = instance_key; + } + bNodeInstanceKey getInstanceKey() const + { + return m_instanceKey; + } + + protected: + /** + * \brief add an NodeInput to the collection of inputsockets + * \note may only be called in an constructor + * \param socket: the NodeInput to add + */ + void addInputSocket(DataType datatype); + void addInputSocket(DataType datatype, bNodeSocket *socket); + + /** + * \brief add an NodeOutput to the collection of outputsockets + * \note may only be called in an constructor + * \param socket: the NodeOutput to add + */ + void addOutputSocket(DataType datatype); + void addOutputSocket(DataType datatype, bNodeSocket *socket); + + bNodeSocket *getEditorInputSocket(int editorNodeInputSocketIndex); + bNodeSocket *getEditorOutputSocket(int editorNodeOutputSocketIndex); }; - /** * \brief NodeInput are sockets that can receive data/input * \ingroup Model */ class NodeInput { -private: - Node *m_node; - bNodeSocket *m_editorSocket; - - DataType m_datatype; - - /** - * \brief link connected to this NodeInput. - * An input socket can only have a single link - */ - NodeOutput *m_link; - -public: - NodeInput(Node *node, bNodeSocket *b_socket, DataType datatype); - - Node *getNode() const { return this->m_node; } - DataType getDataType() const { return m_datatype; } - bNodeSocket *getbNodeSocket() const { return this->m_editorSocket; } - - void setLink(NodeOutput *link); - bool isLinked() const { return m_link; } - NodeOutput *getLink() { return m_link; } - - float getEditorValueFloat(); - void getEditorValueColor(float *value); - void getEditorValueVector(float *value); + private: + Node *m_node; + bNodeSocket *m_editorSocket; + + DataType m_datatype; + + /** + * \brief link connected to this NodeInput. + * An input socket can only have a single link + */ + NodeOutput *m_link; + + public: + NodeInput(Node *node, bNodeSocket *b_socket, DataType datatype); + + Node *getNode() const + { + return this->m_node; + } + DataType getDataType() const + { + return m_datatype; + } + bNodeSocket *getbNodeSocket() const + { + return this->m_editorSocket; + } + + void setLink(NodeOutput *link); + bool isLinked() const + { + return m_link; + } + NodeOutput *getLink() + { + return m_link; + } + + float getEditorValueFloat(); + void getEditorValueColor(float *value); + void getEditorValueVector(float *value); }; - /** * \brief NodeOutput are sockets that can send data/input * \ingroup Model */ class NodeOutput { -private: - Node *m_node; - bNodeSocket *m_editorSocket; - - DataType m_datatype; - -public: - NodeOutput(Node *node, bNodeSocket *b_socket, DataType datatype); - - Node *getNode() const { return this->m_node; } - DataType getDataType() const { return m_datatype; } - bNodeSocket *getbNodeSocket() const { return this->m_editorSocket; } - - float getEditorValueFloat(); - void getEditorValueColor(float *value); - void getEditorValueVector(float *value); + private: + Node *m_node; + bNodeSocket *m_editorSocket; + + DataType m_datatype; + + public: + NodeOutput(Node *node, bNodeSocket *b_socket, DataType datatype); + + Node *getNode() const + { + return this->m_node; + } + DataType getDataType() const + { + return m_datatype; + } + bNodeSocket *getbNodeSocket() const + { + return this->m_editorSocket; + } + + float getEditorValueFloat(); + void getEditorValueColor(float *value); + void getEditorValueVector(float *value); }; -#endif /* __COM_NODE_H__ */ +#endif /* __COM_NODE_H__ */ |