[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [16784] trunk/blender/source/blender: IPO System - Code Cleanup and Commenting:

Joshua Leung aligorith at gmail.com
Sun Sep 28 14:02:25 CEST 2008


Revision: 16784
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=16784
Author:   aligorith
Date:     2008-09-28 14:01:41 +0200 (Sun, 28 Sep 2008)

Log Message:
-----------
IPO System - Code Cleanup and Commenting:

Went through and commented all the code in ipo.c, tidying up formating and coding style in places, and also rearranging to have a more logical order in some places. There shouldn't be any major issues arising from this commit.

Modified Paths:
--------------
    trunk/blender/source/blender/blenkernel/BKE_ipo.h
    trunk/blender/source/blender/blenkernel/intern/curve.c
    trunk/blender/source/blender/blenkernel/intern/ipo.c
    trunk/blender/source/blender/makesdna/DNA_ipo_types.h
    trunk/blender/source/blender/src/drawobject.c

Modified: trunk/blender/source/blender/blenkernel/BKE_ipo.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_ipo.h	2008-09-28 11:56:47 UTC (rev 16783)
+++ trunk/blender/source/blender/blenkernel/BKE_ipo.h	2008-09-28 12:01:41 UTC (rev 16784)
@@ -54,41 +54,71 @@
 struct bActionChannel;
 struct rctf;
 
+/* ------------ Time Management ------------ */
+
 float frame_to_float(int cfra);
 
+/* ------------ IPO Management ---------- */
+
 void free_ipo_curve(struct IpoCurve *icu);
 void free_ipo(struct Ipo *ipo);
+
 void ipo_default_v2d_cur(int blocktype, struct rctf *cur);
+
 struct Ipo *add_ipo(char *name, int idcode);
 struct Ipo *copy_ipo(struct Ipo *ipo);
+
 void ipo_idnew(struct Ipo *ipo);
+
+struct IpoCurve *find_ipocurve(struct Ipo *ipo, int adrcode);
+short has_ipo_code(struct Ipo *ipo, int code);
+
+/* -------------- Make Local -------------- */
+
 void make_local_obipo(struct Ipo *ipo);
 void make_local_matipo(struct Ipo *ipo);
 void make_local_keyipo(struct Ipo *ipo);
 void make_local_ipo(struct Ipo *ipo);
-struct IpoCurve *find_ipocurve(struct Ipo *ipo, int adrcode);
 
+/* ------------ IPO-Curve Sanity ---------------- */
+
 void calchandles_ipocurve(struct IpoCurve *icu);
 void testhandles_ipocurve(struct IpoCurve *icu);
 void sort_time_ipocurve(struct IpoCurve *icu);
 int test_time_ipocurve(struct IpoCurve *icu);
+
+/* -------- IPO-Curve (Bezier) Calculations ---------- */
+
 void correct_bezpart(float *v1, float *v2, float *v3, float *v4);
 int findzero(float x, float q0, float q1, float q2, float q3, float *o);
 void berekeny(float f1, float f2, float f3, float f4, float *o, int b);
 void berekenx(float *f, float *o, int b);
+
+/* -------- IPO Curve Calculation and Evaluation --------- */
+
 float eval_icu(struct IpoCurve *icu, float ipotime);
 void calc_icu(struct IpoCurve *icu, float ctime);
 float calc_ipo_time(struct Ipo *ipo, float ctime);
 void calc_ipo(struct Ipo *ipo, float ctime);
+
+/* ------------ Keyframe Column Tools -------------- */
+
+void add_to_cfra_elem(struct ListBase *lb, struct BezTriple *bezt);
+void make_cfra_list(struct Ipo *ipo, struct ListBase *elems);
+
+/* ---------------- IPO DataAPI ----------------- */
+
 void write_ipo_poin(void *poin, int type, float val);
 float read_ipo_poin(void *poin, int type);
+
 void *give_mtex_poin(struct MTex *mtex, int adrcode );
-
+void *get_pchan_ipo_poin(struct bPoseChannel *pchan, int adrcode);
 void *get_ipo_poin(struct ID *id, struct IpoCurve *icu, int *type);
-void *get_pchan_ipo_poin(struct bPoseChannel *pchan, int adrcode);
 
 void set_icu_vars(struct IpoCurve *icu);
 
+/* ---------------- IPO Execution --------------- */
+
 void execute_ipo(struct ID *id, struct Ipo *ipo);
 void execute_action_ipo(struct bActionChannel *achan, struct bPoseChannel *pchan);
 
@@ -99,22 +129,17 @@
 void do_seq_ipo(struct Sequence *seq, int cfra);
 void do_ob_ipodrivers(struct Object *ob, struct Ipo *ipo, float ctime);
 
-int has_ipo_code(struct Ipo *ipo, int code);
 void do_all_data_ipos(void);
-int calc_ipo_spec(struct Ipo *ipo, int adrcode, float *ctime);
+short calc_ipo_spec(struct Ipo *ipo, int adrcode, float *ctime);
 void clear_delta_obipo(struct Ipo *ipo);
-void add_to_cfra_elem(struct ListBase *lb, struct BezTriple *bezt);
-void make_cfra_list(struct Ipo *ipo, struct ListBase *elems);
 
-/* the sort is an IPO_Channel... */
-int IPO_GetChannels(struct Ipo *ipo, short *channels);
+/* ----------- IPO <-> GameEngine API ---------------- */
 
-float IPO_GetFloatValue(struct Ipo *ipo,
-/*  						struct IPO_Channel channel, */
-						/* channels are shorts... bit ugly for now*/
-						short c,
-						float ctime);
+/* the short is an IPO_Channel... */
 
+short IPO_GetChannels(struct Ipo *ipo, short *channels);
+float IPO_GetFloatValue(struct Ipo *ipo, short c, float ctime);
+
 #ifdef __cplusplus
 };
 #endif

Modified: trunk/blender/source/blender/blenkernel/intern/curve.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/curve.c	2008-09-28 11:56:47 UTC (rev 16783)
+++ trunk/blender/source/blender/blenkernel/intern/curve.c	2008-09-28 12:01:41 UTC (rev 16784)
@@ -1509,7 +1509,7 @@
 	BevList *bl, *blnew, *blnext;
 	BevPoint *bevp, *bevp2, *bevp1 = NULL, *bevp0;
 	float min, inp, x1, x2, y1, y2, vec[3];
-	float *coord_array, *tilt_array=NULL, *radius_array=NULL, *coord_fp, *tilt_fp=NULL, *radius_fp;
+	float *coord_array, *tilt_array=NULL, *radius_array=NULL, *coord_fp, *tilt_fp=NULL, *radius_fp=NULL;
 	float *v1, *v2;
 	struct bevelsort *sortdata, *sd, *sd1;
 	int a, b, nr, poly, resolu, len=0;

Modified: trunk/blender/source/blender/blenkernel/intern/ipo.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/ipo.c	2008-09-28 11:56:47 UTC (rev 16783)
+++ trunk/blender/source/blender/blenkernel/intern/ipo.c	2008-09-28 12:01:41 UTC (rev 16784)
@@ -77,6 +77,8 @@
 
 #define SMALL -1.0e-10
 
+#if 0 // IPO_OLD_TEMP
+
 /* This array concept was meant to make sure that defines such as OB_LOC_X
    don't have to be enumerated, also for backward compatibility, future changes,
    and to enable it all can be accessed with a for-next loop.
@@ -969,7 +971,7 @@
 			cvalue+= cycyofs;
 		}
 		else if( (prevbezt+a)->vec[1][0]<=ipotime) {
-			if( (icu->extrap & IPO_DIR) && icu->ipo!=IPO_CONST) {
+			if( (icu->extrap & IPO_DIR) && (icu->ipo!=IPO_CONST)) {
 				prevbezt+= a;
 				
 				if (icu->ipo==IPO_LIN) {
@@ -2580,3 +2582,5 @@
 
 	return ctime;
 }
+
+#endif // IPO_OLD_TEMP

Modified: trunk/blender/source/blender/makesdna/DNA_ipo_types.h
===================================================================
--- trunk/blender/source/blender/makesdna/DNA_ipo_types.h	2008-09-28 11:56:47 UTC (rev 16783)
+++ trunk/blender/source/blender/makesdna/DNA_ipo_types.h	2008-09-28 12:01:41 UTC (rev 16784)
@@ -201,6 +201,8 @@
 #define MA_MAP17	(1<<21)
 #define MA_MAP18	(1<<22)
 
+/* ********** Texture Slots (MTex) ********** */
+
 #define TEX_TOTNAM	14
 
 #define MAP_OFS_X	1

Modified: trunk/blender/source/blender/src/drawobject.c
===================================================================
--- trunk/blender/source/blender/src/drawobject.c	2008-09-28 11:56:47 UTC (rev 16783)
+++ trunk/blender/source/blender/src/drawobject.c	2008-09-28 12:01:41 UTC (rev 16784)
@@ -4816,7 +4816,8 @@
 				warning_recursive= 1;
 
 				elems.first= elems.last= 0;
-				make_cfra_list(ob->ipo, &elems);
+				// warning: no longer checks for certain ob-keys only... (so does this need to use the proper ipokeys then?)
+				make_cfra_list(ob->ipo, &elems); 
 
 				cfraont= (G.scene->r.cfra);
 				drawtype= G.vd->drawtype;





More information about the Bf-blender-cvs mailing list