rename remaining class members with m_ prefix.
[blender.git] / source / blender / compositor / intern / COM_SocketConnection.h
1 /*
2  * Copyright 2011, Blender Foundation.
3  *
4  * This program is free software; you can redistribute it and/or
5  * modify it under the terms of the GNU General Public License
6  * as published by the Free Software Foundation; either version 2
7  * of the License, or (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
12  * GNU General Public License for more details.
13  *
14  * You should have received a copy of the GNU General Public License
15  * along with this program; if not, write to the Free Software Foundation,
16  * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
17  *
18  * Contributor: 
19  *              Jeroen Bakker 
20  *              Monique Dewanchand
21  */
22
23 #ifndef _COM_SocketConnection_h
24 #define _COM_SocketConnection_h
25
26 #include "DNA_node_types.h"
27 #include "COM_Node.h"
28 #include "COM_Socket.h"
29 #include "COM_ChannelInfo.h"
30
31 /**
32  * @brief An SocketConnection is an connection between an InputSocket and an OutputSocket.
33  *
34  * <pre>
35  * +----------+     To InputSocket +----------+
36  * | From     |  SocketConnection \| To Node  |
37  * | Node     *====================*          |
38  * |          |\                   |          |
39  * |          | From OutputSocket  +----------+
40  * +----------+
41  * </pre>
42  * @ingroup Model
43  * @see InputSocket
44  * @see OutputSocket
45  */
46 class SocketConnection {
47 private:
48         /**
49          * @brief Startpoint of the connection
50          */
51         OutputSocket *m_fromSocket;
52         
53         /**
54          * @brief Endpoint of the connection
55          */
56         InputSocket *m_toSocket;
57         
58         /**
59          * @brief has the resize already been done for this connection
60          */
61         bool m_ignoreResizeCheck;
62 public:
63         SocketConnection();
64         
65         /**
66          * @brief set the startpoint of the connection
67          * @param fromsocket
68          */
69         void setFromSocket(OutputSocket *fromsocket);
70         
71         /**
72          * @brief get the startpoint of the connection
73          * @return from OutputSocket
74          */
75         OutputSocket *getFromSocket() const;
76         
77         /**
78          * @brief set the endpoint of the connection
79          * @param tosocket
80          */
81         void setToSocket(InputSocket *tosocket);
82         
83         /**
84          * @brief get the endpoint of the connection
85          * @return to InputSocket
86          */
87         InputSocket *getToSocket() const;
88         
89         /**
90          * @brief check if this connection is valid
91          */
92         bool isValid() const;
93         
94         /**
95          * @brief return the Node where this connection is connected from
96          */
97         NodeBase *getFromNode() const;
98         
99         /**
100          * @brief return the Node where this connection is connected to
101          */
102         NodeBase *getToNode() const;
103         
104         /**
105          * @brief set, whether the resize has already been done for this SocketConnection
106          */
107         void setIgnoreResizeCheck(bool check) { this->m_ignoreResizeCheck = check; }
108         
109         /**
110          * @brief has the resize already been done for this SocketConnection
111          */
112         bool isIgnoreResizeCheck() const { return this->m_ignoreResizeCheck; }
113         
114         /**
115          * @brief does this SocketConnection need resolution conversion
116          * @note PreviewOperation's will be ignored
117          * @note Already converted SocketConnection's will be ignored
118          * @return needs conversion [true:false]
119          */
120         bool needsResolutionConversion() const;
121
122 #ifdef WITH_CXX_GUARDEDALLOC
123         MEM_CXX_CLASS_ALLOC_FUNCS("COM:SocketConnection")
124 #endif
125 };
126
127 #endif