Blender  V2.93
Classes | Typedefs | Functions
multires_reshape.h File Reference
#include "BLI_sys_types.h"
#include "BKE_multires.h"

Go to the source code of this file.

Classes

struct  MultiresReshapeContext
 
struct  GridCoord
 
struct  PTexCoord
 
struct  ReshapeGridElement
 
struct  ReshapeConstGridElement
 

Typedefs

typedef struct MultiresReshapeContext MultiresReshapeContext
 
typedef struct GridCoord GridCoord
 
typedef struct PTexCoord PTexCoord
 
typedef struct ReshapeGridElement ReshapeGridElement
 
typedef struct ReshapeConstGridElement ReshapeConstGridElement
 

Functions

struct Subdivmultires_reshape_create_subdiv (struct Depsgraph *depsgraph, struct Object *object, const struct MultiresModifierData *mmd)
 
bool multires_reshape_context_create_from_object (MultiresReshapeContext *reshape_context, struct Depsgraph *depsgraph, struct Object *object, struct MultiresModifierData *mmd)
 
bool multires_reshape_context_create_from_base_mesh (MultiresReshapeContext *reshape_context, struct Depsgraph *depsgraph, struct Object *object, struct MultiresModifierData *mmd)
 
bool multires_reshape_context_create_from_ccg (MultiresReshapeContext *reshape_context, struct SubdivCCG *subdiv_ccg, struct Mesh *base_mesh, int top_level)
 
bool multires_reshape_context_create_from_modifier (MultiresReshapeContext *reshape_context, struct Object *object, struct MultiresModifierData *mmd, int top_level)
 
bool multires_reshape_context_create_from_subdiv (MultiresReshapeContext *reshape_context, struct Object *object, struct MultiresModifierData *mmd, struct Subdiv *subdiv, int top_level)
 
void multires_reshape_free_original_grids (MultiresReshapeContext *reshape_context)
 
void multires_reshape_context_free (MultiresReshapeContext *reshape_context)
 
int multires_reshape_grid_to_face_index (const MultiresReshapeContext *reshape_context, int grid_index)
 
int multires_reshape_grid_to_corner (const MultiresReshapeContext *reshape_context, int grid_index)
 
bool multires_reshape_is_quad_face (const MultiresReshapeContext *reshape_context, int face_index)
 
int multires_reshape_grid_to_ptex_index (const MultiresReshapeContext *reshape_context, int grid_index)
 
PTexCoord multires_reshape_grid_coord_to_ptex (const MultiresReshapeContext *reshape_context, const GridCoord *grid_coord)
 
GridCoord multires_reshape_ptex_coord_to_grid (const MultiresReshapeContext *reshape_context, const PTexCoord *ptex_coord)
 
void multires_reshape_tangent_matrix_for_corner (const MultiresReshapeContext *reshape_context, const int face_index, const int corner, const float dPdu[3], const float dPdv[3], float r_tangent_matrix[3][3])
 
ReshapeGridElement multires_reshape_grid_element_for_grid_coord (const MultiresReshapeContext *reshape_context, const GridCoord *grid_coord)
 
ReshapeGridElement multires_reshape_grid_element_for_ptex_coord (const MultiresReshapeContext *reshape_context, const PTexCoord *ptex_coord)
 
ReshapeConstGridElement multires_reshape_orig_grid_element_for_grid_coord (const MultiresReshapeContext *reshape_context, const GridCoord *grid_coord)
 
void multires_reshape_evaluate_limit_at_grid (const MultiresReshapeContext *reshape_context, const GridCoord *grid_coord, float r_P[3], float r_tangent_matrix[3][3])
 
void multires_reshape_ensure_grids (struct Mesh *mesh, const int level)
 
bool multires_reshape_assign_final_coords_from_vertcos (const MultiresReshapeContext *reshape_context, const float(*vert_coords)[3], const int num_vert_coords)
 
bool multires_reshape_assign_final_coords_from_ccg (const MultiresReshapeContext *reshape_context, struct SubdivCCG *subdiv_ccg)
 
void multires_reshape_assign_final_coords_from_mdisps (const MultiresReshapeContext *reshape_context)
 
void multires_reshape_assign_final_elements_from_orig_mdisps (const MultiresReshapeContext *reshape_context)
 
void multires_reshape_smooth_object_grids_with_details (const MultiresReshapeContext *reshape_context)
 
void multires_reshape_smooth_object_grids (const MultiresReshapeContext *reshape_context, const enum eMultiresSubdivideModeType mode)
 
void multires_reshape_store_original_grids (MultiresReshapeContext *reshape_context)
 
void multires_reshape_object_grids_to_tangent_displacement (const MultiresReshapeContext *reshape_context)
 
void multires_reshape_apply_base_update_mesh_coords (MultiresReshapeContext *reshape_context)
 
void multires_reshape_apply_base_refit_base_mesh (MultiresReshapeContext *reshape_context)
 
void multires_reshape_apply_base_refine_from_base (MultiresReshapeContext *reshape_context)
 
void multires_reshape_apply_base_refine_from_deform (MultiresReshapeContext *reshape_context)
 

Typedef Documentation

◆ GridCoord

typedef struct GridCoord GridCoord

Coordinate which identifies element of a grid. This is directly related on how CD_MDISPS stores displacement.

◆ MultiresReshapeContext

◆ PTexCoord

typedef struct PTexCoord PTexCoord

Coordinate within ptex, which is what OpenSubdiv API operates on.

◆ ReshapeConstGridElement

◆ ReshapeGridElement

Element of a grid data stored in the destination mesh. This is where reshaped coordinates and mask values will be written to.

Function Documentation

◆ multires_reshape_apply_base_refine_from_base()

void multires_reshape_apply_base_refine_from_base ( MultiresReshapeContext reshape_context)

◆ multires_reshape_apply_base_refine_from_deform()

void multires_reshape_apply_base_refine_from_deform ( MultiresReshapeContext reshape_context)

◆ multires_reshape_apply_base_refit_base_mesh()

void multires_reshape_apply_base_refit_base_mesh ( MultiresReshapeContext reshape_context)

◆ multires_reshape_apply_base_update_mesh_coords()

void multires_reshape_apply_base_update_mesh_coords ( MultiresReshapeContext reshape_context)

◆ multires_reshape_assign_final_coords_from_ccg()

bool multires_reshape_assign_final_coords_from_ccg ( const MultiresReshapeContext reshape_context,
struct SubdivCCG subdiv_ccg 
)

◆ multires_reshape_assign_final_coords_from_mdisps()

void multires_reshape_assign_final_coords_from_mdisps ( const MultiresReshapeContext reshape_context)

◆ multires_reshape_assign_final_coords_from_vertcos()

bool multires_reshape_assign_final_coords_from_vertcos ( const MultiresReshapeContext reshape_context,
const float(*)  vert_coords[3],
const int  num_vert_coords 
)

◆ multires_reshape_assign_final_elements_from_orig_mdisps()

void multires_reshape_assign_final_elements_from_orig_mdisps ( const MultiresReshapeContext reshape_context)

◆ multires_reshape_context_create_from_base_mesh()

bool multires_reshape_context_create_from_base_mesh ( MultiresReshapeContext reshape_context,
struct Depsgraph depsgraph,
struct Object object,
struct MultiresModifierData mmd 
)

◆ multires_reshape_context_create_from_ccg()

bool multires_reshape_context_create_from_ccg ( MultiresReshapeContext reshape_context,
struct SubdivCCG subdiv_ccg,
struct Mesh base_mesh,
int  top_level 
)

◆ multires_reshape_context_create_from_modifier()

bool multires_reshape_context_create_from_modifier ( MultiresReshapeContext reshape_context,
struct Object object,
struct MultiresModifierData mmd,
int  top_level 
)

◆ multires_reshape_context_create_from_object()

bool multires_reshape_context_create_from_object ( MultiresReshapeContext reshape_context,
struct Depsgraph depsgraph,
struct Object object,
struct MultiresModifierData mmd 
)

◆ multires_reshape_context_create_from_subdiv()

bool multires_reshape_context_create_from_subdiv ( MultiresReshapeContext reshape_context,
struct Object object,
struct MultiresModifierData mmd,
struct Subdiv subdiv,
int  top_level 
)

◆ multires_reshape_context_free()

void multires_reshape_context_free ( MultiresReshapeContext reshape_context)

◆ multires_reshape_create_subdiv()

struct Subdiv* multires_reshape_create_subdiv ( struct Depsgraph depsgraph,
struct Object object,
const struct MultiresModifierData mmd 
)

◆ multires_reshape_ensure_grids()

void multires_reshape_ensure_grids ( struct Mesh mesh,
const int  level 
)

◆ multires_reshape_evaluate_limit_at_grid()

void multires_reshape_evaluate_limit_at_grid ( const MultiresReshapeContext reshape_context,
const GridCoord grid_coord,
float  r_P[3],
float  r_tangent_matrix[3][3] 
)

◆ multires_reshape_free_original_grids()

void multires_reshape_free_original_grids ( MultiresReshapeContext reshape_context)

◆ multires_reshape_grid_coord_to_ptex()

PTexCoord multires_reshape_grid_coord_to_ptex ( const MultiresReshapeContext reshape_context,
const GridCoord grid_coord 
)

◆ multires_reshape_grid_element_for_grid_coord()

ReshapeGridElement multires_reshape_grid_element_for_grid_coord ( const MultiresReshapeContext reshape_context,
const GridCoord grid_coord 
)

◆ multires_reshape_grid_element_for_ptex_coord()

ReshapeGridElement multires_reshape_grid_element_for_ptex_coord ( const MultiresReshapeContext reshape_context,
const PTexCoord ptex_coord 
)

◆ multires_reshape_grid_to_corner()

int multires_reshape_grid_to_corner ( const MultiresReshapeContext reshape_context,
int  grid_index 
)

◆ multires_reshape_grid_to_face_index()

int multires_reshape_grid_to_face_index ( const MultiresReshapeContext reshape_context,
int  grid_index 
)

◆ multires_reshape_grid_to_ptex_index()

int multires_reshape_grid_to_ptex_index ( const MultiresReshapeContext reshape_context,
int  grid_index 
)

◆ multires_reshape_is_quad_face()

bool multires_reshape_is_quad_face ( const MultiresReshapeContext reshape_context,
int  face_index 
)

◆ multires_reshape_object_grids_to_tangent_displacement()

void multires_reshape_object_grids_to_tangent_displacement ( const MultiresReshapeContext reshape_context)

◆ multires_reshape_orig_grid_element_for_grid_coord()

ReshapeConstGridElement multires_reshape_orig_grid_element_for_grid_coord ( const MultiresReshapeContext reshape_context,
const GridCoord grid_coord 
)

◆ multires_reshape_ptex_coord_to_grid()

GridCoord multires_reshape_ptex_coord_to_grid ( const MultiresReshapeContext reshape_context,
const PTexCoord ptex_coord 
)

◆ multires_reshape_smooth_object_grids()

void multires_reshape_smooth_object_grids ( const MultiresReshapeContext reshape_context,
const enum eMultiresSubdivideModeType  mode 
)

◆ multires_reshape_smooth_object_grids_with_details()

void multires_reshape_smooth_object_grids_with_details ( const MultiresReshapeContext reshape_context)

◆ multires_reshape_store_original_grids()

void multires_reshape_store_original_grids ( MultiresReshapeContext reshape_context)

◆ multires_reshape_tangent_matrix_for_corner()

void multires_reshape_tangent_matrix_for_corner ( const MultiresReshapeContext reshape_context,
const int  face_index,
const int  corner,
const float  dPdu[3],
const float  dPdv[3],
float  r_tangent_matrix[3][3] 
)