Blender  V3.3
Classes | Typedefs | Enumerations | Functions
BKE_subdiv_ccg.h File Reference
#include "BKE_DerivedMesh.h"
#include "BLI_bitmap.h"
#include "BLI_sys_types.h"

Go to the source code of this file.

Classes

struct  SubdivCCGMaskEvaluator
 
struct  SubdivCCGMaterialFlagsEvaluator
 
struct  SubdivToCCGSettings
 
struct  SubdivCCGCoord
 
struct  SubdivCCGFace
 
struct  SubdivCCGAdjacentEdge
 
struct  SubdivCCGAdjacentVertex
 
struct  SubdivCCG
 
struct  SubdivCCGNeighbors
 

Typedefs

typedef struct SubdivCCGMaskEvaluator SubdivCCGMaskEvaluator
 
typedef struct SubdivCCGMaterialFlagsEvaluator SubdivCCGMaterialFlagsEvaluator
 
typedef struct SubdivToCCGSettings SubdivToCCGSettings
 
typedef struct SubdivCCGCoord SubdivCCGCoord
 
typedef struct SubdivCCGFace SubdivCCGFace
 
typedef struct SubdivCCGAdjacentEdge SubdivCCGAdjacentEdge
 
typedef struct SubdivCCGAdjacentVertex SubdivCCGAdjacentVertex
 
typedef struct SubdivCCG SubdivCCG
 
typedef struct SubdivCCGNeighbors SubdivCCGNeighbors
 
typedef enum SubdivCCGAdjacencyType SubdivCCGAdjacencyType
 

Enumerations

enum  SubdivCCGAdjacencyType { SUBDIV_CCG_ADJACENT_NONE , SUBDIV_CCG_ADJACENT_VERTEX , SUBDIV_CCG_ADJACENT_EDGE }
 

Functions

bool BKE_subdiv_ccg_mask_init_from_paint (SubdivCCGMaskEvaluator *mask_evaluator, const struct Mesh *mesh)
 
void BKE_subdiv_ccg_material_flags_init_from_mesh (SubdivCCGMaterialFlagsEvaluator *material_flags_evaluator, const struct Mesh *mesh)
 
struct SubdivCCGBKE_subdiv_to_ccg (struct Subdiv *subdiv, const SubdivToCCGSettings *settings, SubdivCCGMaskEvaluator *mask_evaluator, SubdivCCGMaterialFlagsEvaluator *material_flags_evaluator)
 
void BKE_subdiv_ccg_destroy (SubdivCCG *subdiv_ccg)
 
struct MeshBKE_subdiv_to_ccg_mesh (struct Subdiv *subdiv, const SubdivToCCGSettings *settings, const struct Mesh *coarse_mesh)
 
void BKE_subdiv_ccg_key (struct CCGKey *key, const SubdivCCG *subdiv_ccg, int level)
 
void BKE_subdiv_ccg_key_top_level (struct CCGKey *key, const SubdivCCG *subdiv_ccg)
 
void BKE_subdiv_ccg_recalc_normals (SubdivCCG *subdiv_ccg)
 
void BKE_subdiv_ccg_update_normals (SubdivCCG *subdiv_ccg, struct CCGFace **effected_faces, int num_effected_faces)
 
void BKE_subdiv_ccg_average_grids (SubdivCCG *subdiv_ccg)
 
void BKE_subdiv_ccg_average_stitch_faces (SubdivCCG *subdiv_ccg, struct CCGFace **effected_faces, int num_effected_faces)
 
void BKE_subdiv_ccg_topology_counters (const SubdivCCG *subdiv_ccg, int *r_num_vertices, int *r_num_edges, int *r_num_faces, int *r_num_loops)
 
void BKE_subdiv_ccg_print_coord (const char *message, const SubdivCCGCoord *coord)
 
bool BKE_subdiv_ccg_check_coord_valid (const SubdivCCG *subdiv_ccg, const SubdivCCGCoord *coord)
 
void BKE_subdiv_ccg_neighbor_coords_get (const SubdivCCG *subdiv_ccg, const SubdivCCGCoord *coord, bool include_duplicates, SubdivCCGNeighbors *r_neighbors)
 
int BKE_subdiv_ccg_grid_to_face_index (const SubdivCCG *subdiv_ccg, int grid_index)
 
void BKE_subdiv_ccg_eval_limit_point (const SubdivCCG *subdiv_ccg, const SubdivCCGCoord *coord, float r_point[3])
 
SubdivCCGAdjacencyType BKE_subdiv_ccg_coarse_mesh_adjacency_info_get (const SubdivCCG *subdiv_ccg, const SubdivCCGCoord *coord, const struct MLoop *mloop, const struct MPoly *mpoly, int *r_v1, int *r_v2)
 
const int * BKE_subdiv_ccg_start_face_grid_index_ensure (SubdivCCG *subdiv_ccg)
 
const int * BKE_subdiv_ccg_start_face_grid_index_get (const SubdivCCG *subdiv_ccg)
 
void BKE_subdiv_ccg_grid_hidden_ensure (SubdivCCG *subdiv_ccg, int grid_index)
 

Typedef Documentation

◆ SubdivCCG

typedef struct SubdivCCG SubdivCCG

◆ SubdivCCGAdjacencyType

◆ SubdivCCGAdjacentEdge

◆ SubdivCCGAdjacentVertex

◆ SubdivCCGCoord

◆ SubdivCCGFace

typedef struct SubdivCCGFace SubdivCCGFace

◆ SubdivCCGMaskEvaluator

◆ SubdivCCGMaterialFlagsEvaluator

◆ SubdivCCGNeighbors

◆ SubdivToCCGSettings

Enumeration Type Documentation

◆ SubdivCCGAdjacencyType

Enumerator
SUBDIV_CCG_ADJACENT_NONE 
SUBDIV_CCG_ADJACENT_VERTEX 
SUBDIV_CCG_ADJACENT_EDGE 

Definition at line 302 of file BKE_subdiv_ccg.h.

Function Documentation

◆ BKE_subdiv_ccg_average_grids()

void BKE_subdiv_ccg_average_grids ( SubdivCCG subdiv_ccg)

◆ BKE_subdiv_ccg_average_stitch_faces()

void BKE_subdiv_ccg_average_stitch_faces ( SubdivCCG subdiv_ccg,
struct CCGFace **  effected_faces,
int  num_effected_faces 
)

◆ BKE_subdiv_ccg_check_coord_valid()

bool BKE_subdiv_ccg_check_coord_valid ( const SubdivCCG subdiv_ccg,
const SubdivCCGCoord coord 
)

◆ BKE_subdiv_ccg_coarse_mesh_adjacency_info_get()

SubdivCCGAdjacencyType BKE_subdiv_ccg_coarse_mesh_adjacency_info_get ( const SubdivCCG subdiv_ccg,
const SubdivCCGCoord coord,
const struct MLoop mloop,
const struct MPoly mpoly,
int *  r_v1,
int *  r_v2 
)

◆ BKE_subdiv_ccg_destroy()

void BKE_subdiv_ccg_destroy ( SubdivCCG subdiv_ccg)

◆ BKE_subdiv_ccg_eval_limit_point()

void BKE_subdiv_ccg_eval_limit_point ( const SubdivCCG subdiv_ccg,
const SubdivCCGCoord coord,
float  r_point[3] 
)

◆ BKE_subdiv_ccg_grid_hidden_ensure()

void BKE_subdiv_ccg_grid_hidden_ensure ( SubdivCCG subdiv_ccg,
int  grid_index 
)

◆ BKE_subdiv_ccg_grid_to_face_index()

int BKE_subdiv_ccg_grid_to_face_index ( const SubdivCCG subdiv_ccg,
int  grid_index 
)

◆ BKE_subdiv_ccg_key()

void BKE_subdiv_ccg_key ( struct CCGKey key,
const SubdivCCG subdiv_ccg,
int  level 
)

◆ BKE_subdiv_ccg_key_top_level()

void BKE_subdiv_ccg_key_top_level ( struct CCGKey key,
const SubdivCCG subdiv_ccg 
)

◆ BKE_subdiv_ccg_mask_init_from_paint()

bool BKE_subdiv_ccg_mask_init_from_paint ( SubdivCCGMaskEvaluator mask_evaluator,
const struct Mesh mesh 
)

◆ BKE_subdiv_ccg_material_flags_init_from_mesh()

void BKE_subdiv_ccg_material_flags_init_from_mesh ( SubdivCCGMaterialFlagsEvaluator material_flags_evaluator,
const struct Mesh mesh 
)

Referenced by BKE_subdiv_to_ccg_mesh().

◆ BKE_subdiv_ccg_neighbor_coords_get()

void BKE_subdiv_ccg_neighbor_coords_get ( const SubdivCCG subdiv_ccg,
const SubdivCCGCoord coord,
bool  include_duplicates,
SubdivCCGNeighbors r_neighbors 
)

◆ BKE_subdiv_ccg_print_coord()

void BKE_subdiv_ccg_print_coord ( const char *  message,
const SubdivCCGCoord coord 
)

Definition at line 1374 of file subdiv_ccg.c.

References SubdivCCGCoord::grid_index, SubdivCCGCoord::x, and SubdivCCGCoord::y.

◆ BKE_subdiv_ccg_recalc_normals()

void BKE_subdiv_ccg_recalc_normals ( SubdivCCG subdiv_ccg)

◆ BKE_subdiv_ccg_start_face_grid_index_ensure()

const int* BKE_subdiv_ccg_start_face_grid_index_ensure ( SubdivCCG subdiv_ccg)

◆ BKE_subdiv_ccg_start_face_grid_index_get()

const int* BKE_subdiv_ccg_start_face_grid_index_get ( const SubdivCCG subdiv_ccg)

Definition at line 1973 of file subdiv_ccg.c.

References SubdivCCG::cache_, and SubdivCCG::start_face_grid_index.

◆ BKE_subdiv_ccg_topology_counters()

void BKE_subdiv_ccg_topology_counters ( const SubdivCCG subdiv_ccg,
int *  r_num_vertices,
int *  r_num_edges,
int *  r_num_faces,
int *  r_num_loops 
)

Definition at line 1352 of file subdiv_ccg.c.

References SubdivCCG::grid_size, and SubdivCCG::num_grids.

Referenced by stats_mesheval().

◆ BKE_subdiv_ccg_update_normals()

void BKE_subdiv_ccg_update_normals ( SubdivCCG subdiv_ccg,
struct CCGFace **  effected_faces,
int  num_effected_faces 
)

◆ BKE_subdiv_to_ccg()

struct SubdivCCG* BKE_subdiv_to_ccg ( struct Subdiv subdiv,
const SubdivToCCGSettings settings,
SubdivCCGMaskEvaluator mask_evaluator,
SubdivCCGMaterialFlagsEvaluator material_flags_evaluator 
)

◆ BKE_subdiv_to_ccg_mesh()

struct Mesh* BKE_subdiv_to_ccg_mesh ( struct Subdiv subdiv,
const SubdivToCCGSettings settings,
const struct Mesh coarse_mesh 
)

Referenced by multires_as_ccg(), and subdiv_as_ccg().