HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
GR_Defines.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_Defines.h
7  *
8  * COMMENTS: Drawing definitions for the render library.
9  *
10  */
11 
12 
13 #ifndef __GR_Defines_h__
14 #define __GR_Defines_h__
15 
16 #define GR_DRAW_WIREFRAME 0x01
17 #define GR_DRAW_SHADED 0x02
18 
20 {
24 };
25 
26 // public shading modes the user can see
28 {
39 };
40 
41 // private shading modes the renderer uses
43 {
44  // Beauty modes
45  GR_RENDER_BEAUTY, // Shaded, lit
46  GR_RENDER_MATERIAL, // Shaded, material components for HQ Lighting
47  GR_RENDER_CONSTANT, // Solid, constant color/alpha
48 
49  // Wireframe modes
50  GR_RENDER_WIREFRAME, // Line outline
51  GR_RENDER_HIDDEN_LINE, // Line outline, hidden lines removed
52  GR_RENDER_XRAY_LINE, // Line outline, hidden lines dimmed
53  GR_RENDER_GHOST_LINE, // Line outline, BG color fill w/ghost color
54  GR_RENDER_MATERIAL_WIREFRAME, // Line outline pass following material pass
55 
56  // Utility modes
57  GR_RENDER_DEPTH, // Solid, depth only
58  GR_RENDER_DEPTH_CUBE, // Depth only, 6 faces of a cubemap
59  GR_RENDER_DEPTH_LINEAR, // Solid, depth only, non-projected depth
60  GR_RENDER_MATTE, // Solid, constant color/alpha, depth-check
61  GR_RENDER_XRAY, // XRay Render geometry
62  GR_RENDER_OBJECT_PICK, // Object selection
63  GR_RENDER_SHADER_AS_IS, // Render the geometry without setting a shader
64 
65  // Bounding box modes
66  GR_RENDER_BBOX, // Bounding boxes only
67 
68  GR_RENDER_POST_PASS, // A post-pass was requested by a primitive
69 
73 };
74 
75 // bitfield for modifying the basic GR_RenderMode. A flag may not apply to all
76 // render modes (like a FLAT_SHADED and GR_RENDER_WIREFRAME combination).
78 {
80 
91 
95 
102 
105 };
106 
108 {
109  GR_ALPHA_PASS_OPAQUE, // Only opaque objects
110  GR_ALPHA_PASS_NORMAL, // All transparent objects
111 
112  GR_ALPHA_PASS_ALL // Ignore alpha and render all objects.
113 };
114 
116 {
117  GR_SHADING_SOLID, // only draw solid objects
118  GR_SHADING_WIREFRAME, // only draw wireframe objects
119  GR_SHADING_ANY // ignore object shading mode; draw everything.
120 };
121 
123 {
127 };
128 
130 {
135 };
136 
138 {
140 
148 
155 
160 
161  GR_MAX_DECORATIONS, // max number of builtin decorations
162 
165 };
166 
168 {
173 };
174 
176 {
181 
183 };
184 
186 {
190 
192 };
193 
195 {
197 
203 };
204 
206 {
213 };
214 
216 {
224 };
225 
227 {
228  GR_PICK_NONE = 0x0000,
229 
230  // For single picking from a buffer.
231  GR_PICK_SINGLE = 0x0001,
232 
233  // For multi-component picking.
237 
238  // For picking in UV viewports.
241  GR_PICK_UV_FLAG = 0x0300,
242 
243  // Indicates we are picking to do snapping.
245  // Don't allow picking of selected components (mostly to avoid snapping
246  // to geometry that is being moved).
248  // Invert the sense of the box/lasso/paint pick (outside is selected)
249  GR_PICK_OUTSIDE = 0x4000,
250  // As if the surface was wireframe
252 };
253 
255 {
256 public:
258  : myUseObjectNodes(true),
259  myPickNonSelectable(false),
260  myPickTemplates(false),
261  myPickGhosted(true),
262  myPickXray(false)
263  { }
264 
265  // Controls whether details must be associated with object nodes. If false,
266  // any displayed detail is considered an "object" for picking purposes.
268 
273 };
274 
275 // bitfield for why GR_Primitive::update() was called.
276 // be sure to update GUI_RenderCommon.h:GUI_SetupResult if the bitfield gets
277 // larger than 0x8000.
279 {
280  GR_UNCHANGED = 0x0,
281 
282  GR_GEO_CHANGED = 0x001,
294  GR_LOD_CHANGED = 0x1000,
301 };
302 
304 {
306 
311 
312  // These don't strictly exist as attribute types,
313  // but are useful for selections.
316 
317  GR_ALL_ATTRIBS = 0xFFFFFFFF
318 };
319 
321 {
325 };
326 
328 {
329  GR_BASE_PRIM_NORMAL, // most primitives are normal prim types.
330 
331  GR_BASE_PRIM_PACKED, // container primitives
336 
337  GR_BASE_PRIM_VISUALIZE // visualizer output
338 };
339 
341 {
347 };
348 
350 {
353 };
354 
355 #include <UT/UT_Array.h>
356 #include <UT/UT_Pair.h>
358 
359 #endif
GR_DecorRenderFlags
Definition: GR_Defines.h:205
GR_DecorationOverride
Definition: GR_Defines.h:194
GR_ParticleType
Definition: GR_Defines.h:129
GR_DecorFontType
Definition: GR_Defines.h:185
GR_AttribMask
Definition: GR_Defines.h:303
GR_AgentWireMode
Definition: GR_Defines.h:349
UT_Array< UT_Pair< UT_Matrix4D, UT_Vector2i > > GR_FrustumList
Definition: GR_Defines.h:357
GR_Decoration
Definition: GR_Defines.h:137
GR_AlphaPass
Definition: GR_Defines.h:107
GR_DecorVisibility
Definition: GR_Defines.h:167
GR_ShadingPass
Definition: GR_Defines.h:115
GR_RenderMode
Definition: GR_Defines.h:42
GR_BasePrimType
Definition: GR_Defines.h:327
GR_ShadingMode
Definition: GR_Defines.h:27
GR_DecorFontSize
Definition: GR_Defines.h:175
GR_UpdateReason
Definition: GR_Defines.h:278
GR_PrimAcceptResult
Definition: GR_Defines.h:320
GR_RenderFlags
Definition: GR_Defines.h:77
GR_RenderVersion
Definition: GR_Defines.h:19
GR_LightingPass
Definition: GR_Defines.h:122
GR_BoundaryMode
Definition: GR_Defines.h:340
GR_SelectMode
Definition: GR_Defines.h:215
GR_PickStyle
Definition: GR_Defines.h:226