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:
authorCampbell Barton <ideasman42@gmail.com>2019-04-17 07:17:24 +0300
committerCampbell Barton <ideasman42@gmail.com>2019-04-17 07:21:24 +0300
commite12c08e8d170b7ca40f204a5b0423c23a9fbc2c1 (patch)
tree8cf3453d12edb177a218ef8009357518ec6cab6a /source/blender/blenkernel/intern/pbvh_intern.h
parentb3dabc200a4b0399ec6b81f2ff2730d07b44fcaa (diff)
ClangFormat: apply to source, most of intern
Apply clang format as proposed in T53211. For details on usage and instructions for migrating branches without conflicts, see: https://wiki.blender.org/wiki/Tools/ClangFormat
Diffstat (limited to 'source/blender/blenkernel/intern/pbvh_intern.h')
-rw-r--r--source/blender/blenkernel/intern/pbvh_intern.h285
1 files changed, 150 insertions, 135 deletions
diff --git a/source/blender/blenkernel/intern/pbvh_intern.h b/source/blender/blenkernel/intern/pbvh_intern.h
index b9610179630..5fc41c560b2 100644
--- a/source/blender/blenkernel/intern/pbvh_intern.h
+++ b/source/blender/blenkernel/intern/pbvh_intern.h
@@ -23,146 +23,146 @@
/* Axis-aligned bounding box */
typedef struct {
- float bmin[3], bmax[3];
+ float bmin[3], bmax[3];
} BB;
/* Axis-aligned bounding box with centroid */
typedef struct {
- float bmin[3], bmax[3], bcentroid[3];
+ float bmin[3], bmax[3], bcentroid[3];
} BBC;
/* Note: this structure is getting large, might want to split it into
* union'd structs */
struct PBVHNode {
- /* Opaque handle for drawing code */
- struct GPU_PBVH_Buffers *draw_buffers;
-
- /* Voxel bounds */
- BB vb;
- BB orig_vb;
-
- /* For internal nodes, the offset of the children in the PBVH
- * 'nodes' array. */
- int children_offset;
-
- /* Pointer into the PBVH prim_indices array and the number of
- * primitives used by this leaf node.
- *
- * Used for leaf nodes in both mesh- and multires-based PBVHs.
- */
- int *prim_indices;
- unsigned int totprim;
-
- /* Array of indices into the mesh's MVert array. Contains the
- * indices of all vertices used by faces that are within this
- * node's bounding box.
- *
- * Note that a vertex might be used by a multiple faces, and
- * these faces might be in different leaf nodes. Such a vertex
- * will appear in the vert_indices array of each of those leaf
- * nodes.
- *
- * In order to support cases where you want access to multiple
- * nodes' vertices without duplication, the vert_indices array
- * is ordered such that the first part of the array, up to
- * index 'uniq_verts', contains "unique" vertex indices. These
- * vertices might not be truly unique to this node, but if
- * they appear in another node's vert_indices array, they will
- * be above that node's 'uniq_verts' value.
- *
- * Used for leaf nodes in a mesh-based PBVH (not multires.)
- */
- const int *vert_indices;
- unsigned int uniq_verts, face_verts;
-
- /* An array mapping face corners into the vert_indices
- * array. The array is sized to match 'totprim', and each of
- * the face's corners gets an index into the vert_indices
- * array, in the same order as the corners in the original
- * MLoopTri.
- *
- * Used for leaf nodes in a mesh-based PBVH (not multires.)
- */
- const int (*face_vert_indices)[3];
-
- /* Indicates whether this node is a leaf or not; also used for
- * marking various updates that need to be applied. */
- PBVHNodeFlags flag : 16;
-
- /* Used for raycasting: how close bb is to the ray point. */
- float tmin;
-
- /* Scalar displacements for sculpt mode's layer brush. */
- float *layer_disp;
-
- int proxy_count;
- PBVHProxyNode *proxies;
-
- /* Dyntopo */
- GSet *bm_faces;
- GSet *bm_unique_verts;
- GSet *bm_other_verts;
- float (*bm_orco)[3];
- int (*bm_ortri)[3];
- int bm_tot_ortri;
+ /* Opaque handle for drawing code */
+ struct GPU_PBVH_Buffers *draw_buffers;
+
+ /* Voxel bounds */
+ BB vb;
+ BB orig_vb;
+
+ /* For internal nodes, the offset of the children in the PBVH
+ * 'nodes' array. */
+ int children_offset;
+
+ /* Pointer into the PBVH prim_indices array and the number of
+ * primitives used by this leaf node.
+ *
+ * Used for leaf nodes in both mesh- and multires-based PBVHs.
+ */
+ int *prim_indices;
+ unsigned int totprim;
+
+ /* Array of indices into the mesh's MVert array. Contains the
+ * indices of all vertices used by faces that are within this
+ * node's bounding box.
+ *
+ * Note that a vertex might be used by a multiple faces, and
+ * these faces might be in different leaf nodes. Such a vertex
+ * will appear in the vert_indices array of each of those leaf
+ * nodes.
+ *
+ * In order to support cases where you want access to multiple
+ * nodes' vertices without duplication, the vert_indices array
+ * is ordered such that the first part of the array, up to
+ * index 'uniq_verts', contains "unique" vertex indices. These
+ * vertices might not be truly unique to this node, but if
+ * they appear in another node's vert_indices array, they will
+ * be above that node's 'uniq_verts' value.
+ *
+ * Used for leaf nodes in a mesh-based PBVH (not multires.)
+ */
+ const int *vert_indices;
+ unsigned int uniq_verts, face_verts;
+
+ /* An array mapping face corners into the vert_indices
+ * array. The array is sized to match 'totprim', and each of
+ * the face's corners gets an index into the vert_indices
+ * array, in the same order as the corners in the original
+ * MLoopTri.
+ *
+ * Used for leaf nodes in a mesh-based PBVH (not multires.)
+ */
+ const int (*face_vert_indices)[3];
+
+ /* Indicates whether this node is a leaf or not; also used for
+ * marking various updates that need to be applied. */
+ PBVHNodeFlags flag : 16;
+
+ /* Used for raycasting: how close bb is to the ray point. */
+ float tmin;
+
+ /* Scalar displacements for sculpt mode's layer brush. */
+ float *layer_disp;
+
+ int proxy_count;
+ PBVHProxyNode *proxies;
+
+ /* Dyntopo */
+ GSet *bm_faces;
+ GSet *bm_unique_verts;
+ GSet *bm_other_verts;
+ float (*bm_orco)[3];
+ int (*bm_ortri)[3];
+ int bm_tot_ortri;
};
typedef enum {
- PBVH_DYNTOPO_SMOOTH_SHADING = 1,
+ PBVH_DYNTOPO_SMOOTH_SHADING = 1,
} PBVHFlags;
typedef struct PBVHBMeshLog PBVHBMeshLog;
struct PBVH {
- PBVHType type;
- PBVHFlags flags;
+ PBVHType type;
+ PBVHFlags flags;
- PBVHNode *nodes;
- int node_mem_count, totnode;
+ PBVHNode *nodes;
+ int node_mem_count, totnode;
- int *prim_indices;
- int totprim;
- int totvert;
+ int *prim_indices;
+ int totprim;
+ int totvert;
- int leaf_limit;
+ int leaf_limit;
- /* Mesh data */
- MVert *verts;
- const MPoly *mpoly;
- const MLoop *mloop;
- const MLoopTri *looptri;
- CustomData *vdata;
+ /* Mesh data */
+ MVert *verts;
+ const MPoly *mpoly;
+ const MLoop *mloop;
+ const MLoopTri *looptri;
+ CustomData *vdata;
- /* Grid Data */
- CCGKey gridkey;
- CCGElem **grids;
- void **gridfaces;
- const DMFlagMat *grid_flag_mats;
- int totgrid;
- BLI_bitmap **grid_hidden;
+ /* Grid Data */
+ CCGKey gridkey;
+ CCGElem **grids;
+ void **gridfaces;
+ const DMFlagMat *grid_flag_mats;
+ int totgrid;
+ BLI_bitmap **grid_hidden;
- /* Only used during BVH build and update,
- * don't need to remain valid after */
- BLI_bitmap *vert_bitmap;
+ /* Only used during BVH build and update,
+ * don't need to remain valid after */
+ BLI_bitmap *vert_bitmap;
#ifdef PERFCNTRS
- int perf_modified;
+ int perf_modified;
#endif
- /* flag are verts/faces deformed */
- bool deformed;
+ /* flag are verts/faces deformed */
+ bool deformed;
- bool show_diffuse_color;
- bool show_mask;
+ bool show_diffuse_color;
+ bool show_mask;
- /* Dynamic topology */
- BMesh *bm;
- float bm_max_edge_len;
- float bm_min_edge_len;
- int cd_vert_node_offset;
- int cd_face_node_offset;
+ /* Dynamic topology */
+ BMesh *bm;
+ float bm_max_edge_len;
+ float bm_min_edge_len;
+ int cd_vert_node_offset;
+ int cd_face_node_offset;
- struct BMLog *bm_log;
+ struct BMLog *bm_log;
};
/* pbvh.c */
@@ -172,35 +172,50 @@ 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], const float ray_normal[3],
- const float *t0, const float *t1, const float *t2, const float *t3,
- float *depth);
-bool ray_face_intersection_tri(
- const float ray_start[3], const float ray_normal[3],
- 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);
+bool ray_face_intersection_quad(const float ray_start[3],
+ const float ray_normal[3],
+ const float *t0,
+ const float *t1,
+ const float *t2,
+ const float *t3,
+ float *depth);
+bool ray_face_intersection_tri(const float ray_start[3],
+ const float ray_normal[3],
+ 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);
/* pbvh_bmesh.c */
-bool pbvh_bmesh_node_raycast(
- PBVHNode *node, const float ray_start[3],
- const float ray_normal[3], float *dist,
- bool use_original);
-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);
+bool pbvh_bmesh_node_raycast(PBVHNode *node,
+ const float ray_start[3],
+ const float ray_normal[3],
+ float *dist,
+ bool use_original);
+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);