|
Blender
V2.93
|
#include <BKE_modifier.h>
Public Attributes | |
| char | name [32] |
| char | structName [32] |
| int | structSize |
| struct StructRNA * | srna |
| ModifierTypeType | type |
| ModifierTypeFlag | flags |
| int | icon |
| void(* | copyData )(const struct ModifierData *md, struct ModifierData *target, const int flag) |
| void(* | deformVerts )(struct ModifierData *md, const struct ModifierEvalContext *ctx, struct Mesh *mesh, float(*vertexCos)[3], int numVerts) |
| void(* | deformMatrices )(struct ModifierData *md, const struct ModifierEvalContext *ctx, struct Mesh *mesh, float(*vertexCos)[3], float(*defMats)[3][3], int numVerts) |
| void(* | deformVertsEM )(struct ModifierData *md, const struct ModifierEvalContext *ctx, struct BMEditMesh *editData, struct Mesh *mesh, float(*vertexCos)[3], int numVerts) |
| void(* | deformMatricesEM )(struct ModifierData *md, const struct ModifierEvalContext *ctx, struct BMEditMesh *editData, struct Mesh *mesh, float(*vertexCos)[3], float(*defMats)[3][3], int numVerts) |
| struct Mesh *(* | modifyMesh )(struct ModifierData *md, const struct ModifierEvalContext *ctx, struct Mesh *mesh) |
| struct Hair *(* | modifyHair )(struct ModifierData *md, const struct ModifierEvalContext *ctx, struct Hair *hair) |
| void(* | modifyGeometrySet )(struct ModifierData *md, const struct ModifierEvalContext *ctx, struct GeometrySet *geometry_set) |
| struct Volume *(* | modifyVolume )(struct ModifierData *md, const struct ModifierEvalContext *ctx, struct Volume *volume) |
| void(* | initData )(struct ModifierData *md) |
| void(* | requiredDataMask )(struct Object *ob, struct ModifierData *md, struct CustomData_MeshMasks *r_cddata_masks) |
| void(* | freeData )(struct ModifierData *md) |
| bool(* | isDisabled )(const struct Scene *scene, struct ModifierData *md, bool userRenderParams) |
| void(* | updateDepsgraph )(struct ModifierData *md, const ModifierUpdateDepsgraphContext *ctx) |
| bool(* | dependsOnTime )(struct ModifierData *md) |
| bool(* | dependsOnNormals )(struct ModifierData *md) |
| void(* | foreachIDLink )(struct ModifierData *md, struct Object *ob, IDWalkFunc walk, void *userData) |
| void(* | foreachTexLink )(struct ModifierData *md, struct Object *ob, TexWalkFunc walk, void *userData) |
| void(* | freeRuntimeData )(void *runtime_data) |
| void(* | panelRegister )(struct ARegionType *region_type) |
| void(* | blendWrite )(struct BlendWriter *writer, const struct ModifierData *md) |
| void(* | blendRead )(struct BlendDataReader *reader, struct ModifierData *md) |
Definition at line 158 of file BKE_modifier.h.
| void(* ModifierTypeInfo::blendRead) (struct BlendDataReader *reader, struct ModifierData *md) |
Is called when the modifier is read from a file.
It can be used to update pointers to arrays and other structs. Furthermore, fields that have not been written (e.g. runtime data) can be reset.
Definition at line 396 of file BKE_modifier.h.
Referenced by BKE_modifier_blend_read_data().
| void(* ModifierTypeInfo::blendWrite) (struct BlendWriter *writer, const struct ModifierData *md) |
Is called when the modifier is written to a file. The modifier data struct itself is written already.
This method should write any additional arrays and referenced structs that should be stored in the file.
Definition at line 388 of file BKE_modifier.h.
Referenced by BKE_modifier_blend_write().
| void(* ModifierTypeInfo::copyData) (const struct ModifierData *md, struct ModifierData *target, const int flag) |
Copy instance data for this modifier type. Should copy all user level settings to the target modifier.
| flag | Copying options (see BKE_lib_id.h's LIB_ID_COPY_... flags for more). |
Definition at line 187 of file BKE_modifier.h.
Referenced by BKE_modifier_copydata_ex().
| void(* ModifierTypeInfo::deformMatrices) (struct ModifierData *md, const struct ModifierEvalContext *ctx, struct Mesh *mesh, float(*vertexCos)[3], float(*defMats)[3][3], int numVerts) |
Like deformMatricesEM but called from object mode (for supporting modifiers in sculpt mode).
Definition at line 206 of file BKE_modifier.h.
Referenced by BKE_crazyspace_build_sculpt(), and BKE_sculpt_get_first_deform_matrices().
| void(* ModifierTypeInfo::deformMatricesEM) (struct ModifierData *md, const struct ModifierEvalContext *ctx, struct BMEditMesh *editData, struct Mesh *mesh, float(*vertexCos)[3], float(*defMats)[3][3], int numVerts) |
Definition at line 223 of file BKE_modifier.h.
Referenced by BKE_crazyspace_get_first_deform_matrices_editbmesh(), and BKE_modifier_is_correctable_deformed().
| void(* ModifierTypeInfo::deformVerts) (struct ModifierData *md, const struct ModifierEvalContext *ctx, struct Mesh *mesh, float(*vertexCos)[3], int numVerts) |
Only for deform types, should apply the deformation to the given vertex array. If the deformer requires information from the object it can obtain it from the mesh argument if non-NULL, and otherwise the ob argument.
Definition at line 197 of file BKE_modifier.h.
Referenced by BKE_crazyspace_build_sculpt(), BKE_curve_calc_modifiers_pre(), BKE_lattice_modifiers_calc(), BKE_mesh_create_derived_for_modifier(), BKE_modifier_deform_verts(), curve_calc_modifiers_post(), hair_evaluate_modifiers(), and modifier_apply_obdata().
| void(* ModifierTypeInfo::deformVertsEM) (struct ModifierData *md, const struct ModifierEvalContext *ctx, struct BMEditMesh *editData, struct Mesh *mesh, float(*vertexCos)[3], int numVerts) |
Like deformVerts but called during editmode (for supporting modifiers)
Definition at line 215 of file BKE_modifier.h.
Referenced by BKE_modifier_deform_vertsEM(), and editbmesh_calc_modifiers().
| bool(* ModifierTypeInfo::dependsOnNormals) (struct ModifierData *md) |
True when a deform modifier uses normals, the requiredDataMask cant be used here because that refers to a normal layer whereas in this case we need to know if the deform modifier uses normals.
this is needed because applying 2 deform modifiers will give the second modifier bogus normals.
Definition at line 337 of file BKE_modifier.h.
Referenced by BKE_modifier_deform_verts(), BKE_modifier_deform_vertsEM(), BKE_modifier_modify_mesh(), curve_calc_modifiers_post(), editbmesh_calc_modifiers(), and mesh_calc_modifiers().
| bool(* ModifierTypeInfo::dependsOnTime) (struct ModifierData *md) |
Should return true if the modifier needs to be recalculated on time changes.
This function is optional (assumes false if not present).
Definition at line 327 of file BKE_modifier.h.
Referenced by BKE_modifier_depends_ontime(), and mesh_calc_modifiers().
| ModifierTypeFlag ModifierTypeInfo::flags |
Definition at line 174 of file BKE_modifier.h.
Referenced by BKE_lattice_modifiers_calc(), BKE_modifier_is_enabled(), BKE_modifier_is_preview(), BKE_modifier_modify_mesh(), BKE_modifier_new(), BKE_modifier_supports_cage(), BKE_modifier_supports_mapping(), BKE_modifiers_get_cage_index(), BKE_object_copy_modifier(), BKE_object_support_modifier_type_check(), ED_object_modifier_add(), ED_object_modifier_move_down(), ED_object_modifier_move_up(), editbmesh_modifier_is_enabled(), hair_evaluate_modifiers(), mesh_calc_modifiers(), modifier_add_itemf(), modifier_copy_to_selected_exec(), and modifier_panel_header().
| void(* ModifierTypeInfo::foreachIDLink) (struct ModifierData *md, struct Object *ob, IDWalkFunc walk, void *userData) |
Should call the given walk function with a pointer to each ID pointer (i.e. each data-block pointer) that the modifier data stores. This is used for linking on file load and for unlinking data-blocks or forwarding data-block references.
This function is optional.
Definition at line 347 of file BKE_modifier.h.
Referenced by BKE_modifier_copydata_ex(), BKE_modifier_free_ex(), BKE_modifiers_foreach_ID_link(), and BKE_particlesystem_id_loop().
| void(* ModifierTypeInfo::foreachTexLink) (struct ModifierData *md, struct Object *ob, TexWalkFunc walk, void *userData) |
Should call the given walk function for each texture that the modifier data stores. This is used for finding all textures in the context for the UI.
This function is optional. If it is not present, it will be assumed the modifier has no textures.
Definition at line 360 of file BKE_modifier.h.
Referenced by BKE_modifiers_foreach_tex_link().
| void(* ModifierTypeInfo::freeData) (struct ModifierData *md) |
Free internal modifier data variables, this function should not free the md variable itself.
This function is responsible for freeing the runtime data as well.
This function is optional.
Definition at line 301 of file BKE_modifier.h.
Referenced by BKE_modifier_copydata_generic(), and BKE_modifier_free_ex().
| void(* ModifierTypeInfo::freeRuntimeData) (void *runtime_data) |
Free given run-time data.
This data is coming from a modifier of the corresponding type, but actual modifier data is not known here.
Notes:
Definition at line 376 of file BKE_modifier.h.
Referenced by blender::deg::ObjectRuntimeBackup::restore_modifier_runtime_data().
| int ModifierTypeInfo::icon |
Definition at line 177 of file BKE_modifier.h.
Referenced by tree_element_get_icon().
| void(* ModifierTypeInfo::initData) (struct ModifierData *md) |
Initialize new instance data for this modifier type, this function should set modifier variables to their default values.
This function is optional.
Definition at line 273 of file BKE_modifier.h.
Referenced by BKE_modifier_new().
| bool(* ModifierTypeInfo::isDisabled) (const struct Scene *scene, struct ModifierData *md, bool userRenderParams) |
Return a boolean value indicating if this modifier is able to be calculated based on the modifier data. This is not regarding the md->flag, that is tested by the system, this is just if the data validates (for example, a lattice will return false if the lattice object is not defined).
This function is optional (assumes never disabled if not present).
Definition at line 312 of file BKE_modifier.h.
Referenced by BKE_lattice_modifiers_calc(), BKE_mesh_create_derived_for_modifier(), BKE_modifier_couldbe_cage(), BKE_modifier_is_enabled(), BKE_modifier_supports_cage(), BKE_modifiers_get_cage_index(), modifier_apply_obdata(), modifier_apply_shape(), and modifier_panel_header().
| void(* ModifierTypeInfo::modifyGeometrySet) (struct ModifierData *md, const struct ModifierEvalContext *ctx, struct GeometrySet *geometry_set) |
The modifier has to change the geometry set in-place. The geometry set can contain zero or more geometry components. This callback can be used by modifiers that don't work on any specific type of geometry (e.g. mesh).
Definition at line 257 of file BKE_modifier.h.
Referenced by BKE_object_support_modifier_type_check(), modifier_modify_mesh_and_geometry_set(), and pointcloud_evaluate_modifiers().
| struct Hair*(* ModifierTypeInfo::modifyHair) (struct ModifierData *md, const struct ModifierEvalContext *ctx, struct Hair *hair) |
Definition at line 223 of file BKE_modifier.h.
Referenced by BKE_object_support_modifier_type_check(), and hair_evaluate_modifiers().
| struct Mesh*(* ModifierTypeInfo::modifyMesh) (struct ModifierData *md, const struct ModifierEvalContext *ctx, struct Mesh *mesh) |
For non-deform types: apply the modifier and return a mesh data-block.
The mesh argument should always be non-NULL; the modifier should use the passed in mesh data-block rather than object->data, as it contains the mesh with modifier applied up to this point.
The modifier may modify and return the mesh argument, but must not free it and must ensure any referenced data layers are converted to non-referenced before modification.
Definition at line 223 of file BKE_modifier.h.
Referenced by BKE_mesh_create_derived_for_modifier(), BKE_modifier_modify_mesh(), BKE_multires_create_mesh(), and curve_calc_modifiers_post().
| struct Volume*(* ModifierTypeInfo::modifyVolume) (struct ModifierData *md, const struct ModifierEvalContext *ctx, struct Volume *volume) |
Definition at line 257 of file BKE_modifier.h.
Referenced by BKE_object_support_modifier_type_check(), and volume_evaluate_modifiers().
| char ModifierTypeInfo::name[32] |
Definition at line 160 of file BKE_modifier.h.
Referenced by BKE_modifier_new(), BKE_modifier_type_panel_id(), BKE_modifier_unique_name(), and modifier_copy_to_selected_exec().
| void(* ModifierTypeInfo::panelRegister) (struct ARegionType *region_type) |
Register the panel types for the modifier's UI.
Definition at line 379 of file BKE_modifier.h.
Referenced by ED_spacetype_buttons(), and uiTemplateModifiers().
| void(* ModifierTypeInfo::requiredDataMask) (struct Object *ob, struct ModifierData *md, struct CustomData_MeshMasks *r_cddata_masks) |
Should add to passed r_cddata_masks the data types that this modifier needs. If (mask & (1 << (layer type))) != 0, this modifier needs that custom data layer. It can change required layers depending on the modifier's settings.
Note that this means extra data (e.g. vertex groups) - it is assumed that all modifiers need mesh data and deform modifiers need vertex coordinates.
If this function is not present, it is assumed that no extra data is needed.
This function is optional.
Definition at line 289 of file BKE_modifier.h.
Referenced by BKE_modifier_calc_data_masks(), editbmesh_calc_modifiers(), and mesh_calc_modifiers().
| struct StructRNA* ModifierTypeInfo::srna |
Definition at line 171 of file BKE_modifier.h.
| char ModifierTypeInfo::structName[32] |
Definition at line 165 of file BKE_modifier.h.
Referenced by BKE_modifier_blend_write(), and BKE_modifier_new().
| int ModifierTypeInfo::structSize |
Definition at line 168 of file BKE_modifier.h.
Referenced by BKE_modifier_copydata_generic(), and BKE_modifier_new().
| ModifierTypeType ModifierTypeInfo::type |
Definition at line 173 of file BKE_modifier.h.
Referenced by add_hook_object(), BKE_crazyspace_get_first_deform_matrices_editbmesh(), BKE_curve_calc_modifiers_pre(), BKE_lattice_modifiers_calc(), BKE_mesh_create_derived_for_modifier(), BKE_modifier_calc_data_masks(), BKE_modifier_is_non_geometrical(), BKE_modifier_is_preview(), BKE_modifier_is_same_topology(), BKE_modifier_supports_mapping(), BKE_modifiers_uses_subsurf_facedots(), BKE_multires_create_deformed_base_mesh_vert_coords(), BKE_object_is_deform_modified(), blo_do_versions_pre250(), crazyspace_modifier_supports_deform(), crazyspace_modifier_supports_deform_matrices(), curve_calc_modifiers_post(), curve_get_tessellate_point(), ED_object_modifier_add(), ED_object_modifier_move_down(), ED_object_modifier_move_up(), editbmesh_calc_modifiers(), hair_evaluate_modifiers(), mesh_calc_modifiers(), modifier_apply_obdata(), modifier_apply_shape(), modifier_panel_header(), and sculpt_modifiers_active().
| void(* ModifierTypeInfo::updateDepsgraph) (struct ModifierData *md, const ModifierUpdateDepsgraphContext *ctx) |
Add the appropriate relations to the dependency graph.
This function is optional.
Definition at line 319 of file BKE_modifier.h.
Referenced by blender::deg::DepsgraphRelationBuilder::build_object_data_geometry().