205 int boundary_smooth);
306 int corner,
float grid_u,
float grid_v,
float *r_quad_u,
float *r_quad_v);
BLI_INLINE void BKE_subdiv_ptex_face_uv_to_grid_uv(float ptex_u, float ptex_v, float *r_grid_u, float *r_grid_v)
void BKE_subdiv_stats_init(SubdivStats *stats)
@ SUBDIV_STATS_SUBDIV_TO_CCG_ELEMENTS
@ SUBDIV_STATS_EVALUATOR_REFINE
@ SUBDIV_STATS_TOPOLOGY_REFINER_CREATION_TIME
@ NUM_SUBDIV_STATS_VALUES
@ SUBDIV_STATS_EVALUATOR_CREATE
@ SUBDIV_STATS_SUBDIV_TO_MESH_GEOMETRY
@ SUBDIV_STATS_SUBDIV_TO_MESH
@ SUBDIV_STATS_SUBDIV_TO_CCG
@ SUBDIV_STATS_TOPOLOGY_COMPARE
void BKE_subdiv_stats_end(SubdivStats *stats, eSubdivStatsValue value)
BLI_INLINE int BKE_subdiv_grid_size_from_level(int level)
BLI_INLINE float BKE_subdiv_crease_to_sharpness_f(float edge_crease)
struct SubdivDisplacement SubdivDisplacement
BLI_INLINE void BKE_subdiv_rotate_grid_to_quad(int corner, float grid_u, float grid_v, float *r_quad_u, float *r_quad_v)
bool BKE_subdiv_settings_equal(const SubdivSettings *settings_a, const SubdivSettings *settings_b)
void BKE_subdiv_stats_reset(SubdivStats *stats, eSubdivStatsValue value)
void BKE_subdiv_stats_begin(SubdivStats *stats, eSubdivStatsValue value)
eSubdivVtxBoundaryInterpolation BKE_subdiv_vtx_boundary_interpolation_from_subsurf(int boundary_smooth)
void BKE_subdiv_free(Subdiv *subdiv)
eSubdivFVarLinearInterpolation
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_ALL
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_ONLY
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_BOUNDARIES
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_NONE
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_AND_JUNCTIONS
@ SUBDIV_FVAR_LINEAR_INTERPOLATION_CORNERS_JUNCTIONS_AND_CONCAVE
void BKE_subdiv_displacement_attach_from_multires(Subdiv *subdiv, struct Mesh *mesh, const struct MultiresModifierData *mmd)
Subdiv * BKE_subdiv_update_from_converter(Subdiv *subdiv, const SubdivSettings *settings, struct OpenSubdiv_Converter *converter)
BLI_INLINE void BKE_subdiv_grid_uv_to_ptex_face_uv(float grid_u, float grid_v, float *r_ptex_u, float *r_ptex_v)
Subdiv * BKE_subdiv_update_from_mesh(Subdiv *subdiv, const SubdivSettings *settings, const struct Mesh *mesh)
Subdiv * BKE_subdiv_new_from_mesh(const SubdivSettings *settings, const struct Mesh *mesh)
int * BKE_subdiv_face_ptex_offset_get(Subdiv *subdiv)
void BKE_subdiv_init(void)
BLI_INLINE int BKE_subdiv_rotate_quad_to_corner(float quad_u, float quad_v, float *r_corner_u, float *r_corner_v)
eSubdivVtxBoundaryInterpolation
@ SUBDIV_VTX_BOUNDARY_EDGE_AND_CORNER
@ SUBDIV_VTX_BOUNDARY_NONE
@ SUBDIV_VTX_BOUNDARY_EDGE_ONLY
void BKE_subdiv_displacement_detach(Subdiv *subdiv)
struct SubdivSettings SubdivSettings
void BKE_subdiv_exit(void)
eSubdivFVarLinearInterpolation BKE_subdiv_fvar_interpolation_from_uv_smooth(int uv_smooth)
struct SubdivStats SubdivStats
Subdiv * BKE_subdiv_new_from_converter(const SubdivSettings *settings, struct OpenSubdiv_Converter *converter)
void BKE_subdiv_stats_print(const SubdivStats *stats)
BLI_INLINE float BKE_subdiv_crease_to_sharpness_char(char edge_crease)
ATTR_WARN_UNUSED_RESULT const BMVert * v
SyclQueue void void size_t num_bytes void
void(* initialize)(struct SubdivDisplacement *displacement)
void(* eval_displacement)(struct SubdivDisplacement *displacement, int ptex_face_index, float u, float v, const float dPdu[3], const float dPdv[3], float r_D[3])
void(* free)(struct SubdivDisplacement *displacement)
eSubdivFVarLinearInterpolation fvar_linear_interpolation
eSubdivVtxBoundaryInterpolation vtx_boundary_interpolation
double topology_compare_time
double topology_refiner_creation_time
double begin_timestamp_[NUM_SUBDIV_STATS_VALUES]
double values_[NUM_SUBDIV_STATS_VALUES]
double subdiv_to_mesh_time
double evaluator_refine_time
double subdiv_to_ccg_time
double subdiv_to_ccg_elements_time
double subdiv_to_mesh_geometry_time
double evaluator_creation_time
struct Subdiv::@68 cache_
struct SubdivDisplacement * displacement_evaluator
struct OpenSubdiv_TopologyRefiner * topology_refiner
struct OpenSubdiv_Evaluator * evaluator