void panel_btn(fit_autos,(int all), fit_autos(all))
void panel_btn(set_editing_mode,(int mode), set_editing_mode(mode))
void panel_btn(set_auto_keyframes,(int v), set_auto_keyframes(v))
+void panel_btn(set_span_keyframes,(int v), set_span_keyframes(v))
void panel_btn(set_labels_follow_edits,(int v), set_labels_follow_edits(v))
cx /= n; cy /= n;
if( !mask_gui->focused )
mask_gui->set_focused(0, cx, cy);
+ cx = (cx - half_track_w) * projector_z + projector_x;
+ cy = (cy - half_track_h) * projector_z + projector_y;
output_to_canvas(mwindow->edl, 0, cx, cy);
float r = bmax(cvs_win->get_w(), cvs_win->get_h());
float d = 0.007*r;
case CWINDOW_MASK_TRANSLATE: {
if( !mask_gui ) break;
+ int mode = mask_gui->scale_mode;
MaskAuto *keyframe = gui->mask_keyframe;
int gang = mask_gui->gang_focus->get_value();
float dx = mask_cursor_x - gui->x_origin;
MaskPoints &points = sub_mask->points;
for( int i=0; i<points.size(); ++i ) {
MaskPoint *point = points[i];
- point->x += dx;
- point->y += dy;
+ if( mode == MASK_SCALE_X || mode == MASK_SCALE_XY ) point->x += dx;
+ if( mode == MASK_SCALE_Y || mode == MASK_SCALE_XY ) point->y += dy;
}
}
gui->x_origin = mask_cursor_x;
double ds = accel/64., dt = accel*M_PI/360.;
double scale = button_no == WHEEL_UP ? 1.+ds : 1.-ds;
int mode = mask_gui->scale_mode;
- double xscale = !rotate && (mode == 0 || mode == 2 ) ? scale : 1.;
- double yscale = !rotate && (mode == 1 || mode == 2 ) ? scale : 1.;
+ double xscale = !rotate && (mode == MASK_SCALE_X ||
+ mode == MASK_SCALE_XY ) ? scale : 1.;
+ double yscale = !rotate && (mode == MASK_SCALE_Y ||
+ mode == MASK_SCALE_XY ) ? scale : 1.;
double theta = button_no == WHEEL_UP ? dt : -dt;
if( rotate ? theta==0 : scale==1 ) break;
float st = sin(theta), ct = cos(theta);