HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GR_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: GR_DisplayOption.h
7  *
8  * COMMENTS: Drawing options for the render library. Authored by Mark.
9  *
10  */
11 
12 
13 #ifndef __GR_DisplayOption_h__
14 #define __GR_DisplayOption_h__
15 
16 #include "GR_API.h"
17 #include <string.h>
18 #include <UT/UT_VectorTypes.h>
19 #include <UT/UT_SymbolTable.h>
20 #include <UT/UT_Color.h>
21 #include <UT/UT_Array.h>
22 #include "GR_Defines.h"
23 #include "GR_CommonDispOption.h"
24 #include "GR_OptionTable.h"
25 #include "GR_UserOption.h"
26 
27 class RE_Render;
28 class GR_LightList;
29 
30 #define ASSIGN_BUMP(flag) if(myFlags.flag != onoff) mySerialNum++; \
31  myFlags.flag=onoff
32 
33 class GR_UserOption;
34 
36 {
37 public:
38  GR_DisplayOption(GR_CommonDispOption *common_options = 0,
39  int t = 0, bool for_lops = false);
42 
43  // Return the display set type this option set represents
44  int getDisplaySet() const { return myDisplaySet; }
45 
47 
48  // Copy all but the common display options from the given GR_DisplayOption
49  // object.
50  void copyNonCommon(const GR_DisplayOption &opt);
51 
52  // Copy the user options (not done by copyNonCommon).
53  void copyUserOptions(const GR_DisplayOption &opt);
54 
55  // Refresh the version key for all of the enabled user options from the
56  // global option table.
57  void refreshUserOptionVersions();
58 
59  // Return whether or not the specified object has the same set of enabled
60  // user options. Version keys are ignored.
61  bool userOptionStatesEqual(
62  const GR_DisplayOption &opt) const;
63 
64  // Set the enabled user options to match the specified object. Note that
65  // version keys are also copied. However, this is irrelevant as version
66  // keys only matter while drawing and will have been refreshed in that
67  // case anyway.
68  void matchUserOptionStates(const GR_DisplayOption &opt);
69 
70  // Class I/O methods. Return true if successful, false if not.
71  bool save(std::ostream &, int indent=0) const;
72  bool load(UT_IStream &);
73 
74  const char *className() const;
75 
76  // Set the shading mode. The draw mode is either wireframe or shaded,
77  // but the shading mode can be hiddenwire, flag shaded, wire over gouraud,
78  // etc. Changing the shading mode will change the drawing mode as well as
79  // other flags in this class.
80  void shadingMode(GR_ShadingMode shading_mode);
81 
82  // Find which shading mode we're currently using.
83  GR_ShadingMode shadingMode() const;
84 
85  // Utility methods to convert a GR_BoundaryMode to/from a token. The parse
86  // method returns GR_BOUNDARY_NONE on a failure.
87  static void saveBoundaryMode(std::ostream &os, GR_BoundaryMode mode);
88  static GR_BoundaryMode parseBoundaryMode(const char *token,
89  bool for_uv_view = false);
90 
91  // Utility methods to convert a GR_ShadingMode to/from a token. The parse
92  // method returns -1 on a failure.
93  static void saveShadingMode(std::ostream &os, GR_ShadingMode mode);
94  static int parseShadingMode(const char *token);
95 
96  // "Get" methods.
97  bool drawPointMarkers() const { return myFlags.drawPointMarkers; }
98  bool drawPointNums () const { return myFlags.drawPointNums; }
99  bool drawPointNmls () const { return myFlags.drawPointNmls; }
100  bool drawPointTxtNums() const { return myFlags.drawPointTxtNums; }
101  bool drawPointPos () const { return myFlags.drawPointPos; }
102  bool drawPointVelocity() const { return myFlags.drawPointVelocity; }
103  bool drawPointCoincident() const
104  { return myFlags.drawPointCoincident; }
105  bool drawVertexMarkers() const{ return myFlags.drawVertexMarkers; }
106  bool drawVertexNums () const { return myFlags.drawVertexNums; }
107  bool drawVertexTxtNums() const { return myFlags.drawVertexTxtNums; }
108  bool drawVertexNmls () const { return myFlags.drawVertexNmls; }
109  bool drawPrimNums () const { return myFlags.drawPrimNums; }
110  bool drawPrimNmls () const { return myFlags.drawPrimNmls; }
111  bool drawPrimHulls () const { return myFlags.drawPrimHulls; }
112  bool drawPrimBreakpoints() const{return myFlags.drawPrimBreakpoints;}
113  bool drawProfiles () const { return myFlags.drawProfiles; }
114  bool drawProfNums () const { return myFlags.drawProfNums; }
115  bool drawLit () const { return myFlags.drawLit; }
116  bool drawFaded () const { return myFlags.drawFaded; }
117  bool drawGhosted () const { return myFlags.drawGhosted; }
118  bool drawXRay () const { return myFlags.drawXRay; }
119  bool drawUVMap () const { return myFlags.drawUVMap; }
120  bool appliesToSelection() const { return myFlags.appliesToSelection;}
121  bool toggleAffectsSet() const { return myFlags.toggleAffectsSet; }
122  bool boundBox () const;
123  bool hlGhostFill () const;
124  bool hlXray () const;
125  int drawMode () const;
126  bool wireHiddenLine () const;
127  bool flatShaded () const;
128  bool matcapShaded () const;
129  bool wireOverShaded () const;
130 
131  bool lockShadingMode () const { return myFlags.lockShadingMode; }
132  bool uvFillBackFaces () const { return myFlags.uvFillBackFaces; }
133  bool uvFillOverlap () const { return myFlags.uvFillOverlap; }
134  bool tintBackfaces () const { return myFlags.tintBackfaces; }
135 
136  // "Set" methods.
137  void drawPointMarkers(bool onoff){ASSIGN_BUMP(drawPointMarkers);}
138  void drawPointNums(bool onoff) { ASSIGN_BUMP(drawPointNums);}
139  void drawPointNmls(bool onoff) { ASSIGN_BUMP(drawPointNmls);}
140  void drawPointTxtNums(bool onoff) { ASSIGN_BUMP(drawPointTxtNums);}
141  void drawPointPos(bool onoff) { ASSIGN_BUMP(drawPointPos);}
142  void drawPointVelocity(bool onoff){ ASSIGN_BUMP(drawPointVelocity);}
143  void drawPointCoincident(bool onoff)
144  { ASSIGN_BUMP(drawPointCoincident);}
145  void drawVertexMarkers(bool onoff)
146  { ASSIGN_BUMP(drawVertexMarkers);}
147  void drawVertexNums(bool onoff) { ASSIGN_BUMP(drawVertexNums);}
148  void drawVertexNmls(bool onoff) { ASSIGN_BUMP(drawVertexNmls);}
149  void drawVertexTxtNums(bool onoff){ ASSIGN_BUMP(drawVertexTxtNums);}
150  void drawPrimNums (bool onoff) { ASSIGN_BUMP(drawPrimNums);}
151  void drawPrimNmls (bool onoff) { ASSIGN_BUMP(drawPrimNmls);}
152  void drawPrimHulls (bool onoff) { ASSIGN_BUMP(drawPrimHulls);}
153  void drawPrimBreakpoints (bool onoff)
154  { ASSIGN_BUMP(drawPrimBreakpoints);}
155 
156  void drawProfiles (bool onoff) { myFlags.drawProfiles =onoff;}
157  void drawProfNums (bool onoff) { myFlags.drawProfNums =onoff;}
158  void drawLit (bool onoff) { myFlags.drawLit =onoff;}
159  void drawFaded (bool onoff) { myFlags.drawFaded =onoff;}
160  void drawGhosted (bool onoff) { myFlags.drawGhosted =onoff;}
161  void drawXRay (bool onoff) { myFlags.drawXRay =onoff;}
162  void drawUVMap (bool onoff) { ASSIGN_BUMP(drawUVMap);}
163  void appliesToSelection(bool onoff)
164  { myFlags.appliesToSelection = onoff; }
165  void toggleAffectsSet(bool onoff) { myFlags.toggleAffectsSet =onoff;}
166  void lockShadingMode (bool onoff) { myFlags.lockShadingMode =onoff;}
167  void uvFillBackFaces (bool onoff) { myFlags.uvFillBackFaces =onoff;}
168  void uvFillOverlap (bool onoff) { myFlags.uvFillOverlap =onoff;}
169  void tintBackfaces (bool onoff) { myFlags.tintBackfaces =onoff;}
170 
171  // Decorations with enhanced visibility options.
172  void pointMarkersVisible(GR_DecorVisibility m);
173  void pointNumsVisible(GR_DecorVisibility m);
174  void pointNmlsVisible(GR_DecorVisibility m);
175  void pointTxtNumsVisible(GR_DecorVisibility m);
176  void pointPosVisible(GR_DecorVisibility m);
177  void pointVelocityVisible(GR_DecorVisibility m);
178  void vertexMarkersVisible(GR_DecorVisibility m);
179  void vertexNumsVisible(GR_DecorVisibility m);
180  void vertexNmlsVisible(GR_DecorVisibility m);
181  void vertexTxtNumsVisible(GR_DecorVisibility m);
182  void primNumsVisible(GR_DecorVisibility m);
183  void primNmlsVisible(GR_DecorVisibility m);
184  void primBreakpointsVisible(GR_DecorVisibility m);
185 
186  GR_DecorVisibility pointMarkersVisible() const;
187  GR_DecorVisibility pointNumsVisible() const;
188  GR_DecorVisibility pointNmlsVisible () const;
189  GR_DecorVisibility pointTxtNumsVisible() const;
190  GR_DecorVisibility pointPosVisible () const;
191  GR_DecorVisibility pointVelocityVisible () const;
192  GR_DecorVisibility vertexMarkersVisible() const;
193  GR_DecorVisibility vertexNumsVisible() const;
194  GR_DecorVisibility vertexNmlsVisible() const;
195  GR_DecorVisibility vertexTxtNumsVisible() const;
196  GR_DecorVisibility primNumsVisible() const;
197  GR_DecorVisibility primNmlsVisible() const;
198  GR_DecorVisibility primBreakpointsVisible() const;
199 
200  GR_DecorVisibility getVisibilityFor(GR_Decoration d) const;
201 
202  GR_BoundaryMode boundaryMode() const { return myBoundaryMode; }
204  {
205  if (mode != myBoundaryMode)
206  {
207  myBoundaryMode = mode;
208  mySerialNum++;
209  }
210  }
211  GR_BoundaryMode uvBoundaryMode() const { return myBoundaryUVMode; }
213  {
214  if (mode != myBoundaryUVMode)
215  {
216  myBoundaryUVMode = mode;
217  mySerialNum++;
218  }
219  }
220 
221  GR_CommonDispOption&common() { return *myCommonOptions; }
222  const GR_CommonDispOption&common() const { return *myCommonOptions; }
223 
224  void enableUserOption(const char *name, bool onoff);
225  bool getUserOptionState(const char *name) const;
226  void disableAllUserOptions();
227 
229  { return myUserOptions.entries() > 0; }
230 
231  // This method is called when user options are being destroyed. We need
232  // to take the option_id since there is no way at that time for us to map
233  // an option name to the id.
234  void removeUserOption(int option_id);
235 
236  // Methods to query the enabled user options.
237  int getNumUserOptions() const { return myUserOptions.entries(); }
238  const GR_UserOption *getUserOption(int i) const;
239  const GR_UserOption *getOption(const char *name) const;
240  int getOptionId(int i) const;
241 
242  // Display list support
243  void clearNonCachedDrawFlag() const { myNonCachedDrawFlag = false; }
244  void setNonCachedDrawFlag() const { myNonCachedDrawFlag = true; }
245  bool hasNonCachedDraw() const { return myNonCachedDrawFlag ; }
246 
247  void setNonCachedPass(bool nc_pass) { myNonCachedPass = nc_pass; }
248  bool isNonCachedPass() const { return myNonCachedPass; }
249 
250  const GR_LightList *getLightList() const { return common().getLightList(); }
251 
252  int getSerialNum() const { return (common().getSerialNum() +
253  mySerialNum + myRefineSerial); }
254  int getRefineSerial() const { return myRefineSerial; }
255  void bumpRefineSerial() { myRefineSerial++; }
256  int64 getUniqueID() const { return int64(mySerialNum)<<int64(32) |
257  int64(common().getUniqueID()); }
258 
259  void print(std::ostream &os) const;
260 
261  // return true if 'opt' uses the same shading mode and would request the
262  // same attributes as this display option set.
263  bool compatibleWith(const GR_DisplayOption &opt) const;
264 
265  int getVisContext() const { return common().getVisContext(); }
266 
267 private:
268  GR_CommonDispOption *myCommonOptions;
269  int myDisplaySet;
270  bool myOwnCommonOptionsFlag;
271 
272  //
273  // A simple class to store the unique id and version of a GR_UserOption.
274  // This needs to be here or else the UT_Array template won't be able
275  // to compile on Windows.
276  //
277  class gr_UserOptionRef
278  {
279  public:
280  gr_UserOptionRef(): myId(-1), myVersion(-1) {}
281  gr_UserOptionRef( int id, int version )
282  : myId(id), myVersion(version) {}
283 
284  int operator==(const gr_UserOptionRef &opt)
285  { return myId == opt.myId && myVersion == opt.myVersion; }
286  static int compareID(const gr_UserOptionRef *r1,
287  const gr_UserOptionRef *r2)
288  {
289  return r1->myId - r2->myId;
290  }
291 
292  int myId;
293  int myVersion;
294  };
295 
296  // This array consists only of references to the enabled user options, and
297  // is stored sorted by option id for performance reasons.
298  UT_Array<gr_UserOptionRef> myUserOptions;
299 
300  struct grDrawFlags
301  {
302  unsigned drawPointMarkers :1, // draw points
303  drawPointNums :1, // draw point numbers
304  drawPointNmls :1, // draw point normals
305  drawPointTxtNums :1, // draw point texture numbers
306  drawPointPos :1, // draw point positions
307  drawPointVelocity:1, // draw point velocity (v)
308  drawPointCoincident:1, // draw # of point coincidences
309 
310  drawVertexMarkers:1, // draw vertex markers
311  drawVertexNums :1, // draw vertex numbers
312  drawVertexNmls :1, // draw vertex normals
313  drawVertexTxtNums:1, // draw vertex texture numbers
314 
315  drawPrimNums :1, // draw primitive numbers
316  drawPrimNmls :1, // draw primitive normals
317  drawPrimHulls :1, // draw Spline prim hulls
318  drawPrimBreakpoints:1, // draw primitive break points
319 
320  drawProfiles :1, // draw profiles
321  drawProfNums :1, // draw profile numbers
322  drawFaded :1, // draw without point colors or textures
323  drawGhosted :1, // draw blended with BG color
324 
325  appliesToSelection:1, // use for selected or non-selected?
326  toggleAffectsSet:1, // RHS toolbar toggles affect this set
327 
328  drawLit :1,
329  drawXRay :1,
330  drawUVMap :1,
331  lockShadingMode :1,
332  uvFillBackFaces :1,
333  uvFillOverlap :1,
334  tintBackfaces :1;
335  };
336  grDrawFlags myFlags;
337  GR_BoundaryMode myBoundaryMode;
338  GR_BoundaryMode myBoundaryUVMode;
339  GR_ShadingMode myShadingMode;
340  mutable bool myNonCachedDrawFlag;
341  bool myNonCachedPass;
342  int mySerialNum;
343  int myUniqueID;
344  int myRefineSerial;
345  bool myForLops;
346 
348 };
349 
350 inline void
352 { myVisibility[GR_POINT_MARKER] = m;}
353 
354 inline void
356 { myVisibility[GR_POINT_NUMBER] = m; }
357 
358 inline void
360 { myVisibility[GR_POINT_NORMAL] = m; }
361 
362 inline void
364 { myVisibility[GR_POINT_UV] = m; }
365 
366 inline void
368 { myVisibility[GR_POINT_POSITION] = m; }
369 
370 inline void
372 { myVisibility[GR_POINT_VELOCITY] = m; }
373 
374 inline void
376 { myVisibility[GR_VERTEX_MARKER] = m; }
377 
378 inline void
380 { myVisibility[GR_VERTEX_NUMBER] = m; }
381 
382 inline void
384 { myVisibility[GR_VERTEX_NORMAL] = m; }
385 
386 inline void
388 { myVisibility[GR_VERTEX_UV] = m; }
389 
390 inline void
392 { myVisibility[GR_PRIM_NUMBER] = m; }
393 
394 inline void
396 { myVisibility[GR_PRIM_NORMAL] = m; }
397 
398 inline void
400 { myVisibility[GR_PRIM_BREAKPOINT] = m; }
401 
402 inline GR_DecorVisibility
404 { return myVisibility[GR_POINT_MARKER]; }
405 
406 inline GR_DecorVisibility
408 { return myVisibility[GR_POINT_NUMBER]; }
409 
410 inline GR_DecorVisibility
412 { return myVisibility[GR_POINT_NORMAL]; }
413 
414 inline GR_DecorVisibility
416 { return myVisibility[GR_POINT_UV]; }
417 
418 inline GR_DecorVisibility
420 { return myVisibility[GR_POINT_POSITION]; }
421 
422 inline GR_DecorVisibility
424 { return myVisibility[GR_POINT_VELOCITY]; }
425 
426 inline GR_DecorVisibility
428 { return myVisibility[GR_VERTEX_MARKER]; }
429 
430 inline GR_DecorVisibility
432 { return myVisibility[GR_VERTEX_NUMBER]; }
433 
434 inline GR_DecorVisibility
436 { return myVisibility[GR_VERTEX_NORMAL]; }
437 
438 inline GR_DecorVisibility
440 { return myVisibility[GR_VERTEX_UV]; }
441 
442 inline GR_DecorVisibility
444 { return myVisibility[GR_PRIM_NUMBER]; }
445 
446 inline GR_DecorVisibility
448 { return myVisibility[GR_PRIM_NORMAL]; }
449 
450 inline GR_DecorVisibility
452 { return myVisibility[GR_PRIM_BREAKPOINT]; }
453 
454 inline GR_DecorVisibility
456 {
457  if(d < GR_USER_DECORATION)
458  return myVisibility[d];
459 
461 }
462 
463 inline bool
465 {
466  return (myShadingMode == GR_BOUNDING_BOX_WIRE ||
467  myShadingMode == GR_BOUNDING_BOX_SHADED);
468 }
469 
470 inline bool
472 {
473  return myShadingMode == GR_HIDDEN_LINE_GHOST;
474 }
475 
476 inline bool
478 {
479  return myShadingMode == GR_WIRE_GHOST;
480 }
481 
482 inline int
484 {
485  if(myShadingMode >= GR_WIRE && myShadingMode <= GR_HIDDEN_LINE_GHOST)
486  return GR_DRAW_WIREFRAME;
487  else if(myShadingMode >= GR_MATCAP_SHADED)
488  return GR_DRAW_SHADED;
489 
490  return 0; // no enum for bbox
491 }
492 
493 inline bool
495 {
496  return (myShadingMode == GR_WIRE_GHOST ||
497  myShadingMode == GR_HIDDEN_LINE_INVISIBLE ||
498  myShadingMode == GR_HIDDEN_LINE_GHOST);
499 }
500 
501 inline bool
503 {
504  return (myShadingMode == GR_FLAT_SHADED ||
505  myShadingMode == GR_FLAT_WIRE_SHADED);
506 }
507 
508 inline bool
510 {
511  return (myShadingMode == GR_MATCAP_SHADED ||
512  myShadingMode == GR_MATCAP_WIRE_SHADED);
513 }
514 
515 inline bool
517 {
518  return (myShadingMode == GR_SMOOTH_WIRE_SHADED ||
519  myShadingMode == GR_MATCAP_WIRE_SHADED ||
520  myShadingMode == GR_FLAT_WIRE_SHADED);
521 }
522 
523 
524 #endif
void appliesToSelection(bool onoff)
bool matcapShaded() const
bool drawUVMap() const
bool wireOverShaded() const
#define ASSIGN_BUMP(flag)
void drawVertexMarkers(bool onoff)
bool drawProfNums() const
void drawFaded(bool onoff)
void drawPointMarkers(bool onoff)
void tintBackfaces(bool onoff)
bool flatShaded() const
void drawProfiles(bool onoff)
bool drawPointVelocity() const
void drawProfNums(bool onoff)
void toggleAffectsSet(bool onoff)
bool drawVertexNums() const
bool uvFillBackFaces() const
#define GR_DRAW_WIREFRAME
Definition: GR_Defines.h:19
int64 getUniqueID() const
void drawPointNums(bool onoff)
void drawVertexNmls(bool onoff)
GR_DecorVisibility pointVelocityVisible() const
GLdouble s
Definition: glad.h:3009
void drawPrimHulls(bool onoff)
GR_DecorVisibility vertexNmlsVisible() const
void drawGhosted(bool onoff)
const GR_CommonDispOption & common() const
void drawVertexTxtNums(bool onoff)
bool hlGhostFill() const
void setNonCachedDrawFlag() const
int getNumUserOptions() const
bool drawFaded() const
GR_Decoration
Definition: GR_Defines.h:162
GR_DecorVisibility vertexNumsVisible() const
void uvFillBackFaces(bool onoff)
bool drawXRay() const
bool wireHiddenLine() const
GR_DecorVisibility pointTxtNumsVisible() const
bool uvFillOverlap() const
bool drawVertexTxtNums() const
bool drawPointNums() const
bool operator==(const BaseDimensions< T > &a, const BaseDimensions< Y > &b)
Definition: Dimensions.h:137
void boundaryMode(GR_BoundaryMode mode)
bool drawGhosted() const
void uvBoundaryMode(GR_BoundaryMode mode)
void drawPointNmls(bool onoff)
bool drawProfiles() const
bool hlXray() const
bool drawPointMarkers() const
GR_DecorVisibility
Definition: GR_Defines.h:192
GR_CommonDispOption & common()
bool drawPrimBreakpoints() const
bool hasNonCachedDraw() const
void drawUVMap(bool onoff)
const GR_LightList * getLightList() const
GR_DecorVisibility pointMarkersVisible() const
void drawXRay(bool onoff)
bool tintBackfaces() const
void lockShadingMode(bool onoff)
bool drawVertexNmls() const
GR_ShadingMode
Definition: GR_Defines.h:31
int getDisplaySet() const
void drawVertexNums(bool onoff)
bool drawVertexMarkers() const
#define GR_API
Definition: GR_API.h:10
long long int64
Definition: SYS_Types.h:116
const GR_UserOption * getOption(int i) const
GR_DecorVisibility getVisibilityFor(GR_Decoration d) const
int getSerialNum() const
int getRefineSerial() const
GR_DecorVisibility primNumsVisible() const
bool drawPrimNums() const
GLuint const GLchar * name
Definition: glcorearb.h:786
void drawPointPos(bool onoff)
void drawPointVelocity(bool onoff)
GR_API GR_OptionTable * GRgetOptionTable()
GLdouble t
Definition: glad.h:2397
bool drawPointNmls() const
GLenum mode
Definition: glcorearb.h:99
void drawLit(bool onoff)
GT_API const UT_StringHolder version
void drawPrimBreakpoints(bool onoff)
void drawPrimNmls(bool onoff)
int getVisContext() const
bool drawPointPos() const
GR_BoundaryMode uvBoundaryMode() const
GR_DecorVisibility pointNumsVisible() const
void drawPointTxtNums(bool onoff)
void drawPrimNums(bool onoff)
bool toggleAffectsSet() const
GR_DecorVisibility getVisibility() const
Definition: GR_UserOption.h:79
void clearNonCachedDrawFlag() const
bool drawLit() const
bool boundBox() const
GR_DecorVisibility vertexMarkersVisible() const
LeafData & operator=(const LeafData &)=delete
GR_DecorVisibility primBreakpointsVisible() const
GR_BoundaryMode boundaryMode() const
bool drawPrimNmls() const
int drawMode() const
GR_DecorVisibility primNmlsVisible() const
bool hasEnabledUserOptions() const
bool drawPrimHulls() const
GR_BoundaryMode
Definition: GR_Defines.h:379
bool drawPointCoincident() const
bool isNonCachedPass() const
GR_DecorVisibility pointPosVisible() const
#define GR_DRAW_SHADED
Definition: GR_Defines.h:20
void uvFillOverlap(bool onoff)
FMT_INLINE void print(format_string< T...> fmt, T &&...args)
Definition: core.h:2976
GR_DecorVisibility pointNmlsVisible() const
bool appliesToSelection() const
void drawPointCoincident(bool onoff)
bool drawPointTxtNums() const
bool lockShadingMode() const
GR_DecorVisibility vertexTxtNumsVisible() const
void setNonCachedPass(bool nc_pass)