Blender
V3.3
|
Go to the source code of this file.
Classes | |
struct | BB |
struct | BBC |
struct | PBVHNode |
struct | PBVH |
Typedefs | |
typedef struct PBVHBMeshLog | PBVHBMeshLog |
Enumerations | |
enum | PBVHFlags { PBVH_DYNTOPO_SMOOTH_SHADING = 1 } |
Functions | |
void | BB_reset (BB *bb) |
void | BB_expand (BB *bb, const float co[3]) |
void | BB_expand_with_bb (BB *bb, BB *bb2) |
void | BBC_update_centroid (BBC *bbc) |
int | BB_widest_axis (const BB *bb) |
void | pbvh_grow_nodes (PBVH *bvh, int totnode) |
bool | ray_face_intersection_quad (const float ray_start[3], struct IsectRayPrecalc *isect_precalc, const float t0[3], const float t1[3], const float t2[3], const float t3[3], float *depth) |
bool | ray_face_intersection_tri (const float ray_start[3], struct IsectRayPrecalc *isect_precalc, const float t0[3], const float t1[3], const float t2[3], float *depth) |
bool | ray_face_nearest_quad (const float ray_start[3], const float ray_normal[3], const float t0[3], const float t1[3], const float t2[3], const float t3[3], float *r_depth, float *r_dist_sq) |
bool | ray_face_nearest_tri (const float ray_start[3], const float ray_normal[3], const float t0[3], const float t1[3], const float t2[3], float *r_depth, float *r_dist_sq) |
void | pbvh_update_BB_redraw (PBVH *bvh, PBVHNode **nodes, int totnode, int flag) |
bool | pbvh_bmesh_node_raycast (PBVHNode *node, const float ray_start[3], const float ray_normal[3], struct IsectRayPrecalc *isect_precalc, float *dist, bool use_original, int *r_active_vertex_index, float *r_face_normal) |
bool | pbvh_bmesh_node_nearest_to_ray (PBVHNode *node, const float ray_start[3], const float ray_normal[3], float *depth, float *dist_sq, bool use_original) |
void | pbvh_bmesh_normals_update (PBVHNode **nodes, int totnode) |
void | pbvh_pixels_free (PBVHNode *node) |
void | pbvh_pixels_free_brush_test (PBVHNode *node) |
void | pbvh_free_draw_buffers (PBVH *pbvh, PBVHNode *node) |
typedef struct PBVHBMeshLog PBVHBMeshLog |
Definition at line 1 of file pbvh_intern.h.
enum PBVHFlags |
Enumerator | |
---|---|
PBVH_DYNTOPO_SMOOTH_SHADING |
Definition at line 128 of file pbvh_intern.h.
Expand the bounding box to include a new coordinate.
Definition at line 69 of file pbvh.c.
References BB::bmax, BB::bmin, max_ff(), and min_ff().
Referenced by BKE_pbvh_build_bmesh(), BKE_pbvh_build_grids(), BKE_pbvh_build_mesh(), build_sub(), pbvh_bmesh_node_finalize(), pbvh_bmesh_node_limit_ensure(), pbvh_bmesh_node_limit_ensure_fast(), pbvh_bmesh_node_split(), and update_node_vb().
Expand the bounding box to include another bounding box.
Definition at line 77 of file pbvh.c.
References BB::bmax, BB::bmin, max_ff(), and min_ff().
Referenced by BKE_pbvh_redraw_BB(), pbvh_bmesh_create_nodes_fast_recursive(), pbvh_bmesh_node_split(), update_node_vb(), and update_vb().
Definition at line 63 of file pbvh.c.
References BB::bmax, and BB::bmin.
Referenced by BKE_pbvh_build_bmesh(), BKE_pbvh_build_grids(), BKE_pbvh_build_mesh(), BKE_pbvh_redraw_BB(), build_sub(), pbvh_bmesh_create_nodes_fast_recursive(), pbvh_bmesh_node_finalize(), pbvh_bmesh_node_limit_ensure(), pbvh_bmesh_node_limit_ensure_fast(), pbvh_bmesh_node_split(), update_node_vb(), and update_vb().
int BB_widest_axis | ( | const BB * | bb | ) |
Return 0, 1, or 2 to indicate the widest axis of the bounding box.
Definition at line 85 of file pbvh.c.
References BB::bmax, and BB::bmin.
Referenced by build_sub(), pbvh_bmesh_node_limit_ensure_fast(), and pbvh_bmesh_node_split().
Definition at line 108 of file pbvh.c.
References BBC::bcentroid, BBC::bmax, and BBC::bmin.
Referenced by BKE_pbvh_build_bmesh(), BKE_pbvh_build_grids(), BKE_pbvh_build_mesh(), and pbvh_bmesh_node_limit_ensure().
bool pbvh_bmesh_node_nearest_to_ray | ( | PBVHNode * | node, |
const float | ray_start[3], | ||
const float | ray_normal[3], | ||
float * | depth, | ||
float * | dist_sq, | ||
bool | use_original | ||
) |
Definition at line 1606 of file pbvh_bmesh.c.
References BLI_assert, BLI_gsetIterator_getKey(), BM_elem_flag_test, BM_ELEM_HIDDEN, BM_face_as_array_vert_tri(), GSET_ITER, BMFace::len, node, ray_face_nearest_tri(), and t.
Referenced by BKE_pbvh_node_find_nearest_to_ray().
bool pbvh_bmesh_node_raycast | ( | PBVHNode * | node, |
const float | ray_start[3], | ||
const float | ray_normal[3], | ||
struct IsectRayPrecalc * | isect_precalc, | ||
float * | dist, | ||
bool | use_original, | ||
int * | r_active_vertex_index, | ||
float * | r_face_normal | ||
) |
Definition at line 1498 of file pbvh_bmesh.c.
References BLI_assert, BLI_gsetIterator_getKey(), BM_elem_flag_test, BM_ELEM_HIDDEN, BM_elem_index_get, BM_face_as_array_vert_tri(), copy_v3_v3(), GSET_ITER, BMFace::len, len_squared_v3v3(), madd_v3_v3v3fl(), node, normal_tri_v3(), ray_face_intersection_tri(), and t.
Referenced by BKE_pbvh_node_raycast().
Definition at line 1647 of file pbvh_bmesh.c.
References BLI_gsetIterator_getKey(), BM_face_normal_update(), BM_vert_normal_update(), GSET_ITER, node, and PBVH_UpdateNormals.
Referenced by BKE_pbvh_update_normals().
Definition at line 1389 of file pbvh.c.
References PBVH::draw_cache_invalid, GPU_pbvh_buffers_free(), node, and NULL.
Referenced by pbvh_bmesh_node_split(), and pbvh_update_draw_buffers().
Definition at line 224 of file pbvh.c.
References MEM_recallocN, PBVH::node_mem_count, PBVH::nodes, PBVH::totnode, and UNLIKELY.
Referenced by build_sub(), pbvh_bmesh_create_nodes_fast_recursive(), and pbvh_bmesh_node_split().
Definition at line 1250 of file pbvh.c.
References BKE_pbvh_parallel_range_settings(), BLI_task_parallel_range(), data, PBVHNode::flag, PBVH::nodes, and pbvh_update_BB_redraw_task_cb().
Referenced by BKE_pbvh_update_bounds().
bool ray_face_intersection_quad | ( | const float | ray_start[3], |
struct IsectRayPrecalc * | isect_precalc, | ||
const float | t0[3], | ||
const float | t1[3], | ||
const float | t2[3], | ||
const float | t3[3], | ||
float * | depth | ||
) |
Definition at line 2184 of file pbvh.c.
References isect_ray_tri_watertight_v3(), and NULL.
Referenced by pbvh_grids_node_raycast().
bool ray_face_intersection_tri | ( | const float | ray_start[3], |
struct IsectRayPrecalc * | isect_precalc, | ||
const float | t0[3], | ||
const float | t1[3], | ||
const float | t2[3], | ||
float * | depth | ||
) |
Definition at line 2205 of file pbvh.c.
References isect_ray_tri_watertight_v3(), and NULL.
Referenced by BKE_pbvh_bmesh_node_raycast_detail(), pbvh_bmesh_node_raycast(), and pbvh_faces_node_raycast().
bool ray_face_nearest_quad | ( | const float | ray_start[3], |
const float | ray_normal[3], | ||
const float | t0[3], | ||
const float | t1[3], | ||
const float | t2[3], | ||
const float | t3[3], | ||
float * | r_depth, | ||
float * | r_dist_sq | ||
) |
Definition at line 2247 of file pbvh.c.
References dist_squared_ray_to_tri_v3_fast().
Referenced by pbvh_grids_node_nearest_to_ray().
bool ray_face_nearest_tri | ( | const float | ray_start[3], |
const float | ray_normal[3], | ||
const float | t0[3], | ||
const float | t1[3], | ||
const float | t2[3], | ||
float * | r_depth, | ||
float * | r_dist_sq | ||
) |
Definition at line 2274 of file pbvh.c.
References dist_squared_ray_to_tri_v3_fast().
Referenced by pbvh_bmesh_node_nearest_to_ray(), and pbvh_faces_node_nearest_to_ray().