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 #ifdef USE_VULKAN
29 #include <RV/RV_Type.h>
30 class RV_Render;
31 #endif
32 
33 class GUI_RotoscopeData;
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 #ifdef USE_VULKAN
268  bool getRotoVkTexture(RV_Render *r,
269  RV_TextureRef &tex_ref,
270  RV_ImageDim &tex_type,
272  float &quality,
273  float &aspect_ratio) const;
274 #endif
275 
276 
277  void getRotoResolution(GUI_RotoView type, UT_Vector2i &res);
278 
279  bool setRotoFileParms(GUI_RotoView type,
280  const char *file, float quality);
281  bool setRotoCopParms(GUI_RotoView type,
282  const char *path, float quality);
283  void setRotoSource(GUI_RotoView type,bool file);
284 
285  void setRotoTime(fpreal t);
286  bool isRotoTimeDependent(GUI_RotoView type) const;
287 
288  fpreal getRotoQuality() const;
289  void setRotoQuality(fpreal q);
290 
291  void setRotoPath(GUI_RotoView type,
292  bool file_path, const char *path);
293  bool isRotoFile(GUI_RotoView type) const;
294  const char *getRotoCopPath(GUI_RotoView type) const;
295  const char *getRotoFilePath(GUI_RotoView type) const;
296 
297  UI_Value &getRotoCopCookNotify(GUI_RotoView type);
298  UI_Value &getRotoCopNameChangeNotify(GUI_RotoView type);
299 
300  void setForegroundImageEnable(bool enable)
301  { myFlags.showForegroundImage = enable; }
303  { return myFlags.showForegroundImage; }
304  void setForegroundImage(const UT_StringRef &file_node_path)
305  { myFGImage = file_node_path; }
306  const UT_StringRef &getForegroundImage() const { return myFGImage; }
307  void setForegroundImageDepth(bool enable)
308  { myFlags.useForegroundDepth = enable; }
310  { return myFlags.useForegroundDepth; }
312  { myFGDepthPlane = plane; }
314  { return myFGDepthPlane; }
316  {
321  DEPTH_WORLD_POS
322  };
324  { myFGDepthStyle = style; }
326  { return myFGDepthStyle; }
327 
328  void foregroundOpacity(fpreal opacity)
329  { myFGOpacity = SYSclamp(opacity, 0.0, 1.0); }
331  { return myFGOpacity; }
332 
333  void getImageMinUV(float arr[2]) const
334  {
335  arr[0] = myImageMinUV[0];
336  arr[1] = myImageMinUV[1];
337  }
338  void setImageMinUV(float arr[2])
339  {
340  myImageMinUV[0] = arr[0];
341  myImageMinUV[1] = arr[1];
342  }
343  void getImageMaxUV(float arr[2]) const
344  {
345  arr[0] = myImageMaxUV[0];
346  arr[1] = myImageMaxUV[1];
347  }
348  void setImageMaxUV(float arr[2])
349  {
350  myImageMaxUV[0] = arr[0];
351  myImageMaxUV[1] = arr[1];
352  }
353 
354  void getImageOffset(GUI_RotoView view, float arr[2]) const
355  {
356  arr[0] = myRotoViews[view].myImageOffset[0];
357  arr[1] = myRotoViews[view].myImageOffset[1];
358  }
359  void setImageOffset(GUI_RotoView view, float arr[2])
360  {
361  myRotoViews[view].myImageOffset[0] = arr[0];
362  myRotoViews[view].myImageOffset[1] = arr[1];
363  }
364  void getImageScale(GUI_RotoView view, float arr[2]) const
365  {
366  arr[0] = myRotoViews[view].myImageScale[0];
367  arr[1] = myRotoViews[view].myImageScale[1];
368  }
369  void setImageScale(GUI_RotoView view, float arr[2])
370  {
371  myRotoViews[view].myImageScale[0] = arr[0];
372  myRotoViews[view].myImageScale[1] = arr[1];
373  }
374 
375  float getOpacity(GUI_RotoView view) const
376  { return myRotoViews[view].myOpacity; }
377  void setOpacity(GUI_RotoView view, float opacity)
378  { myRotoViews[view].myOpacity = opacity; }
379 
380  enum class ImageFitMode
381  {
382  /// Fit the image so that the horizontal dimension fits within the viewport
383  /// _________
384  /// ||_________||
385  /// || ||
386  /// ||_________||
387  /// ||_________||
388  ///
389  HORIZONTAL = 0,
390 
391  /// Fit the image so that the vertical dimension fits within the viewport
392  /// ___ _________ ___
393  /// | || || |
394  /// | || || |
395  /// | || || |
396  /// |___||_________||___|
397  ///
398  VERTICAL,
399 
400  /// Stretch the image to fit within the viewport
401  /// _________
402  /// || ||
403  /// || ||
404  /// || ||
405  /// ||_________||
406  ///
407  FILL,
408 
409  /// Scale the image to so that the longest dimension fits within the viewport
410  /// _________
411  /// ||_________||
412  /// || ||
413  /// ||_________||
414  /// ||_________||
415  ///
416  SCALE,
417 
418  NUM_FIT_MODES
419  };
420 
421  ImageFitMode
423  { return myRotoViews[view].myImageFitMode; }
425  { myRotoViews[view].myImageFitMode = fit_mode; }
426 
427  float getBrightness(GUI_RotoView view) const
428  { return myRotoViews[view].myBrightness; }
429  void setBrightness(GUI_RotoView view, float brightness)
430  { myRotoViews[view].myBrightness = brightness; }
431 
432  void autoPlaceImage(GUI_RotoView view, bool onoff)
433  { myRotoViews[view].myAutoPlaceImage = onoff; }
434  bool autoPlaceImage(GUI_RotoView view) const
435  { return myRotoViews[view].myAutoPlaceImage; }
436 
437  void envMapImage(GUI_RotoView view, bool onoff)
438  { myRotoViews[view].myEnvMapImage = onoff; }
439  bool envMapImage(GUI_RotoView view) const
440  { return myRotoViews[view].myEnvMapImage; }
441 
442  int isRotoFileVideo(GUI_RotoView view) const;
443 
444  int getRotoVideoClipStartFrame(GUI_RotoView view) const;
445  void setRotoVideoClipStartFrame(GUI_RotoView view, int start_frame);
446 
447  int getRotoVideoClipEndFrame(GUI_RotoView view) const;
448  void setRotoVideoClipEndFrame(GUI_RotoView view, int end_frame);
449 
450  fpreal getRotoVideoPlaybackStartFrame(GUI_RotoView view) const;
451  void setRotoVideoPlaybackStartFrame(GUI_RotoView view, fpreal start_frame);
452 
453  fpreal getRotoVideoPlaybackSpeed(GUI_RotoView view) const;
454  void setRotoVideoPlaybackSpeed(GUI_RotoView view, fpreal speed);
455 
456  const char * getRotoVideoColorSpace(GUI_RotoView view) const;
457  void setRotoVideoColorSpace(GUI_RotoView view, const char *color_space);
458 
459  bool getRotoVideoFrameRateEnabled(GUI_RotoView view) const;
460  void setRotoVideoFrameRateEnabled(GUI_RotoView view, bool enabled);
461 
462  fpreal getRotoVideoFrameRate(GUI_RotoView view) const;
463  void setRotoVideoFrameRate(GUI_RotoView view, fpreal frame_rate);
464 
465  int getRotoVideoRotation(GUI_RotoView view) const;
466  bool getRotoVideoIsRotated(GUI_RotoView view) const;
467 
468  bool getRotoVideoIsTopFirst(GUI_RotoView view) const;
469 
470  int getRotoVideoSourceFrameCount(GUI_RotoView view) const;
471  fpreal getRotoVideoSourceFrameRate(GUI_RotoView view) const;
472 
473  void setUseFixedImageRes(bool use_fixed)
474  { myUseFixedImageRes = use_fixed; }
475  bool getUseFixedImageRes() const
476  { return myUseFixedImageRes; }
477  void setUseViewportRes(bool use_vp)
478  { myUseViewportRes = use_vp; }
479  bool getUseViewportRes() const
480  { return myUseViewportRes; }
481  void setFixedImageRes(int w, int h)
482  {
483  if(myForLopsView)
484  myFixedImageRes.assign(w,h);
485  }
487  { return myForLopsView ? myFixedImageRes : UT_Vector2i(0,0); }
488  void setCurrentImageRes(int w, int h)
489  { myCurrentImageRes.assign(w,h); }
491  { return myForLopsView ? myCurrentImageRes :UT_Vector2i(0,0); }
493  { myImageResFraction =fraction; }
495  { return myImageResFraction; }
496 
497  bool getCameraCropMask() const { return myCameraCropMask; }
498  void setCameraCropMask(bool crop) { myCameraCropMask = crop; }
499 
500  static const char *getRotoViewName(GUI_RotoView view);
501  /// @}
502 
503  /// Methods to query/change the scale at which handles are drawn.
504  /// @{
505  static float getHandleScale() { return theHandleScale; }
506  static void setHandleScale(float v)
507  { theHandleScale = SYSclamp(v, 0.01f, 1.0f); }
508  /// @}
509 
510  // This method is called when user options are being destroyed.
511  void removeUserOption(int option_id);
512 
513  /// Refresh the cached version keys for the enabled user options to reflect
514  /// the most up-to-date version.
515  void refreshUserOptionVersions();
516 
517  /// State which switches the geometry context display options between the
518  /// Scene and Model display sets. When at the object level, the scene is
519  /// used.
520  /// @{
521  bool isObjectLevel() const { return myNoSaveFlags.isObjectLevel; }
522  void setObjectLevel(bool onoff);
523  /// @}
524 
525  /// The select mask is set when the user is in a "select" state to
526  /// automatically turn on some decorations. The mask is used to
527  /// temporarily tweak the appropriate display options, and does not,
528  /// in and of itself, invalidate display lists.
529  /// @{
530  unsigned getSelectMask() const { return mySelectMask; }
531  void setSelectMask(unsigned mask) { mySelectMask = mask; }
532  /// @}
533 
534  /// This value is changed when the scene is switched from obj to sop/dop
535  /// level.
536  UI_Value &getObjectLevelNotify() { return myObjectLevelNotify; }
537 
538  /// For the OpenGL ROP only: Allows a single stereo camera to be rendered.
540  {
543  GUI_DISP_STEREO_RIGHT
544  };
545 
546  /// Allow rendering of a single stereo camera eye.
547  /// @{
549  { myStereoPass = pass; }
550  bool isStereoLeftRender() const
551  { return (myStereoPass == GUI_DISP_STEREO_BOTH ||
552  myStereoPass == GUI_DISP_STEREO_LEFT); }
553  bool isStereoRightRender() const
554  { return (myStereoPass == GUI_DISP_STEREO_BOTH ||
555  myStereoPass == GUI_DISP_STEREO_RIGHT); }
556  /// @}
557 
558  /// Returns true if any of the geometry contexts have this option set.
559  /// @{
560  ANY_FLAG_ACTIVE_IN_SETS(drawPointCoincident);
561  ANY_FLAG_ACTIVE_IN_SETS(drawPointMarkers);
562  ANY_FLAG_ACTIVE_IN_SETS(uvFillOverlap);
563  /// @}
564 
565  /// Auto-select quality/preformance presets based on hardware queries.
566  /// Only works at startup.
567  void updateOptionsForHardware(RE_RenderContext r);
568 
569 
570  /// Returns true if the passed options are compatible with these options,
571  /// meaning that update() does not need to be called on GR_Primitives if
572  /// 'opt' is used after this option. This could happen if 'opt' had a marker
573  /// on that required an attribute that this options set does not.
574  bool compatibleWith(const GUI_DisplayOption &opt) const;
575 
576  void setUseHeadlight(bool headlight)
577  { myUseHeadlight = headlight; }
578  bool useHeadlight() const { return myUseHeadlight; }
579 
581  {
586  };
587 
588  void setHeadlightType(HeadlightType type) { myHeadlightType = type; }
589  HeadlightType getHeadlightType() const { return myHeadlightType; }
590 
591  // Headlight parms (distant light)
593  {
595  fpreal Intensity = 1.0;
596  fpreal Ambient = 0.02; // VK
597  fpreal Azimuth = 22; // VK
598  fpreal Altitude = 22; // VK
599  fpreal Softness = 0.0; // VK
600  bool Specular = true;
601  };
602 
603  HeadlightParms &headlightParms() { return myHeadlightParms; }
604  const HeadlightParms &headlightParms() const { return myHeadlightParms; }
605 
606  // Domelight parms (straight env light)
608  {
612  fpreal Intensity = 1.0;
613  fpreal Exposure = 0.0;
614  bool ShowBackground = false;
615  };
616 
617  DomelightParms &domelightParms() { return myDomelightParms; }
618  const DomelightParms &domelightParms() const { return myDomelightParms; }
619 
620  UT_StringHolder getDomelightMapPath() const;
621 
622  // Physical sky headlight (distant + dome)
624  {
625  fpreal Azimuth = 0.0;
626  fpreal Altitude = 45.0;
627  fpreal Intensity = 1.0;
628  fpreal Exposure = 0.0;
629  bool UseSun = true;
630  fpreal Size = 0.51;
631  bool UseSky = true;
632  fpreal Turbidity = 3.0;
634  fpreal HorizonBlur = 0.5;
635  fpreal SunIntensity = 1.0;
636  fpreal SkyIntensity = 1.0;
637  fpreal Saturation = 1.0;
638  bool ShowBackground = false;
639  };
640  PhysicalSkyParms &physicalSkyParms() { return myPhysicalSkyParms; }
641  const PhysicalSkyParms &physicalSkyParms() const { return myPhysicalSkyParms; }
642 
644  {
648  fpreal KeyIntensity = 1.0;
649  fpreal KeyExposure = 0.0;
650  fpreal KeyAltitude = 33.0;
651  fpreal KeyAzimuth = 55.0;
652  fpreal FillIntensity = 0.4;
653  fpreal FillExposure = 0.0;
654  fpreal FillAltitude = 30.0;
655  fpreal FillAzimuth = -80.0;
656  fpreal BackIntensity = 0.5;
657  fpreal BackExposure = 0.0;
658  fpreal BackAltitude = 35.0;
659  fpreal BackAzimuth = -170.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  void setShadowMapMemMB(int mem) { myShadowMapMemMB = SYSmax(1,mem);}
677  int getShadowMapMemMB() const { return myShadowMapMemMB;}
679  { myShadowMapGenTime=SYSmax(0.0,t); }
680  fpreal getShadowMapGenTime() const { return myShadowMapGenTime; }
681  void setLightSamplingLimit(int limit) {myLightSampleLimit = limit;}
682  int getLightSamplingLimit() const { return myLightSampleLimit; }
683  bool hasLightSamplingLimit() const { return myLightSampleLimit>0; }
685  { myFlags.fastHQIntLight = e; }
687  { return myFlags.fastHQIntLight; }
688 
689  void allowSceneLighting(bool allow)
690  { myFlags.allowSceneLighting = allow; }
691  bool allowSceneLighting() const
692  { return myFlags.allowSceneLighting; }
693 
694  void setDOFEnable(bool dof) { myFlags.dofEnable = dof; }
695  bool isDOFEnabled() const { return myFlags.dofEnable; }
696  enum DOFBokeh
697  {
700  DOF_TEXTURE_BOKEH
701  };
702  void setDOFBokeh(DOFBokeh b) { myDOFBokeh = b; }
703  DOFBokeh getDOFBokeh() const { return myDOFBokeh; }
704  void setDOFTexture(const UT_StringRef &tex) { myDOFTex = tex; }
705  const UT_StringRef &getDOFTexture() const { return myDOFTex; }
706  fpreal getDOFBokehAspect() const { return myDOFBokehAspect; }
707  void setDOFBokehAspect(fpreal a) { myDOFBokehAspect=SYSmax(a,0.01); }
708  fpreal getDOFBokehBoost() const { return myDOFBokehBoost; }
709  void setDOFBokehBoost(fpreal b) { myDOFBokehBoost = b; }
710 
711  // Uniform fog
712  void setUniformFogEnable(bool fog) { myFlags.uniformFogEnable=fog; }
713  bool isUniformFogEnabled() const { return myFlags.uniformFogEnable;}
714  void setUniformFogDensity(fpreal d) { myUniformFog.myFogDensity=d; }
715  fpreal getUniformFogDensity() const{return myUniformFog.myFogDensity;}
716  void setUniformFogOpacity(fpreal d) { myUniformFog.myFogOpacity=d; }
717  fpreal getUniformFogOpacity() const{return myUniformFog.myFogOpacity;}
719  { myUniformFog.myFogColor = c; }
720  UT_Vector3F getUniformFogColor() const { return myUniformFog.myFogColor; }
721  void setUniformFogStart(fpreal s) { myUniformFog.myFogStart = s; }
722  fpreal getUniformFogStart() const { return myUniformFog.myFogStart; }
723  void setUniformFogEnd(fpreal e) { myUniformFog.myFogEnd = e; }
724  fpreal getUniformFogEnd() const { return myUniformFog.myFogEnd; }
726  { return myUniformFog.myFogHeightMode; }
728  { myUniformFog.myFogHeightMode = SYSclamp(m,-1,1); }
729  fpreal getUniformFogHeight() const { return myUniformFog.myFogHeight;}
730  void setUniformFogHeight(fpreal h) { myUniformFog.myFogHeight = h; }
732  { return myUniformFog.myFogFalloff; }
734  { myUniformFog.myFogFalloff = f; }
736  { myUniformFog.myFogIntensity=SYSmax(0.0,f); }
738  { return myUniformFog.myFogIntensity; }
739 
740  void setUniformFogSunBloom(fpreal f) { myUniformFogSunBloom = f; }
741  fpreal getUniformFogSunBloom() const { return myUniformFogSunBloom; }
742  void setUniformFogUseSun(bool d) { myUniformFogUseSun = d; }
743  bool getUniformFogUseSun() const { return myUniformFogUseSun; }
744  void setUniformFogUseClip(bool d)
745  { myUniformFogUseClip = d; }
746  bool getUniformFogUseClip() const
747  { return myUniformFogUseClip; }
749  { myUniformFogClipDistance = d; }
751  { return myUniformFogClipDistance; }
752 
753 
754  // Volume Fog
755  void setVolumeFogEnable(bool fog) { myFlags.volumeFogEnable=fog; }
756  bool isVolumeFogEnabled() const { return myFlags.volumeFogEnable;}
757  void setVolumeFogDensity(fpreal d) { myVolumeFog.myFogDensity=d; }
758  fpreal getVolumeFogDensity() const{return myVolumeFog.myFogDensity;}
759  void setVolumeFogOpacity(fpreal d) { myVolumeFog.myFogOpacity=d; }
760  fpreal getVolumeFogOpacity() const{return myVolumeFog.myFogOpacity;}
762  { myVolumeFog.myFogColor = c; }
763  UT_Vector3F getVolumeFogColor() const { return myVolumeFog.myFogColor; }
764  void setVolumeFogStart(fpreal s) { myVolumeFog.myFogStart = s; }
765  fpreal getVolumeFogStart() const { return myVolumeFog.myFogStart; }
766  void setVolumeFogEnd(fpreal e) { myVolumeFog.myFogEnd = e; }
767  fpreal getVolumeFogEnd() const { return myVolumeFog.myFogEnd; }
769  { return myVolumeFog.myFogHeightMode; }
771  { myVolumeFog.myFogHeightMode = SYSclamp(m,-1,1); }
772  fpreal getVolumeFogHeight() const { return myVolumeFog.myFogHeight;}
773  void setVolumeFogHeight(fpreal h) { myVolumeFog.myFogHeight = h; }
775  { return myVolumeFog.myFogFalloff; }
777  { myVolumeFog.myFogFalloff = f; }
779  { myVolumeFog.myFogIntensity=SYSmax(0.0,f); }
781  { return myVolumeFog.myFogIntensity; }
782  int getVolumeFogQuality() const { return myVolumeFogQuality; }
784  { myVolumeFogQuality = SYSclamp(q, 0,3); }
786  {
787  myVolumeFogScatterPara = SYSmax(0.0, para);
788  myVolumeFogScatterPerp = SYSmax(0.0, perp);
789  }
790  void getVolumeFogLightScatter(fpreal &para, fpreal &perp) const
791  {
792  para = myVolumeFogScatterPara;
793  perp = myVolumeFogScatterPerp;
794  }
795 
796  void setBloomEnable(bool e) { myFlags.bloom = e; }
797  bool isBloomEnabled() const { return myFlags.bloom; }
798  void setBloomScale(fpreal sc) { myBloomScale = sc; }
799  fpreal getBloomScale() const { return myBloomScale; }
800  void setBloomIntensity(fpreal i) { myBloomIntensity = i; }
801  fpreal getBloomIntensity() const { return myBloomIntensity; }
802  void setBloomThreshold(fpreal th) { myBloomThreshold = th; }
803  fpreal getBloomThreshold() const { return myBloomThreshold; }
804 
805  void setFogNode(const char *node) { myFogNode = node; }
806  const UT_StringRef &getFogNode() const { return myFogNode; }
807 
809  {
810  DEFAULT_MATERIAL_SIMPLE = 0,
811  DEFAULT_MATERIAL_MATCAP
812  };
813  void setDefaultMaterialType(DefaultMaterialType type);
814  void setDefaultMatCapFile(const UT_StringRef &tex_filepath);
815  void setDefaultMatCapIntensity(fpreal intensity);
816  void setDefaultMaterialDiffuse(UT_Color col);
817  void setDefaultMaterialSpecular(UT_Color col);
818  void setDefaultMaterialAmbient(UT_Color col);
819  void setDefaultMaterialEmission(UT_Color col);
820  void setDefaultMaterialRoughness(fpreal rough);
821  void setDefaultMaterialSpecRoughness(fpreal srough);
822 
824  { return myDefaultMatType; }
826  { return myDefaultMatCapFile; }
828  { return myDefaultMatCapIntensity; }
829  UT_Color getDefaultMaterialDiffuse() const { return myDefaultDiffuse; }
830  UT_Color getDefaultMaterialSpecular() const{ return myDefaultSpecular; }
831  UT_Color getDefaultMaterialAmbient() const { return myDefaultAmbient; }
832  UT_Color getDefaultMaterialEmission() const{ return myDefaultEmission; }
833  fpreal getDefaultMaterialRoughness() const{ return myDefaultRough; }
835  { return myDefaultSpecRough; }
836 
837  bool isDefaultMaterialDirty() const{ return myDefaultMaterialDirty;}
838  void clearDefaultMaterialDirty() { myDefaultMaterialDirty=false;}
839 
840  bool isDefaultMatCapDirty() const{ return myDefaultMatCapDirty;}
841  bool clearDefaultMatCapDirty(){ return myDefaultMatCapDirty=false;}
842 
843  void forceMSSUpdate(bool) { myMSSUpdateSerial++; }
844  exint getMSSUpdateSerial() const { return myMSSUpdateSerial; }
845 
846  void getRecommendedTextureLimit(RE_Render *r,
847  int &max2d, int &max3d) const;
848 private:
849  // data:
850 
851  GR_DisplayOption *myDisplaySet[GUI_NUM_DISPLAY_SETS];
852  GUI_DisplaySetType myDisplaySetMap[GUI_NUM_DISPLAY_SETS];
853  GR_CommonDispOption myCommonOptions; // global to viewport
854 
855  float myImageMinUV[2];
856  float myImageMaxUV[2];
857 
858  fpreal myOriginGnomonSize;
859  fpreal myFloatingGnomonSize;
860  int myHandleHighlightSize;
861 
862  static float theHandleScale;
863 
864  HeadlightParms myHeadlightParms;
865  DomelightParms myDomelightParms;
866  PhysicalSkyParms myPhysicalSkyParms;
867  ThreePointParms myThreePointParms;
868  bool myUseHeadlight = false;
869  bool myHeadlightHQ = false;
870  bool myHeadlightDirty = true;
871  HeadlightType myHeadlightType = HEADLIGHT;
872  UT_Color myDefaultDiffuse;
873  UT_Color myDefaultSpecular;
874  UT_Color myDefaultEmission;
875  UT_Color myDefaultAmbient;
876  fpreal myDefaultRough;
877  fpreal myDefaultSpecRough;
878  bool myDefaultMaterialDirty;
879 
880  DefaultMaterialType myDefaultMatType;
881  UT_StringHolder myDefaultMatCapFile;
882  fpreal myDefaultMatCapIntensity;
883  bool myDefaultMatCapDirty;
884 
885  fpreal myXRayWireStrength;
886 
887  struct
888  {
891  float myImageOffset[2] = {0.0f, 0.0f};
892  float myImageScale[2] = {1.0f, 1.0f};
893  float myOpacity = 1.0f;
894  float myBrightness = 1.0f;
895  bool myAutoPlaceImage = false;
896  ImageFitMode myImageFitMode = ImageFitMode::SCALE;
897  bool myEnvMapImage = false;
898  } myRotoViews[GUI_NUM_ROTO_VIEWS];
899 
900  UT_StringHolder myFGImage;
901  UT_StringHolder myFGDepthPlane;
902  FGDepthStyle myFGDepthStyle;
903  fpreal myFGOpacity;
904 
905  unsigned mySelectMask; // mask of entities the user
906  // wants to select. Not saved.
907  struct
908  {
909  unsigned
910  showSelected :1,
911  showNonSelected :1,
912  showTemplates :1,
913  showFootprints :1,
914  showCurrentOutput :1,
915  showDisplay :1,
916  showGuides :1,
917  showObjectNames :1,
918  showFullNames :1,
919  drawOrigin :1,
920  drawStickyOrigin :1,
921  drawViewPivot :1,
922  drawWalls :1, // draw bounding walls
923  drawXYPlane :1, // draw XY reference plane
924  drawXZPlane :1, // draw XZ reference plane
925  drawYZPlane :1, // draw YZ reference plane
926  drawFieldGuide :1,
927  drawSafeArea :1,
928  drawBackgrounds :1, // draw background images
929  drawEnvironmentMaps :1,
930  drawFilteredBackgrounds:1, // filter background in UV viewport.
931  drawVertexAttrib2D :1, // use vertex attribute
932  autoDetectAttribType2D:1, // automatically track the attribute type
933  drawSpecular :1, // specular highlights
934  showIKCriticalZones :1, // inverse kin. danger zones
935  drawCameraMask :1,
936  drawBadges :1, // show viewport status badges
937  drawXRay :1, // allow draw of xray objs
938  xrayQuality :1, // fast/quality xray draw
939  drawObjOrigins :1, // allow draw of obj axes
940  applySelectMask :1, // select mask drives specific decorations
941  useOverrides :1, // Apply material overrides
942  mssEnable :1, // Apply material stylesheets
943  mssPacked :1, // Eval material stylesheets for packed geo
944  mssPerPrim :1, // per-prim material stylesheet eval
945  dofEnable :1, // Depth of field
946  uniformFogEnable :1, // Fog (uniform)
947  volumeFogEnable :1, // Fog (volumetric)
948  bloom :1, // Light bloom
949  showForegroundImage :1, // FG Image
950  useForegroundDepth :1, // Use FG Image depth plane if present
951  fastHQIntLight :1, // Lower samples in HQ Lighting/interaction
952  allowSceneLighting :1; // Scene Lights allowed to render.
953 
954  } myFlags;
955 
956  struct
957  {
958  unsigned isObjectLevel :1; // Is this an object view?
959  } myNoSaveFlags;
960 
961  // whether shading mode change is enabled/disabled
962  bool myMoveModeOn;
963  int myObjectMaterialLimit;
964 
965  gui_StereoPass myStereoPass;
966  UI_Value myObjectLevelNotify;
967  bool myLoadedDefaults;
968  exint myMSSUpdateSerial;
969  gui_MatAssignMode myMatAssignMode;
970  bool myMatUpdate;
971  bool myForLopsView;
972 
973  int myHQLightLimit;
974  int myLightSampleLimit;
975  int myShadowMapMemMB;
976  fpreal myShadowMapGenTime;
977 
978  UT_IntArray mySceneOptions;
979  UT_Vector2i myFixedImageRes;
980  UT_Vector2i myCurrentImageRes;
981  fpreal myImageResFraction;
982  bool myUseFixedImageRes;
983  bool myUseViewportRes;
984  bool myCameraCropMask;
985  mutable bool myPhysicalSkyFileDirty = true;
986  mutable UT_StringHolder myPhysicalSkyFile;
987 
988  class FogParms
989  {
990  public:
991  FogParms() : myFogColor(1.0,1.0,1.0), myFogDensity(1.0),
992  myFogOpacity(1.0), myFogStart(0.0), myFogEnd(1000.0),
993  myFogHeightMode(0), myFogHeight(100.0),
994  myFogIntensity(1.0), myFogFalloff(10.0)
995  {}
996  UT_Vector3F myFogColor;
997  fpreal myFogDensity;
998  fpreal myFogOpacity;
999  fpreal myFogStart;
1000  fpreal myFogEnd;
1001  int myFogHeightMode;
1002  fpreal myFogHeight;
1003  fpreal myFogIntensity;
1004  fpreal myFogFalloff;
1005  };
1006  FogParms myUniformFog;
1007  fpreal myUniformFogClipDistance;
1008  bool myUniformFogUseClip = true;
1009  bool myUniformFogUseSun;
1010  fpreal myUniformFogSunBloom;
1011 
1012  FogParms myVolumeFog;
1013  int myVolumeFogQuality;
1014  fpreal myVolumeFogScatterPara;
1015  fpreal myVolumeFogScatterPerp;
1016  UT_StringHolder myFogNode;
1017 
1018  fpreal myBloomScale;
1019  fpreal myBloomIntensity;
1020  fpreal myBloomThreshold;
1021 
1022  DOFBokeh myDOFBokeh;
1023  UT_StringHolder myDOFTex;
1024  fpreal myDOFBokehAspect;
1025  fpreal myDOFBokehBoost;
1026 
1027  UT_StringHolder myUVMapFile;
1028  fpreal myUVMapScale;
1029  GR_RenderVersion myRenderType;
1030 };
1031 
1032 #endif
fpreal getUniformFogHeight() const
type
Definition: core.h:556
FGDepthStyle getForegroundDepthStyle() const
bool drawXYPlane() const
#define SYSmax(a, b)
Definition: SYS_Math.h:1582
UI_Value & getObjectLevelNotify()
void drawObjectOrigins(bool org)
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
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
bool drawOrigin() const
void setVolumeFogFalloff(fpreal f)
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_Type.h:203
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 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:1057
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
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:278
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