Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/blenkernel/BKE_bvhutils.h')
-rw-r--r--source/blender/blenkernel/BKE_bvhutils.h51
1 files changed, 26 insertions, 25 deletions
diff --git a/source/blender/blenkernel/BKE_bvhutils.h b/source/blender/blenkernel/BKE_bvhutils.h
index b83ebf8ce09..458f1ab7a56 100644
--- a/source/blender/blenkernel/BKE_bvhutils.h
+++ b/source/blender/blenkernel/BKE_bvhutils.h
@@ -85,6 +85,21 @@ typedef struct BVHTreeFromMesh {
} BVHTreeFromMesh;
+typedef enum BVHCacheType {
+ BVHTREE_FROM_VERTS,
+ BVHTREE_FROM_EDGES,
+ BVHTREE_FROM_FACES,
+ BVHTREE_FROM_LOOPTRI,
+ BVHTREE_FROM_LOOPTRI_NO_HIDDEN,
+
+ BVHTREE_FROM_LOOSEVERTS,
+ BVHTREE_FROM_LOOSEEDGES,
+
+ BVHTREE_FROM_EM_VERTS,
+ BVHTREE_FROM_EM_EDGES,
+ BVHTREE_FROM_EM_LOOPTRI,
+} BVHCacheType;
+
/**
* Builds a bvh tree where nodes are the relevant elements of the given mesh.
* Configures #BVHTreeFromMesh.
@@ -106,7 +121,7 @@ BVHTree *bvhtree_from_editmesh_verts_ex(BVHTreeFromEditMesh *data,
float epsilon,
int tree_type,
int axis,
- const int bvh_cache_type,
+ const BVHCacheType bvh_cache_type,
BVHCache **bvh_cache);
BVHTree *bvhtree_from_mesh_verts_ex(struct BVHTreeFromMesh *data,
@@ -118,7 +133,7 @@ BVHTree *bvhtree_from_mesh_verts_ex(struct BVHTreeFromMesh *data,
float epsilon,
int tree_type,
int axis,
- const int bvh_cache_type,
+ const BVHCacheType bvh_cache_type,
BVHCache **bvh_cache);
BVHTree *bvhtree_from_editmesh_edges(
@@ -131,7 +146,7 @@ BVHTree *bvhtree_from_editmesh_edges_ex(BVHTreeFromEditMesh *data,
float epsilon,
int tree_type,
int axis,
- const int bvh_cache_type,
+ const BVHCacheType bvh_cache_type,
BVHCache **bvh_cache);
BVHTree *bvhtree_from_mesh_edges_ex(struct BVHTreeFromMesh *data,
@@ -145,7 +160,7 @@ BVHTree *bvhtree_from_mesh_edges_ex(struct BVHTreeFromMesh *data,
float epsilon,
int tree_type,
int axis,
- const int bvh_cache_type,
+ const BVHCacheType bvh_cache_type,
BVHCache **bvh_cache);
BVHTree *bvhtree_from_mesh_faces_ex(struct BVHTreeFromMesh *data,
@@ -159,7 +174,7 @@ BVHTree *bvhtree_from_mesh_faces_ex(struct BVHTreeFromMesh *data,
float epsilon,
int tree_type,
int axis,
- const int bvh_cache_type,
+ const BVHCacheType bvh_cache_type,
BVHCache **bvh_cache);
BVHTree *bvhtree_from_editmesh_looptri(
@@ -172,7 +187,7 @@ BVHTree *bvhtree_from_editmesh_looptri_ex(BVHTreeFromEditMesh *data,
float epsilon,
int tree_type,
int axis,
- const int bvh_cache_type,
+ const BVHCacheType bvh_cache_type,
BVHCache **bvh_cache);
BVHTree *bvhtree_from_mesh_looptri_ex(struct BVHTreeFromMesh *data,
@@ -188,18 +203,18 @@ BVHTree *bvhtree_from_mesh_looptri_ex(struct BVHTreeFromMesh *data,
float epsilon,
int tree_type,
int axis,
- const int bvh_cache_type,
+ const BVHCacheType bvh_cache_type,
BVHCache **bvh_cache);
BVHTree *BKE_bvhtree_from_mesh_get(struct BVHTreeFromMesh *data,
struct Mesh *mesh,
- const int type,
+ const BVHCacheType bvh_cache_type,
const int tree_type);
BVHTree *BKE_bvhtree_from_editmesh_get(BVHTreeFromEditMesh *data,
struct BMEditMesh *em,
const int tree_type,
- const int bvh_cache_type,
+ const BVHCacheType bvh_cache_type,
BVHCache **bvh_cache);
/**
@@ -228,24 +243,10 @@ float bvhtree_sphereray_tri_intersection(const BVHTreeRay *ray,
*/
/* Using local coordinates */
-enum {
- BVHTREE_FROM_VERTS,
- BVHTREE_FROM_EDGES,
- BVHTREE_FROM_FACES,
- BVHTREE_FROM_LOOPTRI,
- BVHTREE_FROM_LOOPTRI_NO_HIDDEN,
-
- BVHTREE_FROM_LOOSEVERTS,
- BVHTREE_FROM_LOOSEEDGES,
-
- BVHTREE_FROM_EM_VERTS,
- BVHTREE_FROM_EM_EDGES,
- BVHTREE_FROM_EM_LOOPTRI,
-};
-bool bvhcache_find(const BVHCache *cache, int type, BVHTree **r_tree);
+bool bvhcache_find(const BVHCache *cache, BVHCacheType type, BVHTree **r_tree);
bool bvhcache_has_tree(const BVHCache *cache, const BVHTree *tree);
-void bvhcache_insert(BVHCache **cache_p, BVHTree *tree, int type);
+void bvhcache_insert(BVHCache **cache_p, BVHTree *tree, BVHCacheType type);
void bvhcache_free(BVHCache **cache_p);
#ifdef __cplusplus