11 #ifndef GR_VolumeRender_h
12 #define GR_VolumeRender_h
44 static int getMaxVolumeSlices();
54 myFogOpacity = opacity;
56 bool hasSlices()
const {
return mySlices.entries() > 0; }
74 void destroyResources();
82 bool use_transparent)
const;
128 : myPoints(points), myTexcoords(texcoords), mySelectValue(selected?1:0),
129 myVolume(volume), myZInc(zinc), myIsFog(false),
130 myDepth(0.0), myMotionFlag(motion), myNormalFlag(normal)
134 : myVolume(nullptr), myZInc(slice), myIsFog(true), myDepth(depth)
A collection of Vulkan UBO, SSBO, and Image shader bindings (descriptor set)
GLdouble GLdouble GLint GLint const GLdouble * points
void setVolume(GR_TextureRef vol_tex)
void setDepth(const UT_Matrix4D &proj)
GR_VolumeSlice(fpreal depth, fpreal slice)
A collection of vertex arrays defining a geometry object. This class acts as a wrapper around multipl...
Object that represents drawable geometry. This object holds vertex, instancing and index buffers for ...
void createSlice(UT_Vector3FArray &pos, UT_Vector3FArray &texcoord, UT_IntArray &draw_mode, UT_Array< GR_TextureRef > &tex, UT_IntArray &draw_count, UT_FloatArray &zincs, UT_FloatArray &depth, bool show_selection, UT_ValArray< UT_SharedPtr< UT_Matrix3D >> *obj_mats=nullptr) const
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
GLint GLint GLsizei GLsizei GLsizei depth
exint entries() const
Alias of size(). size() is preferred.
void setObjectXform(const UT_SharedPtr< UT_Matrix3D > &object)
void setFogTexture(GR_TextureRef fog, fpreal opacity)
GR_VolumeSlice(const UT_Vector3Array &points, const UT_Vector3Array &texcoords, GR_TextureRef volume, bool selected, bool motion, bool normal, fpreal32 zinc)
void setFog(fpreal depth, fpreal slice)
Simple interface to building a shader from a .prog file.