HDK
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
GR_Utils.h File Reference
#include "GR_API.h"
#include "GR_Defines.h"
#include "GR_UpdateParms.h"
#include <GT/GT_Primitive.h>
#include <GT/GT_Types.h>
#include <GU/GU_SelectType.h>
#include <GA/GA_Types.h>
#include <RE/RE_CachedObject.h>
#include <RE/RE_RenderContext.h>
#include <RE/RE_Types.h>
#include <UT/UT_VectorTypes.h>
#include <utility>
+ Include dependency graph for GR_Utils.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  GR_Utils::gr_MatBucket
 

Namespaces

 GR_Utils
 Utility GR methods common to all renderers.
 

Functions

GR_API GR_AttribMask GR_Utils::hasSelection (const GR_UpdateParms &p)
 Returns the selection type in p.geometry. More...
 
GR_API bool GR_Utils::inPrimitiveSelection (const GR_UpdateParms &p, GA_Offset prim_id, const GU_Detail *geo=nullptr)
 
GR_API bool GR_Utils::inPointSelection (const GR_UpdateParms &p, GA_Offset point_id, const GU_Detail *geo=nullptr)
 Returns true if point_id is in the selection list for p.geometry. More...
 
GR_API bool GR_Utils::inVertexSelection (const GR_UpdateParms &p, GA_Offset vert_id, const GU_Detail *geo=nullptr)
 Returns true if vert_id is in the selection list for p.geometry. More...
 
GR_API GR_SelectMode GR_Utils::inPrimitiveSelection (const GR_UpdateParms &p, const UT_Array< GA_Offset > &pids, UT_BitArray &selected)
 Checks if passed prim offsets are in p.geometry's selection. Returns GR_SELECT_PRIM_PARTIAL/FULL if some or all of the prim offsets are in the cook or temp selections, as indicated by the parms in p, otherwise GR_SELECT_NONE is returned. The individual selection results are returned in 'selected'. More...
 
GR_API GR_SelectMode GR_Utils::inPointSelection (const GR_UpdateParms &p, const UT_Array< GA_Offset > &pids, UT_BitArray &selected)
 Checks if passed point offsets are in p.geometry's selection. Returns GR_SELECT_POINT_PARTIAL/FULL if some or all of the point offsets are in the cook or temp selections, as indicated by the parms in p, otherwise GR_SELECT_NONE is returned. The individual selection results are returned in 'selected'. More...
 
GR_API GR_SelectMode GR_Utils::inVertexSelection (const GR_UpdateParms &p, const UT_Array< GA_Offset > &vids, UT_BitArray &selected)
 Checks if passed vertex offsets are in p.geometry's selection. More...
 
GR_API RE_CacheVersion GR_Utils::getAttribVersion (const GT_DataArrayHandle &ph, RE_CacheVersion geo_version)
 Return the cache version for attribute 'ph'. More...
 
GR_API RE_CacheVersion GR_Utils::getTopologyVersion (const GT_Primitive *prim, RE_CacheVersion geo_version)
 Return the cache version for the topology of primitive 'prim'. More...
 
GR_API bool GR_Utils::hasPrimTransform (const RE_Geometry *geo)
 Return true if the geometry has a per-prim transform or per-prim visibility. More...
 
GR_API void GR_Utils::setupGhosting (RE_RenderContext r, int opaque_data[3], fpreal transparency=0.25f)
 
GR_API void GR_Utils::cleanupGhosting (RE_RenderContext r, int opaque_data[3])
 
RE_GPUType GR_Utils::getREType (GT_Storage s)
 Convenience method to return an RE type from a GT storage type. More...
 
GR_API void GR_Utils::assignInstanceGroupArray (RE_Geometry *to_geo, const RE_VertexArray *array, int instance_group=-1)
 
GR_API bool GR_Utils::removeInstanceGroupArray (RE_Geometry *from_geo, int instance_group, const char *attrib_name, RE_GenericAttribID id=RE_GENATTRIB_NONE)
 
GR_API RE_GPUType GR_Utils::getAttributeType (RE_Render *r, const char *attrib_name, int &vsize, const GT_DataArrayHandle &pa, const GR_DisplayOption &opts, RE_ArrayType array_type)
 
GR_API bool GR_Utils::buildInstanceObjectMatrix (RE_Render *r, const GT_PrimitiveHandle &h, const GR_UpdateParms &p, RE_Geometry *geo, RE_CacheVersion version, int instance_group=0, UT_Matrix4D *transform=NULL)
 
GR_API void GR_Utils::buildInstanceIndex (RE_Render *r, RE_Geometry *geo, bool has_partial_visibility, const UT_IntArray &inst_indices, int instance_group, int max_capacity)
 
GR_API void GR_Utils::buildBoneRegionsAndWeights (RE_Render *r, RE_VertexArray **bone_idx, RE_VertexArray **bone_weight, const GT_DataArrayHandle &dh, RE_CacheVersion version, int bone_limit, int &ret_bone_limit)
 contributors are taken (to fit in a up to 3 vec4/ivec4 attribute pairs). More...
 
GR_API RE_VertexArrayGR_Utils::fillAttribArray (RE_Render *r, RE_Geometry *geo, const char *attrib_name, const GT_DataArrayHandle &h, const GR_DisplayOption &opts, RE_ArrayType atype, RE_CacheVersion geo_version)
 
GR_API voidGR_Utils::fillAttribData (RE_Render *r, const char *attrib_name, const GT_DataArrayHandle &pa, const GR_DisplayOption &opts, RE_ArrayType array, bool build_string_tables=true)
 
GR_API void GR_Utils::fillStringAttrib (RE_Render *r, const GT_DataArrayHandle &dh, RE_Geometry *geo, RE_VertexArray *array, const RE_CacheVersion &version)
 
GR_API RE_ShaderGR_Utils::getWireShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getRibbonShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getRibbonUVShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getConstPointShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getColorShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getMatteShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getMatteDisplaceShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthPrimTransformShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthCubeShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthCubeLineShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthCubePointShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthCubeDisplaceShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthCubePrimTransformShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthLinearShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthLinearDisplaceShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthLinearPrimTransformShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthWireShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthWirePrimTransformShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthCascadeShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthCascadeLineShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthCascadePointShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthCascadeDisplaceShader (RE_Render *r)
 
GR_API RE_ShaderGR_Utils::getDepthCascadePrimTransformShader (RE_Render *r)
 
GR_API void GR_Utils::buildInstancedCenterPoints (RE_RenderContext r, const GT_PrimitiveHandle &handle, const GR_UpdateParms &p, const UT_Matrix4DArray &primxforms, const GT_DataArrayHandle &prim_ids, const GT_DataArrayHandle &pnt_ids, const GT_DataArrayHandle &vtx_ids, const UT_Vector3F &point, RE_CacheVersion point_version, GR_GeoRender *gr, const char *cache_name, GT_PrimitiveHandle *pt_handle=nullptr, GR_SelectMode *pnt_sel_mode=NULL, bool is_offsets=true)
 
GR_API void GR_Utils::buildCenterPoint (RE_Render *r, const GT_PrimitiveHandle &primh, const GR_UpdateParms &p, const UT_Matrix4DArray &prim_xforms, const GT_DataArrayHandle &prim_ids, const GT_DataArrayHandle &point_ids, const GT_DataArrayHandle &vert_ids, const UT_Vector3F &point, RE_CacheVersion point_version, RE_Geometry *geo, RE_VertexArrayRef *p_ref, RE_VertexArrayRef *inst_mat_ref, GR_SelectMode *point_select_mode, bool is_offsets)
 
GR_API void GR_Utils::buildCenterPoints (RE_RenderContext r, const GT_PrimitiveHandle &handle, const GR_UpdateParms &p, const UT_Matrix4DArray &primxforms, const GT_DataArrayHandle &prim_ids, const GT_DataArrayHandle &pnt_ids, const GT_DataArrayHandle &vtx_ids, GR_GeoRender *gr, const char *cache_name, GT_PrimitiveHandle *pt_handle=nullptr, GR_SelectMode *pnt_sel_mode=NULL, bool is_offsets=true, bool build_selection=true)
 
GR_API void GR_Utils::buildCenterPoints (RE_Render *r, const GT_PrimitiveHandle &handle, const GR_UpdateParms &p, const UT_Matrix4DArray &primxforms, const GT_DataArrayHandle &prim_ids, const GT_DataArrayHandle &pnt_ids, const GT_DataArrayHandle &vtx_ids, RE_Geometry *geo, GR_SelectMode *pnt_sel_mode=NULL, bool is_offsets=true, bool build_selection=true)
 
GR_API void GR_Utils::buildCenterPointSelection (RE_Render *r, const GT_PrimitiveHandle &primh, const GR_UpdateParms &p, const GT_DataArrayHandle &prim_ids, const GT_DataArrayHandle &pnt_ids, const GT_DataArrayHandle &vert_ids, RE_Geometry *geo, GR_SelectMode *point_select_mode, bool is_offsets)
 
GR_API void GR_Utils::createCenterPointAttribs (RE_Render *r, const GT_PrimitiveHandle &ph, const GR_UpdateParms &p, RE_Geometry *geo)
 
GR_API void GR_Utils::buildCenterPointIDs (RE_Render *r, const GT_PrimitiveHandle &primh, const GR_UpdateParms &p, const GT_DataArrayHandle &prm_id, const GT_DataArrayHandle &pnt_id, const GT_DataArrayHandle &vtx_id, RE_Geometry *geo, bool is_offsets)
 
GR_API GR_SelectMode GR_Utils::buildSelection (UT_Array< uint8 > &selected, const GR_UpdateParms &p, GT_DataArrayHandle prim_id, GT_DataArrayHandle pnt_id, GT_DataArrayHandle vert_id, bool is_offset, int repeat_count)
 
GR_API GR_SelectMode GR_Utils::buildInstSelectInfo (RE_Render *r, RE_Geometry *geo, const GR_UpdateParms &p, RE_CacheVersion top_ver, GT_DataArrayHandle primid, GT_DataArrayHandle vtxid, GT_DataArrayHandle vertid, bool is_offsets=true, int instances_per_prim=1, UT_Array< uint8 > *result=NULL)
 
GR_API int GR_Utils::getMaxTextureSize (RE_RenderContext rc)
 
GR_API int GR_Utils::getMaxTexture3DSize (RE_RenderContext rc)
 
GR_API bool GR_Utils::inViewFrustum (const UT_BoundingBoxD &bbox, const UT_Matrix4D &objviewproj, const UT_Vector4D *frustum_area=NULL)
 
GR_API bool GR_Utils::inViewFrustum (const UT_BoundingBoxF &bbox, const UT_Matrix4F &objviewproj)
 
GR_API bool GR_Utils::inViewFrustumWithLOD (const UT_BoundingBoxF &bbox, const UT_Matrix4F &objviewproj, bool &has_bounds, UT_Vector2F &bounds_2d)
 
GR_API bool GR_Utils::isRasterized (const UT_Matrix4F &objviewproj, const UT_Vector2F &min_proj_size, const UT_BoundingBoxF &bbox)
 
GR_API GU_Connectivity GR_Utils::getConnectivityFromString (const char *str)
 
GR_API UT_Array< std::pair
< gr_MatBucket *, int > > * 
GR_Utils::bucketMaterials (const GT_DataArrayHandle &mat_id)
 
GR_API void GR_Utils::cleanupBuckets (UT_Array< std::pair< gr_MatBucket *, int >> *&buckets)
 
GR_API void GR_Utils::printUpdateReason (GR_UpdateReason r, std::ostream *os=NULL)
 
GR_API void GR_Utils::updateReasonString (GR_UpdateReason r, UT_WorkBuffer &buf)
 
GR_API void GR_Utils::printDrawMode (GR_RenderMode mode, std::ostream *os=NULL)
 
GR_API void GR_Utils::printDrawFlags (GR_RenderFlags flags, std::ostream *os=NULL)
 
GR_API void GR_Utils::drawFlagsString (GR_RenderFlags flags, UT_WorkBuffer &buf)
 
GR_API void GR_Utils::drawModeString (GR_RenderMode mode, UT_WorkBuffer &buf)
 
GR_API size_t format (char *buf, size_t bufsize, const GR_UpdateReason &r)
 
GR_API size_t format (char *buf, size_t bufsize, const GR_RenderFlags &r)
 
GR_API size_t format (char *buf, size_t bufsize, const GR_RenderMode &r)
 
GR_API size_t format (char *buf, size_t bufsize, const GR_AlphaPass &r)
 

Function Documentation

GR_API size_t format ( char *  buf,
size_t  bufsize,
const GR_UpdateReason r 
)
GR_API size_t format ( char *  buf,
size_t  bufsize,
const GR_RenderFlags r 
)
GR_API size_t format ( char *  buf,
size_t  bufsize,
const GR_RenderMode r 
)
GR_API size_t format ( char *  buf,
size_t  bufsize,
const GR_AlphaPass r 
)