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>2011-11-28 21:09:13 +0400
committerCampbell Barton <ideasman42@gmail.com>2011-11-28 21:09:13 +0400
commit063dd4f60aa0fb0a93e1fb8e450ab83b98b8df83 (patch)
treede946c0d42157b01fcdea59517972d0475ae651d /source/blender/blenkernel/intern/BME_tools.c
parent173b956ea2df41b0f78f4ea670fca1aa115653e1 (diff)
parentc126bfba82dd434e2478d0ce4e5cf095f98b0c9a (diff)
svn merge ^/trunk/blender -r42197:42221
Diffstat (limited to 'source/blender/blenkernel/intern/BME_tools.c')
-rw-r--r--source/blender/blenkernel/intern/BME_tools.c76
1 files changed, 46 insertions, 30 deletions
diff --git a/source/blender/blenkernel/intern/BME_tools.c b/source/blender/blenkernel/intern/BME_tools.c
index 203a07e0cfc..32e608623d5 100644
--- a/source/blender/blenkernel/intern/BME_tools.c
+++ b/source/blender/blenkernel/intern/BME_tools.c
@@ -69,9 +69,11 @@ void BME_free_transdata(BME_TransData_Head *td) {
MEM_freeN(td);
}
-BME_TransData *BME_assign_transdata(BME_TransData_Head *td, BME_Mesh *bm, BME_Vert *v,
- float *co, float *org, float *vec, float *loc,
- float factor, float weight, float maxfactor, float *max) {
+BME_TransData *BME_assign_transdata(
+ BME_TransData_Head *td, BME_Mesh *bm, BME_Vert *v,
+ float *co, float *org, float *vec, float *loc,
+ float factor, float weight, float maxfactor, float *max)
+{
BME_TransData *vtd;
int is_new = 0;
@@ -86,13 +88,23 @@ BME_TransData *BME_assign_transdata(BME_TransData_Head *td, BME_Mesh *bm, BME_Ve
vtd->bm = bm;
vtd->v = v;
- if (co != NULL) VECCOPY(vtd->co,co);
- if (org == NULL && is_new) { VECCOPY(vtd->org,v->co); } /* default */
- else if (org != NULL) VECCOPY(vtd->org,org);
+
+ if (co != NULL) {
+ copy_v3_v3(vtd->co, co);
+ }
+
+ if (org == NULL && is_new) {
+ copy_v3_v3(vtd->org, v->co); /* default */
+ }
+ else if (org != NULL) {
+ copy_v3_v3(vtd->org,org);
+ }
+
if (vec != NULL) {
- VECCOPY(vtd->vec,vec);
+ copy_v3_v3(vtd->vec,vec);
normalize_v3(vtd->vec);
}
+
vtd->loc = loc;
vtd->factor = factor;
@@ -325,7 +337,8 @@ static int BME_bevel_is_split_vert(BME_Loop *l) {
* the bevel operation as a whole based on the relationship between v1 and v2
* (won't necessarily be a vec from v1->co to v2->co, though it probably will be);
* the return value is -1 for failure, 0 if we used vert co's, and 1 if we used transform origins */
-static int BME_bevel_get_vec(float *vec, BME_Vert *v1, BME_Vert *v2, BME_TransData_Head *td) {
+static int BME_bevel_get_vec(float *vec, BME_Vert *v1, BME_Vert *v2, BME_TransData_Head *td)
+{
BME_TransData *vtd1, *vtd2;
vtd1 = BME_get_transdata(td,v1);
@@ -339,14 +352,14 @@ static int BME_bevel_get_vec(float *vec, BME_Vert *v1, BME_Vert *v2, BME_TransDa
* if they belong to different origins, then we will use the origins to determine
* the vector */
if (compare_v3v3(vtd1->org,vtd2->org,0.000001f)) {
- VECSUB(vec,v2->co,v1->co);
+ sub_v3_v3v3(vec, v2->co, v1->co);
if (len_v3(vec) < 0.000001f) {
zero_v3(vec);
}
return 0;
}
else {
- VECSUB(vec,vtd2->org,vtd1->org);
+ sub_v3_v3v3(vec,vtd2->org,vtd1->org);
if (len_v3(vec) < 0.000001f) {
zero_v3(vec);
}
@@ -363,7 +376,8 @@ static int BME_bevel_get_vec(float *vec, BME_Vert *v1, BME_Vert *v2, BME_TransDa
* vec2 is the direction of projection (pointing away from vec1)
* up_vec is used for orientation (expected to be normalized)
* returns the length of the projected vector that lies along vec1 */
-static float BME_bevel_project_vec(float *vec1, float *vec2, float *up_vec, int is_forward, BME_TransData_Head *UNUSED(td)) {
+static float BME_bevel_project_vec(float *vec1, float *vec2, float *up_vec, int is_forward, BME_TransData_Head *UNUSED(td))
+{
float factor, vec3[3], tmp[3],c1,c2;
cross_v3_v3v3(tmp,vec1,vec2);
@@ -378,7 +392,7 @@ static float BME_bevel_project_vec(float *vec1, float *vec2, float *up_vec, int
normalize_v3(vec3);
c1 = dot_v3v3(vec3,vec1);
c2 = dot_v3v3(vec1,vec1);
- if (fabs(c1) < 0.000001f || fabs(c2) < 0.000001f) {
+ if (fabsf(c1) < 0.000001f || fabsf(c2) < 0.000001f) {
factor = 0.0f;
}
else {
@@ -526,8 +540,8 @@ static BME_Vert *BME_bevel_split_edge(BME_Mesh *bm, BME_Vert *v, BME_Vert *v1, B
if (is_edge || dis > maxfactor*value) {
dis = maxfactor*value;
}
- VECADDFAC(sv->co,v->co,vec1,dis);
- VECSUB(vec1,sv->co,vtd1->org);
+ madd_v3_v3v3fl(sv->co, v->co, vec1, dis);
+ sub_v3_v3v3(vec1, sv->co, vtd1->org);
dis = len_v3(vec1);
normalize_v3(vec1);
BME_assign_transdata(td, bm, sv, vtd1->org, vtd1->org, vec1, sv->co, dis, scale, maxfactor, vtd->max);
@@ -547,11 +561,11 @@ static float BME_bevel_set_max(BME_Vert *v1, BME_Vert *v2, float value, BME_Tran
fac1 = 0;
}
else {
- VECCOPY(vec2,vtd1->vec);
- mul_v3_fl(vec2,vtd1->factor);
+ copy_v3_v3(vec2, vtd1->vec);
+ mul_v3_fl(vec2, vtd1->factor);
if (dot_v3v3(vec1, vec1)) {
- project_v3_v3v3(vec2,vec2,vec1);
- fac1 = len_v3(vec2)/value;
+ project_v3_v3v3(vec2, vec2,vec1);
+ fac1 = len_v3(vec2) / value;
}
else {
fac1 = 0;
@@ -562,11 +576,11 @@ static float BME_bevel_set_max(BME_Vert *v1, BME_Vert *v2, float value, BME_Tran
fac2 = 0;
}
else {
- VECCOPY(vec3,vtd2->vec);
- mul_v3_fl(vec3,vtd2->factor);
+ copy_v3_v3(vec3, vtd2->vec);
+ mul_v3_fl(vec3, vtd2->factor);
if (dot_v3v3(vec1, vec1)) {
- project_v3_v3v3(vec2,vec3,vec1);
- fac2 = len_v3(vec2)/value;
+ project_v3_v3v3(vec2, vec3, vec1);
+ fac2 = len_v3(vec2) / value;
}
else {
fac2 = 0;
@@ -574,7 +588,7 @@ static float BME_bevel_set_max(BME_Vert *v1, BME_Vert *v2, float value, BME_Tran
}
if (fac1 || fac2) {
- max = len_v3(vec1)/(fac1 + fac2);
+ max = len_v3(vec1) / (fac1 + fac2);
if (vtd1->max && (*vtd1->max < 0 || max < *vtd1->max)) {
*vtd1->max = max;
}
@@ -763,8 +777,8 @@ static BME_Poly *BME_bevel_poly(BME_Mesh *bm, BME_Poly *f, float value, int opti
for (i=0,ol=f->loopbase,l=ol->next; l->next!=ol; l=l->next) {
BME_bevel_get_vec(vec1,l->next->v,ol->v,td);
BME_bevel_get_vec(vec2,l->v,ol->v,td);
- cross_v3_v3v3(vec3,vec2,vec1);
- VECADD(up_vec,up_vec,vec3);
+ cross_v3_v3v3(vec3, vec2, vec1);
+ add_v3_v3(up_vec, vec3);
i++;
}
mul_v3_fl(up_vec,1.0f/i);
@@ -793,7 +807,7 @@ static BME_Poly *BME_bevel_poly(BME_Mesh *bm, BME_Poly *f, float value, int opti
fac1 = 0;
}
else {
- VECCOPY(vec2,vtd1->vec);
+ copy_v3_v3(vec2,vtd1->vec);
mul_v3_fl(vec2,vtd1->factor);
if (dot_v3v3(vec1, vec1)) {
project_v3_v3v3(vec2,vec2,vec1);
@@ -807,7 +821,7 @@ static BME_Poly *BME_bevel_poly(BME_Mesh *bm, BME_Poly *f, float value, int opti
fac2 = 0;
}
else {
- VECCOPY(vec3,vtd2->vec);
+ copy_v3_v3(vec3,vtd2->vec);
mul_v3_fl(vec3,vtd2->factor);
if (dot_v3v3(vec1, vec1)) {
project_v3_v3v3(vec2,vec3,vec1);
@@ -833,7 +847,8 @@ static BME_Poly *BME_bevel_poly(BME_Mesh *bm, BME_Poly *f, float value, int opti
return l->f;
}
-static void BME_bevel_add_vweight(BME_TransData_Head *td, BME_Mesh *bm, BME_Vert *v, float weight, float factor, int options) {
+static void BME_bevel_add_vweight(BME_TransData_Head *td, BME_Mesh *bm, BME_Vert *v, float weight, float factor, int options)
+{
BME_TransData *vtd;
if (v->tflag1 & BME_BEVEL_NONMAN) return;
@@ -1105,6 +1120,7 @@ static BME_Mesh *BME_bevel_initialize(BME_Mesh *bm, int options, int UNUSED(defg
}
return bm;
+
}
/* tags all elements as originals */
@@ -1124,8 +1140,8 @@ static BME_Mesh *BME_bevel_reinitialize(BME_Mesh *bm) {
for (f=bm->polys.first; f; f=f->next) {
f->tflag1 |= BME_BEVEL_ORIG;
}
-
return bm;
+
}
/**
@@ -1318,7 +1334,7 @@ BME_Mesh *BME_bevel(BME_Mesh *bm, float value, int res, int options, int defgrp_
else {
d = value;
}
- VECADDFAC(v->co,vtd->org,vtd->vec,vtd->factor*d);
+ madd_v3_v3v3fl(v->co,vtd->org,vtd->vec,vtd->factor*d);
}
v->tflag1 = 0;
}