|
Blender V4.3
|
#include "MEM_guardedalloc.h"#include "DNA_mesh_types.h"#include "DNA_modifier_types.h"#include "BKE_customdata.hh"#include "BKE_lib_id.hh"#include "BKE_modifier.hh"#include "BKE_multires.hh"#include "BKE_object.hh"#include "BKE_subsurf.hh"#include "BLI_math_vector.h"#include "DEG_depsgraph_query.hh"#include "multires_reshape.hh"Go to the source code of this file.
Functions | |
Reshape from object | |
| bool | multiresModifier_reshapeFromVertcos (Depsgraph *depsgraph, Object *object, MultiresModifierData *mmd, const float(*vert_coords)[3], const int num_vert_coords) |
| bool | multiresModifier_reshapeFromObject (Depsgraph *depsgraph, MultiresModifierData *mmd, Object *dst, Object *src) |
Reshape from modifier | |
| bool | multiresModifier_reshapeFromDeformModifier (Depsgraph *depsgraph, Object *object, MultiresModifierData *mmd, ModifierData *deform_md) |
Reshape from grids | |
| bool | multiresModifier_reshapeFromCCG (const int tot_level, Mesh *coarse_mesh, SubdivCCG *subdiv_ccg) |
Subdivision | |
| void | multiresModifier_subdivide (Object *object, MultiresModifierData *mmd, const eMultiresSubdivideModeType mode) |
| void | multiresModifier_subdivide_to_level (Object *object, MultiresModifierData *mmd, const int top_level, const eMultiresSubdivideModeType mode) |
Apply base | |
| void | multiresModifier_base_apply (Depsgraph *depsgraph, Object *object, MultiresModifierData *mmd) |
| void multiresModifier_base_apply | ( | Depsgraph * | depsgraph, |
| Object * | object, | ||
| MultiresModifierData * | mmd ) |
Definition at line 240 of file multires_reshape.cc.
References depsgraph, multires_force_sculpt_rebuild(), multires_reshape_apply_base_refine_from_base(), multires_reshape_apply_base_refine_from_deform(), multires_reshape_apply_base_refit_base_mesh(), multires_reshape_apply_base_update_mesh_coords(), multires_reshape_assign_final_coords_from_mdisps(), multires_reshape_context_create_from_object(), multires_reshape_context_free(), multires_reshape_object_grids_to_tangent_displacement(), and multires_reshape_store_original_grids().
Referenced by blender::ed::object::multires_base_apply_exec().
| bool multiresModifier_reshapeFromCCG | ( | const int | tot_level, |
| Mesh * | coarse_mesh, | ||
| SubdivCCG * | subdiv_ccg ) |
Definition at line 124 of file multires_reshape.cc.
References MultiresReshapeContext::level, multires_ensure_external_read(), multires_reshape_assign_final_coords_from_ccg(), multires_reshape_context_create_from_ccg(), multires_reshape_context_free(), multires_reshape_ensure_grids(), multires_reshape_object_grids_to_tangent_displacement(), multires_reshape_smooth_object_grids_with_details(), multires_reshape_store_original_grids(), and MultiresReshapeContext::top.
Referenced by multires_flush_sculpt_updates(), and object_update_from_subsurf_ccg().
| bool multiresModifier_reshapeFromDeformModifier | ( | Depsgraph * | depsgraph, |
| Object * | object, | ||
| MultiresModifierData * | mmd, | ||
| ModifierData * | deform_md ) |
Definition at line 82 of file multires_reshape.cc.
References BKE_id_free(), BKE_modifier_deform_verts(), BKE_multires_create_mesh(), blender::Array< T, InlineBufferCapacity, Allocator >::data(), depsgraph, ModifierEvalContext::depsgraph, MultiresModifierData::lvl, MOD_APPLY_IGNORE_SIMPLIFY, MOD_APPLY_USECACHE, multiresModifier_reshapeFromVertcos(), MultiresModifierData::renderlvl, result, MultiresModifierData::sculptlvl, blender::Array< T, InlineBufferCapacity, Allocator >::size(), and MultiresModifierData::totlvl.
Referenced by blender::ed::object::modifier_apply_obdata().
| bool multiresModifier_reshapeFromObject | ( | Depsgraph * | depsgraph, |
| MultiresModifierData * | mmd, | ||
| Object * | dst, | ||
| Object * | src ) |
Returns truth on success, false otherwise.
This function might fail in cases like source and destination not having matched amount of vertices.
Definition at line 54 of file multires_reshape.cc.
References BKE_object_get_evaluated_mesh(), DEG_get_evaluated_object(), depsgraph, multiresModifier_reshapeFromVertcos(), and Mesh::verts_num.
Referenced by blender::ed::object::multires_reshape_exec().
| bool multiresModifier_reshapeFromVertcos | ( | Depsgraph * | depsgraph, |
| Object * | object, | ||
| MultiresModifierData * | mmd, | ||
| const float(*) | vert_coords[3], | ||
| const int | num_vert_coords ) |
Definition at line 30 of file multires_reshape.cc.
References depsgraph, MultiresReshapeContext::level, multires_reshape_assign_final_coords_from_vertcos(), multires_reshape_context_create_from_object(), multires_reshape_context_free(), multires_reshape_ensure_grids(), multires_reshape_object_grids_to_tangent_displacement(), multires_reshape_smooth_object_grids_with_details(), multires_reshape_store_original_grids(), and MultiresReshapeContext::top.
Referenced by multiresModifier_reshapeFromDeformModifier(), and multiresModifier_reshapeFromObject().
| void multiresModifier_subdivide | ( | Object * | object, |
| MultiresModifierData * | mmd, | ||
| const eMultiresSubdivideModeType | mode ) |
Definition at line 153 of file multires_reshape.cc.
References multiresModifier_subdivide_to_level(), and MultiresModifierData::totlvl.
Referenced by blender::ed::object::multires_subdivide_exec().
| void multiresModifier_subdivide_to_level | ( | Object * | object, |
| MultiresModifierData * | mmd, | ||
| int | top_level, | ||
| eMultiresSubdivideModeType | mode ) |
Subdivide displacement to the given level. If level is lower than the current top level nothing happens.
Definition at line 161 of file multires_reshape.cc.
References CD_MDISPS, CD_SET_DEFAULT, Mesh::corner_data, Mesh::corners_num, CustomData_add_layer(), CustomData_has_layer(), ELEM, MultiresReshapeContext::level, multires_flush_sculpt_updates(), multires_reshape_assign_final_elements_from_orig_mdisps(), multires_reshape_context_create_from_modifier(), multires_reshape_context_free(), multires_reshape_ensure_grids(), multires_reshape_free_original_grids(), multires_reshape_object_grids_to_tangent_displacement(), multires_reshape_smooth_object_grids(), multires_reshape_smooth_object_grids_with_details(), multires_reshape_store_original_grids(), multires_set_tot_level(), multires_subdivide_create_tangent_displacement_linear_grids(), MULTIRES_SUBDIVIDE_LINEAR, MULTIRES_SUBDIVIDE_SIMPLE, MultiresReshapeContext::top, and MultiresModifierData::totlvl.
Referenced by multiresModifier_subdivide(), and multiresModifier_sync_levels_ex().