HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GUI_DisplayOption.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  * NAME: GUI_DisplayOption.h ( GUI Library, C++)
7  *
8  * COMMENTS: This class contains the options for all the different types
9  * of details (templates, footprints, etc.) and options that
10  * are common to them.
11  */
12 
13 #ifndef __GUI_DisplayOption__
14 #define __GUI_DisplayOption__
15 
16 #include "GUI_API.h"
17 #include <UT/UT_Rect.h>
18 #include <UT/UT_Vector2.h>
19 #include <UT/UT_UniquePtr.h>
20 #include <RE/RE_RenderContext.h>
21 #include <RE/RE_TextureMap.h>
22 #include <UI/UI_Value.h>
23 #include <GR/GR_Defines.h>
24 #include <GR/GR_CommonDispOption.h>
25 #include <GR/GR_DisplayOption.h>
26 #include "GUI_RenderCommon.h"
27 
28 #include <RV/RV_Type.h>
29 class RV_Render;
30 class RV_TextureRef;
31 
32 class GUI_RotoscopeData;
33 class GUI_SceneCameras;
34 class GR_DisplayOption;
35 
36 const int GUI_NUM_DISPLAY_SETS = 6;
39 
40 /// Context specific display options for geometry states
42 {
46  // ---- obj/model break
50 };
51 
52 #define ANY_FLAG_ACTIVE_IN_SETS(METHOD) \
53  bool METHOD##Any() const \
54  { return ((*this)[GUI_SCENE_OBJECT].METHOD() || \
55  (*this)[GUI_SELECTED_SCENE_OBJECT].METHOD() || \
56  (*this)[GUI_GHOST_SCENE_OBJECT].METHOD() || \
57  (*this)[GUI_DISPLAY_MODEL].METHOD() || \
58  (*this)[GUI_CURRENT_MODEL].METHOD() || \
59  (*this)[GUI_TEMPLATE_MODEL].METHOD()); }
60 
61 
62 /// Display options object that contains all high-level viewport display
63 /// settings, and contains the objects with context-specific display options
64 /// and common drawing options.
66 {
67 public:
68  GUI_DisplayOption(bool for_lops_view);
70 
72 
73  /// Context-specific geometry-specific display options. If a display set
74  /// follows another set, it will be remapped to return that set.
75  /// @{
77  { return *myDisplaySet[myDisplaySetMap[type]]; }
79  { return *myDisplaySet[myDisplaySetMap[type]]; }
80  /// @}
81 
82  /// Direct cccess to the display set, without any mapping.
84  { return *myDisplaySet[type]; }
85 
86  /// Low-level drawing display options common to all geometry contexts
87  /// @{
88  const GR_CommonDispOption &common() const { return myCommonOptions; }
89  GR_CommonDispOption &common() { return myCommonOptions; }
90  /// @}
91 
92  /// Return true if the load/save was successful, and false otherwise.
93  /// @{
94  bool save(std::ostream &) const;
95  bool load(UT_IStream &);
96  /// @}
97 
98  /// Remap the display option set to another set.
101  { myDisplaySetMap[follower] = reference; }
102 
103  /// Query which display set this set is following. If none, it will refer
104  /// to itself.
106  { return myDisplaySetMap[t]; }
107 
108  /// Scene custom display option support - set and query scene options
109  /// @{
110  void enableSceneOption(const char *name, bool enable);
111  bool isSceneOptionEnabled(const char *name) const;
112  /// @}
113 
115  { myRenderType = t; }
116  GR_RenderVersion getRenderType() const { return myRenderType; }
117 
118  // These flags are stored here because they deal with different concepts
119  // unknown to GR. The flags at the GR level should only be used by GR when
120  // it renders a specific detail.
121  bool showSelected() const { return myFlags.showSelected; }
122  bool showNonSelected() const { return myFlags.showNonSelected; }
123  bool showTemplates() const { return myFlags.showTemplates; }
124  bool showFootprints() const { return myFlags.showFootprints; }
125  bool showCurrentOutput() const { return myFlags.showCurrentOutput; }
126  bool showDisplay() const { return myFlags.showDisplay; }
127  bool showGuides() const { return myFlags.showGuides; }
128  bool showObjectNames() const { return myFlags.showObjectNames; }
129  bool showFullNames() const { return myFlags.showFullNames; }
130  bool drawOrigin() const { return myFlags.drawOrigin; }
131  bool drawStickyOrigin() const { return myFlags.drawStickyOrigin; }
132  bool drawViewPivot() const { return myFlags.drawViewPivot; }
133  bool drawWalls() const { return myFlags.drawWalls; }
134  bool drawXYPlane() const { return myFlags.drawXYPlane; }
135  bool drawXZPlane() const { return myFlags.drawXZPlane; }
136  bool drawYZPlane() const { return myFlags.drawYZPlane; }
137  bool drawFieldGuide() const { return myFlags.drawFieldGuide; }
138  bool drawSafeArea() const { return myFlags.drawSafeArea; }
139  bool drawBackgrounds() const { return myFlags.drawBackgrounds; }
140  bool drawEnvironmentMaps() const
141  { return myFlags.drawEnvironmentMaps; }
143  { return myFlags.drawFilteredBackgrounds; }
144  bool showIKCriticalZones() const
145  { return myFlags.showIKCriticalZones; }
146  bool getDrawCameraMask() const
147  { return myFlags.drawCameraMask; }
148  bool drawBadges() const { return myFlags.drawBadges; }
149 
150  bool drawVertexAttrib2D() const
151  { return myFlags.drawVertexAttrib2D; }
153  { return myFlags.autoDetectAttribType2D; }
154 
155  bool drawSpecular() const { return myFlags.drawSpecular; }
156  bool drawMultiTexture() const { return common().drawMultiTexture();}
157 
158  bool applySelectMask() const { return myFlags.applySelectMask; }
159 
160  bool drawXRay() const { return myFlags.drawXRay; }
161  bool xrayQuality() const { return myFlags.xrayQuality; }
162  bool drawObjectOrigins() const { return myFlags.drawObjOrigins; }
163  bool showMaterials() const { return common().showMaterials(); }
164  bool useMaterialOverrides() const { return myFlags.useOverrides; }
165  bool mssEnable() const { return myFlags.mssEnable; }
166  bool mssPerPrim() const { return myFlags.mssPerPrim; }
167  bool mssPacked() const { return myFlags.mssPacked; }
168  int objectMaterialLimit() const { return myObjectMaterialLimit; }
169  fpreal xrayWireStrength() const { return myXRayWireStrength; }
170 
172  {
173  MAT_ALWAYS = 0,
174  MAT_NO_PLAYBACK = 1,
175  MAT_MANUAL = 2
176  };
177  gui_MatAssignMode materialAssignMode() const { return myMatAssignMode; }
179  { myMatAssignMode = mode; }
180  bool materialUpdate() const { return myMatUpdate; }
181  void materialUpdate(bool update) { myMatUpdate = update; }
182 
183 
184  // the threshold a shading mode is set to change when modifying view
185 
186  void showSelected(bool onoff) { myFlags.showSelected =onoff;}
187  void showNonSelected(bool onoff) { myFlags.showNonSelected =onoff;}
188  void showTemplates(bool onoff) { myFlags.showTemplates =onoff;}
189  void showFootprints(bool onoff) { myFlags.showFootprints =onoff;}
190  void showCurrentOutput(bool onoff)
191  { myFlags.showCurrentOutput = onoff;}
192  void showDisplay(bool onoff) { myFlags.showDisplay =onoff;}
193  void showGuides(bool onoff) { myFlags.showGuides =onoff;}
194  void showObjectNames(bool onoff) { myFlags.showObjectNames =onoff;}
195  void showFullNames(bool onoff) { myFlags.showFullNames =onoff;}
196  void drawOrigin(bool onoff) { myFlags.drawOrigin =onoff;}
197  void drawStickyOrigin(bool onoff) { myFlags.drawStickyOrigin=onoff;}
198  void drawViewPivot(bool onoff) { myFlags.drawViewPivot =onoff;}
199  void drawWalls(bool onoff) { myFlags.drawWalls =onoff;}
200  void drawXYPlane(bool onoff) { myFlags.drawXYPlane =onoff;}
201  void drawXZPlane(bool onoff) { myFlags.drawXZPlane =onoff;}
202  void drawYZPlane(bool onoff) { myFlags.drawYZPlane =onoff;}
203  void drawFieldGuide(bool onoff) { myFlags.drawFieldGuide =onoff;}
204  void drawSafeArea(bool onoff) { myFlags.drawSafeArea =onoff;}
205  void drawBackgrounds(bool onoff) { myFlags.drawBackgrounds =onoff;}
206  void drawEnvironmentMaps(bool onoff)
207  { myFlags.drawEnvironmentMaps =onoff;}
208  void drawFilteredBackgrounds(bool onoff)
209  { myFlags.drawFilteredBackgrounds=onoff;}
210  void showIKCriticalZones(bool onoff)
211  { myFlags.showIKCriticalZones =onoff;}
212  void setDrawCameraMask(bool onoff)
213  { myFlags.drawCameraMask =onoff;}
214  void drawBadges(bool onoff) { myFlags.drawBadges =onoff;}
215  void drawVertexAttrib2D(bool onoff)
216  { myFlags.drawVertexAttrib2D = onoff; }
217  void autoDetectAttribType2D(bool onoff)
218  { myFlags.autoDetectAttribType2D = onoff; }
219  void drawSpecular(bool onoff)
220  { myFlags.drawSpecular = onoff; }
221  void drawMultiTexture(bool onoff)
222  { common().drawMultiTexture(onoff); }
223  void applySelectMask(bool onoff)
224  { myFlags.applySelectMask = onoff; }
225  void drawXRay(bool xray) { myFlags.drawXRay = xray; }
226  void xrayQuality(bool q) { myFlags.xrayQuality = q; }
227  void xrayWireStrength(fpreal w) { myXRayWireStrength = w; }
228  void drawObjectOrigins(bool org) { myFlags.drawObjOrigins = org; }
229  void showMaterials(bool show) { common().showMaterials(show); }
230  void useMaterialOverrides(bool ovr) { myFlags.useOverrides = ovr; }
231  void mssEnable(bool mss) { myFlags.mssEnable = mss; }
232  void mssPerPrim(bool mpp) { myFlags.mssPerPrim = mpp; }
233  void mssPacked(bool mp) { myFlags.mssPacked = mp; }
235  { myObjectMaterialLimit=SYSmax(1,m); }
236 
237  void handleHighlightSize(int hl)
238  { myHandleHighlightSize = SYSclamp(hl, 0, 2); }
239  int handleHighlightSize() const { return myHandleHighlightSize; }
241  { myOriginGnomonSize = SYSmax(size, 0.0); }
242  fpreal originGnomonSize() const { return myOriginGnomonSize; }
244  { myFloatingGnomonSize = SYSmax(size, 0.0); }
245  fpreal floatingGnomonSize() const { return myFloatingGnomonSize; }
246 
247  /// set/query enable/disable of shading mode change
248  /// @{
249  void moveModeOn(bool onoff) { myMoveModeOn = onoff; }
250  bool moveModeOn() const { return myMoveModeOn; }
251  /// @}
252 
253  void setUVMapFile(const UT_StringRef &uvmap);
254  const UT_StringRef &getUVMapFile() const { return myUVMapFile; }
255 
256  void setUVMapScale(fpreal scale);
257  fpreal getUVMapScale() const { return myUVMapScale; }
258 
259  /// Rotoscoping background image set/query methods
260  /// @{
261  RE_TextureHolder getRotoTexture(RE_Render *r,
263  float &quality,
264  float &aspect_ratio,
265  UT_DimRect *udim_area = nullptr) const;
266 
267  bool getRotoVkTexture(RV_Render *r,
268  RV_TextureRef &tex_ref,
269  RV_ImageDim &tex_type,
271  float &quality,
272  float &aspect_ratio) const;
273 
274  void getRotoResolution(GUI_RotoView type, UT_Vector2i &res);
275 
276  bool setRotoFileParms(GUI_RotoView type,
277  const char *file, float quality);
278  bool setRotoCopParms(GUI_RotoView type,
279  const char *path, float quality);
280  void setRotoSource(GUI_RotoView type,bool file);
281 
282  void setRotoTime(fpreal t);
283  bool isRotoTimeDependent(GUI_RotoView type) const;
284 
285  fpreal getRotoQuality() const;
286  void setRotoQuality(fpreal q);
287 
288  void setRotoPath(GUI_RotoView type,
289  bool file_path, const char *path);
290  bool isRotoFile(GUI_RotoView type) const;
291  const char *getRotoCopPath(GUI_RotoView type) const;
292  const char *getRotoFilePath(GUI_RotoView type) const;
293 
294  UI_Value &getRotoCopCookNotify(GUI_RotoView type);
295  UI_Value &getRotoCopNameChangeNotify(GUI_RotoView type);
296 
297  void setForegroundImageEnable(bool enable)
298  { myFlags.showForegroundImage = enable; }
300  { return myFlags.showForegroundImage; }
301  void setForegroundImage(const UT_StringRef &file_node_path)
302  { myFGImage = file_node_path; }
303  const UT_StringRef &getForegroundImage() const { return myFGImage; }
304  void setForegroundImageDepth(bool enable)
305  { myFlags.useForegroundDepth = enable; }
307  { return myFlags.useForegroundDepth; }
309  { myFGDepthPlane = plane; }
311  { return myFGDepthPlane; }
313  {
318  DEPTH_WORLD_POS
319  };
321  { myFGDepthStyle = style; }
323  { return myFGDepthStyle; }
324 
325  void foregroundOpacity(fpreal opacity)
326  { myFGOpacity = SYSclamp(opacity, 0.0, 1.0); }
328  { return myFGOpacity; }
329 
330  void getImageMinUV(float arr[2]) const
331  {
332  arr[0] = myImageMinUV[0];
333  arr[1] = myImageMinUV[1];
334  }
335  void setImageMinUV(float arr[2])
336  {
337  myImageMinUV[0] = arr[0];
338  myImageMinUV[1] = arr[1];
339  }
340  void getImageMaxUV(float arr[2]) const
341  {
342  arr[0] = myImageMaxUV[0];
343  arr[1] = myImageMaxUV[1];
344  }
345  void setImageMaxUV(float arr[2])
346  {
347  myImageMaxUV[0] = arr[0];
348  myImageMaxUV[1] = arr[1];
349  }
350 
351  void getImageOffset(GUI_RotoView view, float arr[2]) const
352  {
353  arr[0] = myRotoViews[view].myImageOffset[0];
354  arr[1] = myRotoViews[view].myImageOffset[1];
355  }
356  void setImageOffset(GUI_RotoView view, float arr[2])
357  {
358  myRotoViews[view].myImageOffset[0] = arr[0];
359  myRotoViews[view].myImageOffset[1] = arr[1];
360  }
361  void getImageScale(GUI_RotoView view, float arr[2]) const
362  {
363  arr[0] = myRotoViews[view].myImageScale[0];
364  arr[1] = myRotoViews[view].myImageScale[1];
365  }
366  void setImageScale(GUI_RotoView view, float arr[2])
367  {
368  myRotoViews[view].myImageScale[0] = arr[0];
369  myRotoViews[view].myImageScale[1] = arr[1];
370  }
371 
372  float getOpacity(GUI_RotoView view) const
373  { return myRotoViews[view].myOpacity; }
374  void setOpacity(GUI_RotoView view, float opacity)
375  { myRotoViews[view].myOpacity = opacity; }
376 
377  enum class ImageFitMode
378  {
379  /// Fit the image so that the horizontal dimension fits within the viewport
380  /// _________
381  /// ||_________||
382  /// || ||
383  /// ||_________||
384  /// ||_________||
385  ///
386  HORIZONTAL = 0,
387 
388  /// Fit the image so that the vertical dimension fits within the viewport
389  /// ___ _________ ___
390  /// | || || |
391  /// | || || |
392  /// | || || |
393  /// |___||_________||___|
394  ///
395  VERTICAL,
396 
397  /// Stretch the image to fit within the viewport
398  /// _________
399  /// || ||
400  /// || ||
401  /// || ||
402  /// ||_________||
403  ///
404  FILL,
405 
406  /// Scale the image to so that the longest dimension fits within the viewport
407  /// _________
408  /// ||_________||
409  /// || ||
410  /// ||_________||
411  /// ||_________||
412  ///
413  SCALE,
414 
415  NUM_FIT_MODES
416  };
417 
418  ImageFitMode
420  { return myRotoViews[view].myImageFitMode; }
422  { myRotoViews[view].myImageFitMode = fit_mode; }
423 
424  float getBrightness(GUI_RotoView view) const
425  { return myRotoViews[view].myBrightness; }
426  void setBrightness(GUI_RotoView view, float brightness)
427  { myRotoViews[view].myBrightness = brightness; }
428 
429  void autoPlaceImage(GUI_RotoView view, bool onoff)
430  { myRotoViews[view].myAutoPlaceImage = onoff; }
431  bool autoPlaceImage(GUI_RotoView view) const
432  { return myRotoViews[view].myAutoPlaceImage; }
433 
434  void envMapImage(GUI_RotoView view, bool onoff)
435  { myRotoViews[view].myEnvMapImage = onoff; }
436  bool envMapImage(GUI_RotoView view) const
437  { return myRotoViews[view].myEnvMapImage; }
438 
439  int isRotoFileVideo(GUI_RotoView view) const;
440 
441  int getRotoVideoClipStartFrame(GUI_RotoView view) const;
442  void setRotoVideoClipStartFrame(GUI_RotoView view, int start_frame);
443 
444  int getRotoVideoClipEndFrame(GUI_RotoView view) const;
445  void setRotoVideoClipEndFrame(GUI_RotoView view, int end_frame);
446 
447  fpreal getRotoVideoPlaybackStartFrame(GUI_RotoView view) const;
448  void setRotoVideoPlaybackStartFrame(GUI_RotoView view, fpreal start_frame);
449 
450  fpreal getRotoVideoPlaybackSpeed(GUI_RotoView view) const;
451  void setRotoVideoPlaybackSpeed(GUI_RotoView view, fpreal speed);
452 
453  const char * getRotoVideoColorSpace(GUI_RotoView view) const;
454  void setRotoVideoColorSpace(GUI_RotoView view, const char *color_space);
455 
456  bool getRotoVideoFrameRateEnabled(GUI_RotoView view) const;
457  void setRotoVideoFrameRateEnabled(GUI_RotoView view, bool enabled);
458 
459  fpreal getRotoVideoFrameRate(GUI_RotoView view) const;
460  void setRotoVideoFrameRate(GUI_RotoView view, fpreal frame_rate);
461 
462  int getRotoVideoRotation(GUI_RotoView view) const;
463  bool getRotoVideoIsRotated(GUI_RotoView view) const;
464 
465  bool getRotoVideoIsTopFirst(GUI_RotoView view) const;
466 
467  int getRotoVideoSourceFrameCount(GUI_RotoView view) const;
468  fpreal getRotoVideoSourceFrameRate(GUI_RotoView view) const;
469 
470  void setUseFixedImageRes(bool use_fixed)
471  { myUseFixedImageRes = use_fixed; }
472  bool getUseFixedImageRes() const
473  { return myUseFixedImageRes; }
474  void setUseViewportRes(bool use_vp)
475  { myUseViewportRes = use_vp; }
476  bool getUseViewportRes() const
477  { return myUseViewportRes; }
478  void setFixedImageRes(int w, int h)
479  {
480  if(myForLopsView)
481  myFixedImageRes.assign(w,h);
482  }
484  { return myForLopsView ? myFixedImageRes : UT_Vector2i(0,0); }
485  void setCurrentImageRes(int w, int h)
486  { myCurrentImageRes.assign(w,h); }
488  { return myForLopsView ? myCurrentImageRes :UT_Vector2i(0,0); }
490  { myImageResFraction =fraction; }
492  { return myImageResFraction; }
493 
494  bool getCameraCropMask() const { return myCameraCropMask; }
495  void setCameraCropMask(bool crop) { myCameraCropMask = crop; }
496 
497  static const char *getRotoViewName(GUI_RotoView view);
498  /// @}
499 
500  /// Methods to query/change the scale at which handles are drawn.
501  /// @{
502  static float getHandleScale() { return theHandleScale; }
503  static void setHandleScale(float v)
504  { theHandleScale = SYSclamp(v, 0.01f, 1.0f); }
505  /// @}
506 
507  // This method is called when user options are being destroyed.
508  void removeUserOption(int option_id);
509 
510  /// Refresh the cached version keys for the enabled user options to reflect
511  /// the most up-to-date version.
512  void refreshUserOptionVersions();
513 
514  /// State which switches the geometry context display options between the
515  /// Scene and Model display sets. When at the object level, the scene is
516  /// used.
517  /// @{
518  bool isObjectLevel() const { return myNoSaveFlags.isObjectLevel; }
519  void setObjectLevel(bool onoff);
520  /// @}
521 
522  /// The select mask is set when the user is in a "select" state to
523  /// automatically turn on some decorations. The mask is used to
524  /// temporarily tweak the appropriate display options, and does not,
525  /// in and of itself, invalidate display lists.
526  /// @{
527  unsigned getSelectMask() const { return mySelectMask; }
528  void setSelectMask(unsigned mask) { mySelectMask = mask; }
529  /// @}
530 
531  /// This value is changed when the scene is switched from obj to sop/dop
532  /// level.
533  UI_Value &getObjectLevelNotify() { return myObjectLevelNotify; }
534 
535  /// For the OpenGL ROP only: Allows a single stereo camera to be rendered.
537  {
540  GUI_DISP_STEREO_RIGHT
541  };
542 
543  /// Allow rendering of a single stereo camera eye.
544  /// @{
546  { myStereoPass = pass; }
547  bool isStereoLeftRender() const
548  { return (myStereoPass == GUI_DISP_STEREO_BOTH ||
549  myStereoPass == GUI_DISP_STEREO_LEFT); }
550  bool isStereoRightRender() const
551  { return (myStereoPass == GUI_DISP_STEREO_BOTH ||
552  myStereoPass == GUI_DISP_STEREO_RIGHT); }
553  /// @}
554 
555  /// Returns true if any of the geometry contexts have this option set.
556  /// @{
557  ANY_FLAG_ACTIVE_IN_SETS(drawPointCoincident);
558  ANY_FLAG_ACTIVE_IN_SETS(drawPointMarkers);
559  ANY_FLAG_ACTIVE_IN_SETS(uvFillOverlap);
560  /// @}
561 
562  /// Auto-select quality/preformance presets based on hardware queries.
563  /// Only works at startup.
564  void updateOptionsForHardware(RE_RenderContext r);
565 
566 
567  /// Returns true if the passed options are compatible with these options,
568  /// meaning that update() does not need to be called on GR_Primitives if
569  /// 'opt' is used after this option. This could happen if 'opt' had a marker
570  /// on that required an attribute that this options set does not.
571  bool compatibleWith(const GUI_DisplayOption &opt) const;
572 
573  void setUseHeadlight(bool headlight)
574  { myUseHeadlight = headlight; }
575  bool useHeadlight() const { return myUseHeadlight; }
576 
578  {
583  };
584 
585  void setHeadlightType(HeadlightType type) { myHeadlightType = type; }
586  HeadlightType getHeadlightType() const { return myHeadlightType; }
587 
588  // Headlight parms (distant light)
590  {
592  fpreal Intensity = 1.0;
593  fpreal Ambient = 0.02; // VK
594  fpreal Azimuth = 22; // VK
595  fpreal Altitude = 22; // VK
596  fpreal Softness = 0.0; // VK
597  bool Specular = true;
598  };
599 
600  HeadlightParms &headlightParms() { return myHeadlightParms; }
601  const HeadlightParms &headlightParms() const { return myHeadlightParms; }
602 
603  // Domelight parms (straight env light)
605  {
609  fpreal Intensity = 1.0;
610  fpreal Exposure = 0.0;
611  bool ShowBackground = false;
612  };
613 
614  DomelightParms &domelightParms() { return myDomelightParms; }
615  const DomelightParms &domelightParms() const { return myDomelightParms; }
616 
617  UT_StringHolder getDomelightMapPath() const;
618 
619  // Physical sky headlight (distant + dome)
621  {
622  fpreal Azimuth = 0.0;
623  fpreal Altitude = 45.0;
624  fpreal Intensity = 1.0;
625  fpreal Exposure = 0.0;
626  bool UseSun = true;
627  fpreal Size = 0.51;
628  bool UseSky = true;
629  fpreal Turbidity = 3.0;
631  fpreal HorizonBlur = 0.5;
632  fpreal SunIntensity = 1.0;
633  fpreal SkyIntensity = 1.0;
634  fpreal Saturation = 1.0;
635  bool ShowBackground = false;
636  };
637  PhysicalSkyParms &physicalSkyParms() { return myPhysicalSkyParms; }
638  const PhysicalSkyParms &physicalSkyParms() const { return myPhysicalSkyParms; }
639 
641  {
645  fpreal KeyIntensity = 1.0;
646  fpreal KeyExposure = 0.0;
647  fpreal KeyAltitude = 33.0;
648  fpreal KeyAzimuth = 55.0;
649  fpreal KeySoft = 0.0;
650  fpreal FillIntensity = 0.4;
651  fpreal FillExposure = 0.0;
652  fpreal FillAltitude = 30.0;
653  fpreal FillAzimuth = -80.0;
654  fpreal FillSoft = 0.0;
655  fpreal BackIntensity = 0.5;
656  fpreal BackExposure = 0.0;
657  fpreal BackAltitude = 35.0;
658  fpreal BackAzimuth = -170.0;
659  fpreal BackSoft = 0.0;
660  };
661  ThreePointParms &threePointParms() { return myThreePointParms; }
662  const ThreePointParms &threePointParms() const { return myThreePointParms; }
663 
664  void setHeadlightParmsDirty(bool dirty) { myHeadlightDirty =dirty; }
665  bool areHeadlightParmsDirty() const { return myHeadlightDirty; }
666 
667  void dirtyPhysicalSkyMap() { myPhysicalSkyFileDirty = true; }
668  UT_StringHolder createPhysicalSkyMapFile() const;
669 
670  void setHeadlightHighQuality(bool hq) { myHeadlightHQ = hq; }
671  bool getHeadlightHighQuality() const { return myHeadlightHQ; }
672 
673  void setHQLightLimit(int nlights) { myHQLightLimit = nlights; }
674  int getHQLightLimit() const { return myHQLightLimit; }
675  bool hasHQLightLimit() const { return myHQLightLimit > 0; }
676 
677  void setInstancedLightLimit(int nlights) { myInstLightLimit = nlights; }
678  int getInstancedLightLimit() const { return myInstLightLimit; }
679  bool hasInstancedLightLimit() const { return myInstLightLimit > 0; }
680 
681  void setShadowMapMemMB(int mem) { myShadowMapMemMB = SYSmax(1,mem);}
682  int getShadowMapMemMB() const { return myShadowMapMemMB;}
684  { myShadowMapGenTime=SYSmax(0.0,t); }
685  fpreal getShadowMapGenTime() const { return myShadowMapGenTime; }
686  void setLightSamplingLimit(int limit) {myLightSampleLimit = limit;}
687  int getLightSamplingLimit() const { return myLightSampleLimit; }
688  bool hasLightSamplingLimit() const { return myLightSampleLimit>0; }
690  { myFlags.fastHQIntLight = e; }
692  { return myFlags.fastHQIntLight; }
693 
694  void allowSceneLighting(bool allow)
695  { myFlags.allowSceneLighting = allow; }
696  bool allowSceneLighting() const
697  { return myFlags.allowSceneLighting; }
698 
699  GUI_SceneCameras *getSceneCameras() { return mySceneCameras; }
700  void setSceneCameras(GUI_SceneCameras *c) { mySceneCameras = c; }
701 
702  void setDOFEnable(bool dof) { myFlags.dofEnable = dof; }
703  bool isDOFEnabled() const { return myFlags.dofEnable; }
704  enum DOFBokeh
705  {
708  DOF_TEXTURE_BOKEH
709  };
710  void setDOFBokeh(DOFBokeh b) { myDOFBokeh = b; }
711  DOFBokeh getDOFBokeh() const { return myDOFBokeh; }
712  void setDOFTexture(const UT_StringRef &tex) { myDOFTex = tex; }
713  const UT_StringRef &getDOFTexture() const { return myDOFTex; }
714  fpreal getDOFBokehAspect() const { return myDOFBokehAspect; }
715  void setDOFBokehAspect(fpreal a) { myDOFBokehAspect=SYSmax(a,0.01); }
716  fpreal getDOFBokehBoost() const { return myDOFBokehBoost; }
717  void setDOFBokehBoost(fpreal b) { myDOFBokehBoost = b; }
718 
719  // Uniform fog
720  void setUniformFogEnable(bool fog) { myFlags.uniformFogEnable=fog; }
721  bool isUniformFogEnabled() const { return myFlags.uniformFogEnable;}
722  void setUniformFogDensity(fpreal d) { myUniformFog.myFogDensity=d; }
723  fpreal getUniformFogDensity() const{return myUniformFog.myFogDensity;}
724  void setUniformFogOpacity(fpreal d) { myUniformFog.myFogOpacity=d; }
725  fpreal getUniformFogOpacity() const{return myUniformFog.myFogOpacity;}
727  { myUniformFog.myFogColor = c; }
728  UT_Vector3F getUniformFogColor() const { return myUniformFog.myFogColor; }
729  void setUniformFogStart(fpreal s) { myUniformFog.myFogStart = s; }
730  fpreal getUniformFogStart() const { return myUniformFog.myFogStart; }
731  void setUniformFogEnd(fpreal e) { myUniformFog.myFogEnd = e; }
732  fpreal getUniformFogEnd() const { return myUniformFog.myFogEnd; }
734  { return myUniformFog.myFogHeightMode; }
736  { myUniformFog.myFogHeightMode = SYSclamp(m,-1,1); }
737  fpreal getUniformFogHeight() const { return myUniformFog.myFogHeight;}
738  void setUniformFogHeight(fpreal h) { myUniformFog.myFogHeight = h; }
740  { return myUniformFog.myFogFalloff; }
742  { myUniformFog.myFogFalloff = f; }
744  { myUniformFog.myFogIntensity=SYSmax(0.0,f); }
746  { return myUniformFog.myFogIntensity; }
747 
748  void setUniformFogSunBloom(fpreal f) { myUniformFogSunBloom = f; }
749  fpreal getUniformFogSunBloom() const { return myUniformFogSunBloom; }
750  void setUniformFogUseSun(bool d) { myUniformFogUseSun = d; }
751  bool getUniformFogUseSun() const { return myUniformFogUseSun; }
752  void setUniformFogUseClip(bool d)
753  { myUniformFogUseClip = d; }
754  bool getUniformFogUseClip() const
755  { return myUniformFogUseClip; }
757  { myUniformFogClipDistance = d; }
759  { return myUniformFogClipDistance; }
760 
761 
762  // Volume Fog
763  void setVolumeFogEnable(bool fog) { myFlags.volumeFogEnable=fog; }
764  bool isVolumeFogEnabled() const { return myFlags.volumeFogEnable;}
765  void setVolumeFogDensity(fpreal d) { myVolumeFog.myFogDensity=d; }
766  fpreal getVolumeFogDensity() const{return myVolumeFog.myFogDensity;}
767  void setVolumeFogOpacity(fpreal d) { myVolumeFog.myFogOpacity=d; }
768  fpreal getVolumeFogOpacity() const{return myVolumeFog.myFogOpacity;}
770  { myVolumeFog.myFogColor = c; }
771  UT_Vector3F getVolumeFogColor() const { return myVolumeFog.myFogColor; }
772  void setVolumeFogStart(fpreal s) { myVolumeFog.myFogStart = s; }
773  fpreal getVolumeFogStart() const { return myVolumeFog.myFogStart; }
774  void setVolumeFogEnd(fpreal e) { myVolumeFog.myFogEnd = e; }
775  fpreal getVolumeFogEnd() const { return myVolumeFog.myFogEnd; }
777  { return myVolumeFog.myFogHeightMode; }
779  { myVolumeFog.myFogHeightMode = SYSclamp(m,-1,1); }
780  fpreal getVolumeFogHeight() const { return myVolumeFog.myFogHeight;}
781  void setVolumeFogHeight(fpreal h) { myVolumeFog.myFogHeight = h; }
783  { return myVolumeFog.myFogFalloff; }
785  { myVolumeFog.myFogFalloff = f; }
787  { myVolumeFog.myFogIntensity=SYSmax(0.0,f); }
789  { return myVolumeFog.myFogIntensity; }
790  int getVolumeFogQuality() const { return myVolumeFogQuality; }
792  { myVolumeFogQuality = SYSclamp(q, 0,3); }
794  {
795  myVolumeFogScatterPara = SYSmax(0.0, para);
796  myVolumeFogScatterPerp = SYSmax(0.0, perp);
797  }
798  void getVolumeFogLightScatter(fpreal &para, fpreal &perp) const
799  {
800  para = myVolumeFogScatterPara;
801  perp = myVolumeFogScatterPerp;
802  }
803 
804  void setBloomEnable(bool e) { myFlags.bloom = e; }
805  bool isBloomEnabled() const { return myFlags.bloom; }
806  void setBloomScale(fpreal sc) { myBloomScale = sc; }
807  fpreal getBloomScale() const { return myBloomScale; }
808  void setBloomIntensity(fpreal i) { myBloomIntensity = i; }
809  fpreal getBloomIntensity() const { return myBloomIntensity; }
810  void setBloomThreshold(fpreal th) { myBloomThreshold = th; }
811  fpreal getBloomThreshold() const { return myBloomThreshold; }
812 
813  void setFogNode(const char *node) { myFogNode = node; }
814  const UT_StringRef &getFogNode() const { return myFogNode; }
815 
817  {
818  DEFAULT_MATERIAL_SIMPLE = 0,
819  DEFAULT_MATERIAL_MATCAP
820  };
821  void setDefaultMaterialType(DefaultMaterialType type);
822  void setDefaultMatCapFile(const UT_StringRef &tex_filepath);
823  void setDefaultMatCapIntensity(fpreal intensity);
824  void setDefaultMaterialDiffuse(UT_Color col);
825  void setDefaultMaterialSpecular(UT_Color col);
826  void setDefaultMaterialAmbient(UT_Color col);
827  void setDefaultMaterialEmission(UT_Color col);
828  void setDefaultMaterialRoughness(fpreal rough);
829  void setDefaultMaterialSpecRoughness(fpreal srough);
830 
832  { return myDefaultMatType; }
834  { return myDefaultMatCapFile; }
836  { return myDefaultMatCapIntensity; }
837  UT_Color getDefaultMaterialDiffuse() const { return myDefaultDiffuse; }
838  UT_Color getDefaultMaterialSpecular() const{ return myDefaultSpecular; }
839  UT_Color getDefaultMaterialAmbient() const { return myDefaultAmbient; }
840  UT_Color getDefaultMaterialEmission() const{ return myDefaultEmission; }
841  fpreal getDefaultMaterialRoughness() const{ return myDefaultRough; }
843  { return myDefaultSpecRough; }
844 
845  bool isDefaultMaterialDirty() const{ return myDefaultMaterialDirty;}
846  void clearDefaultMaterialDirty() { myDefaultMaterialDirty=false;}
847 
848  bool isDefaultMatCapDirty() const{ return myDefaultMatCapDirty;}
849  bool clearDefaultMatCapDirty(){ return myDefaultMatCapDirty=false;}
850 
851  void forceMSSUpdate(bool) { myMSSUpdateSerial++; }
852  exint getMSSUpdateSerial() const { return myMSSUpdateSerial; }
853 
854  void getRecommendedTextureLimit(RE_Render *r,
855  int &max2d, int &max3d) const;
856 private:
857  // data:
858 
859  GR_DisplayOption *myDisplaySet[GUI_NUM_DISPLAY_SETS];
860  GUI_DisplaySetType myDisplaySetMap[GUI_NUM_DISPLAY_SETS];
861  GR_CommonDispOption myCommonOptions; // global to viewport
862 
863  float myImageMinUV[2];
864  float myImageMaxUV[2];
865 
866  fpreal myOriginGnomonSize;
867  fpreal myFloatingGnomonSize;
868  int myHandleHighlightSize;
869 
870  static float theHandleScale;
871 
872  HeadlightParms myHeadlightParms;
873  DomelightParms myDomelightParms;
874  PhysicalSkyParms myPhysicalSkyParms;
875  ThreePointParms myThreePointParms;
876  bool myUseHeadlight = false;
877  bool myHeadlightHQ = false;
878  bool myHeadlightDirty = true;
879  HeadlightType myHeadlightType = HEADLIGHT;
880  UT_Color myDefaultDiffuse;
881  UT_Color myDefaultSpecular;
882  UT_Color myDefaultEmission;
883  UT_Color myDefaultAmbient;
884  fpreal myDefaultRough;
885  fpreal myDefaultSpecRough;
886  bool myDefaultMaterialDirty;
887 
888  DefaultMaterialType myDefaultMatType;
889  UT_StringHolder myDefaultMatCapFile;
890  fpreal myDefaultMatCapIntensity;
891  bool myDefaultMatCapDirty;
892 
893  fpreal myXRayWireStrength;
894 
895  struct
896  {
899  float myImageOffset[2] = {0.0f, 0.0f};
900  float myImageScale[2] = {1.0f, 1.0f};
901  float myOpacity = 1.0f;
902  float myBrightness = 1.0f;
903  bool myAutoPlaceImage = false;
904  ImageFitMode myImageFitMode = ImageFitMode::SCALE;
905  bool myEnvMapImage = false;
906  } myRotoViews[GUI_NUM_ROTO_VIEWS];
907 
908  UT_StringHolder myFGImage;
909  UT_StringHolder myFGDepthPlane;
910  FGDepthStyle myFGDepthStyle;
911  fpreal myFGOpacity;
912 
913  unsigned mySelectMask; // mask of entities the user
914  // wants to select. Not saved.
915  struct
916  {
917  unsigned
918  showSelected :1,
919  showNonSelected :1,
920  showTemplates :1,
921  showFootprints :1,
922  showCurrentOutput :1,
923  showDisplay :1,
924  showGuides :1,
925  showObjectNames :1,
926  showFullNames :1,
927  drawOrigin :1,
928  drawStickyOrigin :1,
929  drawViewPivot :1,
930  drawWalls :1, // draw bounding walls
931  drawXYPlane :1, // draw XY reference plane
932  drawXZPlane :1, // draw XZ reference plane
933  drawYZPlane :1, // draw YZ reference plane
934  drawFieldGuide :1,
935  drawSafeArea :1,
936  drawBackgrounds :1, // draw background images
937  drawEnvironmentMaps :1,
938  drawFilteredBackgrounds:1, // filter background in UV viewport.
939  drawVertexAttrib2D :1, // use vertex attribute
940  autoDetectAttribType2D:1, // automatically track the attribute type
941  drawSpecular :1, // specular highlights
942  showIKCriticalZones :1, // inverse kin. danger zones
943  drawCameraMask :1,
944  drawBadges :1, // show viewport status badges
945  drawXRay :1, // allow draw of xray objs
946  xrayQuality :1, // fast/quality xray draw
947  drawObjOrigins :1, // allow draw of obj axes
948  applySelectMask :1, // select mask drives specific decorations
949  useOverrides :1, // Apply material overrides
950  mssEnable :1, // Apply material stylesheets
951  mssPacked :1, // Eval material stylesheets for packed geo
952  mssPerPrim :1, // per-prim material stylesheet eval
953  dofEnable :1, // Depth of field
954  uniformFogEnable :1, // Fog (uniform)
955  volumeFogEnable :1, // Fog (volumetric)
956  bloom :1, // Light bloom
957  showForegroundImage :1, // FG Image
958  useForegroundDepth :1, // Use FG Image depth plane if present
959  fastHQIntLight :1, // Lower samples in HQ Lighting/interaction
960  allowSceneLighting :1; // Scene Lights allowed to render.
961 
962  } myFlags;
963 
964  struct
965  {
966  unsigned isObjectLevel :1; // Is this an object view?
967  } myNoSaveFlags;
968 
969  // whether shading mode change is enabled/disabled
970  bool myMoveModeOn;
971  int myObjectMaterialLimit;
972 
973  gui_StereoPass myStereoPass;
974  UI_Value myObjectLevelNotify;
975  bool myLoadedDefaults;
976  exint myMSSUpdateSerial;
977  gui_MatAssignMode myMatAssignMode;
978  bool myMatUpdate;
979  bool myForLopsView;
980 
981  int myHQLightLimit;
982  int myLightSampleLimit;
983  int myShadowMapMemMB;
984  fpreal myShadowMapGenTime;
985  int myInstLightLimit;
986 
987  UT_IntArray mySceneOptions;
988  UT_Vector2i myFixedImageRes;
989  UT_Vector2i myCurrentImageRes;
990  fpreal myImageResFraction;
991  bool myUseFixedImageRes;
992  bool myUseViewportRes;
993  bool myCameraCropMask;
994  mutable bool myPhysicalSkyFileDirty = true;
995  mutable UT_StringHolder myPhysicalSkyFile;
996 
997  class FogParms
998  {
999  public:
1000  FogParms() : myFogColor(1.0,1.0,1.0), myFogDensity(1.0),
1001  myFogOpacity(1.0), myFogStart(0.0), myFogEnd(1000.0),
1002  myFogHeightMode(0), myFogHeight(100.0),
1003  myFogIntensity(1.0), myFogFalloff(10.0)
1004  {}
1005  UT_Vector3F myFogColor;
1006  fpreal myFogDensity;
1007  fpreal myFogOpacity;
1008  fpreal myFogStart;
1009  fpreal myFogEnd;
1010  int myFogHeightMode;
1011  fpreal myFogHeight;
1012  fpreal myFogIntensity;
1013  fpreal myFogFalloff;
1014  };
1015  FogParms myUniformFog;
1016  fpreal myUniformFogClipDistance;
1017  bool myUniformFogUseClip = true;
1018  bool myUniformFogUseSun;
1019  fpreal myUniformFogSunBloom;
1020 
1021  FogParms myVolumeFog;
1022  int myVolumeFogQuality;
1023  fpreal myVolumeFogScatterPara;
1024  fpreal myVolumeFogScatterPerp;
1025  UT_StringHolder myFogNode;
1026 
1027  fpreal myBloomScale;
1028  fpreal myBloomIntensity;
1029  fpreal myBloomThreshold;
1030 
1031  DOFBokeh myDOFBokeh;
1032  UT_StringHolder myDOFTex;
1033  fpreal myDOFBokehAspect;
1034  fpreal myDOFBokehBoost;
1035 
1036  UT_StringHolder myUVMapFile;
1037  fpreal myUVMapScale;
1038  GR_RenderVersion myRenderType;
1039 
1040  GUI_SceneCameras *mySceneCameras = nullptr;
1041 };
1042 
1043 #endif
fpreal getUniformFogHeight() const
type
Definition: core.h:556
FGDepthStyle getForegroundDepthStyle() const
bool drawXYPlane() const
#define SYSmax(a, b)
Definition: SYS_Math.h:1952
UI_Value & getObjectLevelNotify()
void drawObjectOrigins(bool org)
Collection class for all cameras in a scene, from all sources.
bool isStereoRightRender() const
void setForegroundImageDepth(bool enable)
void setCurrentImageRes(int w, int h)
bool getUseFixedImageRes() const
void setVolumeFogStart(fpreal s)
void getImageMinUV(float arr[2]) const
void showFullNames(bool onoff)
fpreal getDefaultMaterialRoughness() const
void showIKCriticalZones(bool onoff)
const PhysicalSkyParms & physicalSkyParms() const
bool useHeadlight() const
bool isObjectLevel() const
UT_Color getDefaultMaterialSpecular() const
void drawFilteredBackgrounds(bool onoff)
void setVolumeFogEnable(bool fog)
void setForegroundImageEnable(bool enable)
const int GUI_NUM_DISPLAY_MODEL_SETS
fpreal xrayWireStrength() const
GUI_SceneCameras * getSceneCameras()
bool materialUpdate() const
void drawViewPivot(bool onoff)
fpreal getBloomThreshold() const
static float getHandleScale()
const DomelightParms & domelightParms() const
fpreal getVolumeFogStart() const
void setVolumeFogQuality(int q)
void setDrawCameraMask(bool onoff)
void mssEnable(bool mss)
void showMaterials(bool show)
const GR_DisplayOption & operator[](GUI_DisplaySetType type) const
const GLdouble * v
Definition: glcorearb.h:837
int getShadowMapMemMB() const
fpreal getUniformFogOpacity() const
DefaultMaterialType getDefaultMaterialType() const
void setUseFixedImageRes(bool use_fixed)
float getBrightness(GUI_RotoView view) const
bool drawFilteredBackgrounds() const
void drawWalls(bool onoff)
GLsizei const GLchar *const * path
Definition: glcorearb.h:3341
UT_UniquePtr< GUI_RotoscopeData > myRotoscopeData
void foregroundOpacity(fpreal opacity)
UT_Color getDefaultMaterialEmission() const
void drawStickyOrigin(bool onoff)
bool drawObjectOrigins() const
void getImageOffset(GUI_RotoView view, float arr[2]) const
ThreePointParms & threePointParms()
int64 exint
Definition: SYS_Types.h:125
void setVolumeFogOpacity(fpreal d)
fpreal getUniformFogSunBloom() const
const UT_StringRef & getForegroundDepthPlane() const
int getInstancedLightLimit() const
bool drawOrigin() const
void setVolumeFogFalloff(fpreal f)
void setSceneCameras(GUI_SceneCameras *c)
GLboolean GLboolean GLboolean GLboolean a
Definition: glcorearb.h:1222
const ThreePointParms & threePointParms() const
GLdouble s
Definition: glad.h:3009
void drawYZPlane(bool onoff)
void drawMultiTexture(bool onoff)
void setImageMinUV(float arr[2])
bool drawViewPivot() const
bool showNonSelected() const
Opaque reference to a texture stored in the RV_TextureCache.
Definition: RV_TextureRef.h:21
bool drawSpecular() const
bool getDrawCameraMask() const
void setFastInteractiveHQLight(bool e)
int getVolumeFogHeightMode() const
void setForegroundImage(const UT_StringRef &file_node_path)
void setUniformFogOpacity(fpreal d)
bool areHeadlightParmsDirty() const
GLenum GLenum GLsizei const GLuint GLboolean enabled
Definition: glcorearb.h:2539
void setOpacity(GUI_RotoView view, float opacity)
void handleHighlightSize(int hl)
void setVolumeFogDensity(fpreal d)
fpreal floatingGnomonSize() const
GLdouble GLdouble GLdouble q
Definition: glad.h:2445
void setVolumeFogHeightMode(int m)
bool isDOFEnabled() const
void drawXRay(bool xray)
bool getForegroundImageEnable() const
int getHQLightLimit() const
bool showFullNames() const
UT_Color getDefaultMaterialAmbient() const
GUI_DisplaySetType
Context specific display options for geometry states.
void showDisplay(bool onoff)
Temporary container for either a RV_Render and an RE_Render.
bool getFastInteractiveHQLight() const
void setImageOffset(GUI_RotoView view, float arr[2])
bool drawYZPlane() const
int getLightSamplingLimit() const
void setDOFTexture(const UT_StringRef &tex)
exint getMSSUpdateSerial() const
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
Definition: UT_UniquePtr.h:39
bool getHeadlightHighQuality() const
void setHeadlightParmsDirty(bool dirty)
bool xrayQuality() const
void setUniformFogUseSun(bool d)
bool getUseViewportRes() const
void xrayWireStrength(fpreal w)
void showObjectNames(bool onoff)
fpreal getVolumeFogEnd() const
GA_API const UT_StringHolder scale
bool showIKCriticalZones() const
fpreal getVolumeFogOpacity() const
void setLightSamplingLimit(int limit)
GLfloat f
Definition: glcorearb.h:1926
GLint GLint GLsizei GLint GLenum GLenum type
Definition: glcorearb.h:108
void setInstancedLightLimit(int nlights)
void envMapImage(GUI_RotoView view, bool onoff)
const UT_StringRef & getDefaultMatCapFile() const
void setShadowMapGenTime(fpreal t)
bool getCameraCropMask() const
const UT_StringRef & getUVMapFile() const
bool mssPerPrim() const
void getImageMaxUV(float arr[2]) const
bool getUniformFogUseClip() const
GR_CommonDispOption & common()
bool hasLightSamplingLimit() const
void setSelectMask(unsigned mask)
void setUniformFogFalloff(fpreal f)
fpreal getVolumeFogFalloff() const
fpreal getVolumeFogHeight() const
void setFogNode(const char *node)
void showSelected(bool onoff)
void drawSpecular(bool onoff)
bool showGuides() const
void showTemplates(bool onoff)
fpreal getVolumeFogDensity() const
float getOpacity(GUI_RotoView view) const
void setBloomEnable(bool e)
#define GUI_API
Definition: GUI_API.h:10
fpreal getBloomScale() const
const GR_CommonDispOption & common() const
void setBloomThreshold(fpreal th)
void drawXZPlane(bool onoff)
bool mssEnable() const
fpreal getShadowMapGenTime() const
void setDOFBokehAspect(fpreal a)
void setCameraCropMask(bool crop)
bool drawFieldGuide() const
void setUniformFogClipDistance(fpreal d)
void setUniformFogHeight(fpreal h)
UT_Vector3T< T > SYSclamp(const UT_Vector3T< T > &v, const UT_Vector3T< T > &min, const UT_Vector3T< T > &max)
Definition: UT_Vector3.h:1059
void mssPerPrim(bool mpp)
fpreal getImageResFraction() const
GLint GLuint mask
Definition: glcorearb.h:124
void setHQLightLimit(int nlights)
bool drawXZPlane() const
void autoPlaceImage(GUI_RotoView view, bool onoff)
void setDOFEnable(bool dof)
void showGuides(bool onoff)
void setUniformFogUseClip(bool d)
void setVolumeFogColor(const UT_Vector3F &c)
fpreal getUniformFogClipDistance() const
bool mssPacked() const
void drawBackgrounds(bool onoff)
bool drawBadges() const
const UT_StringRef & getFogNode() const
bool drawBackgrounds() const
bool getUniformFogUseSun() const
void setUniformFogHeightMode(int m)
const int GUI_NUM_ROTO_VIEWS
fpreal getDefaultMaterialSpecRoughness() const
bool isStereoLeftRender() const
bool autoPlaceImage(GUI_RotoView view) const
int objectMaterialLimit() const
GLuint const GLchar * name
Definition: glcorearb.h:786
void floatingGnomonSize(fpreal size)
const UT_StringRef & getForegroundImage() const
void showCurrentOutput(bool onoff)
UT_Vector3F getVolumeFogColor() const
bool hasInstancedLightLimit() const
void drawXYPlane(bool onoff)
fpreal getBloomIntensity() const
void setUniformFogColor(const UT_Vector3F &c)
static void setHandleScale(float v)
GLboolean GLboolean GLboolean b
Definition: glcorearb.h:1222
void setUseViewportRes(bool use_vp)
GR_RenderVersion
Definition: GR_Defines.h:22
const int GUI_NUM_DISPLAY_SCENE_SETS
void setFixedImageRes(int w, int h)
bool autoDetectAttribType2D() const
fpreal getUniformFogFalloff() const
void setDOFBokehBoost(fpreal b)
void drawFieldGuide(bool onoff)
int getVolumeFogQuality() const
gui_MatAssignMode materialAssignMode() const
GLdouble t
Definition: glad.h:2397
void setVolumeFogLightScatter(fpreal para, fpreal perp)
bool showMaterials() const
void materialUpdate(bool update)
bool drawEnvironmentMaps() const
void setForegroundDepthPlane(const UT_StringRef &plane)
void setHeadlightHighQuality(bool hq)
void setVolumeFogHeight(fpreal h)
bool drawMultiTexture() const
GLenum mode
Definition: glcorearb.h:99
void setImageFitMode(GUI_RotoView view, ImageFitMode fit_mode)
GR_DisplayOption & operator[](GUI_DisplaySetType type)
void setBrightness(GUI_RotoView view, float brightness)
GR_RenderVersion getRenderType() const
gui_StereoPass
For the OpenGL ROP only: Allows a single stereo camera to be rendered.
fpreal getUniformFogIntensity() const
void drawOrigin(bool onoff)
fpreal getUniformFogEnd() const
void setUniformFogIntensity(fpreal f)
void setForegroundDepthStyle(FGDepthStyle style)
void xrayQuality(bool q)
void setHeadlightType(HeadlightType type)
void setBloomScale(fpreal sc)
GLsizeiptr size
Definition: glcorearb.h:664
GLfloat GLfloat GLfloat GLfloat h
Definition: glcorearb.h:2002
#define ANY_FLAG_ACTIVE_IN_SETS(METHOD)
void materialAssignMode(gui_MatAssignMode mode)
bool isDefaultMaterialDirty() const
bool drawStickyOrigin() const
bool showCurrentOutput() const
fpreal getUniformFogDensity() const
void setUniformFogSunBloom(fpreal f)
void setUniformFogStart(fpreal s)
GUI_RotoView
Viewport type for Rotoscope settings.
HeadlightParms & headlightParms()
bool showTemplates() const
DOFBokeh getDOFBokeh() const
fpreal getDefaultMatCapIntensity() const
bool hasHQLightLimit() const
UT_Vector2i getCurrentImageRes() const
void setImageScale(GUI_RotoView view, float arr[2])
bool drawVertexAttrib2D() const
bool showObjectNames() const
fpreal getDOFBokehBoost() const
fpreal64 fpreal
Definition: SYS_Types.h:283
void originGnomonSize(fpreal size)
UT_Vector3F getUniformFogColor() const
bool getForegroundImageDepth() const
ImageFitMode getImageFitMode(GUI_RotoView view) const
LeafData & operator=(const LeafData &)=delete
void setVolumeFogEnd(fpreal e)
const UT_StringRef & getDOFTexture() const
bool showDisplay() const
bool drawWalls() const
const HeadlightParms & headlightParms() const
GUI_DisplaySetType getDisplaySetRemap(GUI_DisplaySetType t) const
UT_Color getDefaultMaterialDiffuse() const
const int GUI_NUM_DISPLAY_SETS
void drawEnvironmentMaps(bool onoff)
fpreal getUniformFogStart() const
bool isDefaultMatCapDirty() const
bool showSelected() const
int getUniformFogHeightMode() const
void applySelectMask(bool onoff)
fpreal foregroundOpacity() const
bool showFootprints() const
void drawVertexAttrib2D(bool onoff)
void setVolumeFogIntensity(fpreal f)
void setDisplaySetRemap(GUI_DisplaySetType follower, GUI_DisplaySetType reference)
Remap the display option set to another set.
bool drawSafeArea() const
fpreal getVolumeFogIntensity() const
void setSeparateStereoRender(gui_StereoPass pass)
bool envMapImage(GUI_RotoView view) const
fpreal getUVMapScale() const
GLubyte GLubyte GLubyte GLubyte w
Definition: glcorearb.h:857
void drawBadges(bool onoff)
void showFootprints(bool onoff)
void drawSafeArea(bool onoff)
bool useMaterialOverrides() const
fpreal getDOFBokehAspect() const
bool isUniformFogEnabled() const
void moveModeOn(bool onoff)
void setDOFBokeh(DOFBokeh b)
void setRenderType(GR_RenderVersion t)
bool allowSceneLighting() const
GLboolean r
Definition: glcorearb.h:1222
int handleHighlightSize() const
void allowSceneLighting(bool allow)
bool applySelectMask() const
ImageBuf OIIO_API crop(const ImageBuf &src, ROI roi={}, int nthreads=0)
PhysicalSkyParms & physicalSkyParms()
fpreal originGnomonSize() const
bool moveModeOn() const
that also have some descendant prim *whose name begins with which in turn has a child named baz where *the predicate and *a name There is also one special expression reference
void setShadowMapMemMB(int mem)
void showNonSelected(bool onoff)
void setUniformFogEnd(fpreal e)
void setUseHeadlight(bool headlight)
RV_ImageDim
Definition: RV_Type.h:120
bool isVolumeFogEnabled() const
void setImageMaxUV(float arr[2])
void getVolumeFogLightScatter(fpreal &para, fpreal &perp) const
unsigned getSelectMask() const
void autoDetectAttribType2D(bool onoff)
void useMaterialOverrides(bool ovr)
void getImageScale(GUI_RotoView view, float arr[2]) const
void setImageResFraction(fpreal fraction)
void setBloomIntensity(fpreal i)
void setUniformFogDensity(fpreal d)
void mssPacked(bool mp)
UT_Vector2T< int32 > UT_Vector2i
HeadlightType getHeadlightType() const
bool isBloomEnabled() const
bool drawXRay() const
void setUniformFogEnable(bool fog)
void objectMaterialLimit(int m)
GR_DisplayOption & getDisplaySet(GUI_DisplaySetType type)
Direct cccess to the display set, without any mapping.
DomelightParms & domelightParms()
UT_Vector2i getFixedImageRes() const