[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