HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HOM_SceneViewer.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_SceneViewer_h__
10 #define __HOM_SceneViewer_h__
11 
12 #include "HOM_BoundingBox.h"
13 #include "HOM_EnumModules.h"
14 #include "HOM_GUDetailHandle.h"
15 #include "HOM_PathBasedPaneTab.h"
16 #include "HOM_Vector3.h"
17 #include "HOM_Vector2.h"
18 #include "HOM_Matrix3.h"
19 #include <UT/UT_Array.h>
20 #include <UT/UT_Map.h>
21 #include <UT/UT_Tuple.h>
22 #include <UT/UT_Vector3.h>
23 #include <vector>
24 
26 class HOM_ReferencePlane;
27 class HOM_DopData;
31 class HOM_Selection;
32 class HOM_SopNode;
35 
36 SWIGOUT(%rename(SceneViewer) HOM_SceneViewer;)
37 
39 {
40 public:
41  typedef std::vector< std::pair<std::string, std::string> > Bindings;
42  typedef std::vector< std::string > HandleParmNames;
43 
45  { HOM_CONSTRUCT_OBJECT(this) }
46 
47  // Because the lowermost base classes initialize the virtual bases
48  // before any non-virtual bases, the correct thing to do here is
49  // explicitly call the constructor for HOM_PaneTab.
51  : HOM_PaneTab(pane), HOM_PathBasedPaneTab(pane)
52  { HOM_CONSTRUCT_OBJECT(this) }
53 
54  ~HOM_SceneViewer() override
55  { HOM_DESTRUCT_OBJECT(this) }
56 
57  // Let swig know we're overriding __repr__ for this class so it doesn't
58  // provide its own __repr__.
59  SWIGOUT(virtual std::string __repr__() = 0;)
60 
61  // returns a stateViewerType enum, either Scene or SceneGraph.
62  virtual HOM_EnumValue &viewerType() = 0;
63 
64  virtual std::vector<HOM_ElemPtr<HOM_GeometryViewport> > viewports() = 0;
65  SWIGOUT(%newobject findViewport;)
66  virtual HOM_GeometryViewport *findViewport(const char *name) = 0;
67  SWIGOUT(%newobject curViewport;)
68  virtual HOM_GeometryViewport *curViewport() = 0;
69  virtual HOM_GeometryViewport * selectedViewport() = 0;
70 
71  virtual std::string currentState() = 0;
72  virtual void enterViewState(bool wait_for_exit = false) = 0;
73  virtual void enterCurrentNodeState(bool wait_for_exit = false) = 0;
74  virtual void enterTranslateToolState(bool wait_for_exit = false) = 0;
75  virtual void enterRotateToolState(bool wait_for_exit = false) = 0;
76  virtual void enterScaleToolState(bool wait_for_exit = false) = 0;
77  SWIGOUT(%kwargs setCurrentState;)
78  virtual void setCurrentState(const char *state, bool wait_for_exit = false,
79  const HOM_EnumValue &generate =
80  HOM_stateGenerateMode::Insert,
81  bool request_new_on_generate = false,
82  bool ex_situ_generate = false) = 0;
83  virtual void _waitForStateExit(const char *state=NULL) = 0;
84  virtual std::string _currentBaseState() = 0;
85 
86  virtual std::vector<std::string> _getCurrentStateParmNames() = 0;
87  virtual std::string _evalCurrentStateParm(const char *name) = 0;
88  virtual bool _setCurrentStateParm(const char *name, const char* value) =0;
89  virtual bool _pressCurrentStateButton(const char *name)=0;
90 
91  virtual bool isCreateInContext() = 0;
92  virtual bool isWorldSpaceLocal() = 0;
93 
94  virtual HOM_EnumValue& viewportLayout() = 0;
95  virtual void setViewportLayout(HOM_EnumValue &layout, int single = -1) = 0;
96 
97  SWIGOUT(%kwargs selectObjects;)
98  virtual std::vector<HOM_ElemPtr<HOM_Node> >
99  selectObjects(
100  const char *prompt = "Select objects",
101  int sel_index = 0,
102  bool allow_drag = false,
103  bool quick_select = false,
104  bool use_existing_selection = true,
105  bool allow_multisel = true,
106  const std::vector<std::string> &allowed_types =
107  std::vector<std::string>(1, "*"),
108  const char *icon = NULL,
109  const char *label = NULL,
110  const std::vector<std::string> &prior_selection_paths =
111  std::vector<std::string>(),
112  const std::vector<std::string> &prior_selection_ids =
113  std::vector<std::string>(),
114  const std::vector<HOM_Selection *> &prior_selections =
115  std::vector<HOM_Selection *>(),
116  HOM_ParmTemplateGroup *toolbox_templategroup = nullptr,
117  HOM_ParmTemplateGroup *toolbox1_templategroup = nullptr,
118  bool confirm_existing = false,
119  const char *select_parm = nullptr
120  ) = 0;
121 
122  SWIGOUT(%newobject selectGeometry;)
123  SWIGOUT(%kwargs selectGeometry;)
124  virtual HOM_GeometrySelection *
125  selectGeometry(
126  const char *prompt = "Select geometry",
127  int sel_index = 0,
128  bool allow_drag = false,
129  bool quick_select = false,
130  bool use_existing_selection = true,
131  const char *initial_selection = NULL,
132  HOM_EnumValue *initial_selection_type = NULL,
133  bool ordered = false,
134  const std::vector<HOM_EnumValue *> geometry_types =
135  std::vector<HOM_EnumValue *>(),
136  const std::vector<HOM_EnumValue *> primitive_types =
137  std::vector<HOM_EnumValue *>(),
138  bool allow_obj_sel = true,
139  const char *icon = NULL,
140  const char *label = NULL,
141  const std::vector<std::string> &prior_selection_paths =
142  std::vector<std::string>(),
143  const std::vector<std::string> &prior_selection_ids =
144  std::vector<std::string>(),
145  const std::vector<HOM_Selection *> &prior_selections =
146  std::vector<HOM_Selection *>(),
147  bool allow_other_sops = true,
148  bool consume_selections = true,
149  HOM_ParmTemplateGroup *toolbox_templategroup = nullptr,
150  HOM_ParmTemplateGroup *toolbox1_templategroup = nullptr,
151  bool confirm_existing = false,
152  bool pick_at_obj_level = false,
153  const char *select_parm = nullptr
154  ) = 0;
155 
156  SWIGOUT(%kwargs selectDynamics;)
157  virtual std::vector<HOM_ElemPtr<HOM_DopData> >
158  selectDynamics(
159  const char *prompt = "Select dynamics objects",
160  int sel_index = 0,
161  bool allow_objects = true,
162  bool allow_modifiers = false,
163  bool quick_select = false,
164  bool use_existing_selection = true,
165  bool allow_multisel = true,
166  const char *icon = NULL,
167  const char *label = NULL,
168  const std::vector<std::string> &prior_selection_paths =
169  std::vector<std::string>(),
170  const std::vector<std::string> &prior_selection_ids =
171  std::vector<std::string>(),
172  const std::vector<HOM_Selection *> &prior_selections =
173  std::vector<HOM_Selection *>(),
174  HOM_ParmTemplateGroup *toolbox_templategroup = nullptr,
175  HOM_ParmTemplateGroup *toolbox1_templategroup = nullptr,
176  const char *select_parm = nullptr
177  ) = 0;
178 
179  SWIGOUT(%kwargs selectDynamicsPoints;)
180  virtual std::vector<std::pair<HOM_ElemPtr<HOM_DopData>,
182  selectDynamicsPoints(
183  const char *prompt = "Select dynamics points",
184  int sel_index = 0,
185  bool quick_select = false,
186  bool use_existing_selection = true,
187  bool allow_multisel = true,
188  bool only_select_points = true,
189  bool object_based_point_selection = false,
190  bool use_last_selected_object = false,
191  const char *icon = NULL,
192  const char *label = NULL,
193  const std::vector<std::string> &prior_selection_paths =
194  std::vector<std::string>(),
195  const std::vector<std::string> &prior_selection_ids =
196  std::vector<std::string>(),
197  const std::vector<HOM_Selection *> &prior_selections =
198  std::vector<HOM_Selection *>(),
199  HOM_ParmTemplateGroup *toolbox_templategroup = nullptr,
200  HOM_ParmTemplateGroup *toolbox1_templategroup = nullptr,
201  const char *select_parm = nullptr
202  )= 0;
203 
204  SWIGOUT(%kwargs selectDynamicsPolygons;)
205  virtual std::vector<std::pair<HOM_ElemPtr<HOM_DopData>,
207  selectDynamicsPolygons(
208  const char *prompt = "Select dynamics polygons",
209  int sel_index = 0,
210  bool quick_select = false,
211  bool use_existing_selection = true,
212  bool object_based_point_selection = false,
213  bool use_last_selected_object = false,
214  const char *icon = NULL,
215  const char *label = NULL,
216  const std::vector<std::string> &prior_selection_paths =
217  std::vector<std::string>(),
218  const std::vector<std::string> &prior_selection_ids =
219  std::vector<std::string>(),
220  const std::vector<HOM_Selection *> &prior_selections =
221  std::vector<HOM_Selection *>(),
222  HOM_ParmTemplateGroup *toolbox_templategroup = nullptr,
223  HOM_ParmTemplateGroup *toolbox1_templategroup = nullptr,
224  const char *select_parm = nullptr
225  ) = 0;
226 
227  SWIGOUT(%kwargs selectSceneGraph;)
228  virtual std::vector<std::string>
229  selectSceneGraph(
230  const char *prompt = "Select primitives",
231  const std::vector<std::string> &preselection =
232  std::vector<std::string>(),
233  const HOM_EnumValue &prim_mask= HOM_scenePrimMask::ViewerSetting,
234  bool quick_select = false,
235  bool use_existing_selection = true,
236  bool confirm_existing = false,
237  bool allow_multisel = true,
238  bool allow_drag = true,
239  bool allow_selection_type_changes = false,
240  bool propagate_selection = true,
241  const char *path_prefix_mask = nullptr,
242  const char *prim_kind = nullptr,
243  HOM_Node *validate_selection_for_node = nullptr,
244  const char *select_parm = nullptr,
245  const HOM_EnumValue &allow_kind_mismatch =
246  HOM_optionalBool::NoOpinion,
247  const HOM_EnumValue &allow_instance_proxies =
248  HOM_optionalBool::NoOpinion,
249  bool fix_preselection_paths = true
250  ) = 0;
251 
252  SWIGOUT(%kwargs selectSceneGraphInstances;)
253  virtual std::vector<std::string>
254  selectSceneGraphInstances(
255  const char *prompt = "Select point instances",
256  const std::vector<std::string> &preselection =
257  std::vector<std::string>(),
258  bool quick_select = false,
259  bool use_existing_selection = true,
260  bool confirm_existing = false,
261  bool allow_multisel = true,
262  bool allow_drag = true,
263  bool allow_selection_type_changes = false,
264  const char *path_prefix_mask = nullptr,
265  int instance_level = 0,
266  bool instance_indices_only = false,
267  HOM_Node *validate_selection_for_node = nullptr,
268  const char *select_parm = nullptr
269  ) = 0;
270 
271 
272  SWIGOUT(%newobject selectPositions;)
273  SWIGOUT(%kwargs selectPositions;)
274  virtual std::vector<HOM_ElemPtr<HOM_Vector3> >
275  selectPositions(
276  const char *prompt = "Click to specify a position",
277  int number_of_positions = 1,
278  int min_number_of_positions = -1,
279  bool connect_positions = true,
280  bool show_coordinates = true,
281  const HOM_BoundingBox &bbox = HOM_BoundingBox(),
282  HOM_EnumValue &position_type = HOM_positionType::WorldSpace,
283  const char *icon = NULL,
284  const char *label = NULL,
285  HOM_ParmTemplateGroup *toolbox_templategroup = nullptr,
286  HOM_ParmTemplateGroup *toolbox1_templategroup = nullptr,
287  const char *select_parm = nullptr
288  ) = 0;
289 
290  SWIGOUT(%kwargs selectOrientedPositions;)
291  virtual std::vector<std::pair<HOM_ElemPtr<HOM_Vector3>,
293  selectOrientedPositions(
294  const char *prompt = "Click to specify a position",
295  int number_of_positions = 1,
296  int min_number_of_positions = -1,
297  bool connect_positions = true,
298  bool show_coordinates = true,
299  const HOM_Matrix3 &base_orientation = HOM_Matrix3(1.0),
300  const HOM_BoundingBox &bbox = HOM_BoundingBox(),
301  const char *icon = NULL,
302  const char *label = NULL,
303  HOM_ParmTemplateGroup *toolbox_templategroup = nullptr,
304  HOM_ParmTemplateGroup *toolbox1_templategroup = nullptr,
305  const char *select_parm = nullptr
306  ) = 0;
307 
308  SWIGOUT(%ignore _selectDrawableGeometry;)
309  SWIGOUT(%kwargs _selectDrawableGeometry;)
310  virtual void _selectDrawableGeometry(void* drawable_selection, HOM_EnumValue & selection_modifier) = 0;
311 #ifdef SWIG
312 %extend
313 {
314  SWIGOUT(%kwargs selectDrawableGeometry;)
315  virtual void selectDrawableGeometry(InterpreterObject drawable_selection,
316  HOM_EnumValue & selection_modifier=HOM_pickModifier::Replace)
317  {
318  self->_selectDrawableGeometry(drawable_selection, selection_modifier);
319  }
320 }
321 #endif
322 
323 
324  SWIGOUT(%newobject currentGeometrySelection;)
325  virtual HOM_GeometrySelection *currentGeometrySelection() = 0;
326  virtual std::string currentGeometrySelectionParm() =0;
327 
328  virtual void setCurrentGeometrySelection(
329  HOM_EnumValue &geometry_type,
330  const std::vector<HOM_Node *> &nodes,
331  const std::vector<HOM_Selection *> &selections) = 0;
332 
333  virtual std::vector<std::string> currentSceneGraphSelection() = 0;
334  virtual void setCurrentSceneGraphSelection(
335  const std::vector<std::string> &selection,
336  bool fix_selection_paths = true) = 0;
337 
338  virtual std::vector<std::string> sceneGraphHighlight() = 0;
339  virtual void setSceneGraphHighlight(const std::vector<std::string> &highlight) = 0;
340 
341  virtual UT_Tuple<double, std::string> locateSceneGraphPrim(
342  int x, int y,
343  const HOM_EnumValue &prim_mask =
344  HOM_scenePrimMask::ViewerSetting) = 0;
345 
346  virtual bool sceneGraphStageLocked() = 0;
347  virtual void setSceneGraphStageLocked(bool locked) = 0;
348 
349  // Snapping control
350  virtual HOM_EnumValue &snappingMode() = 0;
351  virtual void setSnappingMode(HOM_EnumValue &snapping_mode) = 0;
352 
353  virtual bool isSnappingToCurrentGeometry() = 0;
354  virtual void setSnapToCurrentGeometry(bool on) = 0;
355 
356  virtual bool isSnappingToTemplates() = 0;
357  virtual void setSnapToTemplates(bool on) = 0;
358 
359  virtual bool isSnappingToOtherObjects() = 0;
360  virtual void setSnapToOtherObjects(bool on) = 0;
361 
362  virtual bool isSnappingToGuides() = 0;
363  virtual void setSnapToGuides(bool on) = 0;
364 
365  virtual bool isSnappingToDrawables() = 0;
366  virtual void setSnapToDrawables(bool on) = 0;
367 
368  virtual bool isDepthSnapping() = 0;
369  virtual void setDepthSnapping(bool on) = 0;
370 
371  virtual bool isOrientingOnSnap() = 0;
372  virtual void setOrientOnSnap(bool on) = 0;
373 
374  virtual float snappingGravity() = 0;
375  virtual std::vector<HOM_EnumValue*> snappingPriorities() = 0;
376 
377  // Selection control
378  virtual bool isPickingVisibleGeometry() = 0;
379  virtual void setPickingVisibleGeometry(bool on) = 0;
380 
381  virtual bool isPickingContainedGeometry() = 0;
382  virtual void setPickingContainedGeometry(bool on) = 0;
383 
384  virtual bool isGroupPicking() = 0;
385  virtual void setGroupPicking(bool on) = 0;
386 
387  virtual bool isWholeGeometryPicking() = 0;
388  virtual void setWholeGeometryPicking(bool on) = 0;
389 
390  virtual bool isSecureSelection() = 0;
391  virtual void setSecureSelection(bool on) = 0;
392 
393  virtual bool isPickingCurrentNode() = 0;
394  virtual void setPickingCurrentNode(bool on) = 0;
395 
396  virtual HOM_EnumValue &pickGeometryType() = 0;
397  virtual void setPickGeometryType(HOM_EnumValue &geometry_type) = 0;
398 
399  virtual HOM_EnumValue &selectionMode() = 0;
400  virtual void setSelectionMode(HOM_EnumValue &style) = 0;
401 
402  virtual HOM_EnumValue &pickStyle() = 0;
403  virtual void setPickStyle(HOM_EnumValue &style) = 0;
404 
405  virtual HOM_EnumValue &pickModifier() = 0;
406  virtual void setPickModifier(HOM_EnumValue &modifier) = 0;
407 
408  virtual HOM_EnumValue &defaultPickModifier() = 0;
409  virtual void setDefaultPickModifier(HOM_EnumValue &modifier) = 0;
410 
411  virtual HOM_EnumValue &pickFacing() = 0;
412  virtual void setPickFacing(HOM_EnumValue &facing) = 0;
413 
414  virtual HOM_EnumValue & activePickModifier() = 0;
415 
416  // Group list control
417  virtual bool isGroupListVisible() = 0;
418  virtual void setGroupListVisible(bool on) = 0;
419 
420  virtual bool isGroupListColoringGeometry() = 0;
421  virtual void setGroupListColoringGeometry(bool on) = 0;
422 
423  virtual bool isGroupListShowingEmptyGroups() = 0;
424  virtual void setGroupListShowingEmptyGroups(bool on) = 0;
425 
426  virtual bool isGroupListShowingOnlyPreSelectedGroups() = 0;
427  virtual void setGroupListShowingOnlyPreSelectedGroups(bool on) = 0;
428 
429  virtual bool isGroupListCondensingPathHierarchies() = 0;
430  virtual void setGroupListCondensingPathHierarchies(bool on) = 0;
431 
432  virtual HOM_Vector2 *groupListSize() = 0;
433  virtual void setGroupListSize(double width, double height) = 0;
434 
435  virtual HOM_EnumValue &groupListType() = 0;
436  virtual void setGroupListType(HOM_EnumValue &group_list_type) = 0;
437 
438  virtual std::string groupListMask() = 0;
439  virtual void setGroupListMask(const char *mask) = 0;
440 
441  // Construction plane access
442  SWIGOUT(%newobject constructionPlane;)
443  virtual HOM_ConstructionPlane *constructionPlane() = 0;
444 
445  // Reference plane access
446  SWIGOUT(%newobject referencePlane;)
447  virtual HOM_ReferencePlane *referencePlane() = 0;
448 
449  SWIGOUT(%newobject flipbookSettings;)
450  virtual HOM_FlipbookSettings *flipbookSettings() = 0;
451 
452  SWIGOUT(%kwargs flipbook;)
453  virtual void flipbook(HOM_GeometryViewport *viewport = NULL,
454  HOM_FlipbookSettings *settings = NULL,
455  bool open_dialog = false) = 0;
456 
457  virtual void runShelfTool(const char *tool_name) = 0;
458 
459  virtual void beginStateUndo(const char *label) = 0;
460  virtual void endStateUndo() = 0;
461 
462  virtual void setPromptMessage(
463  std::string const & msg,
464  HOM_EnumValue const & msg_type = HOM_promptMessageType::Prompt) = 0;
465  virtual void clearPromptMessage() = 0;
466 
467  SWIGOUT(%kwargs flashmessage;)
468  virtual void flashMessage(
469  std::string const &image,
470  std::string const &msg,
471  float duration = 1.0,
472  HOM_GeometryViewport *viewport = NULL) = 0;
473 
474  virtual std::vector<std::vector<std::string> >
475  hotkeyAssignments(const std::vector<std::string> &hotkey_symbols) = 0;
476 
477  virtual void showHandle( std::string const& name, bool value ) = 0;
478 
479  virtual void openVisualizerEditor(HOM_ViewportVisualizer *vis) = 0;
480 
481  virtual void openOptionDialog(const char *path, const char *label) = 0;
482 
483  SWIGOUT(%kwargs triggerStateSelector;)
484  virtual void triggerStateSelector(
485  HOM_EnumValue const &action,
486  std::string const &name=std::string()) = 0;
487  virtual std::string currentStateSelector() = 0;
488 
489  SWIGOUT(%ignore _runStateCommand;)
490  SWIGOUT(%kwargs _runStateCommand;)
491  virtual void _runStateCommand(std::string const & name, void* args=nullptr) = 0;
492 
493  virtual void showCurrentSopGeometry(bool value) = 0;
494  virtual bool isShowingCurrentSopGeometry() const = 0;
495 
496  virtual void showOperationBar(bool on) = 0 ;
497  virtual bool isShowingOperationBar() = 0 ;
498 
499  virtual void showColorCorrectionBar(bool on) = 0 ;
500  virtual bool isShowingColorCorrectionBar() = 0 ;
501 
502  virtual void showMemoryBar(bool on) = 0 ;
503  virtual bool isShowingMemoryBar() = 0 ;
504 
505  virtual void showDisplayOptionsBar(bool on) = 0 ;
506  virtual bool isShowingDisplayOptionsBar() = 0 ;
507 
508  virtual void showSelectionBar(bool on) = 0 ;
509  virtual bool isShowingSelectionBar() = 0 ;
510 
511  virtual void setIncludeColorCorrectionBar(bool on) = 0 ;
512  virtual bool includeColorCorrectionBar() = 0 ;
513 
514  virtual void setIncludeMemoryBar(bool on) = 0 ;
515  virtual bool includeMemoryBar() = 0 ;
516 
517  virtual void setGeometryVisibility( HOM_SopNode &sop, bool on ) = 0;
518  virtual bool geometryVisibility( HOM_SopNode &sop ) = 0;
519 
520  virtual bool usingOCIO() = 0;
521  virtual void setUsingOCIO(bool enable) = 0;
522 
523  SWIGOUT(%kwargs setOCIODisplayView;)
524  virtual void setOCIODisplayView(const char *display = nullptr,
525  const char *view = nullptr) = 0;
526  virtual std::string getOCIODisplay() = 0;
527  virtual std::string getOCIOView() = 0;
528 
529  virtual std::vector<int> geometry() = 0;
530 
531  SWIGOUT(%newobject createFloatingViewport;)
532  virtual HOM_GeometryViewport *createFloatingViewport(std::vector<int> size,
533  std::vector<int> pos)=0;
534 
535 #ifdef SWIG
536 %extend
537 {
538  SWIGOUT(%kwargs runStateCommand;)
539  virtual void runStateCommand(std::string const & name, InterpreterObject args=nullptr)
540  {
541  self->_runStateCommand(name, args);
542  }
543 }
544 #endif
545 
546  // Scene graph specific.
547  virtual bool isViewingSceneGraph() = 0;
548 #ifdef SWIG
549 %extend
550 {
551  SWIGOUT(%kwargs stage;)
552  InterpreterObject stage()
553  { return HOMincRef((InterpreterObject)self->opaqueStage()); }
554 }
555 #endif
556  SWIGOUT(%ignore opaqueStage;)
557  virtual void *opaqueStage() = 0;
558  virtual int stageSerial() = 0;
559  virtual void setShowGeometry(bool show) = 0;
560  virtual bool showGeometry() = 0;
561  virtual void setShowCameras(bool show) = 0;
562  virtual bool showCameras() = 0;
563  virtual void setShowLights(bool show) = 0;
564  virtual bool showLights() = 0;
565  virtual void setShowSelection(bool show) = 0;
566  virtual bool showSelection() = 0;
567  virtual void setShowRenderTime(bool show) = 0;
568  virtual bool showRenderTime() = 0;
569  virtual void setShowRenderStats(bool show) = 0;
570  virtual bool showRenderStats() = 0;
571 
572  virtual void setSelectionKind(const char *kind) = 0;
573  virtual void setSelectionPointInstances(bool topmost) = 0;
574  virtual std::string selectionKind() = 0;
575  virtual bool isSelectingPointInstances() = 0;
576  virtual bool isSelectingTopmostInstance() = 0;
577  virtual void setSelectionAllowKindMismatch(bool allow) = 0;
578  virtual bool selectionAllowKindMismatch() = 0;
579  virtual void setSelectionAllowInstanceProxies(bool allow) = 0;
580  virtual bool selectionAllowInstanceProxies() = 0;
581  virtual void setSelectionAllowHiddenPrims(bool allow) = 0;
582  virtual bool selectionAllowHiddenPrims() = 0;
583 
584  virtual void setStageControlsPlaybar(bool controls_playbar) = 0;
585  virtual bool stageControlsPlaybar() = 0;
586 
587  virtual std::vector<std::string> hydraRenderers() = 0;
588  virtual void setHydraRenderer(const std::string &ren_name) = 0;
589  virtual std::string currentHydraRenderer() = 0;
590  virtual bool isRendererPaused() = 0;
591  virtual void setRendererPaused(bool paused) = 0;
592  virtual void restartRenderer() = 0;
593  virtual void resetViewportCamera() = 0;
594 
595  SWIGOUT(%kwargs showProxyPurpose;)
596  virtual void showProxyPurpose(bool enable,
597  const char *renderer = nullptr) = 0;
598  SWIGOUT(%kwargs showGuidePurpose;)
599  virtual void showGuidePurpose(bool enable,
600  const char *renderer = nullptr) = 0;
601  SWIGOUT(%kwargs showRenderPurpose;)
602  virtual void showRenderPurpose(bool enable,
603  const char *renderer = nullptr) = 0;
604  SWIGOUT(%kwargs useViewportOverrides;)
605  virtual void useViewportOverrides(bool enable,
606  const char *renderer = nullptr) = 0;
607  SWIGOUT(%kwargs useViewportLoadMasks;)
608  virtual void useViewportLoadMasks(bool enable,
609  const char *renderer = nullptr) = 0;
610  SWIGOUT(%kwargs usePostLayers;)
611  virtual void usePostLayers(bool enable,
612  const char *renderer = nullptr) = 0;
613  SWIGOUT(%kwargs showMaterials;)
614  virtual void showMaterials(bool enable,
615  const char *renderer = nullptr) = 0;
616  SWIGOUT(%kwargs showingProxyPurpose;)
617  virtual bool showingProxyPurpose(const char *renderer = nullptr) = 0;
618  SWIGOUT(%kwargs showingGuidePurpose;)
619  virtual bool showingGuidePurpose(const char *renderer = nullptr) = 0;
620  SWIGOUT(%kwargs showingRenderPurpose;)
621  virtual bool showingRenderPurpose(const char *renderer = nullptr) = 0;
622  SWIGOUT(%kwargs usingViewportOverrides;)
623  virtual bool usingViewportOverrides(const char *renderer = nullptr) = 0;
624  SWIGOUT(%kwargs usingViewportLoadMasks;)
625  virtual bool usingViewportLoadMasks(const char *renderer = nullptr) = 0;
626  SWIGOUT(%kwargs usingPostLayers;)
627  virtual bool usingPostLayers(const char *renderer = nullptr) = 0;
628  SWIGOUT(%kwargs showingMaterials;)
629  virtual bool showingMaterials(const char *renderer = nullptr) = 0;
630 
631  SWIGOUT(%ignore addOpaqueEventCallback;)
632  virtual void addOpaqueEventCallback(void *callback) = 0;
633  SWIGOUT(%ignore removeOpaqueEventCallback;)
634  virtual void removeOpaqueEventCallback(void *callback) = 0;
635  SWIGOUT(%ignore opaqueEventCallbacks;)
636  virtual std::vector<void *> opaqueEventCallbacks() = 0;
637  SWIGOUT(%ignore clearOpaqueEventCallbacks;)
638  virtual void clearOpaqueEventCallbacks() = 0;
639 
640 #ifdef SWIG
641 // expose the handling of the viewer callbacks to HOM
642 %extend
643 {
644  void addEventCallback(InterpreterObject callback)
645  {
646  self->addOpaqueEventCallback(callback);
647  }
648 
649  void removeEventCallback(InterpreterObject callback)
650  {
651  self->removeOpaqueEventCallback(callback);
652  }
653 
654  void clearEventCallbacks()
655  {
656  self->clearOpaqueEventCallbacks();
657  }
658 
659  std::vector<InterpreterObject> eventCallbacks()
660  {
661  std::vector<void *> opaque_callbacks(self->opaqueEventCallbacks());
662 
663  std::vector<InterpreterObject> callbacks;
664  for (int i = 0; i< opaque_callbacks.size(); ++i)
665  callbacks.push_back((InterpreterObject)opaque_callbacks[i]);
666  return callbacks;
667  }
668 }
669 #endif
670 
671 #ifdef SWIG
672 %extend
673 {
674  InterpreterObject qtWindow()
675  {
676  return (InterpreterObject)self->opaqueQtWindow();
677  }
678 }
679 #endif
680 
681  SWIGOUT(%ignore opaqueQtWindow;)
682  virtual void *opaqueQtWindow() = 0;
683 
684  // HUD info method
685 #ifdef SWIG
686 %extend
687 {
688  SWIGOUT(%kwargs _hudInfo;)
689  void _hudInfo(int show=-1, bool terminate=false, int update_texture=0,
690  const HOM_EnumValue &hud_state=HOM_hudInfoState::NoState,
691  InterpreterObject hud_template=nullptr,
692  InterpreterObject hud_values=nullptr,
693  const HOM_EnumValue& hud_panel=HOM_hudPanel::ToolInfo,
694  bool update_hotkey_bindings=false)
695  {
696  self->hudInfoInternal(hud_state, show, terminate, update_texture,
697  hud_template, hud_values, hud_panel,
698  update_hotkey_bindings);
699  }
700 }
701 #endif
702  SWIGOUT(%ignore hudInfoInternal;)
703  virtual void hudInfoInternal(const HOM_EnumValue &hud_state, int show,
704  bool terminate, int update_texture,
705  void* hud_template, void* hud_values,
706  const HOM_EnumValue& hud_panel,
707  bool update_hotkey_bindings) = 0;
708 
709  SWIGOUT(%kwargs bindViewerHandle;)
710  virtual void bindViewerHandle(
711  std::string const& handle_type,
712  std::string const& handle_instance_name,
713  std::string const& settings=std::string(),
714  bool cache_previous_parms = false,
715  HandleParmNames const& handle_parms = HandleParmNames()) = 0;
716 
717  SWIGOUT(%kwargs bindViewerHandleStatic;)
718  virtual void bindViewerHandleStatic(
719  std::string const& handle_type,
720  std::string const& handle_instance_name,
721  Bindings const & bindings,
722  std::string const& settings=std::string() ) = 0;
723 
724  virtual void unbindViewerHandle(std::string const& handle_instance_name) = 0;
725 
726  virtual std::string fullName() = 0;
727 
728  virtual void _setSlapcomp(HOM_Node *node) = 0;
729 };
730 
731 #endif
GT_API const UT_StringHolder selection
#define HOM_DESTRUCT_OBJECT(pointer)
Definition: HOM_Module.h:1348
GLuint GLsizei const GLchar * label
Definition: glcorearb.h:2545
GLsizei const GLfloat * value
Definition: glcorearb.h:824
GLsizei const GLchar *const * path
Definition: glcorearb.h:3341
#define SWIGOUT(x)
Definition: HOM_Defines.h:24
string __repr__(VtArray< T > const &self)
Definition: wrapArray.h:312
GLenum GLenum GLsizei void * image
Definition: glad.h:5132
GLint y
Definition: glcorearb.h:103
std::tuple< Types...> UT_Tuple
Definition: UT_Tuple.h:53
GLint GLsizei GLsizei height
Definition: glcorearb.h:103
#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:1347
virtual std::string icon()=0
GLint GLuint mask
Definition: glcorearb.h:124
GLuint const GLchar * name
Definition: glcorearb.h:786
std::vector< std::string > HandleParmNames
GLint GLenum GLint x
Definition: glcorearb.h:409
HOM_SceneViewer(const HOM_SceneViewer &pane)
GLsizeiptr size
Definition: glcorearb.h:664
OIIO_UTIL_API bool rename(string_view from, string_view to, std::string &err)
~HOM_SceneViewer() override
**If you just want to fire and args
Definition: thread.h:618
std::vector< std::pair< std::string, std::string > > Bindings
GLint GLsizei width
Definition: glcorearb.h:103
state
Definition: core.h:2289