Blender  V2.93
Typedefs | Enumerations | Functions
BKE_multires.h File Reference
#include "BKE_subsurf.h"
#include "BLI_compiler_compat.h"
#include "intern/multires_inline.h"

Go to the source code of this file.

Typedefs

typedef enum eMultiresSubdivideModeType eMultiresSubdivideModeType
 

Enumerations

enum  MultiresFlags { MULTIRES_USE_LOCAL_MMD = 1 , MULTIRES_USE_RENDER_PARAMS = 2 , MULTIRES_ALLOC_PAINT_MASK = 4 , MULTIRES_IGNORE_SIMPLIFY = 8 }
 
enum  eMultiresSubdivideModeType { MULTIRES_SUBDIVIDE_CATMULL_CLARK , MULTIRES_SUBDIVIDE_SIMPLE , MULTIRES_SUBDIVIDE_LINEAR }
 

Functions

void multires_customdata_delete (struct Mesh *me)
 
void multires_set_tot_level (struct Object *ob, struct MultiresModifierData *mmd, int lvl)
 
void multires_mark_as_modified (struct Depsgraph *depsgraph, struct Object *object, enum MultiresModifiedFlags flags)
 
void multires_flush_sculpt_updates (struct Object *object)
 
void multires_force_sculpt_rebuild (struct Object *object)
 
void multires_force_external_reload (struct Object *object)
 
void multires_modifier_update_mdisps (struct DerivedMesh *dm, struct Scene *scene)
 
void multires_modifier_update_hidden (struct DerivedMesh *dm)
 
void multiresModifier_set_levels_from_disps (struct MultiresModifierData *mmd, struct Object *ob)
 
struct DerivedMeshmultires_make_derived_from_derived (struct DerivedMesh *dm, struct MultiresModifierData *mmd, struct Scene *scene, struct Object *ob, MultiresFlags flags)
 
struct MultiresModifierDatafind_multires_modifier_before (struct Scene *scene, struct ModifierData *lastmd)
 
struct MultiresModifierDataget_multires_modifier (struct Scene *scene, struct Object *ob, bool use_first)
 
int multires_get_level (const struct Scene *scene, const struct Object *ob, const struct MultiresModifierData *mmd, bool render, bool ignore_simplify)
 
struct MeshBKE_multires_create_mesh (struct Depsgraph *depsgraph, struct Object *object, struct MultiresModifierData *mmd)
 
float(* BKE_multires_create_deformed_base_mesh_vert_coords (struct Depsgraph *depsgraph, struct Object *object, struct MultiresModifierData *mmd, int *r_num_deformed_verts))[3]
 
void multiresModifier_del_levels (struct MultiresModifierData *mmd, struct Scene *scene, struct Object *object, int direction)
 
void multiresModifier_base_apply (struct Depsgraph *depsgraph, struct Object *object, struct MultiresModifierData *mmd)
 
int multiresModifier_rebuild_subdiv (struct Depsgraph *depsgraph, struct Object *object, struct MultiresModifierData *mmd, int rebuild_limit, bool switch_view_to_lower_level)
 
void multiresModifier_sync_levels_ex (struct Object *ob_dst, struct MultiresModifierData *mmd_src, struct MultiresModifierData *mmd_dst)
 
void multires_stitch_grids (struct Object *)
 
void multiresModifier_scale_disp (struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob)
 
void multiresModifier_prepare_join (struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob, struct Object *to_ob)
 
int multires_mdisp_corners (struct MDisps *s)
 
void multires_topology_changed (struct Mesh *me)
 
void multires_ensure_external_read (struct Mesh *mesh, int top_level)
 
void multiresModifier_ensure_external_read (struct Mesh *mesh, const struct MultiresModifierData *mmd)
 
void old_mdisps_bilinear (float out[3], float(*disps)[3], const int st, float u, float v)
 
int mdisp_rot_face_to_crn (struct MVert *mvert, struct MPoly *mpoly, struct MLoop *mloop, const struct MLoopTri *lt, const int face_side, const float u, const float v, float *x, float *y)
 
bool multiresModifier_reshapeFromVertcos (struct Depsgraph *depsgraph, struct Object *object, struct MultiresModifierData *mmd, const float(*vert_coords)[3], const int num_vert_coords)
 
bool multiresModifier_reshapeFromObject (struct Depsgraph *depsgraph, struct MultiresModifierData *mmd, struct Object *dst, struct Object *src)
 
bool multiresModifier_reshapeFromDeformModifier (struct Depsgraph *depsgraph, struct Object *ob, struct MultiresModifierData *mmd, struct ModifierData *deform_md)
 
bool multiresModifier_reshapeFromCCG (const int tot_level, struct Mesh *coarse_mesh, struct SubdivCCG *subdiv_ccg)
 
void multiresModifier_subdivide (struct Object *object, struct MultiresModifierData *mmd, const eMultiresSubdivideModeType mode)
 
void multires_subdivide_create_tangent_displacement_linear_grids (struct Object *object, struct MultiresModifierData *mmd)
 
void multiresModifier_subdivide_to_level (struct Object *object, struct MultiresModifierData *mmd, const int top_level, const eMultiresSubdivideModeType mode)
 
void BKE_multires_subdiv_settings_init (struct SubdivSettings *settings, const struct MultiresModifierData *mmd)
 
void BKE_multires_subdiv_mesh_settings_init (struct SubdivToMeshSettings *mesh_settings, const struct Scene *scene, const struct Object *object, const struct MultiresModifierData *mmd, const bool use_render_params, const bool ignore_simplify, const bool ignore_control_edges)
 
BLI_INLINE void BKE_multires_construct_tangent_matrix (float tangent_matrix[3][3], const float dPdu[3], const float dPdv[3], const int corner)
 
void multires_do_versions_simple_to_catmull_clark (struct Object *object, struct MultiresModifierData *mmd)
 

Typedef Documentation

◆ eMultiresSubdivideModeType

Enumeration Type Documentation

◆ eMultiresSubdivideModeType

Enumerator
MULTIRES_SUBDIVIDE_CATMULL_CLARK 
MULTIRES_SUBDIVIDE_SIMPLE 
MULTIRES_SUBDIVIDE_LINEAR 

Definition at line 171 of file BKE_multires.h.

◆ MultiresFlags

Enumerator
MULTIRES_USE_LOCAL_MMD 
MULTIRES_USE_RENDER_PARAMS 
MULTIRES_ALLOC_PAINT_MASK 
MULTIRES_IGNORE_SIMPLIFY 

Definition at line 67 of file BKE_multires.h.

Function Documentation

◆ BKE_multires_construct_tangent_matrix()

BLI_INLINE void BKE_multires_construct_tangent_matrix ( float  tangent_matrix[3][3],
const float  dPdu[3],
const float  dPdv[3],
const int  corner 
)

◆ BKE_multires_create_deformed_base_mesh_vert_coords()

float(* BKE_multires_create_deformed_base_mesh_vert_coords ( struct Depsgraph depsgraph,
struct Object object,
struct MultiresModifierData mmd,
int *  r_num_deformed_verts 
) )[3]

◆ BKE_multires_create_mesh()

struct Mesh* BKE_multires_create_mesh ( struct Depsgraph depsgraph,
struct Object object,
struct MultiresModifierData mmd 
)

◆ BKE_multires_subdiv_mesh_settings_init()

void BKE_multires_subdiv_mesh_settings_init ( struct SubdivToMeshSettings mesh_settings,
const struct Scene scene,
const struct Object object,
const struct MultiresModifierData mmd,
const bool  use_render_params,
const bool  ignore_simplify,
const bool  ignore_control_edges 
)

Referenced by multires_as_mesh().

◆ BKE_multires_subdiv_settings_init()

void BKE_multires_subdiv_settings_init ( struct SubdivSettings settings,
const struct MultiresModifierData mmd 
)

◆ find_multires_modifier_before()

struct MultiresModifierData* find_multires_modifier_before ( struct Scene scene,
struct ModifierData lastmd 
)

◆ get_multires_modifier()

struct MultiresModifierData* get_multires_modifier ( struct Scene scene,
struct Object ob,
bool  use_first 
)

◆ mdisp_rot_face_to_crn()

int mdisp_rot_face_to_crn ( struct MVert mvert,
struct MPoly mpoly,
struct MLoop mloop,
const struct MLoopTri lt,
const int  face_side,
const float  u,
const float  v,
float x,
float y 
)

Referenced by get_ccgdm_data().

◆ multires_customdata_delete()

void multires_customdata_delete ( Mesh me)

◆ multires_do_versions_simple_to_catmull_clark()

void multires_do_versions_simple_to_catmull_clark ( struct Object object,
struct MultiresModifierData mmd 
)

◆ multires_ensure_external_read()

void multires_ensure_external_read ( struct Mesh mesh,
int  top_level 
)

◆ multires_flush_sculpt_updates()

void multires_flush_sculpt_updates ( struct Object object)

◆ multires_force_external_reload()

void multires_force_external_reload ( struct Object object)

◆ multires_force_sculpt_rebuild()

void multires_force_sculpt_rebuild ( struct Object object)

◆ multires_get_level()

int multires_get_level ( const struct Scene scene,
const struct Object ob,
const struct MultiresModifierData mmd,
bool  render,
bool  ignore_simplify 
)

◆ multires_make_derived_from_derived()

struct DerivedMesh* multires_make_derived_from_derived ( struct DerivedMesh dm,
struct MultiresModifierData mmd,
struct Scene scene,
struct Object ob,
MultiresFlags  flags 
)

◆ multires_mark_as_modified()

void multires_mark_as_modified ( struct Depsgraph depsgraph,
struct Object object,
enum MultiresModifiedFlags  flags 
)

◆ multires_mdisp_corners()

int multires_mdisp_corners ( struct MDisps s)

Definition at line 1436 of file multires.c.

References MDisps::totdisp.

Referenced by bm_corners_to_loops_ex(), and layerSwap_mdisps().

◆ multires_modifier_update_hidden()

void multires_modifier_update_hidden ( struct DerivedMesh dm)

◆ multires_modifier_update_mdisps()

void multires_modifier_update_mdisps ( struct DerivedMesh dm,
struct Scene scene 
)

◆ multires_set_tot_level()

void multires_set_tot_level ( struct Object ob,
struct MultiresModifierData mmd,
int  lvl 
)

◆ multires_stitch_grids()

void multires_stitch_grids ( struct Object ob)

◆ multires_subdivide_create_tangent_displacement_linear_grids()

void multires_subdivide_create_tangent_displacement_linear_grids ( struct Object object,
struct MultiresModifierData mmd 
)

◆ multires_topology_changed()

void multires_topology_changed ( struct Mesh me)

◆ multiresModifier_base_apply()

void multiresModifier_base_apply ( struct Depsgraph depsgraph,
struct Object object,
struct MultiresModifierData mmd 
)

◆ multiresModifier_del_levels()

void multiresModifier_del_levels ( struct MultiresModifierData mmd,
struct Scene scene,
struct Object object,
int  direction 
)

◆ multiresModifier_ensure_external_read()

void multiresModifier_ensure_external_read ( struct Mesh mesh,
const struct MultiresModifierData mmd 
)

Referenced by initialize().

◆ multiresModifier_prepare_join()

void multiresModifier_prepare_join ( struct Depsgraph depsgraph,
struct Scene scene,
struct Object ob,
struct Object to_ob 
)

◆ multiresModifier_rebuild_subdiv()

int multiresModifier_rebuild_subdiv ( struct Depsgraph depsgraph,
struct Object object,
struct MultiresModifierData mmd,
int  rebuild_limit,
bool  switch_view_to_lower_level 
)

◆ multiresModifier_reshapeFromCCG()

bool multiresModifier_reshapeFromCCG ( const int  tot_level,
struct Mesh coarse_mesh,
struct SubdivCCG subdiv_ccg 
)

◆ multiresModifier_reshapeFromDeformModifier()

bool multiresModifier_reshapeFromDeformModifier ( struct Depsgraph depsgraph,
struct Object ob,
struct MultiresModifierData mmd,
struct ModifierData deform_md 
)

◆ multiresModifier_reshapeFromObject()

bool multiresModifier_reshapeFromObject ( struct Depsgraph depsgraph,
struct MultiresModifierData mmd,
struct Object dst,
struct Object src 
)

◆ multiresModifier_reshapeFromVertcos()

bool multiresModifier_reshapeFromVertcos ( struct Depsgraph depsgraph,
struct Object object,
struct MultiresModifierData mmd,
const float(*)  vert_coords[3],
const int  num_vert_coords 
)

◆ multiresModifier_scale_disp()

void multiresModifier_scale_disp ( struct Depsgraph depsgraph,
struct Scene scene,
struct Object ob 
)

Definition at line 1451 of file multires.c.

References BKE_object_scale_to_mat3(), depsgraph, multires_apply_smat(), and scene.

Referenced by apply_objects_internal().

◆ multiresModifier_set_levels_from_disps()

void multiresModifier_set_levels_from_disps ( struct MultiresModifierData mmd,
struct Object ob 
)

◆ multiresModifier_subdivide()

void multiresModifier_subdivide ( struct Object object,
struct MultiresModifierData mmd,
const eMultiresSubdivideModeType  mode 
)

◆ multiresModifier_subdivide_to_level()

void multiresModifier_subdivide_to_level ( struct Object object,
struct MultiresModifierData mmd,
const int  top_level,
const eMultiresSubdivideModeType  mode 
)

◆ multiresModifier_sync_levels_ex()

void multiresModifier_sync_levels_ex ( struct Object ob_dst,
struct MultiresModifierData mmd_src,
struct MultiresModifierData mmd_dst 
)

◆ old_mdisps_bilinear()

void old_mdisps_bilinear ( float  out[3],
float(*)  disps[3],
const int  st,
float  u,
float  v 
)

Definition at line 1305 of file multires.c.

References add_v3_v3v3(), floor(), libmv::isnan(), mul_v3_fl(), mul_v3_v3fl(), v, x, x2, and y.

Referenced by loop_interp_multires_cb().