Blender
V3.3
|
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 } |
typedef enum SubdivCCGAdjacencyType SubdivCCGAdjacencyType |
typedef struct SubdivCCGAdjacentEdge SubdivCCGAdjacentEdge |
typedef struct SubdivCCGAdjacentVertex SubdivCCGAdjacentVertex |
typedef struct SubdivCCGCoord SubdivCCGCoord |
typedef struct SubdivCCGFace SubdivCCGFace |
typedef struct SubdivCCGMaskEvaluator SubdivCCGMaskEvaluator |
typedef struct SubdivCCGMaterialFlagsEvaluator SubdivCCGMaterialFlagsEvaluator |
typedef struct SubdivCCGNeighbors SubdivCCGNeighbors |
typedef struct SubdivToCCGSettings SubdivToCCGSettings |
Enumerator | |
---|---|
SUBDIV_CCG_ADJACENT_NONE | |
SUBDIV_CCG_ADJACENT_VERTEX | |
SUBDIV_CCG_ADJACENT_EDGE |
Definition at line 302 of file BKE_subdiv_ccg.h.
Definition at line 1197 of file subdiv_ccg.c.
References BKE_subdiv_ccg_key_top_level(), BLI_parallel_range_settings_defaults(), BLI_task_parallel_range(), SubdivCCG::num_faces, AverageInnerGridsData::subdiv_ccg, subdiv_ccg_average_all_boundaries_and_corners(), and subdiv_ccg_average_inner_grids_task().
Referenced by BKE_subdiv_ccg_recalc_normals().
void BKE_subdiv_ccg_average_stitch_faces | ( | SubdivCCG * | subdiv_ccg, |
struct CCGFace ** | effected_faces, | ||
int | num_effected_faces | ||
) |
Definition at line 1329 of file subdiv_ccg.c.
References BKE_subdiv_ccg_key_top_level(), BLI_parallel_range_settings_defaults(), BLI_task_parallel_range(), data, subdiv_ccg_average_all_boundaries_and_corners(), and subdiv_ccg_stitch_face_inner_grids_task().
Referenced by multires_stitch_grids().
bool BKE_subdiv_ccg_check_coord_valid | ( | const SubdivCCG * | subdiv_ccg, |
const SubdivCCGCoord * | coord | ||
) |
Definition at line 1379 of file subdiv_ccg.c.
References SubdivCCGCoord::grid_index, SubdivCCG::grid_size, SubdivCCG::num_grids, SubdivCCGCoord::x, and SubdivCCGCoord::y.
Referenced by BKE_subdiv_ccg_neighbor_coords_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 | ||
) |
Referenced by SCULPT_vertex_has_unique_face_set(), and SCULPT_vertex_is_boundary().
Definition at line 615 of file subdiv_ccg.c.
References SubdivCCG::adjacent_edges, SubdivCCG::adjacent_vertices, BKE_subdiv_free(), SubdivCCGAdjacentEdge::boundary_coords, SubdivCCG::cache_, SubdivCCGAdjacentVertex::corner_coords, SubdivCCG::edges, SubdivCCG::faces, SubdivCCG::grid_faces, SubdivCCG::grid_flag_mats, SubdivCCG::grid_hidden, SubdivCCG::grids, SubdivCCG::grids_storage, MEM_freeN, MEM_SAFE_FREE, NULL, SubdivCCG::num_adjacent_edges, SubdivCCGAdjacentEdge::num_adjacent_faces, SubdivCCG::num_adjacent_vertices, SubdivCCG::num_grids, SubdivCCG::start_face_grid_index, SubdivCCG::subdiv, and SubdivCCG::vertices.
Referenced by BKE_mesh_runtime_clear_geometry(), and BKE_subdiv_to_ccg().
void BKE_subdiv_ccg_eval_limit_point | ( | const SubdivCCG * | subdiv_ccg, |
const SubdivCCGCoord * | coord, | ||
float | r_point[3] | ||
) |
Definition at line 2078 of file subdiv_ccg.c.
References BKE_subdiv_eval_limit_point(), SubdivCCG::subdiv, subdiv_ccg_coord_to_ptex_coord(), and v.
Referenced by SCULPT_vertex_limit_surface_get().
Definition at line 2035 of file subdiv_ccg.c.
References BKE_subdiv_ccg_key_top_level(), BLI_BITMAP_NEW, CCGKey::grid_area, SubdivCCG::grid_hidden, and NULL.
Referenced by BKE_sculpt_sync_face_sets_visibility_to_grids().
int BKE_subdiv_ccg_grid_to_face_index | ( | const SubdivCCG * | subdiv_ccg, |
int | grid_index | ||
) |
Definition at line 1940 of file subdiv_ccg.c.
References SubdivCCG::faces, and SubdivCCG::grid_faces.
Referenced by adjacet_vertices_index_from_adjacent_edge(), BKE_pbvh_sync_face_sets_to_grids(), BKE_sculpt_sync_face_sets_visibility_to_grids(), GPU_pbvh_grid_buffers_update(), SCULPT_active_face_set_get(), sculpt_expand_active_face_set_id_get(), SCULPT_vertex_all_face_sets_visible_get(), SCULPT_vertex_face_set_get(), SCULPT_vertex_face_set_set(), SCULPT_vertex_has_face_set(), and subdiv_ccg_coord_to_ptex_coord().
Definition at line 653 of file subdiv_ccg.c.
References BKE_subdiv_grid_size_from_level(), CCGKey::elem_size, element_size_bytes_get(), CCGKey::grid_area, CCGKey::grid_bytes, CCGKey::grid_size, CCGKey::has_mask, SubdivCCG::has_mask, SubdivCCG::has_normal, CCGKey::has_normals, CCGKey::level, CCGKey::mask_offset, SubdivCCG::mask_offset, CCGKey::normal_offset, and SubdivCCG::normal_offset.
Referenced by BKE_subdiv_ccg_key_top_level(), and multires_reshape_assign_final_coords_from_ccg().
Definition at line 668 of file subdiv_ccg.c.
References BKE_subdiv_ccg_key(), and SubdivCCG::level.
Referenced by BKE_sculpt_sync_face_sets_visibility_to_grids(), BKE_subdiv_ccg_average_grids(), BKE_subdiv_ccg_average_stitch_faces(), BKE_subdiv_ccg_grid_hidden_ensure(), BKE_subdiv_ccg_update_normals(), build_pbvh_from_ccg(), sculpt_undo_restore_coords(), sculpt_undo_restore_mask(), subdiv_ccg_init_faces_vertex_neighborhood(), subdiv_ccg_recalc_inner_grid_normals(), and subdiv_ccg_recalc_modified_inner_grid_normals().
bool BKE_subdiv_ccg_mask_init_from_paint | ( | SubdivCCGMaskEvaluator * | mask_evaluator, |
const struct Mesh * | mesh | ||
) |
Definition at line 155 of file subdiv_ccg_mask.c.
References CD_GRID_PAINT_MASK, CustomData_get_layer(), Mesh::ldata, mask_init_data(), mask_init_functions(), MEM_callocN, mesh, and SubdivCCGMaskEvaluator::user_data.
Referenced by BKE_subdiv_to_ccg_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().
void BKE_subdiv_ccg_neighbor_coords_get | ( | const SubdivCCG * | subdiv_ccg, |
const SubdivCCGCoord * | coord, | ||
bool | include_duplicates, | ||
SubdivCCGNeighbors * | r_neighbors | ||
) |
Definition at line 1911 of file subdiv_ccg.c.
References BKE_subdiv_ccg_check_coord_valid(), BLI_assert, SubdivCCGNeighbors::coords, SubdivCCGCoord::grid_index, SubdivCCG::grid_size, is_boundary_grid_coord(), is_corner_grid_coord(), neighbor_coords_boundary_get(), neighbor_coords_corner_get(), neighbor_coords_inner_get(), SubdivCCG::num_grids, SubdivCCGNeighbors::size, SubdivCCGCoord::x, and SubdivCCGCoord::y.
Referenced by sculpt_vertex_neighbors_get_grids().
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.
Definition at line 804 of file subdiv_ccg.c.
References BKE_subdiv_ccg_average_grids(), SubdivCCG::has_normal, and subdiv_ccg_recalc_inner_grid_normals().
Referenced by subdiv_ccg_evaluate_grids().
const int* BKE_subdiv_ccg_start_face_grid_index_ensure | ( | SubdivCCG * | subdiv_ccg | ) |
Definition at line 1947 of file subdiv_ccg.c.
References SubdivCCG::cache_, OpenSubdiv_TopologyRefiner::getNumFaces, OpenSubdiv_TopologyRefiner::getNumFaceVertices, MEM_malloc_arrayN, NULL, SubdivCCG::start_face_grid_index, SubdivCCG::subdiv, and Subdiv::topology_refiner.
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.
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().
void BKE_subdiv_ccg_update_normals | ( | SubdivCCG * | subdiv_ccg, |
struct CCGFace ** | effected_faces, | ||
int | num_effected_faces | ||
) |
Definition at line 870 of file subdiv_ccg.c.
References BKE_subdiv_ccg_key_top_level(), SubdivCCG::has_normal, subdiv_ccg_average_faces_boundaries_and_corners(), and subdiv_ccg_recalc_modified_inner_grid_normals().
Referenced by BKE_pbvh_update_normals().
struct SubdivCCG* BKE_subdiv_to_ccg | ( | struct Subdiv * | subdiv, |
const SubdivToCCGSettings * | settings, | ||
SubdivCCGMaskEvaluator * | mask_evaluator, | ||
SubdivCCGMaterialFlagsEvaluator * | material_flags_evaluator | ||
) |
Definition at line 561 of file subdiv_ccg.c.
References bitscan_forward_i(), BKE_subdiv_ccg_destroy(), BKE_subdiv_grid_size_from_level(), BKE_subdiv_stats_begin(), BKE_subdiv_stats_end(), SubdivCCG::grid_size, SubdivCCG::level, MEM_callocN, NULL, SubdivToCCGSettings::resolution, Subdiv::stats, SubdivCCG::subdiv, subdiv_ccg_alloc_elements(), subdiv_ccg_evaluate_grids(), subdiv_ccg_init_faces(), subdiv_ccg_init_faces_neighborhood(), subdiv_ccg_init_layers(), and SUBDIV_STATS_SUBDIV_TO_CCG.
Referenced by 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().