HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
HOM_GeometryViewport.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_GeometryViewport_h__
10 #define __HOM_GeometryViewport_h__
11 
12 #include "HOM_API.h"
13 #include "HOM_Camera.h"
14 #include "HOM_Defines.h"
15 #include "HOM_ElemPtr.h"
16 #include "HOM_Errors.h"
17 #include "HOM_Module.h"
18 #include "HOM_ObjNode.h"
19 #include "HOM_EnumValue.h"
20 #include <UT/UT_Tuple.h>
21 
22 class HOM_Drawable;
25 class HOM_Selection;
26 class HOM_Vector2;
27 
28 SWIGOUT(%rename(GeometryViewport) HOM_GeometryViewport;)
29 
31 {
32 public:
34  { HOM_CONSTRUCT_OBJECT(this) }
36  { HOM_CONSTRUCT_OBJECT(this) }
38  { HOM_DESTRUCT_OBJECT(this) }
39 
40  virtual std::string __repr__() = 0;
41 
42  SWIGOUT(%warnfilter(321) type;)
43  virtual HOM_EnumValue& type() = 0;
44  virtual void changeType(HOM_EnumValue &type) = 0;
45 
46  SWIGOUT(%newobject settings;)
47  virtual HOM_GeometryViewportSettings *settings() = 0;
48 
49  virtual std::string name() = 0;
50  virtual void changeName(std::string &name) = 0;
51 
52  virtual bool isVisible() = 0;
53 
54  virtual void home() = 0;
55 
56  virtual void homeAll() = 0;
57  virtual void homeSelected() = 0;
58  virtual void homeGrid() = 0;
59  virtual void homeNonTemplated() = 0;
60  virtual void homeBoundingBox(HOM_BoundingBox *bbox, bool center_to_origin = false) = 0;
61 
62  virtual void frameAll() = 0;
63  virtual void frameBoundingBox(HOM_BoundingBox *bbox = NULL) = 0;
64  virtual void frameSelected() = 0;
65  virtual void frameGrid() = 0;
66  virtual void frameNonTemplated() = 0;
67 
68  virtual void draw() = 0;
69 
70  SWIGOUT(%newobject viewTransform;)
71  virtual HOM_Matrix4 *viewTransform() = 0;
72 
73  SWIGOUT(%newobject modelToGeometryTransform;)
74  virtual HOM_Matrix4 *modelToGeometryTransform() = 0;
75  SWIGOUT(%newobject cameraToModelTransform;)
76  virtual HOM_Matrix4 *cameraToModelTransform() = 0;
77  SWIGOUT(%newobject ndcToCameraTransform;)
78  virtual HOM_Matrix4 *ndcToCameraTransform() = 0;
79  SWIGOUT(%newobject viewportToNDCTransform;)
80  virtual HOM_Matrix4 *viewportToNDCTransform() = 0;
81  SWIGOUT(%newobject windowToViewportTransform;)
82  virtual HOM_Matrix4 *windowToViewportTransform() = 0;
83 
84  SWIGOUT(%newobject viewPivot;)
85  virtual HOM_Vector3 *viewPivot() = 0;
86 
87  virtual std::vector<int> resolutionInPixels() = 0;
88 
89  SWIGOUT(%newobject camera;)
90  virtual HOM_ObjNode *camera() = 0;
91  virtual std::string cameraPath() = 0;
92  virtual bool isViewingThroughExtraCamera() = 0;
93  virtual void setCamera(HOM_ObjNode &camera_node) = 0;
94  virtual void setCamera(HOM_OpNode &camera_node, const char *name) = 0;
95  virtual void setCamera(const char *camera_path) = 0;
96  virtual void saveViewToCamera(HOM_ObjNode &camera_node) = 0;
97 
98  virtual void setCameraParms(const char *cam_name,
99  const HOM_Camera &camera) = 0;
100 
101  SWIGOUT(%newobject defaultCamera;)
102  virtual HOM_GeometryViewportCamera *defaultCamera() =0;
103  virtual void setDefaultCamera(HOM_GeometryViewportCamera *cam_settings) =0;
104  virtual void useDefaultCamera() =0;
105 
106  virtual bool isCameraLockedToView() = 0;
107  virtual void lockCameraToView(bool) = 0;
108 
109  virtual bool isViewExportedToCameraContinuously() = 0;
110  virtual void exportViewToCameraContinuously(bool) = 0;
111 
112  virtual void tearOffCopy() = 0;
113 
114  virtual bool isActive2D() = 0;
115  virtual bool isActive3D() = 0;
116 
117  virtual bool usesConstructionPlane() = 0;
118 
119  SWIGOUT(%newobject queryNodeAtPixel;)
120  virtual HOM_Node *queryNodeAtPixel(int x, int y, bool pick_templates=false) = 0;
121  SWIGOUT(%newobject queryPrimAtPixel;)
122  virtual HOM_Prim *queryPrimAtPixel(HOM_Node *node, int x, int y) = 0;
123 
124  virtual std::vector<HOM_ElemPtr<HOM_Node>> _queryNodesInBox(int x, int y, int w, int h, bool pick_templates=false) = 0;
125 
126  virtual std::vector<int> _queryPrimOnDrawables(
127  const std::vector<HOM_Drawable *> &drawables,
128  int x, int y,
129  bool enable_occlusion,
130  bool handle_pick_radius = false) = 0;
131 
132  virtual std::vector<std::pair<int, HOM_ElemPtr<HOM_Selection> > >
133  _queryComponentsOnDrawables(
134  const std::vector<HOM_Drawable *> &drawables,
135  HOM_Vector2 &start, HOM_Vector2 *end_inclusive = nullptr,
136  bool enable_occlusion = false,
137  bool contained = false) = 0;
138 
139  SWIGOUT(%newobject queryInspectedGeometry;)
140  virtual HOM_Geometry *queryInspectedGeometry() = 0;
141  SWIGOUT(%newobject queryInspectedPrim;)
142  virtual HOM_Prim *queryInspectedPrim() = 0;
143 
144  virtual std::pair<HOM_ElemPtr<HOM_Vector3>, HOM_ElemPtr<HOM_Vector3> >
145  mapToWorld(double x, double y) = 0;
146 
147  virtual HOM_Vector2 *mapToScreen(const HOM_Vector3 &pos) = 0;
148 
149  virtual std::pair<int, int> mapFromMouseChop(double x, double y) = 0;
150 
152  queryWorldPositionAndNormal(int x, int y,
153  const HOM_EnumValue selection_restriction =
154  HOM_snapSelectionMode::SnapToAll)=0;
155 
156  virtual std::vector<int> size() = 0;
157  virtual std::vector<int> geometry() = 0;
158  virtual bool isFloating() = 0;
159 
160  SWIGOUT(%ignore addOpaqueEventCallback;)
161  virtual void addOpaqueEventCallback(void *callback) = 0;
162  SWIGOUT(%ignore removeOpaqueEventCallback;)
163  virtual void removeOpaqueEventCallback(void *callback) = 0;
164  SWIGOUT(%ignore opaqueEventCallbacks;)
165  virtual std::vector<void *> opaqueEventCallbacks() = 0;
166  SWIGOUT(%ignore clearOpaqueEventCallbacks;)
167  virtual void clearOpaqueEventCallbacks() = 0;
168 
169  virtual void _captureFramebuffer(std::string const &buffer_name,
170  std::string const &filename) = 0;
171 
172 #ifdef SWIG
173 // expose the handling of the viewport callbacks to HOM
174 %extend
175 {
176  void addEventCallback(InterpreterObject callback)
177  {
178  self->addOpaqueEventCallback(callback);
179  }
180 
181  void removeEventCallback(InterpreterObject callback)
182  {
183  self->removeOpaqueEventCallback(callback);
184  }
185 
186  void clearEventCallbacks()
187  {
188  self->clearOpaqueEventCallbacks();
189  }
190 
191  std::vector<InterpreterObject> eventCallbacks()
192  {
193  std::vector<void *> opaque_callbacks(self->opaqueEventCallbacks());
194 
195  std::vector<InterpreterObject> callbacks;
196  for (int i = 0; i< opaque_callbacks.size(); ++i)
197  callbacks.push_back((InterpreterObject)opaque_callbacks[i]);
198  return callbacks;
199  }
200 }
201 #endif
202 
203 };
204 
205 #endif
type
Definition: core.h:556
#define HOM_DESTRUCT_OBJECT(pointer)
Definition: HOM_Module.h:1398
GT_API const UT_StringHolder filename
GLuint start
Definition: glcorearb.h:475
#define SWIGOUT(x)
Definition: HOM_Defines.h:24
string __repr__(VtArray< T > const &self)
Definition: wrapArray.h:312
GLint y
Definition: glcorearb.h:103
std::tuple< Types...> UT_Tuple
Definition: UT_Tuple.h:53
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:108
#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
GLuint const GLchar * name
Definition: glcorearb.h:786
GLint GLenum GLint x
Definition: glcorearb.h:409
GLsizeiptr size
Definition: glcorearb.h:664
GLfloat GLfloat GLfloat GLfloat h
Definition: glcorearb.h:2002
OIIO_UTIL_API bool rename(string_view from, string_view to, std::string &err)
HOM_GeometryViewport(const HOM_GeometryViewport &)
GLubyte GLubyte GLubyte GLubyte w
Definition: glcorearb.h:857