Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/multires_reshape.c
| Show First 20 Lines • Show All 855 Lines • ▼ Show 20 Lines | |||||
| static Subdiv *multires_create_subdiv_for_reshape( | static Subdiv *multires_create_subdiv_for_reshape( | ||||
| struct Depsgraph *depsgraph, | struct Depsgraph *depsgraph, | ||||
| /*const*/ Object *object, | /*const*/ Object *object, | ||||
| const MultiresModifierData *mmd) | const MultiresModifierData *mmd) | ||||
| { | { | ||||
| Scene *scene_eval = DEG_get_evaluated_scene(depsgraph); | Scene *scene_eval = DEG_get_evaluated_scene(depsgraph); | ||||
| Object *object_eval = DEG_get_evaluated_object(depsgraph, object); | Object *object_eval = DEG_get_evaluated_object(depsgraph, object); | ||||
| Mesh *deformed_mesh = mesh_get_eval_deform( | Mesh *deformed_mesh = mesh_get_eval_deform( | ||||
| depsgraph, scene_eval, object_eval, CD_MASK_BAREMESH); | depsgraph, scene_eval, object_eval, &CD_MASK_BAREMESH); | ||||
| SubdivSettings subdiv_settings; | SubdivSettings subdiv_settings; | ||||
| BKE_multires_subdiv_settings_init(&subdiv_settings, mmd); | BKE_multires_subdiv_settings_init(&subdiv_settings, mmd); | ||||
| Subdiv *subdiv = BKE_subdiv_new_from_mesh(&subdiv_settings, deformed_mesh); | Subdiv *subdiv = BKE_subdiv_new_from_mesh(&subdiv_settings, deformed_mesh); | ||||
| if (!BKE_subdiv_eval_update_from_mesh(subdiv, deformed_mesh)) { | if (!BKE_subdiv_eval_update_from_mesh(subdiv, deformed_mesh)) { | ||||
| BKE_subdiv_free(subdiv); | BKE_subdiv_free(subdiv); | ||||
| return NULL; | return NULL; | ||||
| } | } | ||||
| return subdiv; | return subdiv; | ||||
| ▲ Show 20 Lines • Show All 87 Lines • ▼ Show 20 Lines | if (src->type != OB_MESH) { | ||||
| return false; | return false; | ||||
| } | } | ||||
| MultiresModifierData reshape_mmd; | MultiresModifierData reshape_mmd; | ||||
| multires_reshape_init_mmd(&reshape_mmd, mmd); | multires_reshape_init_mmd(&reshape_mmd, mmd); | ||||
| /* Get evaluated vertices locations to reshape to. */ | /* Get evaluated vertices locations to reshape to. */ | ||||
| Scene *scene_eval = DEG_get_evaluated_scene(depsgraph); | Scene *scene_eval = DEG_get_evaluated_scene(depsgraph); | ||||
| Object *src_eval = DEG_get_evaluated_object(depsgraph, src); | Object *src_eval = DEG_get_evaluated_object(depsgraph, src); | ||||
| Mesh *src_mesh_eval = mesh_get_eval_final( | Mesh *src_mesh_eval = mesh_get_eval_final( | ||||
| depsgraph, scene_eval, src_eval, CD_MASK_BAREMESH); | depsgraph, scene_eval, src_eval, &CD_MASK_BAREMESH); | ||||
| int num_deformed_verts; | int num_deformed_verts; | ||||
| float (*deformed_verts)[3] = BKE_mesh_vertexCos_get( | float (*deformed_verts)[3] = BKE_mesh_vertexCos_get( | ||||
| src_mesh_eval, &num_deformed_verts); | src_mesh_eval, &num_deformed_verts); | ||||
| bool result = multires_reshape_from_vertcos( | bool result = multires_reshape_from_vertcos( | ||||
| depsgraph, | depsgraph, | ||||
| dst, | dst, | ||||
| &reshape_mmd, | &reshape_mmd, | ||||
| deformed_verts, | deformed_verts, | ||||
| ▲ Show 20 Lines • Show All 187 Lines • Show Last 20 Lines | |||||