diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_multires.h')
-rw-r--r-- | source/blender/blenkernel/BKE_multires.h | 30 |
1 files changed, 28 insertions, 2 deletions
diff --git a/source/blender/blenkernel/BKE_multires.h b/source/blender/blenkernel/BKE_multires.h index 39fc795e6ff..ea34ff4aa07 100644 --- a/source/blender/blenkernel/BKE_multires.h +++ b/source/blender/blenkernel/BKE_multires.h @@ -30,6 +30,10 @@ #ifndef BKE_MULTIRES_H #define BKE_MULTIRES_H +/** \file BKE_multires.h + * \ingroup bke + */ + struct DerivedMesh; struct Mesh; struct MFace; @@ -37,6 +41,8 @@ struct Multires; struct MultiresModifierData; struct ModifierData; struct Object; +struct Scene; +struct MDisps; void multires_mark_as_modified(struct Object *ob); @@ -44,15 +50,18 @@ void multires_force_update(struct Object *ob); void multires_force_render_update(struct Object *ob); void multires_force_external_reload(struct Object *ob); +void multiresModifier_set_levels_from_disps(struct MultiresModifierData *mmd, struct Object *ob); + struct DerivedMesh *multires_dm_create_from_derived(struct MultiresModifierData*, int local_mmd, struct DerivedMesh*, struct Object *, int, int); struct MultiresModifierData *find_multires_modifier_before(struct Scene *scene, struct ModifierData *lastmd); +struct MultiresModifierData *get_multires_modifier(struct Scene *scene, struct Object *ob, int use_first); struct DerivedMesh *get_multires_dm(struct Scene *scene, struct MultiresModifierData *mmd, struct Object *ob); -void multiresModifier_join(struct Object *); void multiresModifier_del_levels(struct MultiresModifierData *, struct Object *, int direction); +void multiresModifier_base_apply(struct MultiresModifierData *mmd, struct Object *ob); void multiresModifier_subdivide(struct MultiresModifierData *mmd, struct Object *ob, int updateblock, int simple); int multiresModifier_reshape(struct Scene *scene, struct MultiresModifierData *mmd, @@ -69,5 +78,22 @@ void multires_free(struct Multires *mr); void multires_load_old(struct Object *ob, struct Mesh *me); void multires_load_old_250(struct Mesh *); -#endif +void multiresModifier_scale_disp(struct Scene *scene, struct Object *ob); +void multiresModifier_prepare_join(struct Scene *scene, struct Object *ob, struct Object *to_ob); + +int multires_mdisp_corners(struct MDisps *s); +void multires_mdisp_smooth_bounds(struct MDisps *disps); + +/* update multires data after topology changing */ +void multires_topology_changed(struct Scene *scene, struct Object *ob); + +/**** interpolation stuff ****/ +void old_mdisps_bilinear(float out[3], float (*disps)[3], const int st, float u, float v); +void mdisp_rot_crn_to_face(const int S, const int corners, const int face_side, const float x, const float y, float *u, float *v); +int mdisp_rot_face_to_crn(const int corners, const int face_side, const float u, const float v, float *x, float *y); +void mdisp_apply_weight(const int S, const int corners, int x, int y, const int face_side, float crn_weight[4][2], float *u_r, float *v_r); +void mdisp_flip_disp(const int S, const int corners, const float axis_x[2], const float axis_y[2], float disp[3]); +void mdisp_join_tris(struct MDisps *dst, struct MDisps *tri1, struct MDisps *tri2); + +#endif // BKE_MULTIRES_H |