HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HOM_NetworkEditor.h
Go to the documentation of this file.
1 /*
2  * PROPRIETARY INFORMATION. This software is proprietary to
3  * Side Effects Software Inc., and is not to be reproduced,
4  * transmitted, or disclosed in any way without written permission.
5  *
6  * COMMENTS:
7  */
8 
9 #ifndef __HOM_NetworkEditor_h__
10 #define __HOM_NetworkEditor_h__
11 
12 #include "HOM_PathBasedPaneTab.h"
13 #include "HOM_NetworkAnimValue.h"
14 #include "HOM_NetworkFootprint.h"
15 #include "HOM_NetworkImage.h"
16 #include "HOM_NetworkShape.h"
18 #include <UT/UT_Tuple.h>
19 #include <vector>
20 
21 class HOM_BoundingRect;
22 class HOM_NetworkItem;
24 class HOM_Node;
25 class HOM_Parm;
26 class HOM_ParmTuple;
27 class HOM_StickyNote;
29 class HOM_Vector2;
30 class HOM_VopNode;
31 
32 SWIGOUT(%rename(NetworkEditor) HOM_NetworkEditor;)
33 
35 {
36 public:
38  { HOM_CONSTRUCT_OBJECT(this) }
39  // Because the lowermost base classes initialize the virtual bases
40  // before any non-virtual bases, the correct thing to do here is
41  // explicitly call the constructor for HOM_PaneTab.
43  : HOM_PaneTab(pane), HOM_PathBasedPaneTab(pane)
44  { HOM_CONSTRUCT_OBJECT(this) }
45 
46  ~HOM_NetworkEditor() override
47  { HOM_DESTRUCT_OBJECT(this) }
48 
49  // Let swig know we're overriding __repr__ for this class so it doesn't
50  // provide its own __repr__.
51  SWIGOUT(virtual std::string __repr__() = 0);
52 
53  virtual bool isShowingConnectors() = 0;
54  virtual bool isUnderCursor() = 0;
55  virtual bool isPosInside(
56  const HOM_Vector2 &pos,
57  bool ignore_floating_windows=true) = 0;
58  virtual void setCursorPosition(const HOM_Vector2 &pos) = 0;
59  virtual HOM_Vector2 cursorPosition(bool confine_to_view = true) = 0;
60  virtual HOM_BoundingRect screenBounds() = 0;
61  virtual HOM_BoundingRect visibleBounds() = 0;
62  SWIGOUT(%kwargs setVisibleBounds;)
63  virtual void setVisibleBounds(const HOM_BoundingRect &bounds,
64  float transition_time = 0.0,
65  float max_scale = 0.0,
66  bool set_center_when_scale_rejected = false) = 0;
67  virtual void translate(const HOM_Vector2 &delta) = 0;
68  virtual void requestZoomReset() = 0;
69  virtual void _requestZoomReset(const std::vector<HOM_NetworkItem *> &items) = 0;
70  virtual bool isZoomResetRequested() = 0;
71  virtual void _requestGraphUpdate() = 0;
72 
73  virtual void setLocatingEnabled(bool enabled) = 0;
74  virtual bool locatingEnabled() = 0;
75 
76  virtual float lengthToScreen(float len) = 0;
77  virtual float lengthFromScreen(float len) = 0;
78 
79  virtual HOM_Vector2 sizeToScreen(const HOM_Vector2 &size) = 0;
80  virtual HOM_Vector2 sizeFromScreen(const HOM_Vector2 &size) = 0;
81 
82  virtual HOM_Vector2 posToScreen(const HOM_Vector2 &pos) = 0;
83  virtual HOM_Vector2 posFromScreen(const HOM_Vector2 &pos) = 0;
84 
85  virtual HOM_Vector2 overviewPosToScreen(const HOM_Vector2 &pos) = 0;
86  virtual HOM_Vector2 overviewPosFromScreen(const HOM_Vector2 &pos) = 0;
87  virtual bool overviewVisible() = 0;
88  virtual bool overviewVisibleIfAutomatic() = 0;
89 
90  SWIGOUT(%kwargs networkItemsInBox;)
91  virtual std::vector<UT_Tuple<HOM_ElemPtr<HOM_NetworkItem>,
92  std::string,
93  int> >
94  networkItemsInBox(const HOM_Vector2 &pos1, const HOM_Vector2 &pos2,
95  bool for_drop = false, bool for_select = false) = 0;
96  virtual void setDropTargetItem(
97  HOM_NetworkItem *item, const char *name, int index) = 0;
98  virtual UT_Tuple<HOM_ElemPtr<HOM_NetworkItem>, std::string, int>
99  dropTargetItem() = 0;
100  virtual void setDecoratedItem(HOM_NetworkItem *item, bool interactive) = 0;
101  SWIGOUT(%newobject decoratedItem;)
102  virtual HOM_NetworkItem *decoratedItem() = 0;
103  virtual bool decorationInteractive() = 0;
104 
105  virtual void setPreSelectedItems(
106  const std::vector<HOM_NetworkItem *> &items) = 0;
107  virtual std::vector<HOM_ElemPtr<HOM_NetworkItem> > preSelectedItems() = 0;
108  virtual std::vector<HOM_ElemPtr<HOM_NodeConnection> >
109  selectedConnections() = 0;
110  virtual void clearAllSelected() = 0;
111 
112  virtual void setNetworkBoxPendingRemovals(
113  const std::vector<HOM_NetworkMovableItem *> &items) = 0;
114  virtual std::vector<HOM_ElemPtr<HOM_NetworkMovableItem> >
115  networkBoxPendingRemovals() = 0;
116 
117  virtual void setFootprints(
118  const std::vector<HOM_NetworkFootprint> &footprints) = 0;
119  virtual std::vector<HOM_NetworkFootprint> footprints() = 0;
120 
121  virtual void setCursorMap(
122  std::map<std::pair<std::string, int>, std::string> cursors) = 0;
123  virtual std::map<std::pair<std::string, int>, std::string> cursorMap() = 0;
124  virtual void setDefaultCursor(const char *cursor_name) = 0;
125  virtual std::string defaultCursor() = 0;
126 
127  virtual void setBackgroundImages(
128  const std::vector<HOM_NetworkImage> &images) = 0;
129  virtual std::vector<HOM_NetworkImage> backgroundImages() = 0;
130 
131  virtual HOM_BoundingRect itemRect(
132  HOM_NetworkMovableItem *item, bool adjusted=true) = 0;
133  virtual HOM_Vector2 itemInputPos(
134  HOM_NetworkMovableItem *item, int input_index, bool adjusted=true) = 0;
135  virtual HOM_Vector2 itemInputDir(
136  HOM_NetworkMovableItem *item, int input_index) = 0;
137  virtual HOM_Vector2 itemOutputPos(
138  HOM_NetworkMovableItem *item, int output_index, bool adjusted=true) = 0;
139  virtual HOM_Vector2 itemOutputDir(
140  HOM_NetworkMovableItem *item, int output_index) = 0;
141  virtual std::vector<std::pair<HOM_ElemPtr<HOM_NetworkMovableItem>,
142  HOM_BoundingRect> > allVisibleRects(
143  const std::vector<HOM_NetworkMovableItem *> &ignore_items,
144  bool adjusted = true) = 0;
145 
146  SWIGOUT(%kwargs setAdjustments;)
147  virtual void setAdjustments(
148  const std::vector<HOM_NetworkItem *> &items,
149  const std::vector<HOM_NetworkAnimValue> &adjustments,
150  bool auto_remove = false) = 0;
151  virtual void setShapes(
152  const std::vector<HOM_NetworkShape *> &shapes) = 0;
153  virtual void setOverlayShapes(
154  const std::vector<HOM_NetworkShape *> &shapes) = 0;
155 
156  virtual void setTooltip(const char *tooltip) = 0;
157  virtual std::string tooltip() = 0;
158  virtual void setPrompt(const char *prompt) = 0;
159  virtual std::string prompt() = 0;
160  virtual void flashMessage(const char *image,
161  const char *message, float duration) = 0;
162 
163  SWIGOUT(%kwargs openTabMenu;)
164  virtual void openTabMenu(const char *key = NULL,
165  bool auto_place = false,
166  bool branch = false,
167  HOM_NetworkMovableItem *src_item = NULL,
168  int src_connector_index = -1,
169  HOM_NetworkMovableItem *dest_item = NULL,
170  int dest_connector_index = -1,
171  HOM_Vector2 *node_position = NULL,
172  const std::vector<HOM_NetworkMovableItem *> &src_items =
173  std::vector<HOM_NetworkMovableItem *>(),
174  const std::vector<int> &src_connector_indexes =
175  std::vector<int>(),
176  const std::vector<HOM_NetworkMovableItem *> &dest_items =
177  std::vector<HOM_NetworkMovableItem *>(),
178  const std::vector<int> &dest_connector_indexes =
179  std::vector<int>()) = 0;
180  SWIGOUT(%kwargs openNodeMenu;)
181  virtual void openNodeMenu(HOM_Node *node = NULL,
182  const std::vector<HOM_NetworkMovableItem *> &items =
183  std::vector<HOM_NetworkMovableItem *>()) = 0;
184  virtual void openVopEffectsMenu(HOM_VopNode *node, int input_index) = 0;
185  virtual void openVopOutputInfoMenu(HOM_VopNode *node, int output_index) = 0;
186  virtual void openFloatingParameterEditor(HOM_Node *node) = 0;
187 
188  virtual int openNameEditor(HOM_NetworkMovableItem *item,
189  bool select_all = false) = 0;
190  virtual int openCommentEditor(HOM_NetworkMovableItem *item,
191  bool select_all = false) = 0;
192  virtual int openNoteEditor(HOM_StickyNote *stickynote,
193  bool select_all = false) = 0;
194  SWIGOUT(%kwargs closeTextEditor;)
195  virtual void closeTextEditor(int id, bool apply_changes = true) = 0;
196  virtual void runShelfTool(const char *tool_name) = 0;
197 
198  virtual int scheduleTimerEvent(float seconds) = 0;
199  virtual void handleCurrentKeyboardEvent(bool resend = false) = 0;
200  virtual void setVolatileHotkeys(
201  const std::vector<std::string> &hotkey_symbols) = 0;
202  virtual bool isVolatileHotkeyDown(const char *hotkey_symbol) = 0;
203 
204  virtual std::vector<std::vector<std::string> >
205  hotkeyAssignments(const std::vector<std::string> &hotkey_symbols) = 0;
206 
207  virtual void setPref(const char *pref, const char *value) = 0;
208  virtual std::string getPref(const char *pref) = 0;
209  virtual void setPrefs(const std::map<std::string, std::string> &prefs) = 0;
210  virtual std::map<std::string, std::string> getPrefs() = 0;
211  virtual void registerPref(const char *pref, const char *value, bool global) = 0;
212  virtual std::vector<std::vector<std::string> > badges() = 0;
213  virtual std::vector<std::vector<std::string> > textBadges() = 0;
214 
215  virtual std::vector<std::string> nodeShapes() = 0;
216  virtual std::vector<std::string> reloadNodeShapes() = 0;
217  virtual void redraw() = 0;
218 
219  virtual void setDragSourceData(
220  const std::vector<HOM_NetworkMovableItem *> &items) = 0;
221  virtual void setDragSourceWorkItem(int item_id) = 0;
222 
223  SWIGOUT(%ignore pushOpaqueEventContext);
224  virtual bool pushOpaqueEventContext(const char *module, void *data) = 0;
225  virtual void popEventContext() = 0;
226  SWIGOUT(%ignore opaqueEventContextData);
227  virtual void *opaqueEventContextData() = 0;
228 
229  virtual HOM_Vector2 parmScrollPosition() = 0;
230  virtual void setParmScrollPosition( HOM_Vector2 &position ) = 0;
231 
232  virtual void setParmFilterEnabled( bool on, bool keyboard_lock=false ) = 0;
233  virtual bool parmFilterEnabled() = 0;
234 
235  virtual void setParmFilterExactMatch( bool on ) = 0;
236  virtual bool parmFilterExactMatch() = 0;
237 
238  virtual void setParmFilterPattern( const char* filter ) = 0;
239  virtual std::string parmFilterPattern() = 0;
240 
241  virtual void setParmFilterMode( HOM_EnumValue &mode=HOM_parmFilterMode::AllParms) = 0;
242  virtual HOM_EnumValue &parmFilterMode() = 0;
243 
244  virtual void setParmFilterCriteria( HOM_EnumValue &criteria=HOM_parmFilterCriteria::NameOrLabel ) = 0;
245  virtual HOM_EnumValue &parmFilterCriteria() = 0;
246 
247  virtual void setMultiParmTab(const char *parm, int index) = 0;
248  virtual int multiParmTab(const char *parm) = 0;
249 
250  virtual void setRevertToNetworkViewOnEmpty(bool revert) = 0;
251  virtual bool revertToNetworkViewOnEmpty() = 0;
252 
253  // Shared Methods by ParameterEditor and NetworkEditor
254  virtual void _scrollToParms( const char *parms ) = 0;
255  virtual void _filterParms( const char* parms) = 0;
256 
257  // These methods are used to properly close & cleanup radial menu
258  virtual void _startModalUI( const char *name ) = 0;
259  virtual void _endModalUI() = 0;
260 
261  virtual void _refreshCopStatusBar() = 0;
262 
263  virtual bool isShowingParmDialog() = 0;
264  virtual void setShowParmDialog( bool show ) = 0;
265 
266  SWIGOUT(%newobject parmPythonPanelInterface;)
267  virtual HOM_PythonPanelInterface *parmPythonPanelInterface() = 0;
268 
269  SWIGOUT(%ignore _opaqueParmPythonPanelInterfaceRootWidget;)
270  virtual void * _opaqueParmPythonPanelInterfaceRootWidget() = 0;
271 
272 #ifdef SWIG
273 %extend
274 {
275  virtual bool pushEventContext(const char *module, InterpreterObject data)
276  { return self->pushOpaqueEventContext(module, data); }
277  virtual InterpreterObject eventContextData()
278  { return HOMincRef((InterpreterObject)self->opaqueEventContextData()); }
279 
280  // Return the root widget of the embedded parm dialog's python panel.
281  virtual InterpreterObject parmPythonPanelInterfaceRootWidget()
282  {
283  return HOMincRef((InterpreterObject)self->_opaqueParmPythonPanelInterfaceRootWidget());
284  }
285 }
286 #endif
287 };
288 
289 #endif
GLuint GLsizei const GLchar * message
Definition: glcorearb.h:2543
virtual HOM_Parm * parm(const char *parm_path)=0
#define HOM_DESTRUCT_OBJECT(pointer)
Definition: HOM_Module.h:1398
virtual std::vector< HOM_ElemPtr< HOM_NetworkMovableItem > > items(const std::vector< std::string > &item_paths)=0
GLsizei const GLfloat * value
Definition: glcorearb.h:824
#define SWIGOUT(x)
Definition: HOM_Defines.h:24
string __repr__(VtArray< T > const &self)
Definition: wrapArray.h:312
~HOM_NetworkEditor() override
GLenum GLenum GLsizei void * image
Definition: glad.h:5132
std::tuple< Types...> UT_Tuple
Definition: UT_Tuple.h:53
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glcorearb.h:2539
#define HOM_API
Definition: HOM_API.h:13
void ignore(T const &) VULKAN_HPP_NOEXCEPT
Definition: vulkan.hpp:6508
#define HOM_CONSTRUCT_OBJECT(pointer)
Definition: HOM_Module.h:1397
virtual HOM_Node * node(const char *node_path)=0
virtual HOM_NetworkMovableItem * item(const char *item_path)=0
GLuint const GLchar * name
Definition: glcorearb.h:786
GLenum mode
Definition: glcorearb.h:99
GLsizeiptr size
Definition: glcorearb.h:664
GA_API const UT_StringHolder parms
OIIO_UTIL_API bool rename(string_view from, string_view to, std::string &err)
GLuint index
Definition: glcorearb.h:786
SIM_API const UT_StringHolder position
PUGI__FN char_t * translate(char_t *buffer, const char_t *from, const char_t *to, size_t to_length)
Definition: pugixml.cpp:8574
HOM_NetworkEditor(const HOM_NetworkEditor &pane)
Definition: format.h:1821
GLint GLint GLint GLint GLint GLint GLint GLbitfield GLenum filter
Definition: glcorearb.h:1297