38 Mesh *base_mesh =
object->data;
58 const Mesh *base_mesh =
object->data;
68 &reshape_context,
object, mmd, subdiv, mmd->
totlvl)) {
84 &reshape_context,
object, mmd, mmd->
totlvl)) {
void BKE_multires_subdiv_settings_init(struct SubdivSettings *settings, const struct MultiresModifierData *mmd)
void BKE_subdiv_free(Subdiv *subdiv)
Subdiv * BKE_subdiv_new_from_converter(const SubdivSettings *settings, struct OpenSubdiv_Converter *converter)
@ SUBDIV_EVALUATOR_TYPE_CPU
bool BKE_subdiv_eval_begin_from_mesh(struct Subdiv *subdiv, const struct Mesh *mesh, const float(*coarse_vertex_cos)[3], eSubdivEvaluatorType evaluator_type, struct OpenSubdiv_EvaluatorCache *evaluator_cache)
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
void multires_reshape_assign_final_coords_from_mdisps(const MultiresReshapeContext *reshape_context)
void multires_reshape_context_free(MultiresReshapeContext *reshape_context)
void multires_reshape_store_original_grids(MultiresReshapeContext *reshape_context)
bool multires_reshape_context_create_from_modifier(MultiresReshapeContext *reshape_context, struct Object *object, struct MultiresModifierData *mmd, int top_level)
bool multires_reshape_context_create_from_subdiv(MultiresReshapeContext *reshape_context, struct Object *object, struct MultiresModifierData *mmd, struct Subdiv *subdiv, int top_level)
void multires_reshape_object_grids_to_tangent_displacement(const MultiresReshapeContext *reshape_context)
static float simple_to_catmull_clark_get_edge_sharpness(const OpenSubdiv_Converter *UNUSED(converter), int UNUSED(manifold_edge_index))
static bool simple_to_catmull_clark_is_infinite_sharp_vertex(const OpenSubdiv_Converter *UNUSED(converter), int UNUSED(manifold_vertex_index))
static Subdiv * subdiv_for_simple_to_catmull_clark(Object *object, MultiresModifierData *mmd)
void multires_do_versions_simple_to_catmull_clark(Object *object, MultiresModifierData *mmd)
bool(* isInfiniteSharpVertex)(const struct OpenSubdiv_Converter *converter, const int vertex_index)
float(* getEdgeSharpness)(const struct OpenSubdiv_Converter *converter, const int edge_index)
void BKE_subdiv_converter_free(struct OpenSubdiv_Converter *converter)
void BKE_subdiv_converter_init_for_mesh(struct OpenSubdiv_Converter *converter, const struct SubdivSettings *settings, const struct Mesh *mesh)