Blender  V2.93
Classes | Typedefs | Enumerations | Functions
pbvh_intern.h File Reference

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, const float *t1, const float *t2, const float *t3, float *depth)
 
bool ray_face_intersection_tri (const float ray_start[3], struct IsectRayPrecalc *isect_precalc, const float *t0, const float *t1, const float *t2, float *depth)
 
bool ray_face_nearest_quad (const float ray_start[3], const float ray_normal[3], const float *t0, const float *t1, const float *t2, const float *t3, 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, const float *t1, const float *t2, 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)
 

Typedef Documentation

◆ PBVHBMeshLog

typedef struct PBVHBMeshLog PBVHBMeshLog

Definition at line 1 of file pbvh_intern.h.

Enumeration Type Documentation

◆ PBVHFlags

enum PBVHFlags
Enumerator
PBVH_DYNTOPO_SMOOTH_SHADING 

Definition at line 112 of file pbvh_intern.h.

Function Documentation

◆ BB_expand()

void BB_expand ( BB bb,
const float  co[3] 
)

◆ BB_expand_with_bb()

void BB_expand_with_bb ( BB bb,
BB bb2 
)

◆ BB_reset()

void BB_reset ( BB bb)

◆ BB_widest_axis()

int BB_widest_axis ( const BB bb)

Definition at line 100 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().

◆ BBC_update_centroid()

void BBC_update_centroid ( BBC bbc)

◆ pbvh_bmesh_node_nearest_to_ray()

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 
)

◆ pbvh_bmesh_node_raycast()

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 
)

◆ pbvh_bmesh_normals_update()

void pbvh_bmesh_normals_update ( PBVHNode **  nodes,
int  totnode 
)

◆ pbvh_grow_nodes()

void pbvh_grow_nodes ( PBVH bvh,
int  totnode 
)

◆ pbvh_update_BB_redraw()

void pbvh_update_BB_redraw ( PBVH bvh,
PBVHNode **  nodes,
int  totnode,
int  flag 
)

◆ ray_face_intersection_quad()

bool ray_face_intersection_quad ( const float  ray_start[3],
struct IsectRayPrecalc isect_precalc,
const float t0,
const float t1,
const float t2,
const float t3,
float depth 
)

◆ ray_face_intersection_tri()

bool ray_face_intersection_tri ( const float  ray_start[3],
struct IsectRayPrecalc isect_precalc,
const float t0,
const float t1,
const float t2,
float depth 
)

◆ ray_face_nearest_quad()

bool ray_face_nearest_quad ( const float  ray_start[3],
const float  ray_normal[3],
const float t0,
const float t1,
const float t2,
const float t3,
float r_depth,
float r_dist_sq 
)

◆ ray_face_nearest_tri()

bool ray_face_nearest_tri ( const float  ray_start[3],
const float  ray_normal[3],
const float t0,
const float t1,
const float t2,
float r_depth,
float r_dist_sq 
)