74 bool UNUSED(useRenderParams))
85 float (*vertexCos_Real)[3],
88 const bool use_factor = mcmd->
factor < 1.0f;
89 float(*vertexCos_Store)[3] = (use_factor ||
92 numVerts,
sizeof(*vertexCos_Store), __func__) :
94 float(*vertexCos)[3] = vertexCos_Store ? vertexCos_Store : vertexCos_Real;
96 const float fps =
FPS;
99 const char *err_str =
NULL;
153 switch (mcmd->
type) {
187 numVerts,
sizeof(*vertexCos_Source), __func__);
191 for (i = 0; i < numVerts; i++,
mv++) {
201 (
const float(*)[3])vertexCos_Source,
202 (
const float(*)[3])vertexCos_Real,
204 (
const float(*)[3])vertexCos,
209 memcpy(vertexCos, vertexCos_New,
sizeof(*vertexCos) * numVerts);
222 bool use_matrix =
false;
249 for (i = 0; i < numVerts; i++) {
255 if (vertexCos_Store) {
261 memcpy(vertexCos_Real, vertexCos_Store,
sizeof(*vertexCos_Store) * numVerts);
272 float (*vertexCos)[3],
285 float (*vertexCos)[3],
375 "MeshCacheModifierData",
typedef float(TangentPoint)[2]
void BKE_mesh_calc_relative_deform(const struct MPoly *mpoly, const int totpoly, const struct MLoop *mloop, const int totvert, const float(*vert_cos_src)[3], const float(*vert_cos_dst)[3], const float(*vert_cos_org)[3], float(*vert_cos_new)[3])
@ eModifierTypeFlag_AcceptsCVs
@ eModifierTypeFlag_SupportsEditmode
@ eModifierTypeFlag_AcceptsVertexCosOnly
void BKE_modifier_copydata_generic(const struct ModifierData *md, struct ModifierData *md_dst, const int flag)
@ eModifierTypeType_OnlyDeform
void BKE_modifier_set_error(const struct Object *ob, struct ModifierData *md, const char *format,...) ATTR_PRINTF_FORMAT(3
float BKE_scene_frame_get(const struct Scene *scene)
void mul_m3_v3(const float M[3][3], float r[3])
void unit_m3(float m[3][3])
void mul_m3_m3m3(float R[3][3], const float A[3][3], const float B[3][3])
bool mat3_from_axis_conversion(int src_forward, int src_up, int dst_forward, int dst_up, float r_mat[3][3])
MINLINE void copy_v3_v3(float r[3], const float a[3])
void interp_vn_vn(float *array_tar, const float *array_src, const float t, const int size)
bool BLI_path_abs(char *path, const char *basepath) ATTR_NONNULL()
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, const size_t maxncpy) ATTR_NONNULL()
#define MEMCMP_STRUCT_AFTER_IS_ZERO(struct_var, member)
#define MEMCPY_STRUCT_AFTER(struct_dst, struct_src, member)
struct Scene * DEG_get_evaluated_scene(const struct Depsgraph *graph)
#define ID_BLEND_PATH_FROM_GLOBAL(_id)
#define DNA_struct_default_get(struct_name)
struct MeshCacheModifierData MeshCacheModifierData
@ MOD_MESHCACHE_DEFORM_INTEGRATE
@ eModifierType_MeshCache
@ MOD_MESHCACHE_PLAY_CFEA
@ MOD_MESHCACHE_TIME_FRAME
@ MOD_MESHCACHE_TIME_FACTOR
@ MOD_MESHCACHE_TIME_SECONDS
Object is a sort of wrapper for general info.
Read Guarded memory(de)allocation.
static void time_remapping_panel_draw(const bContext *UNUSED(C), Panel *panel)
static void meshcache_do(MeshCacheModifierData *mcmd, Scene *scene, Object *ob, float(*vertexCos_Real)[3], int numVerts)
ModifierTypeInfo modifierType_MeshCache
static bool isDisabled(const struct Scene *UNUSED(scene), ModifierData *md, bool UNUSED(useRenderParams))
static void axis_mapping_panel_draw(const bContext *UNUSED(C), Panel *panel)
static void deformVertsEM(ModifierData *md, const ModifierEvalContext *ctx, struct BMEditMesh *UNUSED(editData), Mesh *UNUSED(mesh), float(*vertexCos)[3], int numVerts)
static void deformVerts(ModifierData *md, const ModifierEvalContext *ctx, Mesh *UNUSED(mesh), float(*vertexCos)[3], int numVerts)
static void panel_draw(const bContext *UNUSED(C), Panel *panel)
static void initData(ModifierData *md)
static void panelRegister(ARegionType *region_type)
static bool dependsOnTime(ModifierData *md)
bool MOD_meshcache_read_mdd_times(const char *filepath, float(*vertexCos)[3], const int verts_tot, const char interp, const float time, const float fps, const char time_mode, const char **err_str)
bool MOD_meshcache_read_pc2_times(const char *filepath, float(*vertexCos)[3], const int verts_tot, const char interp, const float time, const float fps, const char time_mode, const char **err_str)
PointerRNA * modifier_panel_get_property_pointers(Panel *panel, PointerRNA *r_ob_ptr)
void modifier_panel_end(uiLayout *layout, PointerRNA *ptr)
PanelType * modifier_panel_register(ARegionType *region_type, ModifierType type, PanelDrawFn draw)
PanelType * modifier_subpanel_register(ARegionType *region_type, const char *name, const char *label, PanelDrawFn draw_header, PanelDrawFn draw, PanelType *parent)
StructRNA RNA_MeshCacheModifier
uiLayout * uiLayoutColumn(uiLayout *layout, bool align)
void uiLayoutSetRedAlert(uiLayout *layout, bool redalert)
void uiLayoutSetPropSep(uiLayout *layout, bool is_sep)
void uiItemR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int flag, const char *name, int icon)
void *(* MEM_malloc_arrayN)(size_t len, size_t size, const char *str)
void(* MEM_freeN)(void *vmemh)
int RNA_enum_get(PointerRNA *ptr, const char *name)
struct Depsgraph * depsgraph