12 #ifndef GR_InstanceManager_h
13 #define GR_InstanceManager_h
50 {
return myIsActive && myInteractiveMode; }
55 {
UT_ASSERT(!myIsActive);
if (!myIsActive) { myDrawSolidBBoxes = draw;} }
57 {
UT_ASSERT(!myIsActive);
if (!myIsActive) { myDrawWireBBoxes = draw;} }
62 void queueUncullableDraw(
int num_gl_prims);
65 int newDrawRequestID();
66 void returnDrawRequestID(
int draw_id);
102 bool all_selected =
false);
119 bool all_selected =
false);
142 bool all_selected =
false);
164 bool all_selected =
false);
167 int newBBoxRequestID();
168 void returnBBoxRequestID(
int bbox_id);
190 bool all_selected =
false);
194 void queuePartialBBoxDraw(
205 bool all_selected =
false);
225 gr_DrawRequestResult getDrawRequestResult(
int draw_id,
240 bool determineBBoxMode(
bool wire_req)
const;
276 : num_prims(np), single_inst(si), instances(insts), bbox(&bb),
277 visible_instances(vi), visible_result(vr), selected(false),
278 result(ERROR_NOT_PROCESSED), rmode(rm), rflags(rf), dparms(dp),
279 pass_id(passid), colors(nullptr),
color(nullptr),
280 nest_counts(nullptr), selected_prims(nullptr), wireframe(false),
281 visible_range(nullptr) {}
283 : dparms(nullptr, nullptr, 0, false, 0, 0,0,0),
284 pass_id(-1), num_prims(0), single_inst(nullptr),
285 instances(nullptr), bbox(nullptr), nest_counts(nullptr),
286 visible_instances(nullptr), visible_result(nullptr),
287 selected_prims(nullptr),
color(nullptr), visible_range(nullptr) {}
320 : single_inst(si),instances(insts),bbox(&bb),visible_instances(vi),
321 offset(0), bucket(0), pass_id(passid), selected_prims(nullptr),
322 colors(nullptr), selected(false), wireframe(false),
323 color(nullptr), nest_counts(nesting)
326 : single_inst(nullptr),instances(nullptr),bbox(nullptr),
327 visible_instances(nullptr),
offset(0), bucket(0), pass_id(-1),
328 selected_prims(nullptr),colors(nullptr), selected(false),
329 wireframe(false),
color(nullptr), nest_counts(nullptr)
354 :
z(_z), draw_id(did), draw_index(didx) {}
368 NUM_BBOX_SHADING_MODES = 4,
369 NUM_BBOX_COLOR_MODES = 2
385 bool myInteractiveMode;
387 bool myDrawSolidBBoxes;
388 bool myDrawWireBBoxes;
400 friend class GUI_SceneFeel;
const UT_Array< uint8 > * selected_prims
GT_DataArrayHandle prim_ids
const UT_Vector3FArray * colors
const UT_Matrix4D * single_inst
const UT_IntArray * nest_counts
gr_DrawEntry(fpreal32 _z, int did, int didx)
const UT_IntArray * visible_instances
const UT_Array< uint8 > * selected_prims
void setDrawSolidBBoxes(bool draw)
gr_DrawRequestResult result
GLdouble GLdouble GLdouble z
const UT_BoundingBox * bbox
const UT_Matrix4DArray * instances
UT_IntArray * visible_result
**But if you need a result
Temporary container for either a RV_Render and an RE_Render.
const UT_Matrix4D * single_inst
const UT_IntArray * nest_counts
const UT_Matrix4DArray * instances
void setDrawWireBBoxes(bool draw)
RV_API void cleanupShaders()
UT_Vector2i * visible_range
OPENVDB_API void initialize()
Global registration of native Grid, Transform, Metadata and Point attribute types. Also initializes blosc (if enabled).
Handle to the main interface of Vulkan.
const UT_Vector3FArray * colors
RV_API bool initShaders(RV_Instance *inst)
void allowBBoxReplacement(bool allow)
GA_API const UT_StringHolder parms
gr_DrawRequest(int np, const UT_Matrix4D *si, const UT_Matrix4DArray *insts, const UT_BoundingBox &bb, const UT_IntArray *vi, UT_IntArray *vr, GR_RenderMode rm, GR_RenderFlags rf, GR_DrawParms dp, int passid)
bool canQueueRequests() const
const UT_BoundingBox * bbox
GT_DataArrayHandle prim_ids
gr_BBoxRequest(const UT_Matrix4D *si, const UT_Matrix4DArray *insts, const UT_IntArray *nesting, const UT_BoundingBox &bb, const UT_IntArray *vi, int passid)
const UT_IntArray * visible_instances