[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [57701] trunk/blender/source/blender: lattice: use functions rather then defines, also added a function to get uvw from an index.

Campbell Barton ideasman42 at gmail.com
Mon Jun 24 15:45:36 CEST 2013


Revision: 57701
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=57701
Author:   campbellbarton
Date:     2013-06-24 13:45:35 +0000 (Mon, 24 Jun 2013)
Log Message:
-----------
lattice: use functions rather then defines, also added a function to get uvw from an index.
- BKE_lattice_index_from_uvw()
- BKE_lattice_index_to_uvw()

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_lattice.h
    trunk/blender/source/blender/blenkernel/intern/lattice.c
    trunk/blender/source/blender/editors/object/object_shapekey.c
    trunk/blender/source/blender/editors/object/object_vgroup.c
    trunk/blender/source/blender/makesdna/DNA_lattice_types.h
    trunk/blender/source/blender/makesrna/intern/rna_lattice.c

Modified: trunk/blender/source/blender/blenkernel/BKE_lattice.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_lattice.h	2013-06-24 13:38:28 UTC (rev 57700)
+++ trunk/blender/source/blender/blenkernel/BKE_lattice.h	2013-06-24 13:45:35 UTC (rev 57701)
@@ -82,5 +82,8 @@
 void BKE_lattice_center_bounds(struct Lattice *lt, float cent[3]);
 void BKE_lattice_translate(struct Lattice *lt, float offset[3], int do_keys);
 
+int  BKE_lattice_index_from_uvw(struct Lattice *lt, const int u, const int v, const int w);
+void BKE_lattice_index_to_uvw(struct Lattice *lt, const int index, int *r_u, int *r_v, int *r_w);
+
 #endif
 

Modified: trunk/blender/source/blender/blenkernel/intern/lattice.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/lattice.c	2013-06-24 13:38:28 UTC (rev 57700)
+++ trunk/blender/source/blender/blenkernel/intern/lattice.c	2013-06-24 13:45:35 UTC (rev 57701)
@@ -62,7 +62,20 @@
 
 #include "BKE_deform.h"
 
+int BKE_lattice_index_from_uvw(struct Lattice *lt,
+                               const int u, const int v, const int w)
+{
+	return (w * (lt->pntsu * lt->pntsv) + (v * lt->pntsu) + u);
+}
 
+void BKE_lattice_index_to_uvw(struct Lattice *lt, const int index,
+                              int *r_u, int *r_v, int *r_w)
+{
+	*r_u = (index % lt->pntsu);
+	*r_v = (index / lt->pntsu) % lt->pntsv;
+	*r_w = (index / (lt->pntsu * lt->pntsv));
+}
+
 void calc_lat_fudu(int flag, int res, float *r_fu, float *r_du)
 {
 	if (res == 1) {
@@ -867,7 +880,7 @@
 
 static BPoint *latt_bp(Lattice *lt, int u, int v, int w)
 {
-	return &lt->def[LT_INDEX(lt, u, v, w)];
+	return &lt->def[BKE_lattice_index_from_uvw(lt, u, v, w)];
 }
 
 void outside_lattice(Lattice *lt)

Modified: trunk/blender/source/blender/editors/object/object_shapekey.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_shapekey.c	2013-06-24 13:38:28 UTC (rev 57700)
+++ trunk/blender/source/blender/editors/object/object_shapekey.c	2013-06-24 13:45:35 UTC (rev 57701)
@@ -57,6 +57,7 @@
 #include "BKE_library.h"
 #include "BKE_main.h"
 #include "BKE_object.h"
+#include "BKE_lattice.h"
 #include "BKE_curve.h"
 
 #include "BLI_sys_types.h" // for intptr_t support
@@ -244,14 +245,14 @@
 						int u_inv = (lt->pntsu - 1) - u;
 						float tvec[3];
 						if (u == u_inv) {
-							i1 = LT_INDEX(lt, u, v, w);
+							i1 = BKE_lattice_index_from_uvw(lt, u, v, w);
 							fp1 = ((float *)kb->data) + i1 * 3;
 							fp1[0] = -fp1[0];
 							totmirr++;
 						}
 						else {
-							i1 = LT_INDEX(lt, u, v, w);
-							i2 = LT_INDEX(lt, u_inv, v, w);
+							i1 = BKE_lattice_index_from_uvw(lt, u, v, w);
+							i2 = BKE_lattice_index_from_uvw(lt, u_inv, v, w);
 
 							fp1 = ((float *)kb->data) + i1 * 3;
 							fp2 = ((float *)kb->data) + i2 * 3;

Modified: trunk/blender/source/blender/editors/object/object_vgroup.c
===================================================================
--- trunk/blender/source/blender/editors/object/object_vgroup.c	2013-06-24 13:38:28 UTC (rev 57700)
+++ trunk/blender/source/blender/editors/object/object_vgroup.c	2013-06-24 13:45:35 UTC (rev 57701)
@@ -2477,8 +2477,8 @@
 					if (u != u_inv) {
 						BPoint *bp, *bp_mirr;
 
-						i1 = LT_INDEX(lt, u, v, w);
-						i2 = LT_INDEX(lt, u_inv, v, w);
+						i1 = BKE_lattice_index_from_uvw(lt, u, v, w);
+						i2 = BKE_lattice_index_from_uvw(lt, u_inv, v, w);
 
 						bp = &lt->def[i1];
 						bp_mirr = &lt->def[i2];

Modified: trunk/blender/source/blender/makesdna/DNA_lattice_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_lattice_types.h	2013-06-24 13:38:28 UTC (rev 57700)
+++ trunk/blender/source/blender/makesdna/DNA_lattice_types.h	2013-06-24 13:45:35 UTC (rev 57701)
@@ -83,8 +83,6 @@
 
 #define LT_DS_EXPAND	4
 
-#define LT_INDEX(lt, u, v, w) ((w) * ((lt)->pntsu * (lt)->pntsv) + ((v) * (lt)->pntsu) + (u))
-
 #define LT_ACTBP_NONE	-1
 
 #endif

Modified: trunk/blender/source/blender/makesrna/intern/rna_lattice.c
===================================================================
--- trunk/blender/source/blender/makesrna/intern/rna_lattice.c	2013-06-24 13:38:28 UTC (rev 57700)
+++ trunk/blender/source/blender/makesrna/intern/rna_lattice.c	2013-06-24 13:45:35 UTC (rev 57701)
@@ -54,14 +54,14 @@
 {
 	Lattice *lt = (Lattice *)ptr->id.data;
 	BPoint *bp = (BPoint *)ptr->data;
-	int a = bp - lt->def;
-	int x = a % lt->pntsu;
-	int y = (a / lt->pntsu) % lt->pntsv;
-	int z = (a / (lt->pntsu * lt->pntsv));
+	int index = bp - lt->def;
+	int u, v, w;
 
-	values[0] = lt->fu + x * lt->du;
-	values[1] = lt->fv + y * lt->dv;
-	values[2] = lt->fw + z * lt->dw;
+	BKE_lattice_index_to_uvw(lt, index, &u, &v, &w);
+
+	values[0] = lt->fu + u * lt->du;
+	values[1] = lt->fv + v * lt->dv;
+	values[2] = lt->fw + w * lt->dw;
 }
 
 static void rna_LatticePoint_groups_begin(CollectionPropertyIterator *iter, PointerRNA *ptr)




More information about the Bf-blender-cvs mailing list