11 #ifndef GR_PickRender_h
12 #define GR_PickRender_h
38 bool inconclusive_stream_too =
false) = 0;
78 virtual bool isInstanced(
int &num_inst)
const = 0;
80 virtual int getNumPoints()
const = 0;
82 virtual int getNumRenderPrims(
int start_group,
int end_group = -1)
const = 0;
84 virtual bool hasPointIDAttrib()
const = 0;
86 virtual bool hasPrimIDAttrib()
const = 0;
88 virtual bool hasVertIDAttrib()
const = 0;
90 virtual bool hasInstIDAttrib()
const = 0;
93 virtual int renderPoints(
int connect_start,
96 int real_connect_start,
106 virtual int renderFacePrims(
int connect_start,
116 virtual int renderLinePrims(
int connect_start,
126 virtual int renderTetPrims(
int connect_start,
136 virtual int renderFaceDeformingPrims(
int connect_start,
146 virtual int renderSubDLinePrims(
int connect_start,
158 virtual int renderFaceEdges(
int connect_start,
167 virtual int renderMeshEdges(
int connect_start,
176 virtual int renderLineEdges(
int connect_start,
188 virtual int renderFaceVertices(
int connect_start,
197 virtual int renderLineVertices(
int connect_start,
205 virtual int renderMeshVertices(
int connect_start,
214 virtual int renderBreakpoints(
int connect_start,
225 virtual int renderGuidePoints(
int connect_start,
230 int select_inst) = 0;
231 virtual int renderGuideEdges(
int connect_start,
236 int select_inst) = 0;
239 virtual int renderPointNormals(
int connect_start,
245 virtual int renderFaceNormals(
int connect_start,
248 bool has_pick_map) = 0;
253 const int32 *raw_picks,
270 bool inconclusive_stream_too =
false)
override;
286 return myVkBuffer.get();
302 exint myNumPicks = 0;
339 int real_connect_start,
340 int real_connect_num,
411 int renderCustomPrims(
int connect_start,
495 int select_inst)
override;
501 int select_inst)
override;
513 bool has_pick_map)
override;
520 int pickFacesImpl(
int connect_start,
535 int use_varying_id = 0;
536 int hide_selected = 0;
537 int pick_outside = 0;
539 int pick_front_face = 0;
540 int pick_back_face = 0;
542 float vertex_offset = 0.f;
545 int drawGeo(
int connect_start,
550 unsigned int pick_mode,
virtual bool setSize(RE_RenderContext r, int buffer_size, int vector_size=1, bool inconclusive_stream_too=false)=0
virtual bool isInstanced(int &num_inst) const =0
virtual RV_VKBuffer * getVKBuffer()=0
virtual int getNumPoints() const =0
virtual int getNumRenderPrims(int start_group, int end_group=-1) const =0
virtual bool hasPrimIDAttrib() const =0
Object that represents drawable geometry. This object holds vertex, instancing and index buffers for ...
int getLength() const override
virtual int getVectorSize() const =0
UT_UniquePtr< RV_OverrideList > myOverrides
Temporary container for either a RV_Render and an RE_Render.
RV_VKBuffer * getVKBuffer() override
virtual bool getPickData(RE_RenderContext r, int npicks, const UT_Span< int32 > &out_data)=0
virtual int renderLineVertices(int connect_start, int connect_num, GR_PickCompMode id_mode, GR_PickStyle style, bool has_pick_map, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
virtual int renderFaceDeformingPrims(int connect_start, int connect_num, GR_PickCompMode id_mode, GR_PickStyle style, bool has_pick_map, bool wireframe, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
GR_GeoRender::RenderType getRenderType() const override
virtual bool hasVertIDAttrib() const =0
virtual int renderLinePrims(int connect_start, int connect_num, GR_PickCompMode id_mode, GR_PickStyle style, bool has_pick_map, bool wireframe, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
const GR_DisplayOption * myOpts
bool getPickData(RE_RenderContext r, int npicks, const UT_Span< int32 > &out_data) override
RV_API void cleanupShaders()
virtual bool hasPointIDAttrib() const =0
virtual int renderFaceNormals(int connect_start, int connect_num, GR_PickStyle style, bool has_pick_map)=0
~GR_PickBufferVK() override
void setNumPicks(exint n)
virtual int renderFaceVertices(int connect_start, int connect_num, GR_PickCompMode id_mode, GR_PickStyle style, bool has_pick_map, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
virtual int renderPoints(int connect_start, int connect_num, RE_PrimType real_prim_type, int real_connect_start, int real_connect_num, GR_PickCompMode id_mode, GR_PickStyle style, bool has_pick_map, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
virtual int renderGuidePoints(int connect_start, int connect_num, GR_PickCompMode prim_id_mode, GR_PickStyle style, GR_SelectMode select_mode, int select_inst)=0
virtual GR_GeoRender::RenderType getRenderType() const =0
Handle to the main interface of Vulkan.
virtual int getLength() const =0
virtual GR_GeoRender::RenderType getRenderType() const =0
virtual int renderMeshEdges(int connect_start, int connect_num, GR_PickCompMode point_id_mode, bool midpoints, GR_PickStyle style, bool has_pick_map, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
virtual int renderPointNormals(int connect_start, int connect_num, GR_PickCompMode id_mode, GR_PickStyle style, bool has_pick_map, bool normalize)=0
int getVectorSize() const override
RV_API bool initShaders(RV_Instance *inst)
virtual int renderSubDLinePrims(int connect_start, int connect_num, GR_PickCompMode id_mode, GR_PickStyle style, bool has_pick_map, bool wireframe, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer, UT_Vector2F lod_parms)=0
virtual int renderBreakpoints(int connect_start, int connect_num, GR_PickCompMode id_mode, GR_PickStyle style, bool has_pick_map, bool wireframe, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
virtual int renderMeshVertices(int connect_start, int connect_num, GR_PickCompMode id_mode, GR_PickStyle style, bool has_pick_map, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
LeafData & operator=(const LeafData &)=delete
virtual int renderLineEdges(int connect_start, int connect_num, GR_PickCompMode point_id_mode, bool midpoints, GR_PickStyle style, bool has_pick_map, bool wireframe, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
virtual bool hasInstIDAttrib() const =0
virtual int renderGuideEdges(int connect_start, int connect_num, GR_PickCompMode prim_id_mode, GR_PickStyle style, GR_SelectMode select_mode, int select_inst)=0
virtual int renderTetPrims(int connect_start, int connect_num, GR_PickCompMode id_mode, GR_PickStyle style, bool has_pick_map, bool wireframe, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
const GR_RenderInfo * myInfo
exint getNumPicks() const
virtual int renderFaceEdges(int connect_start, int connect_num, GR_PickCompMode point_id_mode, bool midpoints, GR_PickStyle style, bool has_pick_map, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
virtual int renderFacePrims(int connect_start, int connect_num, GR_PickCompMode id_mode, GR_PickStyle style, bool has_pick_map, bool wireframe, GR_SelectMode select_mode, int select_inst, GR_PickBuffer *pick_buffer)=0
GR_GeoRender * myGeoRender
bool setSize(RE_RenderContext r, int buffer_size, int vector_size=1, bool inconclusive_stream_too=false) override