223bool settings_equal(
const Settings *settings_a,
const Settings *settings_b);
243 const Settings *settings,
247void free(Subdiv *subdiv);
302 int corner,
float grid_u,
float grid_v,
float *r_quad_u,
float *r_quad_v);
ATTR_WARN_UNUSED_RESULT const BMVert * v
void displacement_attach_from_multires(Subdiv *subdiv, Mesh *mesh, const MultiresModifierData *mmd)
void free(Subdiv *subdiv)
@ SUBDIV_VTX_BOUNDARY_EDGE_AND_CORNER
@ SUBDIV_VTX_BOUNDARY_NONE
@ SUBDIV_VTX_BOUNDARY_EDGE_ONLY
BLI_INLINE void rotate_grid_to_quad(int corner, float grid_u, float grid_v, float *r_quad_u, float *r_quad_v)
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_AND_JUNCTIONS
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_BOUNDARIES
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_NONE
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_ONLY
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_JUNCTIONS_AND_CONCAVE
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_ALL
Subdiv * new_from_mesh(const Settings *settings, const Mesh *mesh)
BLI_INLINE void grid_uv_to_ptex_face_uv(float grid_u, float grid_v, float *r_ptex_u, float *r_ptex_v)
void stats_init(SubdivStats *stats)
void displacement_detach(Subdiv *subdiv)
BLI_INLINE void ptex_face_uv_to_grid_uv(float ptex_u, float ptex_v, float *r_grid_u, float *r_grid_v)
BLI_INLINE int grid_size_from_level(int level)
BLI_INLINE int rotate_quad_to_corner(float quad_u, float quad_v, float *r_corner_u, float *r_corner_v)
FVarLinearInterpolation fvar_interpolation_from_uv_smooth(int uv_smooth)
void stats_reset(SubdivStats *stats, StatsValue value)
Subdiv * update_from_converter(Subdiv *subdiv, const Settings *settings, OpenSubdiv_Converter *converter)
BLI_INLINE float crease_to_sharpness(float edge_crease)
Subdiv * new_from_converter(const Settings *settings, OpenSubdiv_Converter *converter)
void stats_begin(SubdivStats *stats, StatsValue value)
int * face_ptex_offset_get(Subdiv *subdiv)
void stats_end(SubdivStats *stats, StatsValue value)
VtxBoundaryInterpolation vtx_boundary_interpolation_from_subsurf(int boundary_smooth)
void stats_print(const SubdivStats *stats)
@ NUM_SUBDIV_STATS_VALUES
@ SUBDIV_STATS_SUBDIV_TO_MESH_GEOMETRY
@ SUBDIV_STATS_SUBDIV_TO_MESH
@ SUBDIV_STATS_EVALUATOR_CREATE
@ SUBDIV_STATS_SUBDIV_TO_CCG
@ SUBDIV_STATS_TOPOLOGY_REFINER_CREATION_TIME
@ SUBDIV_STATS_EVALUATOR_REFINE
@ SUBDIV_STATS_SUBDIV_TO_CCG_ELEMENTS
@ SUBDIV_STATS_TOPOLOGY_COMPARE
Subdiv * update_from_mesh(Subdiv *subdiv, const Settings *settings, const Mesh *mesh)
bool settings_equal(const Settings *settings_a, const Settings *settings_b)
void(* free)(Displacement *displacement)
void(* eval_displacement)(Displacement *displacement, int ptex_face_index, float u, float v, const float dPdu[3], const float dPdv[3], float r_D[3])
void(* initialize)(Displacement *displacement)
VtxBoundaryInterpolation vtx_boundary_interpolation
FVarLinearInterpolation fvar_linear_interpolation
double subdiv_to_mesh_geometry_time
double evaluator_refine_time
double subdiv_to_ccg_time
double values_[NUM_SUBDIV_STATS_VALUES]
double subdiv_to_mesh_time
double begin_timestamp_[NUM_SUBDIV_STATS_VALUES]
double evaluator_creation_time
double topology_refiner_creation_time
double subdiv_to_ccg_elements_time
double topology_compare_time
Displacement * displacement_evaluator
struct blender::bke::subdiv::Subdiv::@63 cache_
OpenSubdiv_Evaluator * evaluator
blender::opensubdiv::TopologyRefinerImpl * topology_refiner