Commit: 7c03ef295b6f6959b23a27f51358cc3797120bb3
Author: Campbell Barton
Date:   Mon Feb 23 15:55:48 2015 +1100
Branches: master
https://developer.blender.org/rB7c03ef295b6f6959b23a27f51358cc3797120bb3

CustomData: const correctness

===================================================================

M       source/blender/blenkernel/BKE_customdata.h
M       source/blender/blenkernel/intern/customdata.c
M       source/blender/bmesh/intern/bmesh_interp.c
M       source/blender/bmesh/intern/bmesh_interp.h

===================================================================

diff --git a/source/blender/blenkernel/BKE_customdata.h 
b/source/blender/blenkernel/BKE_customdata.h
index e2e4a7a..9028ad0 100644
--- a/source/blender/blenkernel/BKE_customdata.h
+++ b/source/blender/blenkernel/BKE_customdata.h
@@ -130,8 +130,9 @@ bool CustomData_merge(const struct CustomData *source, 
struct CustomData *dest,
 /* bmesh version of CustomData_merge; merges the layouts of source and dest,
  * then goes through the mesh and makes sure all the customdata blocks are
  * consistent with the new layout.*/
-bool CustomData_bmesh_merge(struct CustomData *source, struct CustomData *dest,
-                            CustomDataMask mask, int alloctype, struct BMesh 
*bm, const char htype);
+bool CustomData_bmesh_merge(
+        const struct CustomData *source, struct CustomData *dest,
+        CustomDataMask mask, int alloctype, struct BMesh *bm, const char 
htype);
 
 /** NULL's all members and resets the typemap. */
 void CustomData_reset(struct CustomData *data);
@@ -285,19 +286,23 @@ int CustomData_get_stencil_layer(const struct CustomData 
*data, int type);
  * layer of type
  * no effect if there is no layer of type
  */
-void CustomData_set(const struct CustomData *data, int index, int type,
-                    void *source);
+void CustomData_set(
+        const struct CustomData *data, int index, int type,
+        const void *source);
 
-void CustomData_bmesh_set(const struct CustomData *data, void *block, int 
type, 
-                          void *source);
+void CustomData_bmesh_set(
+        const struct CustomData *data, void *block, int type,
+        const void *source);
 
-void CustomData_bmesh_set_n(struct CustomData *data, void *block, int type, 
int n, 
-                            void *source);
+void CustomData_bmesh_set_n(
+        struct CustomData *data, void *block, int type, int n,
+        const void *source);
 /* sets the data of the block at physical layer n.  no real type checking
  * is performed.
  */
-void CustomData_bmesh_set_layer_n(struct CustomData *data, void *block, int n,
-                                  void *source);
+void CustomData_bmesh_set_layer_n(
+        struct CustomData *data, void *block, int n,
+        const void *source);
 
 /* set the pointer of to the first layer of type. the old data is not freed.
  * returns the value of ptr if the layer is found, NULL otherwise
diff --git a/source/blender/blenkernel/intern/customdata.c 
b/source/blender/blenkernel/intern/customdata.c
index 1362c55..483a4b9 100644
--- a/source/blender/blenkernel/intern/customdata.c
+++ b/source/blender/blenkernel/intern/customdata.c
@@ -2408,7 +2408,7 @@ void *CustomData_set_layer_n(const struct CustomData 
*data, int type, int n, voi
        return ptr;
 }
 
-void CustomData_set(const CustomData *data, int index, int type, void *source)
+void CustomData_set(const CustomData *data, int index, int type, const void 
*source)
 {
        void *dest = CustomData_get(data, index, type);
        const LayerTypeInfo *typeInfo = layerType_getInfo(type);
@@ -2573,8 +2573,9 @@ void CustomData_bmesh_init_pool(CustomData *data, int 
totelem, const char htype)
        }
 }
 
-bool CustomData_bmesh_merge(CustomData *source, CustomData *dest,
-                            CustomDataMask mask, int alloctype, BMesh *bm, 
const char htype)
+bool CustomData_bmesh_merge(
+        const CustomData *source, CustomData *dest,
+        CustomDataMask mask, int alloctype, BMesh *bm, const char htype)
 {
        BMHeader *h;
        BMIter iter;
@@ -2944,7 +2945,7 @@ void CustomData_data_add(int type, void *data1, const 
void *data2)
                typeInfo->add(data1, data2);
 }
 
-void CustomData_bmesh_set(const CustomData *data, void *block, int type, void 
*source)
+void CustomData_bmesh_set(const CustomData *data, void *block, int type, const 
void *source)
 {
        void *dest = CustomData_bmesh_get(data, block, type);
        const LayerTypeInfo *typeInfo = layerType_getInfo(type);
@@ -2957,7 +2958,7 @@ void CustomData_bmesh_set(const CustomData *data, void 
*block, int type, void *s
                memcpy(dest, source, typeInfo->size);
 }
 
-void CustomData_bmesh_set_n(CustomData *data, void *block, int type, int n, 
void *source)
+void CustomData_bmesh_set_n(CustomData *data, void *block, int type, int n, 
const void *source)
 {
        void *dest = CustomData_bmesh_get_n(data, block, type, n);
        const LayerTypeInfo *typeInfo = layerType_getInfo(type);
@@ -2970,7 +2971,7 @@ void CustomData_bmesh_set_n(CustomData *data, void 
*block, int type, int n, void
                memcpy(dest, source, typeInfo->size);
 }
 
-void CustomData_bmesh_set_layer_n(CustomData *data, void *block, int n, void 
*source)
+void CustomData_bmesh_set_layer_n(CustomData *data, void *block, int n, const 
void *source)
 {
        void *dest = CustomData_bmesh_get_layer_n(data, block, n);
        const LayerTypeInfo *typeInfo = layerType_getInfo(data->layers[n].type);
diff --git a/source/blender/bmesh/intern/bmesh_interp.c 
b/source/blender/bmesh/intern/bmesh_interp.c
index b7a72e2..c0add42 100644
--- a/source/blender/bmesh/intern/bmesh_interp.c
+++ b/source/blender/bmesh/intern/bmesh_interp.c
@@ -47,34 +47,36 @@
 #include "intern/bmesh_private.h"
 
 /* edge and vertex share, currently theres no need to have different logic */
-static void bm_data_interp_from_elem(CustomData *data_layer, BMElem *ele1, 
BMElem *ele2, BMElem *ele_dst, const float fac)
+static void bm_data_interp_from_elem(
+        CustomData *data_layer, const BMElem *ele_src_1, const BMElem 
*ele_src_2,
+        BMElem *ele_dst, const float fac)
 {
-       if (ele1->head.data && ele2->head.data) {
+       if (ele_src_1->head.data && ele_src_2->head.data) {
                /* first see if we can avoid interpolation */
                if (fac <= 0.0f) {
-                       if (ele1 == ele_dst) {
+                       if (ele_src_1 == ele_dst) {
                                /* do nothing */
                        }
                        else {
                                CustomData_bmesh_free_block_data(data_layer, 
ele_dst->head.data);
-                               CustomData_bmesh_copy_data(data_layer, 
data_layer, ele1->head.data, &ele_dst->head.data);
+                               CustomData_bmesh_copy_data(data_layer, 
data_layer, ele_src_1->head.data, &ele_dst->head.data);
                        }
                }
                else if (fac >= 1.0f) {
-                       if (ele2 == ele_dst) {
+                       if (ele_src_2 == ele_dst) {
                                /* do nothing */
                        }
                        else {
                                CustomData_bmesh_free_block_data(data_layer, 
ele_dst->head.data);
-                               CustomData_bmesh_copy_data(data_layer, 
data_layer, ele2->head.data, &ele_dst->head.data);
+                               CustomData_bmesh_copy_data(data_layer, 
data_layer, ele_src_2->head.data, &ele_dst->head.data);
                        }
                }
                else {
                        const void *src[2];
                        float w[2];
 
-                       src[0] = ele1->head.data;
-                       src[1] = ele2->head.data;
+                       src[0] = ele_src_1->head.data;
+                       src[1] = ele_src_2->head.data;
                        w[0] = 1.0f - fac;
                        w[1] = fac;
                        CustomData_bmesh_interp(data_layer, src, w, NULL, 2, 
ele_dst->head.data);
@@ -85,25 +87,25 @@ static void bm_data_interp_from_elem(CustomData 
*data_layer, BMElem *ele1, BMEle
 /**
  * \brief Data, Interp From Verts
  *
- * Interpolates per-vertex data from two sources to a target.
+ * Interpolates per-vertex data from two sources to \a v_dst
  *
  * \note This is an exact match to #BM_data_interp_from_edges
  */
-void BM_data_interp_from_verts(BMesh *bm, BMVert *v1, BMVert *v2, BMVert *v, 
const float fac)
+void BM_data_interp_from_verts(BMesh *bm, const BMVert *v_src_1, const BMVert 
*v_src_2, BMVert *v_dst, const float fac)
 {
-       bm_data_interp_from_elem(&bm->vdata, (BMElem *)v1, (BMElem *)v2, 
(BMElem *)v, fac);
+       bm_data_interp_from_elem(&bm->vdata, (const BMElem *)v_src_1, (const 
BMElem *)v_src_2, (BMElem *)v_dst, fac);
 }
 
 /**
  * \brief Data, Interp From Edges
  *
- * Interpolates per-edge data from two sources to a target.
+ * Interpolates per-edge data from two sources to \a e_dst.
  *
  * \note This is an exact match to #BM_data_interp_from_verts
  */
-void BM_data_interp_from_edges(BMesh *bm, BMEdge *e1, BMEdge *e2, BMEdge *e, 
const float fac)
+void BM_data_interp_from_edges(BMesh *bm, const BMEdge *e_src_1, const BMEdge 
*e_src_2, BMEdge *e_dst, const float fac)
 {
-       bm_data_interp_from_elem(&bm->edata, (BMElem *)e1, (BMElem *)e2, 
(BMElem *)e, fac);
+       bm_data_interp_from_elem(&bm->edata, (const BMElem *)e_src_1, (const 
BMElem *)e_src_2, (BMElem *)e_dst, fac);
 }
 
 /**
@@ -120,25 +122,26 @@ static void UNUSED_FUNCTION(BM_Data_Vert_Average)(BMesh 
*UNUSED(bm), BMFace *UNU
 /**
  * \brief Data Face-Vert Edge Interp
  *
- * Walks around the faces of an edge and interpolates the per-face-edge
- * data between two sources to a target.
+ * Walks around the faces of \a e and interpolates
+ * the loop data between two sources.
  */
-void BM_data_interp_face_vert_edge(BMesh *bm, BMVert *v1, BMVert *UNUSED(v2), 
BMVert *v, BMEdge *e1, const float fac)
+void BM_data_interp_face_vert_edge(
+        BMesh *bm, const BMVert *v_src_1, const BMVert *UNUSED(v_src_2), 
BMVert *v, BMEdge *e, const float fac)
 {
        float w[2];
        BMLoop *l_v1 = NULL, *l_v = NULL, *l_v2 = NULL;
        BMLoop *l_iter = NULL;
 
-       if (!e1->l) {
+       if (!e->l) {
                return;
        }
 
        w[1] = 1.0f - fac;
        w[0] = fac;
 
-       l_iter = e1->l;
+       l_iter = e->l;
        do {
-               if (l_iter->v == v1) {
+               if (l_iter->v == v_src_1) {
                        l_v1 = l_iter;
                        l_v = l_v1->next;
                        l_v2 = l_v->next;
@@ -159,7 +162,7 @@ void BM_data_interp_face_vert_edge(BMesh *bm, BMVert *v1, 
BMVert *UNUSED(v2), BM
 
                        CustomData_bmesh_interp(&bm->ldata, src, w, NULL, 2, 
l_v->head.data);
                }
-       } while ((l_iter = l_iter->radial_next) != e1->l);
+       } while ((l_iter = l_iter->radial_next) != e->l);
 }
 
 /**
@@ -171,56 +174,56 @@ void BM_data_interp_face_vert_edge(BMesh *bm, BMVert *v1, 
BMVert *UNUSED(v2), BM
  * \note Only handles loop customdata. multires is handled.
  */
 void BM_face_interp_from_face_ex(
-        BMesh *bm, BMFace *target, BMFace *source, const bool do_vertex,
+        BMesh *bm, BMFace *f_dst, const BMFace *f_src, const bool do_vertex,
         const void **blocks_l, const void **blocks_v, float (*cos_2d)[2], 
float axis_mat[3][3])
 {
        BMLoop *l_iter;
        BMLoop *l_first;
 
-       float *w = BLI_array_alloca(w, source->len);
+       float *w = BLI_array_alloca(w, f_src->len);
        float co[2];
        int i;
 
-       if (source != target)
-               BM_elem_attrs_copy(bm, bm, source, target);
+       if (f_src != f_dst)
+               BM_elem_attrs_copy(bm, bm, f_src, f_dst);
 
        /* interpolate */
        i = 0;
-       l_iter = l_first = BM_FACE_FIRS

@@ Diff output truncated at 10240 characters. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to