30static bool simple_to_catmull_clark_is_infinite_sharp_vertex(
43 const Mesh *base_mesh =
static_cast<const Mesh *
>(
object->data);
46 subdiv::converter_init_for_mesh(&converter, &subdiv_settings, base_mesh);
50 subdiv::Subdiv *subdiv = subdiv::new_from_converter(&subdiv_settings, &converter);
51 subdiv::converter_free(&converter);
53 if (!subdiv::eval_begin_from_mesh(
54 subdiv, base_mesh, {}, subdiv::SUBDIV_EVALUATOR_TYPE_CPU,
nullptr))
68 const Mesh *base_mesh =
static_cast<const Mesh *
>(
object->data);
78 &reshape_context,
object, mmd, subdiv, mmd->
totlvl))
void BKE_multires_subdiv_settings_init(blender::bke::subdiv::Settings *settings, const MultiresModifierData *mmd)
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)
bool multires_reshape_context_create_from_subdiv(MultiresReshapeContext *reshape_context, Object *object, MultiresModifierData *mmd, blender::bke::subdiv::Subdiv *subdiv, int top_level)
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, Object *object, MultiresModifierData *mmd, int top_level)
void multires_reshape_object_grids_to_tangent_displacement(const MultiresReshapeContext *reshape_context)
void multires_do_versions_simple_to_catmull_clark(Object *object, MultiresModifierData *mmd)
void free(Subdiv *subdiv)
float(* getEdgeSharpness)(const OpenSubdiv_Converter *converter, const int edge_index)
bool(* isInfiniteSharpVertex)(const OpenSubdiv_Converter *converter, const int vertex_index)