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 RE_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 
46  GR_DisplayOption &operator=(const GR_DisplayOption &opt);
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 RE_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)
const RE_LightList * getLightList() const
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:18
int64 getUniqueID() const
void drawPointNums(bool onoff)
void drawVertexNmls(bool onoff)
GR_DecorVisibility pointVelocityVisible() const
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
GLuint const GLchar * name
Definition: glcorearb.h:785
bool drawFaded() const
GR_Decoration
Definition: GR_Defines.h:146
GR_DecorVisibility vertexNumsVisible() const
void uvFillBackFaces(bool onoff)
GLdouble GLdouble t
Definition: glew.h:1403
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:176
GR_CommonDispOption & common()
bool drawPrimBreakpoints() const
void print(std::FILE *f, const S &format_str, Args &&...args)
Definition: core.h:2094
bool hasNonCachedDraw() const
void drawUVMap(bool onoff)
GR_DecorVisibility pointMarkersVisible() const
void drawXRay(bool onoff)
bool tintBackfaces() const
void lockShadingMode(bool onoff)
bool drawVertexNmls() const
GR_ShadingMode
Definition: GR_Defines.h:29
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
void drawPointPos(bool onoff)
void drawPointVelocity(bool onoff)
GR_API GR_OptionTable * GRgetOptionTable()
bool drawPointNmls() const
GLenum mode
Definition: glcorearb.h:98
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
GR_DecorVisibility primBreakpointsVisible() const
GR_BoundaryMode boundaryMode() const
bool drawPrimNmls() const
int drawMode() const
GR_DecorVisibility primNmlsVisible() const
const GLdouble * m
Definition: glew.h:9166
bool hasEnabledUserOptions() const
bool drawPrimHulls() const
GR_BoundaryMode
Definition: GR_Defines.h:358
bool drawPointCoincident() const
bool isNonCachedPass() const
GR_DecorVisibility pointPosVisible() const
#define GR_DRAW_SHADED
Definition: GR_Defines.h:19
void uvFillOverlap(bool onoff)
GLdouble s
Definition: glew.h:1395
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)