[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [12190] trunk/blender/source/blender/src/ editipo.c: IPO Transform Bugfix:

Joshua Leung aligorith at gmail.com
Tue Oct 2 12:59:03 CEST 2007


Revision: 12190
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=12190
Author:   aligorith
Date:     2007-10-02 12:59:02 +0200 (Tue, 02 Oct 2007)

Log Message:
-----------
IPO Transform Bugfix:

When IPO-Keys were being shown, the y-values of the keyframes should not change during transform.

Modified Paths:
--------------
    trunk/blender/source/blender/src/editipo.c

Modified: trunk/blender/source/blender/src/editipo.c
===================================================================
--- trunk/blender/source/blender/src/editipo.c	2007-10-02 10:45:22 UTC (rev 12189)
+++ trunk/blender/source/blender/src/editipo.c	2007-10-02 10:59:02 UTC (rev 12190)
@@ -4887,20 +4887,21 @@
 			if (ISPOIN(ei, flag & IPO_VISIBLE, icu)) {
 				if ( (ei->flag & IPO_EDIT) || G.sipo->showkey) {
 					if (ei->icu->bezt) {
+						short onlytime= (ei->disptype==IPO_DISPBITS) ? 1 : (G.sipo->showkey) ? 1 : 0;
 						bezt= ei->icu->bezt;
 						
 						for (b=0; b < ei->icu->totvert; b++, bezt++) {
 							/* only include handles if selected, and interpolaton mode uses beztriples */
 							if (ei->icu->ipo==IPO_BEZ) {
 								if (bezt->f1 & 1)
-									bezt_to_transdata(td++, td2d++, bezt->vec[0], bezt->vec[1], 1, (ei->disptype==IPO_DISPBITS));
+									bezt_to_transdata(td++, td2d++, bezt->vec[0], bezt->vec[1], 1, onlytime);
 								if (bezt->f3 & 1)
-									bezt_to_transdata(td++, td2d++, bezt->vec[2], bezt->vec[1], 1, (ei->disptype==IPO_DISPBITS));
+									bezt_to_transdata(td++, td2d++, bezt->vec[2], bezt->vec[1], 1, onlytime);
 							}
 							
 							/* only include main vert if selected */
 							if (bezt->f2 & 1) {
-								bezt_to_transdata(td++, td2d++, bezt->vec[1], bezt->vec[1], 1, (ei->disptype==IPO_DISPBITS));
+								bezt_to_transdata(td++, td2d++, bezt->vec[1], bezt->vec[1], 1, onlytime);
 							}
 						}
 					}
@@ -4915,17 +4916,19 @@
 			/* only include curves that are visible and selected */
 			if (ISPOIN3(ei, flag & IPO_VISIBLE, flag & IPO_SELECT, icu)) {
 				if (ei->icu->bezt) {
+					short onlytime= (ei->disptype==IPO_DISPBITS) ? 1 : (G.sipo->showkey) ? 1 : 0;
 					bezt= ei->icu->bezt;
 					b= ei->icu->totvert;
+					
 					for (b=0; b < ei->icu->totvert; b++, bezt++) {
 						/* only include handles if interpolation mode is bezier not bpoint */
 						if (ei->icu->ipo==IPO_BEZ) {
-							bezt_to_transdata(td++, td2d++, bezt->vec[0], bezt->vec[1], 1, (ei->disptype==IPO_DISPBITS));
-							bezt_to_transdata(td++, td2d++, bezt->vec[2], bezt->vec[1], 1, (ei->disptype==IPO_DISPBITS));
+							bezt_to_transdata(td++, td2d++, bezt->vec[0], bezt->vec[1], 1, onlytime);
+							bezt_to_transdata(td++, td2d++, bezt->vec[2], bezt->vec[1], 1, onlytime);
 						}
 						
 						/* always include the main handle */
-						bezt_to_transdata(td++, td2d++, bezt->vec[1], bezt->vec[1], 1, (ei->disptype==IPO_DISPBITS));
+						bezt_to_transdata(td++, td2d++, bezt->vec[1], bezt->vec[1], 1, onlytime);
 					}
 				}
 			}
@@ -4940,12 +4943,8 @@
 	BezTriple *bezt;
 	int oldIndex;
 	int newIndex;
-	short handles;
 } BeztMap;
 
-#define BEZM_FLIPH 		1
-#define BEZM_CLEARH1	2
-#define BEZM_CLEARH2	4
 
 /* This function converts an IpoCurve's BezTriple array to a BeztMap array
  * NOTE: this allocates memory that will need to get freed later
@@ -4996,15 +4995,6 @@
 				}
 			}
 			
-			/* swap order of handles or snap handles to centre-point? */
-			if (bezm->bezt->vec[0][0]>bezm->bezt->vec[1][0] && bezm->bezt->vec[2][0]<bezm->bezt->vec[1][0]) {
-				bezm->handles ^= BEZM_FLIPH;
-			}
-			else {
-				if (bezm->bezt->vec[0][0]>bezm->bezt->vec[1][0]) bezm->handles ^= BEZM_CLEARH1;
-				if (bezm->bezt->vec[2][0]<bezm->bezt->vec[1][0]) bezm->handles ^= BEZM_CLEARH2;
-			}
-			
 			bezm++;
 		}	
 	}





More information about the Bf-blender-cvs mailing list