diff options
Diffstat (limited to 'source/blender')
19 files changed, 3146 insertions, 2890 deletions
diff --git a/source/blender/blenkernel/BKE_movieclip.h b/source/blender/blenkernel/BKE_movieclip.h index 27b377d8cd5..d7b2f271a83 100644 --- a/source/blender/blenkernel/BKE_movieclip.h +++ b/source/blender/blenkernel/BKE_movieclip.h @@ -61,7 +61,7 @@ void BKE_movieclip_update_scopes(struct MovieClip *clip, struct MovieClipUser *u void BKE_movieclip_get_cache_segments(struct MovieClip *clip, struct MovieClipUser *user, int *totseg_r, int **points_r); void BKE_movieclip_build_proxy_frame(struct MovieClip *clip, int clip_flag, struct MovieDistortion *distortion, - int cfra, int *build_sizes, int build_count, int undistorted); + int cfra, int *build_sizes, int build_count, int undistorted); /* cacheing flags */ #define MOVIECLIP_CACHE_SKIP (1<<0) diff --git a/source/blender/blenkernel/BKE_tracking.h b/source/blender/blenkernel/BKE_tracking.h index b853a5b4af9..2bb8fc691f0 100644 --- a/source/blender/blenkernel/BKE_tracking.h +++ b/source/blender/blenkernel/BKE_tracking.h @@ -52,9 +52,9 @@ void BKE_tracking_clamp_track(struct MovieTrackingTrack *track, int event); void BKE_tracking_track_flag(struct MovieTrackingTrack *track, int area, int flag, int clear); struct MovieTrackingTrack *BKE_tracking_add_track(struct MovieTracking *tracking, struct ListBase *tracksbase, - float x, float y, int framenr, int width, int height); + float x, float y, int framenr, int width, int height); struct MovieTrackingMarker *BKE_tracking_insert_marker(struct MovieTrackingTrack *track, - struct MovieTrackingMarker *marker); + struct MovieTrackingMarker *marker); void BKE_tracking_delete_marker(struct MovieTrackingTrack *track, int framenr); struct MovieTrackingMarker *BKE_tracking_get_marker(struct MovieTrackingTrack *track, int framenr); @@ -71,9 +71,11 @@ void BKE_tracking_join_tracks(struct MovieTrackingTrack *dst_track, struct Movie void BKE_tracking_free(struct MovieTracking *tracking); struct ImBuf *BKE_tracking_get_pattern_imbuf(struct ImBuf *ibuf, struct MovieTrackingTrack *track, - struct MovieTrackingMarker *marker, int margin, int anchored, float pos[2], int origin[2]); + struct MovieTrackingMarker *marker, int margin, int anchored, + float pos[2], int origin[2]); struct ImBuf *BKE_tracking_get_search_imbuf(struct ImBuf *ibuf, struct MovieTrackingTrack *track, - struct MovieTrackingMarker *marker, int margin, int anchored, float pos[2], int origin[2]); + struct MovieTrackingMarker *marker, int margin, int anchored, + float pos[2], int origin[2]); void BKE_track_unique_name(struct ListBase *tracksbase, struct MovieTrackingTrack *track); @@ -85,7 +87,7 @@ void BKE_tracking_camera_to_blender(struct MovieTracking *tracking, struct Scene void BKE_get_tracking_mat(struct Scene *scene, struct Object *ob, float mat[4][4]); void BKE_tracking_projection_matrix(struct MovieTracking *tracking, struct MovieTrackingObject *object, - int framenr, int winx, int winy, float mat[4][4]); + int framenr, int winx, int winy, float mat[4][4]); struct ListBase *BKE_tracking_get_tracks(struct MovieTracking *tracking); struct MovieTrackingReconstruction *BKE_tracking_get_reconstruction(struct MovieTracking *tracking); @@ -95,7 +97,7 @@ struct MovieTrackingObject *BKE_tracking_active_object(struct MovieTracking *tra struct MovieTrackingObject *BKE_tracking_get_camera_object(struct MovieTracking *tracking); struct ListBase *BKE_tracking_object_tracks(struct MovieTracking *tracking, struct MovieTrackingObject *object); struct MovieTrackingReconstruction *BKE_tracking_object_reconstruction(struct MovieTracking *tracking, - struct MovieTrackingObject *object); + struct MovieTrackingObject *object); void BKE_tracking_disable_imbuf_channels(struct ImBuf *ibuf, int disable_red, int disable_green, int disable_blue, int grayscale); @@ -115,24 +117,24 @@ int BKE_tracking_next(struct MovieTrackingContext *context); /* Camera solving */ int BKE_tracking_can_reconstruct(struct MovieTracking *tracking, struct MovieTrackingObject *object, - char *error_msg, int error_size); + char *error_msg, int error_size); struct MovieReconstructContext* BKE_tracking_reconstruction_context_new(struct MovieTracking *tracking, struct MovieTrackingObject *object, int keyframe1, int keyframe2, int width, int height); void BKE_tracking_reconstruction_context_free(struct MovieReconstructContext *context); -void BKE_tracking_solve_reconstruction(struct MovieReconstructContext *context, - short *stop, short *do_update, float *progress, char *stats_message, int message_size); +void BKE_tracking_solve_reconstruction(struct MovieReconstructContext *context, short *stop, short *do_update, + float *progress, char *stats_message, int message_size); int BKE_tracking_finish_reconstruction(struct MovieReconstructContext *context, struct MovieTracking *tracking); struct MovieReconstructedCamera *BKE_tracking_get_reconstructed_camera(struct MovieTracking *tracking, struct MovieTrackingObject *object, int framenr); -void BKE_tracking_get_interpolated_camera(struct MovieTracking *tracking, - struct MovieTrackingObject *object, int framenr, float mat[4][4]); +void BKE_tracking_get_interpolated_camera(struct MovieTracking *tracking, struct MovieTrackingObject *object, + int framenr, float mat[4][4]); /* Feature detection */ void BKE_tracking_detect_fast(struct MovieTracking *tracking, struct ListBase *tracksbase, struct ImBuf *imbuf, - int framenr, int margin, int min_trackness, int min_distance, struct bGPDlayer *layer, - int place_outside_layer); + int framenr, int margin, int min_trackness, int min_distance, struct bGPDlayer *layer, + int place_outside_layer); /* 2D stabilization */ void BKE_tracking_stabilization_data(struct MovieTracking *tracking, int framenr, int width, int height, float loc[2], float *scale, float *angle); @@ -146,7 +148,7 @@ void BKE_tracking_invert_intrinsics(struct MovieTracking *tracking, float co[2], struct MovieDistortion *BKE_tracking_distortion_create(void); struct MovieDistortion *BKE_tracking_distortion_copy(struct MovieDistortion *distortion); struct ImBuf *BKE_tracking_distortion_exec(struct MovieDistortion *distortion, struct MovieTracking *tracking, - struct ImBuf *ibuf, int width, int height, float overscan, int undistort); + struct ImBuf *ibuf, int width, int height, float overscan, int undistort); void BKE_tracking_distortion_destroy(struct MovieDistortion *distortion); struct ImBuf *BKE_tracking_undistort(struct MovieTracking *tracking, struct ImBuf *ibuf, int width, int height, float overscan); diff --git a/source/blender/blenkernel/intern/constraint.c b/source/blender/blenkernel/intern/constraint.c index 449376a3960..0126f1dc416 100644 --- a/source/blender/blenkernel/intern/constraint.c +++ b/source/blender/blenkernel/intern/constraint.c @@ -3927,28 +3927,28 @@ static bConstraintTypeInfo CTI_PIVOT = { /* ----------- Follow Track ------------- */ -static void followtrack_new_data (void *cdata) +static void followtrack_new_data(void *cdata) { - bFollowTrackConstraint *data= (bFollowTrackConstraint *)cdata; - - data->clip= NULL; + bFollowTrackConstraint *data = (bFollowTrackConstraint *)cdata; + + data->clip = NULL; data->flag |= FOLLOWTRACK_ACTIVECLIP; } -static void followtrack_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata) +static void followtrack_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata) { - bFollowTrackConstraint *data= con->data; - + bFollowTrackConstraint *data = con->data; + func(con, (ID**)&data->clip, userdata); func(con, (ID**)&data->camera, userdata); func(con, (ID**)&data->depth_ob, userdata); } -static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets)) +static void followtrack_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets)) { - Scene *scene= cob->scene; - bFollowTrackConstraint *data= con->data; - MovieClip *clip= data->clip; + Scene *scene = cob->scene; + bFollowTrackConstraint *data = con->data; + MovieClip *clip = data->clip; MovieTracking *tracking; MovieTrackingTrack *track; MovieTrackingObject *tracking_object; @@ -3960,17 +3960,17 @@ static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase if (!clip || !data->track[0] || !camob) return; - tracking= &clip->tracking; + tracking = &clip->tracking; if (data->object[0]) - tracking_object= BKE_tracking_named_object(tracking, data->object); + tracking_object = BKE_tracking_named_object(tracking, data->object); else - tracking_object= BKE_tracking_get_camera_object(tracking); + tracking_object = BKE_tracking_get_camera_object(tracking); if (!tracking_object) return; - track= BKE_tracking_named_track(tracking, tracking_object, data->track); + track = BKE_tracking_named_track(tracking, tracking_object, data->track); if (!track) return; @@ -3981,7 +3981,7 @@ static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase copy_m4_m4(obmat, cob->matrix); - if ((tracking_object->flag&TRACKING_OBJECT_CAMERA)==0) { + if ((tracking_object->flag & TRACKING_OBJECT_CAMERA)==0) { float imat[4][4]; copy_m4_m4(mat, camob->obmat); @@ -4003,15 +4003,15 @@ static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase else { MovieTrackingMarker *marker; float vec[3], disp[3], axis[3], mat[4][4]; - float aspect= (scene->r.xsch*scene->r.xasp) / (scene->r.ysch*scene->r.yasp); + float aspect= (scene->r.xsch * scene->r.xasp) / (scene->r.ysch * scene->r.yasp); float len, d; where_is_object_mat(scene, camob, mat); /* camera axis */ - vec[0]= 0.0f; - vec[1]= 0.0f; - vec[2]= 1.0f; + vec[0] = 0.0f; + vec[1] = 0.0f; + vec[2] = 1.0f; mul_v3_m4v3(axis, mat, vec); /* distance to projection plane */ @@ -4019,13 +4019,13 @@ static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase sub_v3_v3(vec, mat[3]); project_v3_v3v3(disp, vec, axis); - len= len_v3(disp); + len = len_v3(disp); if (len > FLT_EPSILON) { CameraParams params; float pos[2], rmat[4][4]; - marker= BKE_tracking_get_marker(track, scene->r.cfra); + marker = BKE_tracking_get_marker(track, scene->r.cfra); add_v2_v2v2(pos, marker->pos, track->offset); @@ -4033,12 +4033,14 @@ static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase camera_params_from_object(¶ms, camob); if (params.is_ortho) { - vec[0]= params.ortho_scale * (pos[0]-0.5f+params.shiftx); - vec[1]= params.ortho_scale * (pos[1]-0.5f+params.shifty); - vec[2]= -len; + vec[0] = params.ortho_scale * (pos[0] - 0.5f + params.shiftx); + vec[1] = params.ortho_scale * (pos[1] - 0.5f + params.shifty); + vec[2] = -len; - if (aspect > 1.0f) vec[1] /= aspect; - else vec[0] *= aspect; + if (aspect > 1.0f) + vec[1] /= aspect; + else + vec[0] *= aspect; mul_v3_m4v3(disp, camob->obmat, vec); @@ -4049,14 +4051,16 @@ static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase copy_v3_v3(cob->matrix[3], disp); } else { - d= (len*params.sensor_x) / (2.0f*params.lens); + d= (len * params.sensor_x) / (2.0f * params.lens); - vec[0]= d*(2.0f*(pos[0]+params.shiftx)-1.0f); - vec[1]= d*(2.0f*(pos[1]+params.shifty)-1.0f); - vec[2]= -len; + vec[0] = d * (2.0f * (pos[0] + params.shiftx) - 1.0f); + vec[1] = d * (2.0f * (pos[1] + params.shifty) - 1.0f); + vec[2] = -len; - if (aspect > 1.0f) vec[1] /= aspect; - else vec[0] *= aspect; + if (aspect > 1.0f) + vec[1] /= aspect; + else + vec[0] *= aspect; mul_v3_m4v3(disp, camob->obmat, vec); @@ -4069,8 +4073,8 @@ static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase } if (data->depth_ob && data->depth_ob->derivedFinal) { - Object *depth_ob= data->depth_ob; - BVHTreeFromMesh treeData= NULL_BVHTreeFromMesh; + Object *depth_ob = data->depth_ob; + BVHTreeFromMesh treeData = NULL_BVHTreeFromMesh; BVHTreeRayHit hit; float ray_start[3], ray_end[3], ray_nor[3], imat[4][4]; int result; @@ -4084,10 +4088,10 @@ static void followtrack_evaluate (bConstraint *con, bConstraintOb *cob, ListBase bvhtree_from_mesh_faces(&treeData, depth_ob->derivedFinal, 0.0f, 4, 6); - hit.dist= FLT_MAX; - hit.index= -1; + hit.dist = FLT_MAX; + hit.index = -1; - result= BLI_bvhtree_ray_cast(treeData.tree, ray_start, ray_nor, 0.0f, &hit, treeData.raycast_callback, &treeData); + result = BLI_bvhtree_ray_cast(treeData.tree, ray_start, ray_nor, 0.0f, &hit, treeData.raycast_callback, &treeData); if (result != -1) { mul_v3_m4v3(cob->matrix[3], depth_ob->obmat, hit.co); @@ -4117,34 +4121,34 @@ static bConstraintTypeInfo CTI_FOLLOWTRACK = { /* ----------- Camre Solver ------------- */ -static void camerasolver_new_data (void *cdata) +static void camerasolver_new_data(void *cdata) { - bCameraSolverConstraint *data= (bCameraSolverConstraint *)cdata; - + bCameraSolverConstraint *data = (bCameraSolverConstraint *)cdata; + data->clip = NULL; data->flag |= CAMERASOLVER_ACTIVECLIP; } -static void camerasolver_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata) +static void camerasolver_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata) { - bCameraSolverConstraint *data= con->data; - + bCameraSolverConstraint *data = con->data; + func(con, (ID**)&data->clip, userdata); } -static void camerasolver_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets)) +static void camerasolver_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets)) { - Scene *scene= cob->scene; - bCameraSolverConstraint *data= con->data; - MovieClip *clip= data->clip; + Scene *scene = cob->scene; + bCameraSolverConstraint *data = con->data; + MovieClip *clip = data->clip; if (data->flag & CAMERASOLVER_ACTIVECLIP) - clip= scene->clip; + clip = scene->clip; if (clip) { float mat[4][4], obmat[4][4]; - MovieTracking *tracking= &clip->tracking; - MovieTrackingObject *object= BKE_tracking_get_camera_object(tracking); + MovieTracking *tracking = &clip->tracking; + MovieTrackingObject *object = BKE_tracking_get_camera_object(tracking); BKE_tracking_get_interpolated_camera(tracking, object, scene->r.cfra, mat); @@ -4172,16 +4176,16 @@ static bConstraintTypeInfo CTI_CAMERASOLVER = { /* ----------- Object Solver ------------- */ -static void objectsolver_new_data (void *cdata) +static void objectsolver_new_data(void *cdata) { - bObjectSolverConstraint *data= (bObjectSolverConstraint *)cdata; + bObjectSolverConstraint *data = (bObjectSolverConstraint *)cdata; data->clip = NULL; data->flag |= OBJECTSOLVER_ACTIVECLIP; unit_m4(data->invmat); } -static void objectsolver_id_looper (bConstraint *con, ConstraintIDFunc func, void *userdata) +static void objectsolver_id_looper(bConstraint *con, ConstraintIDFunc func, void *userdata) { bObjectSolverConstraint *data= con->data; @@ -4189,12 +4193,12 @@ static void objectsolver_id_looper (bConstraint *con, ConstraintIDFunc func, voi func(con, (ID**)&data->camera, userdata); } -static void objectsolver_evaluate (bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets)) +static void objectsolver_evaluate(bConstraint *con, bConstraintOb *cob, ListBase *UNUSED(targets)) { - Scene *scene= cob->scene; - bObjectSolverConstraint *data= con->data; - MovieClip *clip= data->clip; - Object *camob= data->camera ? data->camera : scene->camera; + Scene *scene = cob->scene; + bObjectSolverConstraint *data = con->data; + MovieClip *clip = data->clip; + Object *camob = data->camera ? data->camera : scene->camera; if (data->flag & OBJECTSOLVER_ACTIVECLIP) clip= scene->clip; @@ -4203,10 +4207,10 @@ static void objectsolver_evaluate (bConstraint *con, bConstraintOb *cob, ListBas return; if (clip) { - MovieTracking *tracking= &clip->tracking; + MovieTracking *tracking = &clip->tracking; MovieTrackingObject *object; - object= BKE_tracking_named_object(tracking, data->object); + object = BKE_tracking_named_object(tracking, data->object); if (object) { float mat[4][4], obmat[4][4], imat[4][4], cammat[4][4], camimat[4][4], parmat[4][4]; diff --git a/source/blender/blenkernel/intern/movieclip.c b/source/blender/blenkernel/intern/movieclip.c index 0cecc09a9d7..bc147c52094 100644 --- a/source/blender/blenkernel/intern/movieclip.c +++ b/source/blender/blenkernel/intern/movieclip.c @@ -82,19 +82,19 @@ static int sequence_guess_offset(const char *full_name, int head_len, int numlen) { - char num[FILE_MAX]= {0}; + char num[FILE_MAX] = {0}; - BLI_strncpy(num, full_name+head_len, numlen+1); + BLI_strncpy(num, full_name + head_len, numlen + 1); return atoi(num); } static int rendersize_to_proxy(MovieClipUser *user, int flag) { - if ((flag&MCLIP_USE_PROXY)==0) + if ((flag & MCLIP_USE_PROXY) == 0) return IMB_PROXY_NONE; - switch(user->render_size) { + switch (user->render_size) { case MCLIP_PROXY_RENDER_SIZE_25: return IMB_PROXY_25; @@ -116,7 +116,7 @@ static int rendersize_to_proxy(MovieClipUser *user, int flag) static int rendersize_to_number(int render_size) { - switch(render_size) { + switch (render_size) { case MCLIP_PROXY_RENDER_SIZE_25: return 25; @@ -138,7 +138,7 @@ static int rendersize_to_number(int render_size) static int get_timecode(MovieClip *clip, int flag) { - if ((flag&MCLIP_USE_PROXY)==0) + if ((flag & MCLIP_USE_PROXY) == 0) return IMB_TC_NONE; return clip->proxy.tc; @@ -157,8 +157,10 @@ static void get_sequence_fname(MovieClip *clip, int framenr, char *name) * autoguess offset for now. could be something smarter in the future */ offset= sequence_guess_offset(clip->name, strlen(head), numlen); - if (numlen) BLI_stringenc(name, head, tail, numlen, offset+framenr-1); - else BLI_strncpy(name, clip->name, sizeof(clip->name)); + if (numlen) + BLI_stringenc(name, head, tail, numlen, offset + framenr - 1); + else + BLI_strncpy(name, clip->name, sizeof(clip->name)); BLI_path_abs(name, ID_BLEND_PATH(G.main, &clip->id)); } @@ -166,12 +168,12 @@ static void get_sequence_fname(MovieClip *clip, int framenr, char *name) /* supposed to work with sequences only */ static void get_proxy_fname(MovieClip *clip, int proxy_render_size, int undistorted, int framenr, char *name) { - int size= rendersize_to_number(proxy_render_size); + int size = rendersize_to_number(proxy_render_size); char dir[FILE_MAX], clipdir[FILE_MAX], clipfile[FILE_MAX]; BLI_split_dirfile(clip->name, clipdir, clipfile, FILE_MAX, FILE_MAX); - if (clip->flag&MCLIP_USE_PROXY_CUSTOM_DIR) { + if (clip->flag & MCLIP_USE_PROXY_CUSTOM_DIR) { BLI_strncpy(dir, clip->proxy.dir, sizeof(dir)); } else { @@ -195,27 +197,27 @@ static ImBuf *movieclip_load_sequence_file(MovieClip *clip, MovieClipUser *user, char name[FILE_MAX]; int loadflag, use_proxy= 0; - use_proxy= (flag&MCLIP_USE_PROXY) && user->render_size != MCLIP_PROXY_RENDER_SIZE_FULL; + use_proxy = (flag & MCLIP_USE_PROXY) && user->render_size != MCLIP_PROXY_RENDER_SIZE_FULL; if (use_proxy) { - int undistort= user->render_flag&MCLIP_PROXY_RENDER_UNDISTORT; + int undistort = user->render_flag & MCLIP_PROXY_RENDER_UNDISTORT; get_proxy_fname(clip, user->render_size, undistort, framenr, name); } else get_sequence_fname(clip, framenr, name); - loadflag= IB_rect|IB_multilayer; + loadflag = IB_rect|IB_multilayer; /* read ibuf */ - ibuf= IMB_loadiffname(name, loadflag); + ibuf = IMB_loadiffname(name, loadflag); return ibuf; } static ImBuf *movieclip_load_movie_file(MovieClip *clip, MovieClipUser *user, int framenr, int flag) { - ImBuf *ibuf= NULL; - int tc= get_timecode(clip, flag); - int proxy= rendersize_to_proxy(user, flag); + ImBuf *ibuf = NULL; + int tc = get_timecode(clip, flag); + int proxy = rendersize_to_proxy(user, flag); char str[FILE_MAX]; if (!clip->anim) { @@ -223,10 +225,10 @@ static ImBuf *movieclip_load_movie_file(MovieClip *clip, MovieClipUser *user, in BLI_path_abs(str, ID_BLEND_PATH(G.main, &clip->id)); /* FIXME: make several stream accessible in image editor, too */ - clip->anim= openanim(str, IB_rect, 0); + clip->anim = openanim(str, IB_rect, 0); if (clip->anim) { - if (clip->flag&MCLIP_USE_PROXY_CUSTOM_DIR) { + if (clip->flag & MCLIP_USE_PROXY_CUSTOM_DIR) { char dir[FILE_MAX]; BLI_strncpy(dir, clip->proxy.dir, sizeof(dir)); BLI_path_abs(dir, G.main->name); @@ -239,16 +241,16 @@ static ImBuf *movieclip_load_movie_file(MovieClip *clip, MovieClipUser *user, in int dur; int fra; - dur= IMB_anim_get_duration(clip->anim, tc); - fra= framenr-1; + dur = IMB_anim_get_duration(clip->anim, tc); + fra = framenr - 1; if (fra<0) - fra= 0; + fra = 0; - if (fra>(dur-1)) - fra= dur-1; + if (fra > (dur - 1)) + fra = dur - 1; - ibuf= IMB_anim_absolute(clip->anim, fra, tc, proxy); + ibuf = IMB_anim_absolute(clip->anim, fra, tc, proxy); } return ibuf; @@ -295,34 +297,40 @@ typedef struct MovieClipImBufCacheKey { static void moviecache_keydata(void *userkey, int *framenr, int *proxy, int *render_flags) { - MovieClipImBufCacheKey *key= (MovieClipImBufCacheKey*)userkey; + MovieClipImBufCacheKey *key = (MovieClipImBufCacheKey*)userkey; - *framenr= key->framenr; - *proxy= key->proxy; - *render_flags= key->render_flag; + *framenr = key->framenr; + *proxy = key->proxy; + *render_flags = key->render_flag; } static unsigned int moviecache_hashhash(const void *keyv) { - MovieClipImBufCacheKey *key= (MovieClipImBufCacheKey*)keyv; - int rval= key->framenr; + MovieClipImBufCacheKey *key = (MovieClipImBufCacheKey*)keyv; + int rval = key->framenr; return rval; } static int moviecache_hashcmp(const void *av, const void *bv) { - const MovieClipImBufCacheKey *a= (MovieClipImBufCacheKey*)av; - const MovieClipImBufCacheKey *b= (MovieClipImBufCacheKey*)bv; + const MovieClipImBufCacheKey *a = (MovieClipImBufCacheKey*)av; + const MovieClipImBufCacheKey *b = (MovieClipImBufCacheKey*)bv; - if (a->framenr<b->framenr) return -1; - else if (a->framenr>b->framenr) return 1; + if (a->framenr < b->framenr) + return -1; + else if (a->framenr > b->framenr) + return 1; - if (a->proxy<b->proxy) return -1; - else if (a->proxy>b->proxy) return 1; + if (a->proxy < b->proxy) + return -1; + else if (a->proxy > b->proxy) + return 1; - if (a->render_flag<b->render_flag) return -1; - else if (a->render_flag>b->render_flag) return 1; + if (a->render_flag < b->render_flag) + return -1; + else if (a->render_flag > b->render_flag) + return 1; return 0; } @@ -332,15 +340,15 @@ static ImBuf *get_imbuf_cache(MovieClip *clip, MovieClipUser *user, int flag) if (clip->cache) { MovieClipImBufCacheKey key; - key.framenr= user->framenr; + key.framenr = user->framenr; - if (flag&MCLIP_USE_PROXY) { - key.proxy= rendersize_to_proxy(user, flag); - key.render_flag= user->render_flag; + if (flag & MCLIP_USE_PROXY) { + key.proxy = rendersize_to_proxy(user, flag); + key.render_flag = user->render_flag; } else { - key.proxy= IMB_PROXY_NONE; - key.render_flag= 0; + key.proxy = IMB_PROXY_NONE; + key.render_flag = 0; } return IMB_moviecache_get(clip->cache->moviecache, &key); @@ -354,21 +362,21 @@ static void put_imbuf_cache(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, i MovieClipImBufCacheKey key; if (!clip->cache) { - clip->cache= MEM_callocN(sizeof(MovieClipCache), "movieClipCache"); + clip->cache = MEM_callocN(sizeof(MovieClipCache), "movieClipCache"); - clip->cache->moviecache= IMB_moviecache_create(sizeof(MovieClipImBufCacheKey), moviecache_hashhash, + clip->cache->moviecache = IMB_moviecache_create(sizeof(MovieClipImBufCacheKey), moviecache_hashhash, moviecache_hashcmp, moviecache_keydata); } - key.framenr= user->framenr; + key.framenr = user->framenr; - if (flag&MCLIP_USE_PROXY) { - key.proxy= rendersize_to_proxy(user, flag); - key.render_flag= user->render_flag; + if (flag & MCLIP_USE_PROXY) { + key.proxy = rendersize_to_proxy(user, flag); + key.render_flag = user->render_flag; } else { - key.proxy= IMB_PROXY_NONE; - key.render_flag= 0; + key.proxy = IMB_PROXY_NONE; + key.render_flag = 0; } IMB_moviecache_put(clip->cache->moviecache, &key, ibuf); @@ -381,18 +389,18 @@ static MovieClip *movieclip_alloc(const char *name) { MovieClip *clip; - clip= alloc_libblock(&G.main->movieclip, ID_MC, name); + clip = alloc_libblock(&G.main->movieclip, ID_MC, name); - clip->aspx= clip->aspy= 1.0f; + clip->aspx = clip->aspy= 1.0f; BKE_tracking_init_settings(&clip->tracking); - clip->proxy.build_size_flag= IMB_PROXY_25; - clip->proxy.build_tc_flag= IMB_TC_RECORD_RUN | - IMB_TC_FREE_RUN | - IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN | - IMB_TC_RECORD_RUN_NO_GAPS; - clip->proxy.quality= 90; + clip->proxy.build_size_flag = IMB_PROXY_25; + clip->proxy.build_tc_flag = IMB_TC_RECORD_RUN | + IMB_TC_FREE_RUN | + IMB_TC_INTERPOLATED_REC_DATE_FREE_RUN | + IMB_TC_RECORD_RUN_NO_GAPS; + clip->proxy.quality = 90; return clip; } @@ -413,16 +421,17 @@ MovieClip *BKE_add_movieclip_file(const char *name) BLI_path_abs(str, G.main->name); /* exists? */ - file= BLI_open(str, O_BINARY|O_RDONLY,0); - if (file== -1) return NULL; + file = BLI_open(str, O_BINARY|O_RDONLY,0); + if (file == -1) + return NULL; close(file); /* ** first search an identical clip ** */ - for (clip= G.main->movieclip.first; clip; clip= clip->id.next) { + for (clip = G.main->movieclip.first; clip; clip = clip->id.next) { BLI_strncpy(strtest, clip->name, sizeof(clip->name)); BLI_path_abs(strtest, G.main->name); - if (strcmp(strtest, str)==0) { + if (strcmp(strtest, str) == 0) { BLI_strncpy(clip->name, name, sizeof(clip->name)); /* for stringcode */ clip->id.us++; /* officially should not, it doesn't link here! */ @@ -433,24 +442,27 @@ MovieClip *BKE_add_movieclip_file(const char *name) /* ** add new movieclip ** */ /* create a short library name */ - len= strlen(name); + len = strlen(name); - while (len > 0 && name[len - 1] != '/' && name[len - 1] != '\\') len--; - libname= name+len; + while (len > 0 && name[len - 1] != '/' && name[len - 1] != '\\') + len--; + libname = name + len; - clip= movieclip_alloc(libname); + clip = movieclip_alloc(libname); BLI_strncpy(clip->name, name, sizeof(clip->name)); - if (BLI_testextensie_array(name, imb_ext_movie)) clip->source= MCLIP_SRC_MOVIE; - else clip->source= MCLIP_SRC_SEQUENCE; + if (BLI_testextensie_array(name, imb_ext_movie)) + clip->source= MCLIP_SRC_MOVIE; + else + clip->source= MCLIP_SRC_SEQUENCE; - user.framenr= 1; + user.framenr = 1; BKE_movieclip_get_size(clip, &user, &width, &height); if (width && height) { - clip->tracking.camera.principal[0]= ((float)width)/2; - clip->tracking.camera.principal[1]= ((float)height)/2; + clip->tracking.camera.principal[0] = ((float)width) / 2.0f; + clip->tracking.camera.principal[1] = ((float)height) / 2.0f; - clip->tracking.camera.focal= 24.0f*width/clip->tracking.camera.sensor_width; + clip->tracking.camera.focal = 24.0f * width / clip->tracking.camera.sensor_width; } return clip; @@ -458,24 +470,24 @@ MovieClip *BKE_add_movieclip_file(const char *name) static void real_ibuf_size(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, int *width, int *height) { - *width= ibuf->x; - *height= ibuf->y; + *width = ibuf->x; + *height = ibuf->y; - if (clip->flag&MCLIP_USE_PROXY) { + if (clip->flag & MCLIP_USE_PROXY) { switch(user->render_size) { case MCLIP_PROXY_RENDER_SIZE_25: - (*width)*= 4; - (*height)*= 4; + (*width) *= 4; + (*height) *= 4; break; case MCLIP_PROXY_RENDER_SIZE_50: - (*width)*= 2.0f; - (*height)*= 2.0f; + (*width) *= 2.0f; + (*height) *= 2.0f; break; case MCLIP_PROXY_RENDER_SIZE_75: - *width= ((float)*width)*4.0f/3.0f; - *height= ((float)*height)*4.0f/3.0f; + *width = ((float)*width)*4.0f/3.0f; + *height = ((float)*height)*4.0f/3.0f; break; } } @@ -490,12 +502,12 @@ static ImBuf *get_undistorted_ibuf(MovieClip *clip, struct MovieDistortion *dist imb_freerectfloatImBuf(ibuf); if (distortion) - undistibuf= BKE_tracking_distortion_exec(distortion, &clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f, 1); + undistibuf = BKE_tracking_distortion_exec(distortion, &clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f, 1); else - undistibuf= BKE_tracking_undistort(&clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f); + undistibuf = BKE_tracking_undistort(&clip->tracking, ibuf, ibuf->x, ibuf->y, 0.0f); - if (undistibuf->userflags&IB_RECT_INVALID) { - ibuf->userflags&= ~IB_RECT_INVALID; + if (undistibuf->userflags & IB_RECT_INVALID) { + ibuf->userflags &= ~IB_RECT_INVALID; IMB_rect_from_float(undistibuf); } @@ -528,29 +540,29 @@ static int need_postprocessed_frame(MovieClipUser *user, int flag, int postproce static int check_undistortion_cache_flags(MovieClip *clip) { - MovieClipCache *cache= clip->cache; - MovieTrackingCamera *camera= &clip->tracking.camera; + MovieClipCache *cache = clip->cache; + MovieTrackingCamera *camera = &clip->tracking.camera; /* check for distortion model changes */ if (!equals_v2v2(camera->principal, cache->postprocessed.principal)) - return 0; + return FALSE; if (!equals_v3v3(&camera->k1, &cache->postprocessed.k1)) - return 0; + return FALSE; - return 1; + return TRUE; } static ImBuf *get_postprocessed_cached_frame(MovieClip *clip, MovieClipUser *user, int flag, int postprocess_flag) { - MovieClipCache *cache= clip->cache; - int framenr= user->framenr; - short proxy= IMB_PROXY_NONE; - int render_flag= 0; - - if (flag&MCLIP_USE_PROXY) { - proxy= rendersize_to_proxy(user, flag); - render_flag= user->render_flag; + MovieClipCache *cache = clip->cache; + int framenr = user->framenr; + short proxy = IMB_PROXY_NONE; + int render_flag = 0; + + if (flag & MCLIP_USE_PROXY) { + proxy = rendersize_to_proxy(user, flag); + render_flag = user->render_flag; } /* no cache or no cached postprocessed image */ @@ -582,19 +594,19 @@ static ImBuf *get_postprocessed_cached_frame(MovieClip *clip, MovieClipUser *use static ImBuf *put_postprocessed_frame_to_cache(MovieClip *clip, MovieClipUser *user, ImBuf *ibuf, int flag, int postprocess_flag) { - MovieClipCache *cache= clip->cache; - MovieTrackingCamera *camera= &clip->tracking.camera; + MovieClipCache *cache = clip->cache; + MovieTrackingCamera *camera = &clip->tracking.camera; ImBuf *postproc_ibuf = NULL; if (cache->postprocessed.ibuf) IMB_freeImBuf(cache->postprocessed.ibuf); - cache->postprocessed.framenr= user->framenr; + cache->postprocessed.framenr = user->framenr; cache->postprocessed.flag = postprocess_flag; - if (flag&MCLIP_USE_PROXY) { - cache->postprocessed.proxy= rendersize_to_proxy(user, flag); - cache->postprocessed.render_flag= user->render_flag; + if (flag & MCLIP_USE_PROXY) { + cache->postprocessed.proxy = rendersize_to_proxy(user, flag); + cache->postprocessed.render_flag = user->render_flag; } else { cache->postprocessed.proxy = IMB_PROXY_NONE; @@ -604,10 +616,12 @@ static ImBuf *put_postprocessed_frame_to_cache(MovieClip *clip, MovieClipUser *u if (need_undistortion_postprocess(user, flag)) { copy_v2_v2(cache->postprocessed.principal, camera->principal); copy_v3_v3(&cache->postprocessed.k1, &camera->k1); - cache->postprocessed.undistoriton_used = 1; + cache->postprocessed.undistoriton_used = TRUE; postproc_ibuf= get_undistorted_ibuf(clip, NULL, ibuf); } - else cache->postprocessed.undistoriton_used = 0; + else { + cache->postprocessed.undistoriton_used = FALSE; + } if (postprocess_flag) { int disable_red = postprocess_flag & MOVIECLIP_DISABLE_RED, @@ -624,12 +638,12 @@ static ImBuf *put_postprocessed_frame_to_cache(MovieClip *clip, MovieClipUser *u IMB_refImBuf(postproc_ibuf); - cache->postprocessed.ibuf= postproc_ibuf; + cache->postprocessed.ibuf = postproc_ibuf; if (cache->stabilized.ibuf) { /* force stable buffer be re-calculated */ IMB_freeImBuf(cache->stabilized.ibuf); - cache->stabilized.ibuf= NULL; + cache->stabilized.ibuf = NULL; } return postproc_ibuf; @@ -638,8 +652,8 @@ static ImBuf *put_postprocessed_frame_to_cache(MovieClip *clip, MovieClipUser *u static ImBuf *movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *user, int flag, int postprocess_flag, int cache_flag) { - ImBuf *ibuf= NULL; - int framenr= user->framenr, need_postprocess= 0; + ImBuf *ibuf = NULL; + int framenr = user->framenr, need_postprocess = FALSE; /* cache isn't threadsafe itself and also loading of movies * can't happen from concurent threads that's why we use lock here */ @@ -650,23 +664,24 @@ static ImBuf *movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *u ibuf= get_postprocessed_cached_frame(clip, user, flag, postprocess_flag); if (!ibuf) - need_postprocess= 1; + need_postprocess = TRUE; } if (!ibuf) ibuf= get_imbuf_cache(clip, user, flag); if (!ibuf) { - int use_sequence= 0; + int use_sequence = FALSE; /* undistorted proxies for movies should be read as image sequence */ - use_sequence= (user->render_flag&MCLIP_PROXY_RENDER_UNDISTORT) && - (user->render_size!=MCLIP_PROXY_RENDER_SIZE_FULL); + use_sequence = (user->render_flag & MCLIP_PROXY_RENDER_UNDISTORT) && + (user->render_size != MCLIP_PROXY_RENDER_SIZE_FULL); - if (clip->source==MCLIP_SRC_SEQUENCE || use_sequence) - ibuf= movieclip_load_sequence_file(clip, user, framenr, flag); + if (clip->source == MCLIP_SRC_SEQUENCE || use_sequence) { + ibuf = movieclip_load_sequence_file(clip, user, framenr, flag); + } else { - ibuf= movieclip_load_movie_file(clip, user, framenr, flag); + ibuf = movieclip_load_movie_file(clip, user, framenr, flag); } if (ibuf && (cache_flag & MOVIECLIP_CACHE_SKIP) == 0) @@ -674,13 +689,13 @@ static ImBuf *movieclip_get_postprocessed_ibuf(MovieClip *clip, MovieClipUser *u } if (ibuf) { - clip->lastframe= framenr; + clip->lastframe = framenr; real_ibuf_size(clip, user, ibuf, &clip->lastsize[0], &clip->lastsize[1]); /* postprocess frame and put to cache */ if (need_postprocess) { - ImBuf *tmpibuf= ibuf; - ibuf= put_postprocessed_frame_to_cache(clip, user, tmpibuf, flag, postprocess_flag); + ImBuf *tmpibuf = ibuf; + ibuf = put_postprocessed_frame_to_cache(clip, user, tmpibuf, flag, postprocess_flag); IMB_freeImBuf(tmpibuf); } } @@ -714,7 +729,7 @@ static ImBuf *get_stable_cached_frame(MovieClip *clip, MovieClipUser *user, int short proxy = IMB_PROXY_NONE; int render_flag = 0; - if (clip->flag&MCLIP_USE_PROXY) { + if (clip->flag & MCLIP_USE_PROXY) { proxy = rendersize_to_proxy(user, clip->flag); render_flag = user->render_flag; } @@ -724,7 +739,7 @@ static ImBuf *get_stable_cached_frame(MovieClip *clip, MovieClipUser *user, int return NULL; /* cached ibuf used different proxy settings */ - if (cache->stabilized.render_flag!=render_flag || cache->stabilized.proxy!=proxy) + if (cache->stabilized.render_flag != render_flag || cache->stabilized.proxy != proxy) return NULL; if (cache->stabilized.postprocess_flag != postprocess_flag) @@ -777,9 +792,9 @@ static ImBuf *put_stabilized_frame_to_cache(MovieClip *clip, MovieClipUser *user cache->stabilized.aspect = tracking->camera.pixel_aspect; cache->stabilized.filter = tracking->stabilization.filter; - if (clip->flag&MCLIP_USE_PROXY) { - cache->stabilized.proxy= rendersize_to_proxy(user, clip->flag); - cache->stabilized.render_flag= user->render_flag; + if (clip->flag & MCLIP_USE_PROXY) { + cache->stabilized.proxy = rendersize_to_proxy(user, clip->flag); + cache->stabilized.render_flag = user->render_flag; } else { cache->stabilized.proxy = IMB_PROXY_NONE; @@ -795,37 +810,47 @@ static ImBuf *put_stabilized_frame_to_cache(MovieClip *clip, MovieClipUser *user ImBuf *BKE_movieclip_get_stable_ibuf(MovieClip *clip, MovieClipUser *user, float loc[2], float *scale, float *angle, int postprocess_flag) { - ImBuf *ibuf, *stableibuf= NULL; - int framenr= user->framenr; + ImBuf *ibuf, *stableibuf = NULL; + int framenr = user->framenr; - ibuf= BKE_movieclip_get_postprocessed_ibuf(clip, user, postprocess_flag); + ibuf = BKE_movieclip_get_postprocessed_ibuf(clip, user, postprocess_flag); if (!ibuf) return NULL; - if (clip->tracking.stabilization.flag&TRACKING_2D_STABILIZATION) { + if (clip->tracking.stabilization.flag & TRACKING_2D_STABILIZATION) { MovieClipCache *cache= clip->cache; - stableibuf= get_stable_cached_frame(clip, user, framenr, postprocess_flag); + stableibuf = get_stable_cached_frame(clip, user, framenr, postprocess_flag); if (!stableibuf) - stableibuf= put_stabilized_frame_to_cache(clip, user, ibuf, framenr, postprocess_flag); + stableibuf = put_stabilized_frame_to_cache(clip, user, ibuf, framenr, postprocess_flag); + + if (loc) + copy_v2_v2(loc, cache->stabilized.loc); - if (loc) copy_v2_v2(loc, cache->stabilized.loc); - if (scale) *scale= cache->stabilized.scale; - if (angle) *angle= cache->stabilized.angle; + if (scale) + *scale= cache->stabilized.scale; + + if (angle) + *angle= cache->stabilized.angle; } else { - if (loc) zero_v2(loc); - if (scale) *scale= 1.0f; - if (angle) *angle= 0.0f; + if (loc) + zero_v2(loc); + + if (scale) + *scale= 1.0f; + + if (angle) + *angle= 0.0f; - stableibuf= ibuf; + stableibuf = ibuf; } - if (stableibuf!=ibuf) { + if (stableibuf != ibuf) { IMB_freeImBuf(ibuf); - ibuf= stableibuf; + ibuf = stableibuf; } return ibuf; @@ -834,31 +859,31 @@ ImBuf *BKE_movieclip_get_stable_ibuf(MovieClip *clip, MovieClipUser *user, float int BKE_movieclip_has_frame(MovieClip *clip, MovieClipUser *user) { - ImBuf *ibuf= BKE_movieclip_get_ibuf(clip, user); + ImBuf *ibuf = BKE_movieclip_get_ibuf(clip, user); if (ibuf) { IMB_freeImBuf(ibuf); - return 1; + return TRUE; } - return 0; + return FALSE; } void BKE_movieclip_get_size(MovieClip *clip, MovieClipUser *user, int *width, int *height) { - if (user->framenr==clip->lastframe) { - *width= clip->lastsize[0]; - *height= clip->lastsize[1]; + if (user->framenr == clip->lastframe) { + *width = clip->lastsize[0]; + *height = clip->lastsize[1]; } else { - ImBuf *ibuf= BKE_movieclip_get_ibuf(clip, user); + ImBuf *ibuf = BKE_movieclip_get_ibuf(clip, user); if (ibuf && ibuf->x && ibuf->y) { real_ibuf_size(clip, user, ibuf, width, height); } else { - *width= 0; - *height= 0; + *width = 0; + *height = 0; } if (ibuf) @@ -873,20 +898,20 @@ int BKE_movieclip_get_duration(struct MovieClip *clip) void BKE_movieclip_aspect(MovieClip *clip, float *aspx, float *aspy) { - *aspx= *aspy= 1.0; + *aspx = *aspy = 1.0; /* x is always 1 */ - *aspy = clip->aspy/clip->aspx/clip->tracking.camera.pixel_aspect; + *aspy = clip->aspy / clip->aspx / clip->tracking.camera.pixel_aspect; } /* get segments of cached frames. useful for debugging cache policies */ void BKE_movieclip_get_cache_segments(MovieClip *clip, MovieClipUser *user, int *totseg_r, int **points_r) { - *totseg_r= 0; - *points_r= NULL; + *totseg_r = 0; + *points_r = NULL; if (clip->cache) { - int proxy= rendersize_to_proxy(user, clip->flag); + int proxy = rendersize_to_proxy(user, clip->flag); IMB_moviecache_get_cache_segments(clip->cache->moviecache, proxy, user->render_flag, totseg_r, points_r); } @@ -896,7 +921,7 @@ void BKE_movieclip_user_set_frame(MovieClipUser *iuser, int framenr) { /* TODO: clamp framenr here? */ - iuser->framenr= framenr; + iuser->framenr = framenr; } static void free_buffers(MovieClip *clip) @@ -911,12 +936,12 @@ static void free_buffers(MovieClip *clip) IMB_freeImBuf(clip->cache->stabilized.ibuf); MEM_freeN(clip->cache); - clip->cache= NULL; + clip->cache = NULL; } if (clip->anim) { IMB_free_anim(clip->anim); - clip->anim= FALSE; + clip->anim = NULL; } BKE_free_animdata((ID *) clip); @@ -927,11 +952,13 @@ void BKE_movieclip_reload(MovieClip *clip) /* clear cache */ free_buffers(clip); - clip->tracking.stabilization.ok= 0; + clip->tracking.stabilization.ok = FALSE; /* update clip source */ - if (BLI_testextensie_array(clip->name, imb_ext_movie)) clip->source= MCLIP_SRC_MOVIE; - else clip->source= MCLIP_SRC_SEQUENCE; + if (BLI_testextensie_array(clip->name, imb_ext_movie)) + clip->source = MCLIP_SRC_MOVIE; + else + clip->source = MCLIP_SRC_SEQUENCE; } void BKE_movieclip_update_scopes(MovieClip *clip, MovieClipUser *user, MovieClipScopes *scopes) @@ -941,44 +968,44 @@ void BKE_movieclip_update_scopes(MovieClip *clip, MovieClipUser *user, MovieClip if (scopes->track_preview) { IMB_freeImBuf(scopes->track_preview); - scopes->track_preview= NULL; + scopes->track_preview = NULL; } - scopes->marker= NULL; - scopes->track= NULL; + scopes->marker = NULL; + scopes->track = NULL; if (clip) { - MovieTrackingTrack *act_track= BKE_tracking_active_track(&clip->tracking); + MovieTrackingTrack *act_track = BKE_tracking_active_track(&clip->tracking); if (act_track) { - MovieTrackingTrack *track= act_track; - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, user->framenr); + MovieTrackingTrack *track = act_track; + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, user->framenr); - if (marker->flag&MARKER_DISABLED) { - scopes->track_disabled= 1; + if (marker->flag & MARKER_DISABLED) { + scopes->track_disabled = TRUE; } else { - ImBuf *ibuf= BKE_movieclip_get_ibuf(clip, user); + ImBuf *ibuf = BKE_movieclip_get_ibuf(clip, user); - scopes->track_disabled= 0; + scopes->track_disabled = FALSE; if (ibuf && ibuf->rect) { ImBuf *tmpibuf; - MovieTrackingMarker undist_marker= *marker; + MovieTrackingMarker undist_marker = *marker; - if (user->render_flag&MCLIP_PROXY_RENDER_UNDISTORT) { + if (user->render_flag & MCLIP_PROXY_RENDER_UNDISTORT) { int width, height; - float aspy= 1.0f/clip->tracking.camera.pixel_aspect; + float aspy= 1.0f / clip->tracking.camera.pixel_aspect; BKE_movieclip_get_size(clip, user, &width, &height); - undist_marker.pos[0]*= width; - undist_marker.pos[1]*= height*aspy; + undist_marker.pos[0] *= width; + undist_marker.pos[1] *= height*aspy; BKE_tracking_invert_intrinsics(&clip->tracking, undist_marker.pos, undist_marker.pos); - undist_marker.pos[0]/= width; - undist_marker.pos[1]/= height*aspy; + undist_marker.pos[0] /= width; + undist_marker.pos[1] /= height*aspy; } /* NOTE: margin should be kept in sync with value from ui_draw_but_TRACKPREVIEW */ @@ -997,46 +1024,46 @@ void BKE_movieclip_update_scopes(MovieClip *clip, MovieClipUser *user, MovieClip IMB_freeImBuf(ibuf); } - if ((track->flag&TRACK_LOCKED)==0) { - scopes->marker= marker; - scopes->track= track; - scopes->slide_scale[0]= track->pat_max[0]-track->pat_min[0]; - scopes->slide_scale[1]= track->pat_max[1]-track->pat_min[1]; + if ((track->flag & TRACK_LOCKED)==0) { + scopes->marker = marker; + scopes->track = track; + scopes->slide_scale[0] = track->pat_max[0]-track->pat_min[0]; + scopes->slide_scale[1] = track->pat_max[1]-track->pat_min[1]; } } } - scopes->framenr= user->framenr; - scopes->ok= 1; + scopes->framenr = user->framenr; + scopes->ok = TRUE; } static void movieclip_build_proxy_ibuf(MovieClip *clip, ImBuf *ibuf, int cfra, int proxy_render_size, int undistorted) { char name[FILE_MAX]; int quality, rectx, recty; - int size= rendersize_to_number(proxy_render_size); + int size = rendersize_to_number(proxy_render_size); ImBuf *scaleibuf; get_proxy_fname(clip, proxy_render_size, undistorted, cfra, name); - rectx= ibuf->x*size/100.0f; - recty= ibuf->y*size/100.0f; + rectx = ibuf->x * size / 100.0f; + recty = ibuf->y * size / 100.0f; - scaleibuf= IMB_dupImBuf(ibuf); + scaleibuf = IMB_dupImBuf(ibuf); IMB_scaleImBuf(scaleibuf, (short)rectx, (short)recty); - quality= clip->proxy.quality; - scaleibuf->ftype= JPG | quality; + quality = clip->proxy.quality; + scaleibuf->ftype = JPG | quality; /* unsupported feature only confuses other s/w */ - if (scaleibuf->planes==32) - scaleibuf->planes= 24; + if (scaleibuf->planes == 32) + scaleibuf->planes = 24; BLI_lock_thread(LOCK_MOVIECLIP); BLI_make_existing_file(name); - if (IMB_saveiff(scaleibuf, name, IB_rect)==0) + if (IMB_saveiff(scaleibuf, name, IB_rect) == 0) perror(name); BLI_unlock_thread(LOCK_MOVIECLIP); @@ -1045,30 +1072,30 @@ static void movieclip_build_proxy_ibuf(MovieClip *clip, ImBuf *ibuf, int cfra, i } void BKE_movieclip_build_proxy_frame(MovieClip *clip, int clip_flag, struct MovieDistortion *distortion, - int cfra, int *build_sizes, int build_count, int undistorted) + int cfra, int *build_sizes, int build_count, int undistorted) { ImBuf *ibuf; MovieClipUser user; - user.framenr= cfra; - user.render_flag= 0; - user.render_size= MCLIP_PROXY_RENDER_SIZE_FULL; + user.framenr = cfra; + user.render_flag = 0; + user.render_size = MCLIP_PROXY_RENDER_SIZE_FULL; - ibuf= BKE_movieclip_get_ibuf_flag(clip, &user, clip_flag, MOVIECLIP_CACHE_SKIP); + ibuf = BKE_movieclip_get_ibuf_flag(clip, &user, clip_flag, MOVIECLIP_CACHE_SKIP); if (ibuf) { - ImBuf *tmpibuf= ibuf; + ImBuf *tmpibuf = ibuf; int i; if (undistorted) - tmpibuf= get_undistorted_ibuf(clip, distortion, ibuf); + tmpibuf = get_undistorted_ibuf(clip, distortion, ibuf); - for (i= 0; i<build_count; i++) + for (i = 0; i < build_count; i++) movieclip_build_proxy_ibuf(clip, tmpibuf, cfra, build_sizes[i], undistorted); IMB_freeImBuf(ibuf); - if (tmpibuf!=ibuf) + if (tmpibuf != ibuf) IMB_freeImBuf(tmpibuf); } } @@ -1088,53 +1115,53 @@ void unlink_movieclip(Main *bmain, MovieClip *clip) Scene *sce; Object *ob; - for (scr= bmain->screen.first; scr; scr= scr->id.next) { - for (area= scr->areabase.first; area; area= area->next) { - for (sl= area->spacedata.first; sl; sl= sl->next) { - if (sl->spacetype==SPACE_CLIP) { - SpaceClip *sc= (SpaceClip *) sl; + for (scr = bmain->screen.first; scr; scr = scr->id.next) { + for (area = scr->areabase.first; area; area = area->next) { + for (sl = area->spacedata.first; sl; sl = sl->next) { + if (sl->spacetype == SPACE_CLIP) { + SpaceClip *sc = (SpaceClip *) sl; - if (sc->clip==clip) - sc->clip= NULL; + if (sc->clip == clip) + sc->clip = NULL; } - else if (sl->spacetype==SPACE_VIEW3D) { - View3D *v3d= (View3D *) sl; + else if (sl->spacetype == SPACE_VIEW3D) { + View3D *v3d = (View3D *) sl; BGpic *bgpic; - for (bgpic= v3d->bgpicbase.first; bgpic; bgpic= bgpic->next) { - if (bgpic->clip==clip) - bgpic->clip= NULL; + for (bgpic = v3d->bgpicbase.first; bgpic; bgpic = bgpic->next) { + if (bgpic->clip == clip) + bgpic->clip = NULL; } } } } } - for (sce= bmain->scene.first; sce; sce= sce->id.next) { - if (sce->clip==clip) - sce->clip= NULL; + for (sce = bmain->scene.first; sce; sce = sce->id.next) { + if (sce->clip == clip) + sce->clip = NULL; } - for (ob= bmain->object.first; ob; ob= ob->id.next) { + for (ob = bmain->object.first; ob; ob = ob->id.next) { bConstraint *con; - for (con= ob->constraints.first; con; con= con->next) { - bConstraintTypeInfo *cti= constraint_get_typeinfo(con); + for (con = ob->constraints.first; con; con = con->next) { + bConstraintTypeInfo *cti = constraint_get_typeinfo(con); - if (cti->type==CONSTRAINT_TYPE_FOLLOWTRACK) { - bFollowTrackConstraint *data= (bFollowTrackConstraint *) con->data; + if (cti->type == CONSTRAINT_TYPE_FOLLOWTRACK) { + bFollowTrackConstraint *data = (bFollowTrackConstraint *) con->data; - if (data->clip==clip) - data->clip= NULL; + if (data->clip == clip) + data->clip = NULL; } - else if (cti->type==CONSTRAINT_TYPE_CAMERASOLVER) { - bCameraSolverConstraint *data= (bCameraSolverConstraint *) con->data; + else if (cti->type == CONSTRAINT_TYPE_CAMERASOLVER) { + bCameraSolverConstraint *data = (bCameraSolverConstraint *) con->data; - if (data->clip==clip) - data->clip= NULL; + if (data->clip == clip) + data->clip = NULL; } } } - clip->id.us= 0; + clip->id.us = 0; } diff --git a/source/blender/blenkernel/intern/tracking.c b/source/blender/blenkernel/intern/tracking.c index bdecc6884ea..b35b654a55b 100644 --- a/source/blender/blenkernel/intern/tracking.c +++ b/source/blender/blenkernel/intern/tracking.c @@ -55,7 +55,6 @@ #include "BKE_movieclip.h" #include "BKE_object.h" #include "BKE_scene.h" -#include "BKE_main.h" // XXX: ... #include "IMB_imbuf_types.h" #include "IMB_imbuf.h" @@ -78,24 +77,24 @@ static struct { void BKE_tracking_init_settings(MovieTracking *tracking) { - tracking->camera.sensor_width= 35.0f; - tracking->camera.pixel_aspect= 1.0f; - tracking->camera.units= CAMERA_UNITS_MM; - - tracking->settings.default_tracker= TRACKER_HYBRID; - tracking->settings.default_minimum_correlation= 0.75; - tracking->settings.default_pattern_size= 11; - tracking->settings.default_search_size= 51; - tracking->settings.default_pyramid_levels= 2; - tracking->settings.keyframe1= 1; - tracking->settings.keyframe2= 30; - tracking->settings.dist= 1; - tracking->settings.object_distance= 1; - - tracking->stabilization.scaleinf= 1.0f; - tracking->stabilization.locinf= 1.0f; - tracking->stabilization.rotinf= 1.0f; - tracking->stabilization.maxscale= 2.0f; + tracking->camera.sensor_width = 35.0f; + tracking->camera.pixel_aspect = 1.0f; + tracking->camera.units = CAMERA_UNITS_MM; + + tracking->settings.default_tracker = TRACKER_HYBRID; + tracking->settings.default_minimum_correlation = 0.75; + tracking->settings.default_pattern_size = 11; + tracking->settings.default_search_size = 51; + tracking->settings.default_pyramid_levels = 2; + tracking->settings.keyframe1 = 1; + tracking->settings.keyframe2 = 30; + tracking->settings.dist = 1; + tracking->settings.object_distance = 1; + + tracking->stabilization.scaleinf = 1.0f; + tracking->stabilization.locinf = 1.0f; + tracking->stabilization.rotinf = 1.0f; + tracking->stabilization.maxscale = 2.0f; BKE_tracking_new_object(tracking, "Camera"); } @@ -112,143 +111,152 @@ void BKE_tracking_clamp_track(MovieTrackingTrack *track, int event) } /* sort */ - for (a= 0; a<2; a++) { - if (track->pat_min[a]>track->pat_max[a]) + for (a = 0; a < 2; a++) { + if (track->pat_min[a] > track->pat_max[a]) SWAP(float, track->pat_min[a], track->pat_max[a]); - if (track->search_min[a]>track->search_max[a]) + if (track->search_min[a] > track->search_max[a]) SWAP(float, track->search_min[a], track->search_max[a]); } /* compute the effective pattern size, which differs from the fine resolution * pattern size for the pyramid KLT tracker */ - for (a= 0; a<2; a++) { + for (a = 0; a < 2; a++) { pat_min[a] = max_pyramid_level_factor * track->pat_min[a]; pat_max[a] = max_pyramid_level_factor * track->pat_max[a]; } - if (event==CLAMP_PAT_DIM) { - for (a= 0; a<2; a++) { + if (event == CLAMP_PAT_DIM) { + for (a = 0; a < 2; a++) { /* search shouldn't be resized smaller than pattern */ - track->search_min[a]= MIN2(pat_min[a], track->search_min[a]); - track->search_max[a]= MAX2(pat_max[a], track->search_max[a]); + track->search_min[a] = MIN2(pat_min[a], track->search_min[a]); + track->search_max[a] = MAX2(pat_max[a], track->search_max[a]); } } - else if (event==CLAMP_PAT_POS) { + else if (event == CLAMP_PAT_POS) { float dim[2]; + sub_v2_v2v2(dim, track->pat_max, track->pat_min); - for (a= 0; a<2; a++) { + for (a = 0; a < 2; a++) { /* pattern shouldn't be moved outside of search */ if (pat_min[a] < track->search_min[a]) { - track->pat_min[a]= track->search_min[a] - (pat_min[a] - track->pat_min[a]); - track->pat_max[a]= track->pat_min[a] + dim[a]; + track->pat_min[a] = track->search_min[a] - (pat_min[a] - track->pat_min[a]); + track->pat_max[a] = track->pat_min[a] + dim[a]; } if (track->pat_max[a] > track->search_max[a]) { - track->pat_max[a]= track->search_max[a] - (pat_max[a] - track->pat_max[a]); - track->pat_min[a]= track->pat_max[a] - dim[a]; + track->pat_max[a] = track->search_max[a] - (pat_max[a] - track->pat_max[a]); + track->pat_min[a] = track->pat_max[a] - dim[a]; } } } - else if (event==CLAMP_SEARCH_DIM) { - for (a= 0; a<2; a++) { + else if (event == CLAMP_SEARCH_DIM) { + for (a = 0; a < 2; a++) { /* search shouldn't be resized smaller than pattern */ - track->search_min[a]= MIN2(pat_min[a], track->search_min[a]); - track->search_max[a]= MAX2(pat_max[a], track->search_max[a]); + track->search_min[a] = MIN2(pat_min[a], track->search_min[a]); + track->search_max[a] = MAX2(pat_max[a], track->search_max[a]); } } - else if (event==CLAMP_SEARCH_POS) { + else if (event == CLAMP_SEARCH_POS) { float dim[2]; + sub_v2_v2v2(dim, track->search_max, track->search_min); - for (a= 0; a<2; a++) { + for (a = 0; a < 2; a++) { /* search shouldn't be moved inside pattern */ if (track->search_min[a] > pat_min[a]) { - track->search_min[a]= pat_min[a]; - track->search_max[a]= track->search_min[a]+dim[a]; + track->search_min[a] = pat_min[a]; + track->search_max[a] = track->search_min[a]+dim[a]; } if (track->search_max[a] < pat_max[a]) { - track->search_max[a]= pat_max[a]; - track->search_min[a]= track->search_max[a]-dim[a]; + track->search_max[a] = pat_max[a]; + track->search_min[a] = track->search_max[a]-dim[a]; } } } - else if (event==CLAMP_PYRAMID_LEVELS || (event==CLAMP_SEARCH_DIM && track->tracker == TRACKER_KLT)) { + else if (event == CLAMP_PYRAMID_LEVELS || (event == CLAMP_SEARCH_DIM && track->tracker == TRACKER_KLT)) { float dim[2]; sub_v2_v2v2(dim, track->pat_max, track->pat_min); { - float search_ratio= 2.3f * max_pyramid_level_factor; + float search_ratio = 2.3f * max_pyramid_level_factor; /* resize the search area to something sensible based * on the number of pyramid levels */ - for (a= 0; a<2; a++) { - track->search_min[a]= search_ratio * track->pat_min[a]; - track->search_max[a]= search_ratio * track->pat_max[a]; + for (a = 0; a < 2; a++) { + track->search_min[a] = search_ratio * track->pat_min[a]; + track->search_max[a] = search_ratio * track->pat_max[a]; } } } /* marker's center should be in center of pattern */ - if (event==CLAMP_PAT_DIM || event==CLAMP_PAT_POS) { + if (event == CLAMP_PAT_DIM || event == CLAMP_PAT_POS) { float dim[2]; + sub_v2_v2v2(dim, track->pat_max, track->pat_min); - for (a= 0; a<2; a++) { - track->pat_min[a]= -dim[a]/2.0f; - track->pat_max[a]= dim[a]/2.0f; + for (a = 0; a < 2; a++) { + track->pat_min[a] = -dim[a]/2.0f; + track->pat_max[a] = dim[a]/2.0f; } } } void BKE_tracking_track_flag(MovieTrackingTrack *track, int area, int flag, int clear) { - if (area==TRACK_AREA_NONE) + if (area == TRACK_AREA_NONE) return; if (clear) { - if (area&TRACK_AREA_POINT) track->flag&= ~flag; - if (area&TRACK_AREA_PAT) track->pat_flag&= ~flag; - if (area&TRACK_AREA_SEARCH) track->search_flag&= ~flag; + if (area & TRACK_AREA_POINT) + track->flag &= ~flag; + if (area & TRACK_AREA_PAT) + track->pat_flag &= ~flag; + if (area & TRACK_AREA_SEARCH) + track->search_flag &= ~flag; } else { - if (area&TRACK_AREA_POINT) track->flag|= flag; - if (area&TRACK_AREA_PAT) track->pat_flag|= flag; - if (area&TRACK_AREA_SEARCH) track->search_flag|= flag; + if (area & TRACK_AREA_POINT) + track->flag |= flag; + if (area & TRACK_AREA_PAT) + track->pat_flag |= flag; + if (area & TRACK_AREA_SEARCH) + track->search_flag |= flag; } } MovieTrackingTrack *BKE_tracking_add_track(MovieTracking *tracking, ListBase *tracksbase, float x, float y, - int framenr, int width, int height) + int framenr, int width, int height) { MovieTrackingTrack *track; MovieTrackingMarker marker; - MovieTrackingSettings *settings= &tracking->settings; + MovieTrackingSettings *settings = &tracking->settings; - float half_pattern= (float)settings->default_pattern_size/2.0f; - float half_search= (float)settings->default_search_size/2.0f; + float half_pattern = (float)settings->default_pattern_size / 2.0f; + float half_search = (float)settings->default_search_size / 2.0f; float pat[2], search[2]; - pat[0]= half_pattern/(float)width; - pat[1]= half_pattern/(float)height; + pat[0] = half_pattern / (float)width; + pat[1] = half_pattern / (float)height; - search[0]= half_search/(float)width; - search[1]= half_search/(float)height; + search[0] = half_search / (float)width; + search[1] = half_search / (float)height; - track= MEM_callocN(sizeof(MovieTrackingTrack), "add_marker_exec track"); + track = MEM_callocN(sizeof(MovieTrackingTrack), "add_marker_exec track"); strcpy(track->name, "Track"); - track->tracker= settings->default_tracker; - track->pyramid_levels= settings->default_pyramid_levels; - track->minimum_correlation= settings->default_minimum_correlation; - track->margin= settings->default_margin; - track->pattern_match= settings->default_pattern_match; - track->frames_limit= settings->default_frames_limit; - track->flag= settings->default_flag; + track->tracker = settings->default_tracker; + track->pyramid_levels = settings->default_pyramid_levels; + track->minimum_correlation = settings->default_minimum_correlation; + track->margin = settings->default_margin; + track->pattern_match = settings->default_pattern_match; + track->frames_limit = settings->default_frames_limit; + track->flag = settings->default_flag; memset(&marker, 0, sizeof(marker)); - marker.pos[0]= x; - marker.pos[1]= y; - marker.framenr= framenr; + marker.pos[0] = x; + marker.pos[1] = y; + marker.framenr = framenr; copy_v2_v2(track->pat_max, pat); negate_v2_v2(track->pat_min, pat); @@ -272,32 +280,34 @@ MovieTrackingMarker *BKE_tracking_insert_marker(MovieTrackingTrack *track, Movie MovieTrackingMarker *old_marker= NULL; if (track->markersnr) - old_marker= BKE_tracking_exact_marker(track, marker->framenr); + old_marker = BKE_tracking_exact_marker(track, marker->framenr); if (old_marker) { - *old_marker= *marker; + *old_marker = *marker; return old_marker; } else { - int a= track->markersnr; + int a = track->markersnr; while (a--) { - if (track->markers[a].framenr<marker->framenr) + if (track->markers[a].framenr < marker->framenr) break; } track->markersnr++; - if (track->markers) track->markers= MEM_reallocN(track->markers, sizeof(MovieTrackingMarker)*track->markersnr); - else track->markers= MEM_callocN(sizeof(MovieTrackingMarker), "MovieTracking markers"); + if (track->markers) + track->markers = MEM_reallocN(track->markers, sizeof(MovieTrackingMarker)*track->markersnr); + else + track->markers = MEM_callocN(sizeof(MovieTrackingMarker), "MovieTracking markers"); memmove(track->markers+a+2, track->markers+a+1, (track->markersnr-a-2)*sizeof(MovieTrackingMarker)); - track->markers[a+1]= *marker; + track->markers[a+1] = *marker; - track->last_marker= a+1; + track->last_marker = a + 1; - return &track->markers[a+1]; + return &track->markers[a + 1]; } } @@ -306,16 +316,16 @@ void BKE_tracking_delete_marker(MovieTrackingTrack *track, int framenr) int a= 0; while (a<track->markersnr) { - if (track->markers[a].framenr==framenr) { - if (track->markersnr>1) { + if (track->markers[a].framenr == framenr) { + if (track->markersnr > 1) { memmove(track->markers+a, track->markers+a+1, (track->markersnr-a-1)*sizeof(MovieTrackingMarker)); track->markersnr--; - track->markers= MEM_reallocN(track->markers, sizeof(MovieTrackingMarker)*track->markersnr); + track->markers = MEM_reallocN(track->markers, sizeof(MovieTrackingMarker)*track->markersnr); } else { MEM_freeN(track->markers); - track->markers= NULL; - track->markersnr= 0; + track->markers = NULL; + track->markersnr = 0; } break; @@ -327,22 +337,23 @@ void BKE_tracking_delete_marker(MovieTrackingTrack *track, int framenr) MovieTrackingMarker *BKE_tracking_get_marker(MovieTrackingTrack *track, int framenr) { - int a= track->markersnr-1; + int a = track->markersnr-1; if (!track->markersnr) return NULL; /* approximate pre-first framenr marker with first marker */ - if (framenr<track->markers[0].framenr) + if (framenr < track->markers[0].framenr) return &track->markers[0]; - if (track->last_marker<track->markersnr) - a= track->last_marker; + if (track->last_marker < track->markersnr) + a = track->last_marker; + + if (track->markers[a].framenr <= framenr) { + while (a < track->markersnr && track->markers[a].framenr <= framenr) { + if (track->markers[a].framenr == framenr) { + track->last_marker = a; - if (track->markers[a].framenr<=framenr) { - while (a<track->markersnr && track->markers[a].framenr<=framenr) { - if (track->markers[a].framenr==framenr) { - track->last_marker= a; return &track->markers[a]; } a++; @@ -352,9 +363,10 @@ MovieTrackingMarker *BKE_tracking_get_marker(MovieTrackingTrack *track, int fram return &track->markers[a-1]; } else { - while (a>=0 && track->markers[a].framenr>=framenr) { - if (track->markers[a].framenr==framenr) { - track->last_marker= a; + while (a >= 0 && track->markers[a].framenr >= framenr) { + if (track->markers[a].framenr == framenr) { + track->last_marker = a; + return &track->markers[a]; } @@ -370,16 +382,16 @@ MovieTrackingMarker *BKE_tracking_get_marker(MovieTrackingTrack *track, int fram MovieTrackingMarker *BKE_tracking_ensure_marker(MovieTrackingTrack *track, int framenr) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, framenr); + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, framenr); - if (marker->framenr!=framenr) { + if (marker->framenr != framenr) { MovieTrackingMarker marker_new; - marker_new= *marker; - marker_new.framenr= framenr; + marker_new = *marker; + marker_new.framenr = framenr; BKE_tracking_insert_marker(track, &marker_new); - marker= BKE_tracking_get_marker(track, framenr); + marker = BKE_tracking_get_marker(track, framenr); } return marker; @@ -387,9 +399,9 @@ MovieTrackingMarker *BKE_tracking_ensure_marker(MovieTrackingTrack *track, int f MovieTrackingMarker *BKE_tracking_exact_marker(MovieTrackingTrack *track, int framenr) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, framenr); + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, framenr); - if (marker->framenr!=framenr) + if (marker->framenr != framenr) return NULL; return marker; @@ -409,19 +421,22 @@ int BKE_tracking_has_enabled_marker(MovieTrackingTrack *track, int framenr) void BKE_tracking_free_track(MovieTrackingTrack *track) { - if (track->markers) MEM_freeN(track->markers); + if (track->markers) + MEM_freeN(track->markers); } static void put_disabled_marker(MovieTrackingTrack *track, MovieTrackingMarker *ref_marker, int before, int overwrite) { MovieTrackingMarker marker_new; - marker_new= *ref_marker; - marker_new.flag&= ~MARKER_TRACKED; - marker_new.flag|= MARKER_DISABLED; + marker_new = *ref_marker; + marker_new.flag &= ~MARKER_TRACKED; + marker_new.flag |= MARKER_DISABLED; - if (before) marker_new.framenr--; - else marker_new.framenr++; + if (before) + marker_new.framenr--; + else + marker_new.framenr++; if (!BKE_tracking_has_marker(track, marker_new.framenr) || overwrite) BKE_tracking_insert_marker(track, &marker_new); @@ -431,12 +446,13 @@ void BKE_tracking_clear_path(MovieTrackingTrack *track, int ref_frame, int actio { int a; - if (action==TRACK_CLEAR_REMAINED) { - a= 1; - while (a<track->markersnr) { - if (track->markers[a].framenr>ref_frame) { - track->markersnr= a; - track->markers= MEM_reallocN(track->markers, sizeof(MovieTrackingMarker)*track->markersnr); + if (action == TRACK_CLEAR_REMAINED) { + a = 1; + + while (a < track->markersnr) { + if (track->markers[a].framenr > ref_frame) { + track->markersnr = a; + track->markers = MEM_reallocN(track->markers, sizeof(MovieTrackingMarker)*track->markersnr); break; } @@ -447,14 +463,15 @@ void BKE_tracking_clear_path(MovieTrackingTrack *track, int ref_frame, int actio if (track->markersnr) put_disabled_marker(track, &track->markers[track->markersnr-1], 0, 1); } - else if (action==TRACK_CLEAR_UPTO) { + else if (action == TRACK_CLEAR_UPTO) { a= track->markersnr-1; - while (a>=0) { - if (track->markers[a].framenr<=ref_frame) { + + while (a >= 0) { + if (track->markers[a].framenr <= ref_frame) { memmove(track->markers, track->markers+a, (track->markersnr-a)*sizeof(MovieTrackingMarker)); - track->markersnr= track->markersnr-a; - track->markers= MEM_reallocN(track->markers, sizeof(MovieTrackingMarker)*track->markersnr); + track->markersnr = track->markersnr-a; + track->markers = MEM_reallocN(track->markers, sizeof(MovieTrackingMarker)*track->markersnr); break; } @@ -465,15 +482,15 @@ void BKE_tracking_clear_path(MovieTrackingTrack *track, int ref_frame, int actio if (track->markersnr) put_disabled_marker(track, &track->markers[0], 1, 1); } - else if (action==TRACK_CLEAR_ALL) { + else if (action == TRACK_CLEAR_ALL) { MovieTrackingMarker *marker, marker_new; - marker= BKE_tracking_get_marker(track, ref_frame); - marker_new= *marker; + marker = BKE_tracking_get_marker(track, ref_frame); + marker_new = *marker; MEM_freeN(track->markers); - track->markers= NULL; - track->markersnr= 0; + track->markers = NULL; + track->markersnr = 0; BKE_tracking_insert_marker(track, &marker_new); @@ -484,27 +501,28 @@ void BKE_tracking_clear_path(MovieTrackingTrack *track, int ref_frame, int actio void BKE_tracking_join_tracks(MovieTrackingTrack *dst_track, MovieTrackingTrack *src_track) { - int i= 0, a= 0, b= 0; + int i = 0, a = 0, b = 0, tot; MovieTrackingMarker *markers; - markers= MEM_callocN((dst_track->markersnr+src_track->markersnr)*sizeof(MovieTrackingMarker), "tmp tracking joined tracks"); + tot = dst_track->markersnr + src_track->markersnr; + markers = MEM_callocN(tot * sizeof(MovieTrackingMarker), "tmp tracking joined tracks"); while (a < src_track->markersnr || b < dst_track->markersnr) { - if (b>=dst_track->markersnr) { - markers[i]= src_track->markers[a++]; + if (b >= dst_track->markersnr) { + markers[i] = src_track->markers[a++]; } - else if (a>=src_track->markersnr) { - markers[i]= dst_track->markers[b++]; + else if (a >= src_track->markersnr) { + markers[i] = dst_track->markers[b++]; } - else if (src_track->markers[a].framenr<dst_track->markers[b].framenr) { - markers[i]= src_track->markers[a++]; + else if (src_track->markers[a].framenr < dst_track->markers[b].framenr) { + markers[i] = src_track->markers[a++]; } - else if (src_track->markers[a].framenr>dst_track->markers[b].framenr) { - markers[i]= dst_track->markers[b++]; + else if (src_track->markers[a].framenr > dst_track->markers[b].framenr) { + markers[i] = dst_track->markers[b++]; } else { - if ((src_track->markers[a].flag&MARKER_DISABLED)==0) { - if ((dst_track->markers[b].flag&MARKER_DISABLED)==0) { + if ((src_track->markers[a].flag & MARKER_DISABLED)==0) { + if ((dst_track->markers[b].flag & MARKER_DISABLED)==0) { /* both tracks are enabled on this frame, so find the whole segment * on which tracks are intersecting and blend tracks using linear * interpolation to prevent jumps */ @@ -517,6 +535,7 @@ void BKE_tracking_join_tracks(MovieTrackingTrack *dst_track, MovieTrackingTrack (dst_track->markers[b-1].flag & MARKER_DISABLED) || (dst_track->markers[b-1].framenr != frame - 1); + /* find length of intersection */ while (a < src_track->markersnr && b < dst_track->markersnr) { marker_a = &src_track->markers[a]; marker_b = &dst_track->markers[b]; @@ -536,6 +555,7 @@ void BKE_tracking_join_tracks(MovieTrackingTrack *dst_track, MovieTrackingTrack a = start_a; b = start_b; + /* linear interpolation for intersecting frames */ for (j = 0; j < len; j++) { float fac = 0.5f; @@ -548,7 +568,7 @@ void BKE_tracking_join_tracks(MovieTrackingTrack *dst_track, MovieTrackingTrack marker_a = &src_track->markers[a]; marker_b = &dst_track->markers[b]; - markers[i]= dst_track->markers[b]; + markers[i] = dst_track->markers[b]; interp_v2_v2v2(markers[i].pos, marker_b->pos, marker_a->pos, fac); a++; b++; @@ -558,9 +578,9 @@ void BKE_tracking_join_tracks(MovieTrackingTrack *dst_track, MovieTrackingTrack /* this values will be incremented at the end of the loop cycle */ a--; b--; i--; } - else markers[i]= src_track->markers[a]; + else markers[i] = src_track->markers[a]; } - else markers[i]= dst_track->markers[b]; + else markers[i] = dst_track->markers[b]; a++; b++; @@ -571,10 +591,10 @@ void BKE_tracking_join_tracks(MovieTrackingTrack *dst_track, MovieTrackingTrack MEM_freeN(dst_track->markers); - dst_track->markers= MEM_callocN(i*sizeof(MovieTrackingMarker), "tracking joined tracks"); + dst_track->markers = MEM_callocN(i*sizeof(MovieTrackingMarker), "tracking joined tracks"); memcpy(dst_track->markers, markers, i*sizeof(MovieTrackingMarker)); - dst_track->markersnr= i; + dst_track->markersnr = i; MEM_freeN(markers); } @@ -583,7 +603,7 @@ static void tracking_tracks_free(ListBase *tracks) { MovieTrackingTrack *track; - for (track= tracks->first; track; track= track->next) { + for (track = tracks->first; track; track = track->next) { BKE_tracking_free_track(track); } @@ -606,7 +626,7 @@ static void tracking_objects_free(ListBase *objects) { MovieTrackingObject *object; - for (object= objects->first; object; object= object->next) + for (object = objects->first; object; object = object->next) tracking_object_free(object); BLI_freelistN(objects); @@ -631,7 +651,7 @@ static MovieTrackingTrack *duplicate_track(MovieTrackingTrack *track) new_track = MEM_callocN(sizeof(MovieTrackingTrack), "tracksMapMerge new_track"); - *new_track= *track; + *new_track = *track; new_track->next = new_track->prev = NULL; new_track->markers = MEM_dupallocN(new_track->markers); @@ -710,20 +730,20 @@ typedef struct TracksMap { static TracksMap *tracks_map_new(const char *object_name, int is_camera, int num_tracks, int customdata_size) { - TracksMap *map= MEM_callocN(sizeof(TracksMap), "TrackingsMap"); + TracksMap *map = MEM_callocN(sizeof(TracksMap), "TrackingsMap"); BLI_strncpy(map->object_name, object_name, sizeof(map->object_name)); - map->is_camera= is_camera; + map->is_camera = is_camera; - map->num_tracks= num_tracks; - map->customdata_size= customdata_size; + map->num_tracks = num_tracks; + map->customdata_size = customdata_size; - map->tracks= MEM_callocN(sizeof(MovieTrackingTrack)*num_tracks, "TrackingsMap tracks"); + map->tracks = MEM_callocN(sizeof(MovieTrackingTrack)*num_tracks, "TrackingsMap tracks"); if (customdata_size) - map->customdata= MEM_callocN(customdata_size*num_tracks, "TracksMap customdata"); + map->customdata = MEM_callocN(customdata_size*num_tracks, "TracksMap customdata"); - map->hash= BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "TracksMap hash"); + map->hash = BLI_ghash_new(BLI_ghashutil_ptrhash, BLI_ghashutil_ptrcmp, "TracksMap hash"); return map; } @@ -735,19 +755,19 @@ static int tracks_map_size(TracksMap *map) static void tracks_map_get(TracksMap *map, int index, MovieTrackingTrack **track, void **customdata) { - *track= &map->tracks[index]; + *track = &map->tracks[index]; if (map->customdata) - *customdata= &map->customdata[index*map->customdata_size]; + *customdata = &map->customdata[index*map->customdata_size]; } static void tracks_map_insert(TracksMap *map, MovieTrackingTrack *track, void *customdata) { MovieTrackingTrack new_track= *track; - new_track.markers= MEM_dupallocN(new_track.markers); + new_track.markers = MEM_dupallocN(new_track.markers); - map->tracks[map->ptr]= new_track; + map->tracks[map->ptr] = new_track; if (customdata) memcpy(&map->customdata[map->ptr*map->customdata_size], customdata, map->customdata_size); @@ -760,64 +780,64 @@ static void tracks_map_insert(TracksMap *map, MovieTrackingTrack *track, void *c static void tracks_map_merge(TracksMap *map, MovieTracking *tracking) { MovieTrackingTrack *track; - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); - MovieTrackingTrack *rot_track= tracking->stabilization.rot_track; - ListBase tracks= {NULL, NULL}, new_tracks= {NULL, NULL}; + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); + MovieTrackingTrack *rot_track = tracking->stabilization.rot_track; + ListBase tracks = {NULL, NULL}, new_tracks = {NULL, NULL}; ListBase *old_tracks; int a; if (map->is_camera) { - old_tracks= &tracking->tracks; + old_tracks = &tracking->tracks; } else { - MovieTrackingObject *object= BKE_tracking_named_object(tracking, map->object_name); + MovieTrackingObject *object = BKE_tracking_named_object(tracking, map->object_name); if (!object) { /* object was deleted by user, create new one */ - object= BKE_tracking_new_object(tracking, map->object_name); + object = BKE_tracking_new_object(tracking, map->object_name); } - old_tracks= &object->tracks; + old_tracks = &object->tracks; } /* duplicate currently operating tracks to temporary list. * this is needed to keep names in unique state and it's faster to change names * of currently operating tracks (if needed) */ - for (a= 0; a<map->num_tracks; a++) { - int replace_sel= 0, replace_rot= 0; + for (a = 0; a < map->num_tracks; a++) { + int replace_sel = 0, replace_rot = 0; MovieTrackingTrack *new_track, *old; - track= &map->tracks[a]; + track = &map->tracks[a]; /* find original of operating track in list of previously displayed tracks */ - old= BLI_ghash_lookup(map->hash, track); + old = BLI_ghash_lookup(map->hash, track); if (old) { - MovieTrackingTrack *cur= old_tracks->first; + MovieTrackingTrack *cur = old_tracks->first; while (cur) { - if (cur==old) + if (cur == old) break; - cur= cur->next; + cur = cur->next; } /* original track was found, re-use flags and remove this track */ if (cur) { - if (cur==act_track) - replace_sel= 1; - if (cur==rot_track) - replace_rot= 1; + if (cur == act_track) + replace_sel = 1; + if (cur == rot_track) + replace_rot = 1; - track->flag= cur->flag; - track->pat_flag= cur->pat_flag; - track->search_flag= cur->search_flag; + track->flag = cur->flag; + track->pat_flag = cur->pat_flag; + track->search_flag = cur->search_flag; BKE_tracking_free_track(cur); BLI_freelinkN(old_tracks, cur); } } - new_track= duplicate_track(track); + new_track = duplicate_track(track); BLI_ghash_remove(map->hash, track, NULL, NULL); /* XXX: are we actually need this */ BLI_ghash_insert(map->hash, track, new_track); @@ -832,24 +852,24 @@ static void tracks_map_merge(TracksMap *map, MovieTracking *tracking) } /* move all tracks, which aren't operating */ - track= old_tracks->first; + track = old_tracks->first; while (track) { - MovieTrackingTrack *next= track->next; + MovieTrackingTrack *next = track->next; - track->next= track->prev= NULL; + track->next = track->prev = NULL; BLI_addtail(&new_tracks, track); track= next; } /* now move all tracks which are currently operating and keep their names unique */ - track= tracks.first; + track = tracks.first; while (track) { - MovieTrackingTrack *next= track->next; + MovieTrackingTrack *next = track->next; BLI_remlink(&tracks, track); - track->next= track->prev= NULL; + track->next = track->prev = NULL; BLI_addtail(&new_tracks, track); BLI_uniquename(&new_tracks, track, "Track", '.', offsetof(MovieTrackingTrack, name), sizeof(track->name)); @@ -866,7 +886,7 @@ static void tracks_map_free(TracksMap *map, void (*customdata_free) (void *custo BLI_ghash_free(map->hash, NULL, NULL); - for (i= 0; i<map->num_tracks; i++) { + for (i = 0; i < map->num_tracks; i++) { if (map->customdata && customdata_free) customdata_free(&map->customdata[i*map->customdata_size]); @@ -915,48 +935,48 @@ typedef struct MovieTrackingContext { MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *user, short backwards, short sequence) { - MovieTrackingContext *context= MEM_callocN(sizeof(MovieTrackingContext), "trackingContext"); - MovieTracking *tracking= &clip->tracking; - MovieTrackingSettings *settings= &tracking->settings; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); + MovieTrackingContext *context = MEM_callocN(sizeof(MovieTrackingContext), "trackingContext"); + MovieTracking *tracking = &clip->tracking; + MovieTrackingSettings *settings = &tracking->settings; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); MovieTrackingTrack *track; - MovieTrackingObject *object= BKE_tracking_active_object(tracking); - int num_tracks= 0; + MovieTrackingObject *object = BKE_tracking_active_object(tracking); + int num_tracks = 0; - context->settings= *settings; - context->backwards= backwards; - context->sync_frame= user->framenr; - context->first_time= 1; - context->sequence= sequence; + context->settings = *settings; + context->backwards = backwards; + context->sync_frame = user->framenr; + context->first_time = TRUE; + context->sequence = sequence; /* count */ - track= tracksbase->first; + track = tracksbase->first; while (track) { if (TRACK_SELECTED(track) && (track->flag & (TRACK_LOCKED | TRACK_HIDDEN))==0) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, user->framenr); + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, user->framenr); - if ((marker->flag&MARKER_DISABLED)==0) + if ((marker->flag & MARKER_DISABLED) == 0) num_tracks++; } - track= track->next; + track = track->next; } if (num_tracks) { int width, height; - context->tracks_map= tracks_map_new(object->name, object->flag & TRACKING_OBJECT_CAMERA, - num_tracks, sizeof(TrackContext)); + context->tracks_map = tracks_map_new(object->name, object->flag & TRACKING_OBJECT_CAMERA, + num_tracks, sizeof(TrackContext)); BKE_movieclip_get_size(clip, user, &width, &height); /* create tracking data */ - track= tracksbase->first; + track = tracksbase->first; while (track) { - if (TRACK_SELECTED(track) && (track->flag & (TRACK_HIDDEN | TRACK_LOCKED))==0) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, user->framenr); + if (TRACK_SELECTED(track) && (track->flag & (TRACK_HIDDEN | TRACK_LOCKED)) == 0) { + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, user->framenr); - if ((marker->flag&MARKER_DISABLED)==0) { + if ((marker->flag & MARKER_DISABLED) == 0) { TrackContext track_context; memset(&track_context, 0, sizeof(TrackContext)); @@ -964,34 +984,39 @@ MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *u #ifdef WITH_LIBMV { float patx, paty; - patx= (int)((track->pat_max[0]-track->pat_min[0])*width); - paty= (int)((track->pat_max[1]-track->pat_min[1])*height); + patx = (int)((track->pat_max[0]-track->pat_min[0])*width); + paty = (int)((track->pat_max[1]-track->pat_min[1])*height); if (ELEM(track->tracker, TRACKER_KLT, TRACKER_HYBRID)) { - float search_size_x= (track->search_max[0]-track->search_min[0])*width; - float search_size_y= (track->search_max[1]-track->search_min[1])*height; - float pattern_size_x= (track->pat_max[0]-track->pat_min[0])*width; - float pattern_size_y= (track->pat_max[1]-track->pat_min[1])*height; - int wndx= (int)patx/2, wndy= (int)paty/2; + float search_size_x = (track->search_max[0]-track->search_min[0])*width; + float search_size_y = (track->search_max[1]-track->search_min[1])*height; + float pattern_size_x = (track->pat_max[0]-track->pat_min[0])*width; + float pattern_size_y = (track->pat_max[1]-track->pat_min[1])*height; + int wndx = (int)patx / 2, wndy = (int)paty / 2; + int half_wnd = MAX2(wndx, wndy); /* compute the maximum pyramid size */ - float search_to_pattern_ratio= MIN2(search_size_x, search_size_y) + float search_to_pattern_ratio = MIN2(search_size_x, search_size_y) / MAX2(pattern_size_x, pattern_size_y); float log2_search_to_pattern_ratio = log(floor(search_to_pattern_ratio)) / M_LN2; - int max_pyramid_levels= floor(log2_search_to_pattern_ratio + 1); + int max_pyramid_levels = floor(log2_search_to_pattern_ratio + 1); /* try to accommodate the user's choice of pyramid level in a way * that doesn't cause the coarsest pyramid pattern to be larger * than the search size */ - int level= MIN2(track->pyramid_levels, max_pyramid_levels); - - if (track->tracker==TRACKER_KLT) - track_context.region_tracker= libmv_pyramidRegionTrackerNew(100, level, MAX2(wndx, wndy), track->minimum_correlation); - else - track_context.region_tracker= libmv_hybridRegionTrackerNew(100, MAX2(wndx, wndy), track->minimum_correlation); + int level = MIN2(track->pyramid_levels, max_pyramid_levels); + + if (track->tracker==TRACKER_KLT) { + track_context.region_tracker = + libmv_pyramidRegionTrackerNew(100, level, half_wnd, track->minimum_correlation); + } + else { + track_context.region_tracker = + libmv_hybridRegionTrackerNew(100, half_wnd, track->minimum_correlation); + } } - else if (track->tracker==TRACKER_SAD) { - track_context.pattern_size= MAX2(patx, paty); + else if (track->tracker == TRACKER_SAD) { + track_context.pattern_size = MAX2(patx, paty); } } #endif @@ -1000,11 +1025,11 @@ MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *u } } - track= track->next; + track = track->next; } } - context->clip= clip; + context->clip = clip; /* store needed clip flags passing to get_buffer functions * - MCLIP_USE_PROXY is needed to because timecode affects on movie clip @@ -1014,11 +1039,11 @@ MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *u * - MCLIP_USE_PROXY_CUSTOM_DIR is needed because proxy/timecode files might * be stored in a different location * ignore all the rest possible flags for now */ - context->clip_flag= clip->flag&MCLIP_TIMECODE_FLAGS; + context->clip_flag = clip->flag&MCLIP_TIMECODE_FLAGS; - context->user= *user; - context->user.render_size= MCLIP_PROXY_RENDER_SIZE_FULL; - context->user.render_flag= 0; + context->user = *user; + context->user.render_size = MCLIP_PROXY_RENDER_SIZE_FULL; + context->user.render_flag = 0; if (!sequence) BLI_begin_threaded_malloc(); @@ -1028,7 +1053,7 @@ MovieTrackingContext *BKE_tracking_context_new(MovieClip *clip, MovieClipUser *u static void track_context_free(void *customdata) { - TrackContext *track_context= (TrackContext *)customdata; + TrackContext *track_context = (TrackContext *)customdata; #if WITH_LIBMV if (track_context->region_tracker) @@ -1074,17 +1099,19 @@ void BKE_tracking_disable_imbuf_channels(ImBuf *ibuf, int disable_red, int disab (disable_green ? 0.0f : 0.7152f) + (disable_blue ? 0.0f : 0.0722f); - for (y= 0; y<ibuf->y; y++) { - for (x= 0; x<ibuf->x; x++) { - int pixel= ibuf->x*y + x; + for (y = 0; y < ibuf->y; y++) { + for (x = 0; x < ibuf->x; x++) { + int pixel = ibuf->x*y + x; if (ibuf->rect_float) { - float *rrgbf= ibuf->rect_float + pixel*4; + float *rrgbf = ibuf->rect_float + pixel*4; float r = disable_red ? 0.0f : rrgbf[0]; float g = disable_green ? 0.0f : rrgbf[1]; float b = disable_blue ? 0.0f : rrgbf[2]; + if (grayscale) { float gray = (0.2126f*r + 0.7152f*g + 0.0722f*b) / scale; + rrgbf[0] = rrgbf[1] = rrgbf[2] = gray; } else { @@ -1094,12 +1121,14 @@ void BKE_tracking_disable_imbuf_channels(ImBuf *ibuf, int disable_red, int disab } } else { - char *rrgb= (char*)ibuf->rect + pixel*4; + char *rrgb = (char*)ibuf->rect + pixel*4; char r = disable_red ? 0 : rrgb[0]; char g = disable_green ? 0 : rrgb[1]; char b = disable_blue ? 0 : rrgb[2]; + if (grayscale) { float gray = (0.2126f*r + 0.7152f*g + 0.0722f*b) / scale; + rrgb[0] = rrgb[1] = rrgb[2] = gray; } else { @@ -1114,12 +1143,12 @@ void BKE_tracking_disable_imbuf_channels(ImBuf *ibuf, int disable_red, int disab static void disable_imbuf_channels(ImBuf *ibuf, MovieTrackingTrack *track, int grayscale) { - BKE_tracking_disable_imbuf_channels(ibuf, track->flag&TRACK_DISABLE_RED, - track->flag&TRACK_DISABLE_GREEN, track->flag&TRACK_DISABLE_BLUE, grayscale); + BKE_tracking_disable_imbuf_channels(ibuf, track->flag & TRACK_DISABLE_RED, + track->flag & TRACK_DISABLE_GREEN, track->flag & TRACK_DISABLE_BLUE, grayscale); } static ImBuf *get_area_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker, - float min[2], float max[2], int margin, int anchored, float pos[2], int origin[2]) + float min[2], float max[2], int margin, int anchored, float pos[2], int origin[2]) { ImBuf *tmpibuf; int x, y; @@ -1133,30 +1162,30 @@ static ImBuf *get_area_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTracki if (pos) zero_v2(pos); - x= mpos[0]*ibuf->x; - y= mpos[1]*ibuf->y; + x = mpos[0]*ibuf->x; + y = mpos[1]*ibuf->y; - w= (max[0]-min[0])*ibuf->x; - h= (max[1]-min[1])*ibuf->y; + w = (max[0] - min[0]) * ibuf->x; + h = (max[1] - min[1]) * ibuf->y; /* dimensions should be odd */ - w= w|1; - h= h|1; + w = w|1; + h = h|1; - x1= x-(int)(w * (-min[0] / (max[0] - min[0]))); - y1= y-(int)(h * (-min[1] / (max[1] - min[1]))); + x1 = x-(int)(w * (-min[0] / (max[0] - min[0]))); + y1 = y-(int)(h * (-min[1] / (max[1] - min[1]))); - tmpibuf= IMB_allocImBuf(w+margin*2, h+margin*2, 32, IB_rect); - IMB_rectcpy(tmpibuf, ibuf, 0, 0, x1-margin, y1-margin, w+margin*2, h+margin*2); + tmpibuf = IMB_allocImBuf(w+margin*2, h+margin*2, 32, IB_rect); + IMB_rectcpy(tmpibuf, ibuf, 0, 0, x1 - margin, y1 - margin, w + margin * 2, h + margin * 2); if (pos != NULL) { - pos[0]= mpos[0]*ibuf->x-x1+margin; - pos[1]= mpos[1]*ibuf->y-y1+margin; + pos[0] = mpos[0] * ibuf->x - x1 + margin; + pos[1] = mpos[1] * ibuf->y - y1 + margin; } if (origin != NULL) { - origin[0]= x1-margin; - origin[1]= y1-margin; + origin[0] = x1 - margin; + origin[1] = y1 - margin; } if ((track->flag & TRACK_PREVIEW_GRAYSCALE) || @@ -1164,54 +1193,57 @@ static ImBuf *get_area_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTracki (track->flag & TRACK_DISABLE_GREEN) || (track->flag & TRACK_DISABLE_BLUE)) { - disable_imbuf_channels(tmpibuf, track, 1 /* grayscale */); + disable_imbuf_channels(tmpibuf, track, TRUE /* grayscale */); } return tmpibuf; } ImBuf *BKE_tracking_get_pattern_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker, - int margin, int anchored, float pos[2], int origin[2]) + int margin, int anchored, float pos[2], int origin[2]) { return get_area_imbuf(ibuf, track, marker, track->pat_min, track->pat_max, margin, anchored, pos, origin); } ImBuf *BKE_tracking_get_search_imbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker, - int margin, int anchored, float pos[2], int origin[2]) + int margin, int anchored, float pos[2], int origin[2]) { return get_area_imbuf(ibuf, track, marker, track->search_min, track->search_max, margin, anchored, pos, origin); } #ifdef WITH_LIBMV static float *get_search_floatbuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker, - int *width_r, int *height_r, float pos[2], int origin[2]) + int *width_r, int *height_r, float pos[2], int origin[2]) { ImBuf *tmpibuf; float *pixels, *fp; int x, y, width, height; - width= (track->search_max[0]-track->search_min[0])*ibuf->x; - height= (track->search_max[1]-track->search_min[1])*ibuf->y; + width = (track->search_max[0] - track->search_min[0]) * ibuf->x; + height = (track->search_max[1] - track->search_min[1]) * ibuf->y; - tmpibuf= BKE_tracking_get_search_imbuf(ibuf, track, marker, 0, 0, pos, origin); - disable_imbuf_channels(tmpibuf, track, 0 /* don't grayscale */); + tmpibuf = BKE_tracking_get_search_imbuf(ibuf, track, marker, 0, 0, pos, origin); + disable_imbuf_channels(tmpibuf, track, FALSE /* don't grayscale */); - *width_r= width; - *height_r= height; + *width_r = width; + *height_r = height; - fp= pixels= MEM_callocN(width*height*sizeof(float), "tracking floatBuf"); - for (y= 0; y<(int)height; y++) { - for (x= 0; x<(int)width; x++) { - int pixel= tmpibuf->x*y + x; + fp = pixels = MEM_callocN(width * height * sizeof(float), "tracking floatBuf"); + for (y = 0; y < (int)height; y++) { + for (x = 0; x < (int)width; x++) { + int pixel = tmpibuf->x * y + x; if (tmpibuf->rect_float) { - float *rrgbf= tmpibuf->rect_float + pixel*4; - *fp= 0.2126*rrgbf[0] + 0.7152*rrgbf[1] + 0.0722*rrgbf[2]; + float *rrgbf = tmpibuf->rect_float + pixel * 4; + + *fp = 0.2126 * rrgbf[0] + 0.7152 * rrgbf[1] + 0.0722 * rrgbf[2]; } else { - unsigned char *rrgb= (unsigned char*)tmpibuf->rect + pixel*4; - *fp= (0.2126*rrgb[0] + 0.7152*rrgb[1] + 0.0722*rrgb[2])/255.0f; + unsigned char *rrgb = (unsigned char*)tmpibuf->rect + pixel * 4; + + *fp = (0.2126 * rrgb[0] + 0.7152 * rrgb[1] + 0.0722 * rrgb[2]) / 255.0f; } + fp++; } } @@ -1226,20 +1258,23 @@ static unsigned char *get_ucharbuf(ImBuf *ibuf) int x, y; unsigned char *pixels, *cp; - cp= pixels= MEM_callocN(ibuf->x*ibuf->y*sizeof(unsigned char), "tracking ucharBuf"); - for (y= 0; y<ibuf->y; y++) { - for (x= 0; x<ibuf->x; x++) { - int pixel= ibuf->x*y + x; + cp = pixels = MEM_callocN(ibuf->x * ibuf->y * sizeof(unsigned char), "tracking ucharBuf"); + for (y = 0; y < ibuf->y; y++) { + for (x = 0; x < ibuf->x; x++) { + int pixel = ibuf->x * y + x; if (ibuf->rect_float) { - const float *rrgbf= ibuf->rect_float + pixel*4; - const float grey_f= 0.2126f*rrgbf[0] + 0.7152f*rrgbf[1] + 0.0722f*rrgbf[2]; - *cp= FTOCHAR(grey_f); + const float *rrgbf = ibuf->rect_float + pixel*4; + const float grey_f = 0.2126f * rrgbf[0] + 0.7152f * rrgbf[1] + 0.0722f * rrgbf[2]; + + *cp = FTOCHAR(grey_f); } else { - const unsigned char *rrgb= (unsigned char*)ibuf->rect + pixel*4; - *cp= 0.2126f*rrgb[0] + 0.7152f*rrgb[1] + 0.0722f*rrgb[2]; + const unsigned char *rrgb = (unsigned char*)ibuf->rect + pixel * 4; + + *cp = 0.2126f * rrgb[0] + 0.7152f * rrgb[1] + 0.0722f * rrgb[2]; } + cp++; } } @@ -1248,18 +1283,18 @@ static unsigned char *get_ucharbuf(ImBuf *ibuf) } static unsigned char *get_search_bytebuf(ImBuf *ibuf, MovieTrackingTrack *track, MovieTrackingMarker *marker, - int *width_r, int *height_r, float pos[2], int origin[2]) + int *width_r, int *height_r, float pos[2], int origin[2]) { ImBuf *tmpibuf; unsigned char *pixels; - tmpibuf= BKE_tracking_get_search_imbuf(ibuf, track, marker, 0, 0, pos, origin); - disable_imbuf_channels(tmpibuf, track, 0 /* don't grayscale */); + tmpibuf = BKE_tracking_get_search_imbuf(ibuf, track, marker, 0, 0, pos, origin); + disable_imbuf_channels(tmpibuf, track, FALSE /* don't grayscale */); - *width_r= tmpibuf->x; - *height_r= tmpibuf->y; + *width_r = tmpibuf->x; + *height_r = tmpibuf->y; - pixels= get_ucharbuf(tmpibuf); + pixels = get_ucharbuf(tmpibuf); IMB_freeImBuf(tmpibuf); @@ -1269,63 +1304,64 @@ static unsigned char *get_search_bytebuf(ImBuf *ibuf, MovieTrackingTrack *track, static ImBuf *get_frame_ibuf(MovieTrackingContext *context, int framenr) { ImBuf *ibuf; - MovieClipUser user= context->user; + MovieClipUser user = context->user; - user.framenr= framenr; + user.framenr = framenr; - ibuf= BKE_movieclip_get_ibuf_flag(context->clip, &user, context->clip_flag, MOVIECLIP_CACHE_SKIP); + ibuf = BKE_movieclip_get_ibuf_flag(context->clip, &user, context->clip_flag, MOVIECLIP_CACHE_SKIP); return ibuf; } static ImBuf *get_keyframed_ibuf(MovieTrackingContext *context, MovieTrackingTrack *track, - MovieTrackingMarker *marker, MovieTrackingMarker **marker_keyed) + MovieTrackingMarker *marker, MovieTrackingMarker **marker_keyed) { - int framenr= marker->framenr; - int a= marker-track->markers; + int framenr = marker->framenr; + int a = marker-track->markers; - *marker_keyed= marker; + *marker_keyed = marker; - while (a>=0 && a<track->markersnr) { - int next= (context->backwards) ? a+1 : a-1; - int is_keyframed= 0; - MovieTrackingMarker *cur_marker= &track->markers[a]; - MovieTrackingMarker *next_marker= NULL; + while (a >= 0 && a < track->markersnr) { + int next = (context->backwards) ? a+1 : a-1; + int is_keyframed = FALSE; + MovieTrackingMarker *cur_marker = &track->markers[a]; + MovieTrackingMarker *next_marker = NULL; if (next>=0 && next<track->markersnr) next_marker= &track->markers[next]; /* if next mrker is disabled, stop searching keyframe and use current frame as keyframe */ - if (next_marker && next_marker->flag&MARKER_DISABLED) - is_keyframed= 1; + if (next_marker && next_marker->flag & MARKER_DISABLED) + is_keyframed = TRUE; - is_keyframed|= (cur_marker->flag&MARKER_TRACKED)==0; + is_keyframed |= (cur_marker->flag & MARKER_TRACKED) == 0; if (is_keyframed) { - framenr= cur_marker->framenr; - *marker_keyed= cur_marker; + framenr = cur_marker->framenr; + *marker_keyed = cur_marker; + break; } - a= next; + a = next; } return get_frame_ibuf(context, framenr); } static ImBuf *get_adjust_ibuf(MovieTrackingContext *context, MovieTrackingTrack *track, MovieTrackingMarker *marker, - int curfra, MovieTrackingMarker **marker_keyed) + int curfra, MovieTrackingMarker **marker_keyed) { - ImBuf *ibuf= NULL; + ImBuf *ibuf = NULL; if (track->pattern_match == TRACK_MATCH_KEYFRAME) { - ibuf= get_keyframed_ibuf(context, track, marker, marker_keyed); + ibuf = get_keyframed_ibuf(context, track, marker, marker_keyed); } else { - ibuf= get_frame_ibuf(context, curfra); + ibuf = get_frame_ibuf(context, curfra); /* use current marker as keyframed position */ - *marker_keyed= marker; + *marker_keyed = marker; } return ibuf; @@ -1335,10 +1371,10 @@ static void get_warped(TrackContext *track_context, int x, int y, int width, uns { int i, j; - for (i=0; i<track_context->pattern_size; i++) { - for (j=0; j<track_context->pattern_size; j++) { - track_context->warped[i*track_context->pattern_size+j]= - image[(y+i-track_context->pattern_size/2)*width+x+j-track_context->pattern_size/2]; + for (i = 0; i < track_context->pattern_size; i++) { + for (j = 0; j < track_context->pattern_size; j++) { + track_context->warped[i * track_context->pattern_size + j] = + image[(y + i - track_context->pattern_size / 2) * width + x + j - track_context->pattern_size / 2]; } } } @@ -1347,130 +1383,139 @@ static void get_warped(TrackContext *track_context, int x, int y, int width, uns void BKE_tracking_sync(MovieTrackingContext *context) { - MovieTracking *tracking= &context->clip->tracking; + MovieTracking *tracking = &context->clip->tracking; int newframe; tracks_map_merge(context->tracks_map, tracking); - if (context->backwards) newframe= context->user.framenr+1; - else newframe= context->user.framenr-1; + if (context->backwards) + newframe = context->user.framenr + 1; + else + newframe = context->user.framenr - 1; - context->sync_frame= newframe; + context->sync_frame = newframe; } void BKE_tracking_sync_user(MovieClipUser *user, MovieTrackingContext *context) { - user->framenr= context->sync_frame; + user->framenr = context->sync_frame; } int BKE_tracking_next(MovieTrackingContext *context) { ImBuf *ibuf_new; - int curfra= context->user.framenr; - int a, ok= 0, map_size; + int curfra = context->user.framenr; + int a, ok = FALSE, map_size; - map_size= tracks_map_size(context->tracks_map); + map_size = tracks_map_size(context->tracks_map); /* nothing to track, avoid unneeded frames reading to save time and memory */ if (!map_size) - return 0; + return FALSE; - if (context->backwards) context->user.framenr--; - else context->user.framenr++; + if (context->backwards) + context->user.framenr--; + else + context->user.framenr++; - ibuf_new= BKE_movieclip_get_ibuf_flag(context->clip, &context->user, context->clip_flag, MOVIECLIP_CACHE_SKIP); + ibuf_new = BKE_movieclip_get_ibuf_flag(context->clip, &context->user, context->clip_flag, MOVIECLIP_CACHE_SKIP); if (!ibuf_new) - return 0; + return FALSE; #pragma omp parallel for private(a) shared(ibuf_new, ok) if (map_size>1) - for (a= 0; a<map_size; a++) { + for (a = 0; a < map_size; a++) { TrackContext *track_context = NULL; MovieTrackingTrack *track; MovieTrackingMarker *marker; tracks_map_get(context->tracks_map, a, &track, (void**)&track_context); - marker= BKE_tracking_exact_marker(track, curfra); + marker = BKE_tracking_exact_marker(track, curfra); - if (marker && (marker->flag&MARKER_DISABLED)==0) { + if (marker && (marker->flag & MARKER_DISABLED) == 0) { #ifdef WITH_LIBMV - int width, height, origin[2], tracked= 0, need_readjust= 0; + int width, height, origin[2], tracked = 0, need_readjust = 0; float pos[2], margin[2], dim[2]; double x1, y1, x2, y2; - ImBuf *ibuf= NULL; + ImBuf *ibuf = NULL; MovieTrackingMarker marker_new, *marker_keyed; - int onbound= 0, nextfra; + int onbound = FALSE, nextfra; - if (track->pattern_match==TRACK_MATCH_KEYFRAME) - need_readjust= context->first_time; + if (track->pattern_match == TRACK_MATCH_KEYFRAME) + need_readjust = context->first_time; else - need_readjust= 1; + need_readjust = TRUE; - if (context->backwards) nextfra= curfra-1; - else nextfra= curfra+1; + if (context->backwards) + nextfra = curfra - 1; + else + nextfra = curfra + 1; /* margin from frame boundaries */ sub_v2_v2v2(dim, track->pat_max, track->pat_min); - margin[0]= margin[1]= MAX2(dim[0], dim[1]) / 2.0f; + margin[0] = margin[1] = MAX2(dim[0], dim[1]) / 2.0f; - margin[0]= MAX2(margin[0], (float)track->margin / ibuf_new->x); - margin[1]= MAX2(margin[1], (float)track->margin / ibuf_new->y); + margin[0] = MAX2(margin[0], (float)track->margin / ibuf_new->x); + margin[1] = MAX2(margin[1], (float)track->margin / ibuf_new->y); /* do not track markers which are too close to boundary */ if (marker->pos[0]<margin[0] || marker->pos[0]>1.0f-margin[0] || - marker->pos[1]<margin[1] || marker->pos[1]>1.0f-margin[1]) { - onbound= 1; + marker->pos[1]<margin[1] || marker->pos[1]>1.0f-margin[1]) + { + onbound = TRUE; } else if (ELEM(track->tracker, TRACKER_KLT, TRACKER_HYBRID)) { float *patch_new; if (need_readjust) { /* calculate patch for keyframed position */ - ibuf= get_adjust_ibuf(context, track, marker, curfra, &marker_keyed); + ibuf = get_adjust_ibuf(context, track, marker, curfra, &marker_keyed); if (track_context->patch) MEM_freeN(track_context->patch); - track_context->patch= get_search_floatbuf(ibuf, track, marker_keyed, &width, &height, track_context->keyframed_pos, origin); + track_context->patch = get_search_floatbuf(ibuf, track, marker_keyed, &width, &height, + track_context->keyframed_pos, origin); IMB_freeImBuf(ibuf); } - patch_new= get_search_floatbuf(ibuf_new, track, marker, &width, &height, pos, origin); + patch_new = get_search_floatbuf(ibuf_new, track, marker, &width, &height, pos, origin); - x1= track_context->keyframed_pos[0]; - y1= track_context->keyframed_pos[1]; + x1 = track_context->keyframed_pos[0]; + y1 = track_context->keyframed_pos[1]; - x2= pos[0]; - y2= pos[1]; + x2 = pos[0]; + y2 = pos[1]; - tracked= libmv_regionTrackerTrack(track_context->region_tracker, track_context->patch, patch_new, + tracked = libmv_regionTrackerTrack(track_context->region_tracker, track_context->patch, patch_new, width, height, x1, y1, &x2, &y2); MEM_freeN(patch_new); } - else if (track->tracker==TRACKER_SAD) { + else if (track->tracker == TRACKER_SAD) { unsigned char *image_new; float correlation; - float warp[3][2]={{0}}; + float warp[3][2] = {{0}}; if (need_readjust) { unsigned char *image; /* calculate pattern for keyframed position */ - ibuf= get_adjust_ibuf(context, track, marker, curfra, &marker_keyed); + ibuf = get_adjust_ibuf(context, track, marker, curfra, &marker_keyed); - image= get_search_bytebuf(ibuf, track, marker_keyed, &width, &height, pos, origin); + image = get_search_bytebuf(ibuf, track, marker_keyed, &width, &height, pos, origin); memset(warp, 0, sizeof(warp)); - warp[0][0]= 1; - warp[1][1]= 1; - warp[2][0]= pos[0]; - warp[2][1]= pos[1]; + warp[0][0] = 1; + warp[1][1] = 1; + warp[2][0] = pos[0]; + warp[2][1] = pos[1]; if (!track_context->pattern) { - int square= track_context->pattern_size*track_context->pattern_size; - track_context->pattern= MEM_callocN(sizeof(unsigned char)*square, "trackking pattern"); + int square = track_context->pattern_size*track_context->pattern_size; + + track_context->pattern = MEM_callocN(sizeof(unsigned char) * square, "trackking pattern"); } libmv_SADSamplePattern(image, width, warp, track_context->pattern, track_context->pattern_size); @@ -1479,37 +1524,39 @@ int BKE_tracking_next(MovieTrackingContext *context) IMB_freeImBuf(ibuf); } - image_new= get_search_bytebuf(ibuf_new, track, marker, &width, &height, pos, origin); + image_new = get_search_bytebuf(ibuf_new, track, marker, &width, &height, pos, origin); - if (track_context->warped==NULL) { + if (track_context->warped == NULL) { unsigned char *image_old; - ibuf= get_frame_ibuf(context, curfra); + ibuf = get_frame_ibuf(context, curfra); - if (track_context->warped==NULL) { - int square= track_context->pattern_size*track_context->pattern_size; - track_context->warped= MEM_callocN(sizeof(unsigned char)*square, "trackking warped"); + if (track_context->warped == NULL) { + int square = track_context->pattern_size * track_context->pattern_size; + + track_context->warped = MEM_callocN(sizeof(unsigned char)*square, "trackking warped"); } - image_old= get_search_bytebuf(ibuf, track, marker, &width, &height, pos, origin); + image_old = get_search_bytebuf(ibuf, track, marker, &width, &height, pos, origin); get_warped(track_context, pos[0], pos[1], width, image_old); IMB_freeImBuf(ibuf); MEM_freeN(image_old); } memset(warp, 0, sizeof(warp)); - warp[0][0]= 1; - warp[1][1]= 1; - warp[2][0]= pos[0]; - warp[2][1]= pos[1]; + warp[0][0] = 1; + warp[1][1] = 1; + warp[2][0] = pos[0]; + warp[2][1] = pos[1]; - correlation= libmv_SADTrackerTrack(track_context->pattern, track_context->warped, - track_context->pattern_size, image_new, width, width, height, warp); + correlation = libmv_SADTrackerTrack(track_context->pattern, track_context->warped, + track_context->pattern_size, image_new, + width, width, height, warp); - x2= warp[2][0]; - y2= warp[2][1]; + x2 = warp[2][0]; + y2 = warp[2][1]; - tracked= track->minimum_correlation < correlation; + tracked = track->minimum_correlation < correlation; if (tracked) get_warped(track_context, x2, y2, width, image_new); @@ -1530,14 +1577,14 @@ int BKE_tracking_next(MovieTrackingContext *context) memset(&marker_new, 0, sizeof(marker_new)); if (!onbound) { - marker_new.pos[0]= (origin[0]+x2)/ibuf_new->x; - marker_new.pos[1]= (origin[1]+y2)/ibuf_new->y; + marker_new.pos[0] = (origin[0] + x2) / ibuf_new->x; + marker_new.pos[1] = (origin[1] + y2) / ibuf_new->y; } else { copy_v2_v2(marker_new.pos, marker->pos); } - marker_new.flag|= MARKER_TRACKED; + marker_new.flag |= MARKER_TRACKED; marker_new.framenr= nextfra; #pragma omp critical @@ -1552,10 +1599,10 @@ int BKE_tracking_next(MovieTrackingContext *context) } } else { - marker_new= *marker; + marker_new = *marker; - marker_new.framenr= nextfra; - marker_new.flag|= MARKER_DISABLED; + marker_new.framenr = nextfra; + marker_new.flag |= MARKER_DISABLED; #pragma omp critical { @@ -1563,14 +1610,14 @@ int BKE_tracking_next(MovieTrackingContext *context) } } - ok= 1; + ok = TRUE; #endif } } IMB_freeImBuf(ibuf_new); - context->first_time= 0; + context->first_time = FALSE; context->frames++; return ok; @@ -1611,23 +1658,24 @@ typedef struct ReconstructProgressData { #if WITH_LIBMV static struct libmv_Tracks *create_libmv_tracks(ListBase *tracksbase, int width, int height) { - int tracknr= 0; + int tracknr = 0; MovieTrackingTrack *track; - struct libmv_Tracks *tracks= libmv_tracksNew(); + struct libmv_Tracks *tracks = libmv_tracksNew(); - track= tracksbase->first; + track = tracksbase->first; while (track) { - int a= 0; + int a = 0; - for (a= 0; a<track->markersnr; a++) { - MovieTrackingMarker *marker= &track->markers[a]; + for (a = 0; a < track->markersnr; a++) { + MovieTrackingMarker *marker = &track->markers[a]; - if ((marker->flag&MARKER_DISABLED)==0) + if ((marker->flag & MARKER_DISABLED) == 0) { libmv_tracksInsert(tracks, marker->framenr, tracknr, - marker->pos[0]*width, marker->pos[1]*height); + marker->pos[0] * width, marker->pos[1] * height); + } } - track= track->next; + track = track->next; tracknr++; } @@ -1636,124 +1684,123 @@ static struct libmv_Tracks *create_libmv_tracks(ListBase *tracksbase, int width, static void retrieve_libmv_reconstruct_intrinscis(MovieReconstructContext *context, MovieTracking *tracking) { - struct libmv_Reconstruction *libmv_reconstruction= context->reconstruction; + struct libmv_Reconstruction *libmv_reconstruction = context->reconstruction; struct libmv_CameraIntrinsics *libmv_intrinsics = libmv_ReconstructionExtractIntrinsics(libmv_reconstruction); - float aspy= 1.0f/tracking->camera.pixel_aspect; + float aspy = 1.0f / tracking->camera.pixel_aspect; double focal_length, principal_x, principal_y, k1, k2, k3; int width, height; libmv_CameraIntrinsicsExtract(libmv_intrinsics, &focal_length, &principal_x, &principal_y, - &k1, &k2, &k3, &width, &height); + &k1, &k2, &k3, &width, &height); - tracking->camera.focal= focal_length; - tracking->camera.principal[0]= principal_x; + tracking->camera.focal = focal_length; + tracking->camera.principal[0] = principal_x; - /* todo: verify divide by aspy is correct */ - tracking->camera.principal[1]= principal_y / aspy; - tracking->camera.k1= k1; - tracking->camera.k2= k2; + tracking->camera.principal[1] = principal_y / aspy; + tracking->camera.k1 = k1; + tracking->camera.k2 = k2; } static int retrieve_libmv_reconstruct_tracks(MovieReconstructContext *context, MovieTracking *tracking) { - struct libmv_Reconstruction *libmv_reconstruction= context->reconstruction; - MovieTrackingReconstruction *reconstruction= NULL; + struct libmv_Reconstruction *libmv_reconstruction = context->reconstruction; + MovieTrackingReconstruction *reconstruction = NULL; MovieReconstructedCamera *reconstructed; MovieTrackingTrack *track; - ListBase *tracksbase= NULL; - int ok= 1, tracknr= 0, a, origin_set= 0; - int sfra= context->sfra, efra= context->efra; + ListBase *tracksbase = NULL; + int ok = TRUE, tracknr = 0, a, origin_set = FALSE; + int sfra = context->sfra, efra = context->efra; float imat[4][4]; if (context->is_camera) { - tracksbase= &tracking->tracks; - reconstruction= &tracking->reconstruction; + tracksbase = &tracking->tracks; + reconstruction = &tracking->reconstruction; } else { - MovieTrackingObject *object= BKE_tracking_named_object(tracking, context->object_name); + MovieTrackingObject *object = BKE_tracking_named_object(tracking, context->object_name); - tracksbase= &object->tracks; - reconstruction= &object->reconstruction; + tracksbase = &object->tracks; + reconstruction = &object->reconstruction; } unit_m4(imat); - track= tracksbase->first; + track = tracksbase->first; while (track) { double pos[3]; if (libmv_reporojectionPointForTrack(libmv_reconstruction, tracknr, pos)) { - track->bundle_pos[0]= pos[0]; - track->bundle_pos[1]= pos[1]; - track->bundle_pos[2]= pos[2]; + track->bundle_pos[0] = pos[0]; + track->bundle_pos[1] = pos[1]; + track->bundle_pos[2] = pos[2]; - track->flag|= TRACK_HAS_BUNDLE; - track->error= libmv_reporojectionErrorForTrack(libmv_reconstruction, tracknr); + track->flag |= TRACK_HAS_BUNDLE; + track->error = libmv_reporojectionErrorForTrack(libmv_reconstruction, tracknr); } else { - track->flag&= ~TRACK_HAS_BUNDLE; - ok= 0; + track->flag &= ~TRACK_HAS_BUNDLE; + ok = FALSE; printf("No bundle for track #%d '%s'\n", tracknr, track->name); } - track= track->next; + track = track->next; tracknr++; } if (reconstruction->cameras) MEM_freeN(reconstruction->cameras); - reconstruction->camnr= 0; - reconstruction->cameras= NULL; - reconstructed= MEM_callocN((efra-sfra+1)*sizeof(MovieReconstructedCamera), "temp reconstructed camera"); + reconstruction->camnr = 0; + reconstruction->cameras = NULL; + reconstructed = MEM_callocN((efra-sfra+1)*sizeof(MovieReconstructedCamera), "temp reconstructed camera"); - for (a= sfra; a<=efra; a++) { + for (a = sfra; a <= efra; a++) { double matd[4][4]; if (libmv_reporojectionCameraForImage(libmv_reconstruction, a, matd)) { int i, j; float mat[4][4]; - float error= libmv_reporojectionErrorForImage(libmv_reconstruction, a); + float error = libmv_reporojectionErrorForImage(libmv_reconstruction, a); - for (i=0; i<4; i++) - for (j= 0; j<4; j++) - mat[i][j]= matd[i][j]; + for (i = 0; i < 4; i++) + for (j = 0; j < 4; j++) + mat[i][j] = matd[i][j]; if (!origin_set) { copy_m4_m4(imat, mat); invert_m4(imat); - origin_set= 1; + origin_set = TRUE; } if (origin_set) mult_m4_m4m4(mat, imat, mat); copy_m4_m4(reconstructed[reconstruction->camnr].mat, mat); - reconstructed[reconstruction->camnr].framenr= a; - reconstructed[reconstruction->camnr].error= error; + reconstructed[reconstruction->camnr].framenr = a; + reconstructed[reconstruction->camnr].error = error; reconstruction->camnr++; } else { - ok= 0; + ok = FALSE; printf("No camera for frame %d\n", a); } } if (reconstruction->camnr) { - reconstruction->cameras= MEM_callocN(reconstruction->camnr*sizeof(MovieReconstructedCamera), "reconstructed camera"); - memcpy(reconstruction->cameras, reconstructed, reconstruction->camnr*sizeof(MovieReconstructedCamera)); + reconstruction->cameras = MEM_callocN(reconstruction->camnr * sizeof(MovieReconstructedCamera), "reconstructed camera"); + memcpy(reconstruction->cameras, reconstructed, reconstruction->camnr * sizeof(MovieReconstructedCamera)); } if (origin_set) { - track= tracksbase->first; + track = tracksbase->first; while (track) { - if (track->flag&TRACK_HAS_BUNDLE) + if (track->flag & TRACK_HAS_BUNDLE) mul_v3_m4v3(track->bundle_pos, imat, track->bundle_pos); - track= track->next; + track = track->next; } } @@ -1772,40 +1819,40 @@ static int retrieve_libmv_reconstruct(MovieReconstructContext *context, MovieTra static int get_refine_intrinsics_flags(MovieTracking *tracking, MovieTrackingObject *object) { - int refine= tracking->settings.refine_camera_intrinsics; - int flags= 0; + int refine = tracking->settings.refine_camera_intrinsics; + int flags = 0; - if ((object->flag&TRACKING_OBJECT_CAMERA)==0) + if ((object->flag & TRACKING_OBJECT_CAMERA) == 0) return 0; - if (refine&REFINE_FOCAL_LENGTH) - flags|= LIBMV_REFINE_FOCAL_LENGTH; + if (refine & REFINE_FOCAL_LENGTH) + flags |= LIBMV_REFINE_FOCAL_LENGTH; - if (refine&REFINE_PRINCIPAL_POINT) - flags|= LIBMV_REFINE_PRINCIPAL_POINT; + if (refine & REFINE_PRINCIPAL_POINT) + flags |= LIBMV_REFINE_PRINCIPAL_POINT; - if (refine&REFINE_RADIAL_DISTORTION_K1) - flags|= REFINE_RADIAL_DISTORTION_K1; + if (refine & REFINE_RADIAL_DISTORTION_K1) + flags |= REFINE_RADIAL_DISTORTION_K1; - if (refine&REFINE_RADIAL_DISTORTION_K2) - flags|= REFINE_RADIAL_DISTORTION_K2; + if (refine & REFINE_RADIAL_DISTORTION_K2) + flags |= REFINE_RADIAL_DISTORTION_K2; return flags; } static int count_tracks_on_both_keyframes(MovieTracking *tracking, ListBase *tracksbase) { - int tot= 0; - int frame1= tracking->settings.keyframe1, frame2= tracking->settings.keyframe2; + int tot = 0; + int frame1 = tracking->settings.keyframe1, frame2= tracking->settings.keyframe2; MovieTrackingTrack *track; - track= tracksbase->first; + track = tracksbase->first; while (track) { if (BKE_tracking_has_enabled_marker(track, frame1)) if (BKE_tracking_has_enabled_marker(track, frame2)) tot++; - track= track->next; + track = track->next; } return tot; @@ -1815,76 +1862,78 @@ static int count_tracks_on_both_keyframes(MovieTracking *tracking, ListBase *tra int BKE_tracking_can_reconstruct(MovieTracking *tracking, MovieTrackingObject *object, char *error_msg, int error_size) { #if WITH_LIBMV - ListBase *tracksbase= BKE_tracking_object_tracks(tracking, object); + ListBase *tracksbase = BKE_tracking_object_tracks(tracking, object); if (count_tracks_on_both_keyframes(tracking, tracksbase)<8) { BLI_strncpy(error_msg, "At least 8 common tracks on both of keyframes are needed for reconstruction", error_size); - return 0; + + return FALSE; } - return 1; + return TRUE; #else BLI_strncpy(error_msg, "Blender is compiled without motion tracking library", error_size); - (void)tracking; - (void)object; + + (void) tracking; + (void) object; return 0; #endif } -MovieReconstructContext* BKE_tracking_reconstruction_context_new(MovieTracking *tracking, - MovieTrackingObject *object, int keyframe1, int keyframe2, int width, int height) +MovieReconstructContext* BKE_tracking_reconstruction_context_new(MovieTracking *tracking, MovieTrackingObject *object, + int keyframe1, int keyframe2, int width, int height) { - MovieReconstructContext *context= MEM_callocN(sizeof(MovieReconstructContext), "MovieReconstructContext data"); - MovieTrackingCamera *camera= &tracking->camera; - ListBase *tracksbase= BKE_tracking_object_tracks(tracking, object); - float aspy= 1.0f/tracking->camera.pixel_aspect; - int num_tracks= BLI_countlist(tracksbase); - int sfra= INT_MAX, efra= INT_MIN; + MovieReconstructContext *context = MEM_callocN(sizeof(MovieReconstructContext), "MovieReconstructContext data"); + MovieTrackingCamera *camera = &tracking->camera; + ListBase *tracksbase = BKE_tracking_object_tracks(tracking, object); + float aspy = 1.0f / tracking->camera.pixel_aspect; + int num_tracks = BLI_countlist(tracksbase); + int sfra = INT_MAX, efra = INT_MIN; MovieTrackingTrack *track; BLI_strncpy(context->object_name, object->name, sizeof(context->object_name)); context->is_camera = object->flag&TRACKING_OBJECT_CAMERA; - context->tracks_map= tracks_map_new(context->object_name, context->is_camera, num_tracks, 0); + context->tracks_map = tracks_map_new(context->object_name, context->is_camera, num_tracks, 0); - track= tracksbase->first; + track = tracksbase->first; while (track) { - int first= 0, last= track->markersnr-1; - MovieTrackingMarker *first_marker= &track->markers[0]; - MovieTrackingMarker *last_marker= &track->markers[track->markersnr-1]; + int first = 0, last = track->markersnr-1; + MovieTrackingMarker *first_marker = &track->markers[0]; + MovieTrackingMarker *last_marker = &track->markers[track->markersnr - 1]; /* find first not-disabled marker */ - while (first<=track->markersnr-1 && first_marker->flag&MARKER_DISABLED) { + while (first <= track->markersnr - 1 && first_marker->flag & MARKER_DISABLED) { first++; first_marker++; } /* find last not-disabled marker */ - while (last>=0 && last_marker->flag&MARKER_DISABLED) { + while (last >= 0 && last_marker->flag & MARKER_DISABLED) { last--; last_marker--; } - if (first<track->markersnr-1) - sfra= MIN2(sfra, first_marker->framenr); + if (first<track->markersnr - 1) + sfra = MIN2(sfra, first_marker->framenr); - if (last>=0) - efra= MAX2(efra, last_marker->framenr); + if (last >= 0) + efra = MAX2(efra, last_marker->framenr); tracks_map_insert(context->tracks_map, track, NULL); - track= track->next; + track = track->next; } - context->sfra= sfra; - context->efra= efra; + context->sfra = sfra; + context->efra = efra; #ifdef WITH_LIBMV - context->tracks= create_libmv_tracks(tracksbase, width, height*aspy); - context->keyframe1= keyframe1; - context->keyframe2= keyframe2; - context->refine_flags= get_refine_intrinsics_flags(tracking, object); + context->tracks = create_libmv_tracks(tracksbase, width, height*aspy); + context->keyframe1 = keyframe1; + context->keyframe2 = keyframe2; + context->refine_flags = get_refine_intrinsics_flags(tracking, object); #else (void) width; (void) height; @@ -1892,13 +1941,13 @@ MovieReconstructContext* BKE_tracking_reconstruction_context_new(MovieTracking * (void) keyframe2; #endif - context->focal_length= camera->focal; - context->principal_point[0]= camera->principal[0]; - context->principal_point[1]= camera->principal[1]*aspy; + context->focal_length = camera->focal; + context->principal_point[0] = camera->principal[0]; + context->principal_point[1] = camera->principal[1] * aspy; - context->k1= camera->k1; - context->k2= camera->k2; - context->k3= camera->k3; + context->k1 = camera->k1; + context->k2 = camera->k2; + context->k3 = camera->k3; return context; } @@ -1923,40 +1972,39 @@ static void solve_reconstruction_update_cb(void *customdata, double progress, co ReconstructProgressData *progressdata= customdata; if (progressdata->progress) { - *progressdata->progress= progress; - *progressdata->do_update= 1; + *progressdata->progress = progress; + *progressdata->do_update = TRUE; } - BLI_snprintf(progressdata->stats_message, progressdata->message_size, - "Solving camera | %s", message); + BLI_snprintf(progressdata->stats_message, progressdata->message_size, "Solving camera | %s", message); } #endif #if 0 static int solve_reconstruction_testbreak_cb(void *customdata) { - ReconstructProgressData *progressdata= customdata; + ReconstructProgressData *progressdata = customdata; if (progressdata->stop && *progressdata->stop) - return 1; + return TRUE; return G.afbreek; } #endif -void BKE_tracking_solve_reconstruction(MovieReconstructContext *context, short *stop, - short *do_update, float *progress, char *stats_message, int message_size) +void BKE_tracking_solve_reconstruction(MovieReconstructContext *context, short *stop, short *do_update, + float *progress, char *stats_message, int message_size) { #ifdef WITH_LIBMV float error; ReconstructProgressData progressdata; - progressdata.stop= stop; - progressdata.do_update= do_update; - progressdata.progress= progress; - progressdata.stats_message= stats_message; - progressdata.message_size= message_size; + progressdata.stop = stop; + progressdata.do_update = do_update; + progressdata.progress = progress; + progressdata.stats_message = stats_message; + progressdata.message_size = message_size; context->reconstruction = libmv_solveReconstruction(context->tracks, context->keyframe1, context->keyframe2, @@ -1966,9 +2014,9 @@ void BKE_tracking_solve_reconstruction(MovieReconstructContext *context, short * context->k1, context->k2, context->k3, solve_reconstruction_update_cb, &progressdata); - error= libmv_reprojectionError(context->reconstruction); + error = libmv_reprojectionError(context->reconstruction); - context->reprojection_error= error; + context->reprojection_error = error; #else (void) context; (void) stop; @@ -1986,24 +2034,24 @@ int BKE_tracking_finish_reconstruction(MovieReconstructContext *context, MovieTr tracks_map_merge(context->tracks_map, tracking); if (context->is_camera) { - reconstruction= &tracking->reconstruction; + reconstruction = &tracking->reconstruction; } else { MovieTrackingObject *object; - object= BKE_tracking_named_object(tracking, context->object_name); - reconstruction= &object->reconstruction; + object = BKE_tracking_named_object(tracking, context->object_name); + reconstruction = &object->reconstruction; } - reconstruction->error= context->reprojection_error; - reconstruction->flag|= TRACKING_RECONSTRUCTED; + reconstruction->error = context->reprojection_error; + reconstruction->flag |= TRACKING_RECONSTRUCTED; #ifdef WITH_LIBMV if (!retrieve_libmv_reconstruct(context, tracking)) - return 0; + return FALSE; #endif - return 1; + return TRUE; } void BKE_track_unique_name(ListBase *tracksbase, MovieTrackingTrack *track) @@ -2013,14 +2061,14 @@ void BKE_track_unique_name(ListBase *tracksbase, MovieTrackingTrack *track) MovieTrackingTrack *BKE_tracking_named_track(MovieTracking *tracking, MovieTrackingObject *object, const char *name) { - ListBase *tracksbase= BKE_tracking_object_tracks(tracking, object); - MovieTrackingTrack *track= tracksbase->first; + ListBase *tracksbase = BKE_tracking_object_tracks(tracking, object); + MovieTrackingTrack *track = tracksbase->first; while (track) { if (!strcmp(track->name, name)) return track; - track= track->next; + track = track->next; } return NULL; @@ -2029,51 +2077,59 @@ MovieTrackingTrack *BKE_tracking_named_track(MovieTracking *tracking, MovieTrack static int reconstruction_camera_index(MovieTrackingReconstruction *reconstruction, int framenr, int nearest) { MovieReconstructedCamera *cameras= reconstruction->cameras; - int a= 0, d= 1; + int a = 0, d = 1; if (!reconstruction->camnr) return -1; if (framenr<cameras[0].framenr) { - if (nearest) return 0; - else return -1; + if (nearest) + return 0; + else + return -1; } - if (framenr>cameras[reconstruction->camnr-1].framenr) { - if (nearest) return reconstruction->camnr-1; - else return -1; + if (framenr>cameras[reconstruction->camnr - 1].framenr) { + if (nearest) + return reconstruction->camnr - 1; + else + return -1; } if (reconstruction->last_camera<reconstruction->camnr) - a= reconstruction->last_camera; + a = reconstruction->last_camera; - if (cameras[a].framenr>=framenr) - d= -1; + if (cameras[a].framenr >= framenr) + d = -1; - while (a>=0 && a<reconstruction->camnr) { - int cfra= cameras[a].framenr; + while (a >= 0 && a < reconstruction->camnr) { + int cfra = cameras[a].framenr; /* check if needed framenr was "skipped" -- no data for requested frame */ - if (d>0 && cfra>framenr) { + if (d > 0 && cfra > framenr) { /* interpolate with previous position */ - if (nearest) return a-1; - else break; + if (nearest) + return a - 1; + else + break; } - if (d<0 && cfra<framenr) { + if (d < 0 && cfra < framenr) { /* interpolate with next position */ - if (nearest) return a; - else break; + if (nearest) + return a; + else + break; } - if (cfra==framenr) { - reconstruction->last_camera= a; + if (cfra == framenr) { + reconstruction->last_camera = a; return a; } - a+= d; + a += d; } return -1; @@ -2081,47 +2137,48 @@ static int reconstruction_camera_index(MovieTrackingReconstruction *reconstructi static void scale_reconstructed_camera(MovieTrackingObject *object, float mat[4][4]) { - if ((object->flag&TRACKING_OBJECT_CAMERA)==0) { + if ((object->flag & TRACKING_OBJECT_CAMERA) == 0) { float smat[4][4]; - scale_m4_fl(smat, 1.0f/object->scale); + scale_m4_fl(smat, 1.0f / object->scale); mult_m4_m4m4(mat, mat, smat); } } MovieReconstructedCamera *BKE_tracking_get_reconstructed_camera(MovieTracking *tracking, - MovieTrackingObject *object, int framenr) + MovieTrackingObject *object, int framenr) { MovieTrackingReconstruction *reconstruction; int a; - reconstruction= BKE_tracking_object_reconstruction(tracking, object); - a= reconstruction_camera_index(reconstruction, framenr, 0); + reconstruction = BKE_tracking_object_reconstruction(tracking, object); + a = reconstruction_camera_index(reconstruction, framenr, FALSE); - if (a==-1) + if (a ==-1) return NULL; return &reconstruction->cameras[a]; } void BKE_tracking_get_interpolated_camera(MovieTracking *tracking, MovieTrackingObject *object, - int framenr, float mat[4][4]) + int framenr, float mat[4][4]) { MovieTrackingReconstruction *reconstruction; MovieReconstructedCamera *cameras; int a; - reconstruction= BKE_tracking_object_reconstruction(tracking, object); - cameras= reconstruction->cameras; - a= reconstruction_camera_index(reconstruction, framenr, 1); + reconstruction = BKE_tracking_object_reconstruction(tracking, object); + cameras = reconstruction->cameras; + a = reconstruction_camera_index(reconstruction, framenr, 1); - if (a==-1) { + if (a == -1) { unit_m4(mat); + return; } - if (cameras[a].framenr!=framenr && a>0 && a<reconstruction->camnr-1) { - float t= ((float)framenr-cameras[a].framenr) / (cameras[a+1].framenr-cameras[a].framenr); + if (cameras[a].framenr != framenr && a > 0 && a < reconstruction->camnr - 1) { + float t = ((float)framenr-cameras[a].framenr) / (cameras[a + 1].framenr-cameras[a].framenr); blend_m4_m4m4(mat, cameras[a].mat, cameras[a+1].mat, t); } @@ -2135,8 +2192,10 @@ void BKE_tracking_get_interpolated_camera(MovieTracking *tracking, MovieTracking void BKE_get_tracking_mat(Scene *scene, Object *ob, float mat[4][4]) { if (!ob) { - if (scene->camera) ob= scene->camera; - else ob= scene_find_camera(scene); + if (scene->camera) + ob = scene->camera; + else + ob = scene_find_camera(scene); } if (ob) @@ -2147,53 +2206,54 @@ void BKE_get_tracking_mat(Scene *scene, Object *ob, float mat[4][4]) void BKE_tracking_camera_shift(MovieTracking *tracking, int winx, int winy, float *shiftx, float *shifty) { - *shiftx= (0.5f*winx-tracking->camera.principal[0]) / winx; - *shifty= (0.5f*winy-tracking->camera.principal[1]) / winx; + /* indeed in both of cases it should be winx -- it's just how camera shift works for blender's camera */ + *shiftx = (0.5f * winx-tracking->camera.principal[0]) / winx; + *shifty = (0.5f * winy-tracking->camera.principal[1]) / winx; } void BKE_tracking_camera_to_blender(MovieTracking *tracking, Scene *scene, Camera *camera, int width, int height) { - float focal= tracking->camera.focal; + float focal = tracking->camera.focal; - camera->sensor_x= tracking->camera.sensor_width; - camera->sensor_fit= CAMERA_SENSOR_FIT_AUTO; - camera->lens= focal*camera->sensor_x/width; + camera->sensor_x = tracking->camera.sensor_width; + camera->sensor_fit = CAMERA_SENSOR_FIT_AUTO; + camera->lens = focal*camera->sensor_x/width; - scene->r.xsch= width*tracking->camera.pixel_aspect; - scene->r.ysch= height; + scene->r.xsch = width*tracking->camera.pixel_aspect; + scene->r.ysch = height; - scene->r.xasp= 1.0f; - scene->r.yasp= 1.0f; + scene->r.xasp = 1.0f; + scene->r.yasp = 1.0f; BKE_tracking_camera_shift(tracking, width, height, &camera->shiftx, &camera->shifty); } void BKE_tracking_projection_matrix(MovieTracking *tracking, MovieTrackingObject *object, - int framenr, int winx, int winy, float mat[4][4]) + int framenr, int winx, int winy, float mat[4][4]) { MovieReconstructedCamera *camera; - float lens= tracking->camera.focal*tracking->camera.sensor_width/(float)winx; + float lens = tracking->camera.focal*tracking->camera.sensor_width/(float)winx; float viewfac, pixsize, left, right, bottom, top, clipsta, clipend; float winmat[4][4]; - float ycor= 1.0f/tracking->camera.pixel_aspect; - float shiftx, shifty, winside= MAX2(winx, winy); + float ycor = 1.0f / tracking->camera.pixel_aspect; + float shiftx, shifty, winside = MAX2(winx, winy); BKE_tracking_camera_shift(tracking, winx, winy, &shiftx, &shifty); - clipsta= 0.1f; - clipend= 1000.0f; + clipsta = 0.1f; + clipend = 1000.0f; if (winx >= winy) - viewfac= (lens*winx)/tracking->camera.sensor_width; + viewfac = (lens*winx)/tracking->camera.sensor_width; else - viewfac= (ycor*lens*winy)/tracking->camera.sensor_width; + viewfac = (ycor*lens*winy)/tracking->camera.sensor_width; - pixsize= clipsta/viewfac; + pixsize = clipsta/viewfac; - left= -0.5f*(float)winx + shiftx*winside; - bottom= -0.5f*(ycor)*(float)winy + shifty*winside; - right= 0.5f*(float)winx + shiftx*winside; - top= 0.5f*(ycor)*(float)winy + shifty*winside; + left = -0.5f * (float)winx + shiftx * winside; + bottom = -0.5f * (ycor) * (float)winy + shifty * winside; + right = 0.5f * (float)winx + shiftx * winside; + top = 0.5f * (ycor) * (float)winy + shifty * winside; left *= pixsize; right *= pixsize; @@ -2202,7 +2262,7 @@ void BKE_tracking_projection_matrix(MovieTracking *tracking, MovieTrackingObject perspective_m4(winmat, left, right, bottom, top, clipsta, clipend); - camera= BKE_tracking_get_reconstructed_camera(tracking, object, framenr); + camera = BKE_tracking_get_reconstructed_camera(tracking, object, framenr); if (camera) { float imat[4][4]; @@ -2215,7 +2275,7 @@ void BKE_tracking_projection_matrix(MovieTracking *tracking, MovieTrackingObject ListBase *BKE_tracking_get_tracks(MovieTracking *tracking) { - MovieTrackingObject *object= BKE_tracking_active_object(tracking); + MovieTrackingObject *object = BKE_tracking_active_object(tracking); if (object && (object->flag & TRACKING_OBJECT_CAMERA) == 0) { return &object->tracks; @@ -2231,7 +2291,7 @@ MovieTrackingTrack *BKE_tracking_active_track(MovieTracking *tracking) if (!tracking->act_track) return NULL; - tracksbase= BKE_tracking_get_tracks(tracking); + tracksbase = BKE_tracking_get_tracks(tracking); /* check that active track is in current tracks list */ if (BLI_findindex(tracksbase, tracking->act_track) >= 0) @@ -2247,7 +2307,7 @@ MovieTrackingObject *BKE_tracking_active_object(MovieTracking *tracking) MovieTrackingObject *BKE_tracking_get_camera_object(MovieTracking *tracking) { - MovieTrackingObject *object= tracking->objects.first; + MovieTrackingObject *object = tracking->objects.first; while (object) { if (object->flag & TRACKING_OBJECT_CAMERA) @@ -2279,7 +2339,7 @@ MovieTrackingReconstruction *BKE_tracking_object_reconstruction(MovieTracking *t MovieTrackingReconstruction *BKE_tracking_get_reconstruction(MovieTracking *tracking) { - MovieTrackingObject *object= BKE_tracking_active_object(tracking); + MovieTrackingObject *object = BKE_tracking_active_object(tracking); return BKE_tracking_object_reconstruction(tracking, object); } @@ -2290,42 +2350,42 @@ void BKE_tracking_apply_intrinsics(MovieTracking *tracking, float co[2], float n #ifdef WITH_LIBMV double x, y; - float aspy= 1.0f/tracking->camera.pixel_aspect; + float aspy = 1.0f/tracking->camera.pixel_aspect; /* normalize coords */ - x= (co[0]-camera->principal[0]) / camera->focal; - y= (co[1]-camera->principal[1] * aspy) / camera->focal; + x = (co[0] - camera->principal[0]) / camera->focal; + y = (co[1] - camera->principal[1] * aspy) / camera->focal; libmv_applyCameraIntrinsics(camera->focal, camera->principal[0], camera->principal[1] * aspy, - camera->k1, camera->k2, camera->k3, x, y, &x, &y); + camera->k1, camera->k2, camera->k3, x, y, &x, &y); /* result is in image coords already */ - nco[0]= x; - nco[1]= y; + nco[0] = x; + nco[1] = y; #else - (void)camera; - (void)co; - (void)nco; + (void) camera; + (void) co; + (void) nco; #endif } void BKE_tracking_invert_intrinsics(MovieTracking *tracking, float co[2], float nco[2]) { - MovieTrackingCamera *camera= &tracking->camera; + MovieTrackingCamera *camera = &tracking->camera; #ifdef WITH_LIBMV - double x= co[0], y= co[1]; - float aspy= 1.0f/tracking->camera.pixel_aspect; + double x = co[0], y = co[1]; + float aspy = 1.0f / tracking->camera.pixel_aspect; libmv_InvertIntrinsics(camera->focal, camera->principal[0], camera->principal[1] * aspy, - camera->k1, camera->k2, camera->k3, x, y, &x, &y); + camera->k1, camera->k2, camera->k3, x, y, &x, &y); - nco[0]= x * camera->focal + camera->principal[0]; - nco[1]= y * camera->focal + camera->principal[1] * aspy; + nco[0] = x * camera->focal + camera->principal[0]; + nco[1] = y * camera->focal + camera->principal[1] * aspy; #else - (void)camera; - (void)co; - (void)nco; + (void) camera; + (void) co; + (void) nco; #endif } @@ -2333,125 +2393,126 @@ void BKE_tracking_invert_intrinsics(MovieTracking *tracking, float co[2], float static int point_in_stroke(bGPDstroke *stroke, float x, float y) { int i, prev; - int count= 0; - bGPDspoint *points= stroke->points; + int count = 0; + bGPDspoint *points = stroke->points; - prev= stroke->totpoints-1; + prev = stroke->totpoints - 1; - for (i= 0; i<stroke->totpoints; i++) { - if ((points[i].y<y && points[prev].y>=y) || (points[prev].y<y && points[i].y>=y)) { - float fac= (y-points[i].y)/(points[prev].y-points[i].y); + for (i = 0; i<stroke->totpoints; i++) { + if ((points[i].y < y && points[prev].y >= y) || (points[prev].y < y && points[i].y >= y)) { + float fac = (y - points[i].y) / (points[prev].y - points[i].y); - if (points[i].x+fac*(points[prev].x-points[i].x)<x) + if (points[i].x + fac * (points[prev].x - points[i].x) < x) count++; } prev= i; } - return count%2; + return count % 2; } static int point_in_layer(bGPDlayer *layer, float x, float y) { - bGPDframe *frame= layer->frames.first; + bGPDframe *frame = layer->frames.first; while (frame) { - bGPDstroke *stroke= frame->strokes.first; + bGPDstroke *stroke = frame->strokes.first; + while (stroke) { if (point_in_stroke(stroke, x, y)) - return 1; + return TRUE; - stroke= stroke->next; + stroke = stroke->next; } - frame= frame->next; + frame = frame->next; } - return 0; + return FALSE; } static void retrieve_libmv_features(MovieTracking *tracking, ListBase *tracksbase, - struct libmv_Features *features, int framenr, int width, int height, - bGPDlayer *layer, int place_outside_layer) + struct libmv_Features *features, int framenr, int width, int height, + bGPDlayer *layer, int place_outside_layer) { int a; - a= libmv_countFeatures(features); + a = libmv_countFeatures(features); while (a--) { MovieTrackingTrack *track; double x, y, size, score; - int ok= 1; + int ok = TRUE; float xu, yu; libmv_getFeature(features, a, &x, &y, &score, &size); - xu= x/width; - yu= y/height; + xu = x / width; + yu = y / height; if (layer) - ok= point_in_layer(layer, xu, yu)!=place_outside_layer; + ok = point_in_layer(layer, xu, yu) != place_outside_layer; if (ok) { - track= BKE_tracking_add_track(tracking, tracksbase, xu, yu, framenr, width, height); - track->flag|= SELECT; - track->pat_flag|= SELECT; - track->search_flag|= SELECT; + track = BKE_tracking_add_track(tracking, tracksbase, xu, yu, framenr, width, height); + track->flag |= SELECT; + track->pat_flag |= SELECT; + track->search_flag |= SELECT; } } } #endif void BKE_tracking_detect_fast(MovieTracking *tracking, ListBase *tracksbase, ImBuf *ibuf, - int framenr, int margin, int min_trackness, int min_distance, bGPDlayer *layer, - int place_outside_layer) + int framenr, int margin, int min_trackness, int min_distance, bGPDlayer *layer, + int place_outside_layer) { #ifdef WITH_LIBMV struct libmv_Features *features; - unsigned char *pixels= get_ucharbuf(ibuf); + unsigned char *pixels = get_ucharbuf(ibuf); - features= libmv_detectFeaturesFAST(pixels, ibuf->x, ibuf->y, ibuf->x, - margin, min_trackness, min_distance); + features = libmv_detectFeaturesFAST(pixels, ibuf->x, ibuf->y, ibuf->x, + margin, min_trackness, min_distance); MEM_freeN(pixels); retrieve_libmv_features(tracking, tracksbase, features, framenr, - ibuf->x, ibuf->y, layer, place_outside_layer); + ibuf->x, ibuf->y, layer, place_outside_layer); libmv_destroyFeatures(features); #else - (void)tracking; - (void)tracksbase; - (void)ibuf; - (void)framenr; - (void)margin; - (void)min_trackness; - (void)min_distance; - (void)layer; - (void)place_outside_layer; + (void) tracking; + (void) tracksbase; + (void) ibuf; + (void) framenr; + (void) margin; + (void) min_trackness; + (void) min_distance; + (void) layer; + (void) place_outside_layer; #endif } MovieTrackingTrack *BKE_tracking_indexed_track(MovieTracking *tracking, int tracknr, ListBase **tracksbase_r) { MovieTrackingObject *object; - int cur= 1; + int cur = 1; - object= tracking->objects.first; + object = tracking->objects.first; while (object) { - ListBase *tracksbase= BKE_tracking_object_tracks(tracking, object); - MovieTrackingTrack *track= tracksbase->first; + ListBase *tracksbase = BKE_tracking_object_tracks(tracking, object); + MovieTrackingTrack *track = tracksbase->first; while (track) { - if (track->flag&TRACK_HAS_BUNDLE) { - if (cur==tracknr) { - *tracksbase_r= tracksbase; + if (track->flag & TRACK_HAS_BUNDLE) { + if (cur == tracknr) { + *tracksbase_r = tracksbase; return track; } cur++; } - track= track->next; + track = track->next; } object= object->next; @@ -2464,104 +2525,103 @@ MovieTrackingTrack *BKE_tracking_indexed_track(MovieTracking *tracking, int trac static int stabilization_median_point(MovieTracking *tracking, int framenr, float median[2]) { - int ok= 0; + int ok = FALSE; float min[2], max[2]; MovieTrackingTrack *track; INIT_MINMAX2(min, max); - (void) tracking; - - track= tracking->tracks.first; + track = tracking->tracks.first; while (track) { - if (track->flag&TRACK_USE_2D_STAB) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, framenr); + if (track->flag & TRACK_USE_2D_STAB) { + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, framenr); DO_MINMAX2(marker->pos, min, max); - ok= 1; + ok = TRUE; } - track= track->next; + track = track->next; } - median[0]= (max[0]+min[0])/2.0f; - median[1]= (max[1]+min[1])/2.0f; + median[0] = (max[0] + min[0]) / 2.0f; + median[1] = (max[1] + min[1]) / 2.0f; return ok; } static void calculate_stabdata(MovieTracking *tracking, int framenr, float width, float height, - float firstmedian[2], float median[2], float loc[2], float *scale, float *angle) + float firstmedian[2], float median[2], float loc[2], float *scale, float *angle) { - MovieTrackingStabilization *stab= &tracking->stabilization; + MovieTrackingStabilization *stab = &tracking->stabilization; - *scale= (stab->scale-1.0f)*stab->scaleinf+1.0f; - *angle= 0.0f; + *scale = (stab->scale - 1.0f) * stab->scaleinf + 1.0f; + *angle = 0.0f; - loc[0]= (firstmedian[0]-median[0])*width*(*scale); - loc[1]= (firstmedian[1]-median[1])*height*(*scale); + loc[0] = (firstmedian[0] - median[0]) *width * (*scale); + loc[1] = (firstmedian[1] - median[1]) *height * (*scale); mul_v2_fl(loc, stab->locinf); - if ((stab->flag&TRACKING_STABILIZE_ROTATION) && stab->rot_track && stab->rotinf) { + if ((stab->flag & TRACKING_STABILIZE_ROTATION) && stab->rot_track && stab->rotinf) { MovieTrackingMarker *marker; float a[2], b[2]; - float x0= (float)width/2.0f, y0= (float)height/2.0f; - float x= median[0]*width, y= median[1]*height; + float x0 = (float)width / 2.0f, y0 = (float)height / 2.0f; + float x = median[0] * width, y = median[1] * height; - marker= BKE_tracking_get_marker(stab->rot_track, 1); + marker = BKE_tracking_get_marker(stab->rot_track, 1); sub_v2_v2v2(a, marker->pos, firstmedian); - a[0]*= width; - a[1]*= height; + a[0] *= width; + a[1] *= height; - marker= BKE_tracking_get_marker(stab->rot_track, framenr); + marker = BKE_tracking_get_marker(stab->rot_track, framenr); sub_v2_v2v2(b, marker->pos, median); - b[0]*= width; - b[1]*= height; + b[0] *= width; + b[1] *= height; - *angle= -atan2(a[0]*b[1]-a[1]*b[0], a[0]*b[0]+a[1]*b[1]); - *angle*= stab->rotinf; + *angle = -atan2(a[0]*b[1]-a[1]*b[0], a[0]*b[0]+a[1]*b[1]); + *angle *= stab->rotinf; /* convert to rotation around image center */ - loc[0]-= (x0 + (x-x0)*cosf(*angle)-(y-y0)*sinf(*angle) - x)*(*scale); - loc[1]-= (y0 + (x-x0)*sinf(*angle)+(y-y0)*cosf(*angle) - y)*(*scale); + loc[0] -= (x0 + (x - x0) * cosf(*angle) - (y - y0) * sinf(*angle) - x) * (*scale); + loc[1] -= (y0 + (x - x0) * sinf(*angle) + (y - y0) * cosf(*angle) - y) * (*scale); } } static float stabilization_auto_scale_factor(MovieTracking *tracking, int width, int height) { float firstmedian[2]; - MovieTrackingStabilization *stab= &tracking->stabilization; - float aspect= tracking->camera.pixel_aspect; + MovieTrackingStabilization *stab = &tracking->stabilization; + float aspect = tracking->camera.pixel_aspect; if (stab->ok) return stab->scale; if (stabilization_median_point(tracking, 1, firstmedian)) { - int sfra= INT_MAX, efra= INT_MIN, cfra; - float scale= 1.0f; + int sfra = INT_MAX, efra = INT_MIN, cfra; + float scale = 1.0f; MovieTrackingTrack *track; - stab->scale= 1.0f; + stab->scale = 1.0f; - track= tracking->tracks.first; + track = tracking->tracks.first; while (track) { - if (track->flag&TRACK_USE_2D_STAB || - ((stab->flag&TRACKING_STABILIZE_ROTATION) && track==stab->rot_track)) { - sfra= MIN2(sfra, track->markers[0].framenr); - efra= MAX2(efra, track->markers[track->markersnr-1].framenr); + if (track->flag & TRACK_USE_2D_STAB || + ((stab->flag & TRACKING_STABILIZE_ROTATION) && track == stab->rot_track)) + { + sfra = MIN2(sfra, track->markers[0].framenr); + efra = MAX2(efra, track->markers[track->markersnr - 1].framenr); } - track= track->next; + track = track->next; } - for (cfra=sfra; cfra<=efra; cfra++) { + for (cfra = sfra; cfra <= efra; cfra++) { float median[2]; float loc[2], angle, tmp_scale; int i; float mat[4][4]; - float points[4][2]={{0.0f, 0.0f}, {0.0f, height}, {width, height}, {width, 0.0f}}; + float points[4][2] = {{0.0f, 0.0f}, {0.0f, height}, {width, height}, {width, 0.0f}}; float si, co; stabilization_median_point(tracking, cfra, median); @@ -2573,9 +2633,9 @@ static float stabilization_auto_scale_factor(MovieTracking *tracking, int width, si = sin(angle); co = cos(angle); - for (i= 0; i<4; i++) { + for (i = 0; i < 4; i++) { int j; - float a[3]= {0.0f, 0.0f, 0.0f}, b[3]= {0.0f, 0.0f, 0.0f}; + float a[3] = {0.0f, 0.0f, 0.0f}, b[3]= {0.0f, 0.0f, 0.0f}; copy_v3_v3(a, points[i]); copy_v3_v3(b, points[(i+1)%4]); @@ -2583,8 +2643,8 @@ static float stabilization_auto_scale_factor(MovieTracking *tracking, int width, mul_m4_v3(mat, a); mul_m4_v3(mat, b); - for (j= 0; j<4; j++) { - float point[3]= {points[j][0], points[j][1], 0.0f}; + for (j = 0; j < 4; j++) { + float point[3] = {points[j][0], points[j][1], 0.0f}; float v1[3], v2[3]; sub_v3_v3v3(v1, b, a); @@ -2632,16 +2692,16 @@ static float stabilization_auto_scale_factor(MovieTracking *tracking, int width, } } - stab->scale= scale; + stab->scale = scale; if (stab->maxscale>0.0f) - stab->scale= MIN2(stab->scale, stab->maxscale); + stab->scale = MIN2(stab->scale, stab->maxscale); } else { - stab->scale= 1.0f; + stab->scale = 1.0f; } - stab->ok= 1; + stab->ok = TRUE; return stab->scale; } @@ -2652,23 +2712,24 @@ static ImBuf* stabilize_alloc_ibuf(ImBuf *cacheibuf, ImBuf *srcibuf, int fill) if (cacheibuf && (cacheibuf->x != srcibuf->x || cacheibuf->y != srcibuf->y)) { IMB_freeImBuf(cacheibuf); - cacheibuf= NULL; + cacheibuf = NULL; } - flags= IB_rect; + flags = IB_rect; if (srcibuf->rect_float) - flags|= IB_rectfloat; + flags |= IB_rectfloat; if (cacheibuf) { if (fill) { - float col[4]= {0.0f, 0.0f, 0.0f, 0.0f}; + float col[4] = {0.0f, 0.0f, 0.0f, 0.0f}; + IMB_rectfill(cacheibuf, col); } } else { - cacheibuf= IMB_allocImBuf(srcibuf->x, srcibuf->y, srcibuf->planes, flags); - cacheibuf->profile= srcibuf->profile; + cacheibuf = IMB_allocImBuf(srcibuf->x, srcibuf->y, srcibuf->planes, flags); + cacheibuf->profile = srcibuf->profile; } return cacheibuf; @@ -2677,9 +2738,9 @@ static ImBuf* stabilize_alloc_ibuf(ImBuf *cacheibuf, ImBuf *srcibuf, int fill) void BKE_tracking_stabilization_data(MovieTracking *tracking, int framenr, int width, int height, float loc[2], float *scale, float *angle) { float firstmedian[2], median[2]; - MovieTrackingStabilization *stab= &tracking->stabilization; + MovieTrackingStabilization *stab = &tracking->stabilization; - if ((stab->flag&TRACKING_2D_STABILIZATION)==0) { + if ((stab->flag & TRACKING_2D_STABILIZATION) == 0) { zero_v2(loc); *scale= 1.0f; *angle= 0.0f; @@ -2690,16 +2751,16 @@ void BKE_tracking_stabilization_data(MovieTracking *tracking, int framenr, int w if (stabilization_median_point(tracking, 1, firstmedian)) { stabilization_median_point(tracking, framenr, median); - if ((stab->flag&TRACKING_AUTOSCALE)==0) - stab->scale= 1.0f; + if ((stab->flag & TRACKING_AUTOSCALE) == 0) + stab->scale = 1.0f; if (!stab->ok) { - if (stab->flag&TRACKING_AUTOSCALE) + if (stab->flag & TRACKING_AUTOSCALE) stabilization_auto_scale_factor(tracking, width, height); calculate_stabdata(tracking, framenr, width, height, firstmedian, median, loc, scale, angle); - stab->ok= 1; + stab->ok = TRUE; } else { calculate_stabdata(tracking, framenr, width, height, firstmedian, median, loc, scale, angle); @@ -2707,56 +2768,65 @@ void BKE_tracking_stabilization_data(MovieTracking *tracking, int framenr, int w } else { zero_v2(loc); - *scale= 1.0f; - *angle= 0.0f; + *scale = 1.0f; + *angle = 0.0f; } } ImBuf *BKE_tracking_stabilize(MovieTracking *tracking, int framenr, ImBuf *ibuf, float loc[2], float *scale, float *angle) { float tloc[2], tscale, tangle; - MovieTrackingStabilization *stab= &tracking->stabilization; + MovieTrackingStabilization *stab = &tracking->stabilization; ImBuf *tmpibuf; - float width= ibuf->x, height= ibuf->y; - float aspect= tracking->camera.pixel_aspect; + float width = ibuf->x, height = ibuf->y; + float aspect = tracking->camera.pixel_aspect; - if (loc) copy_v2_v2(tloc, loc); - if (scale) tscale= *scale; + if (loc) + copy_v2_v2(tloc, loc); - if ((stab->flag&TRACKING_2D_STABILIZATION)==0) { - if (loc) zero_v2(loc); - if (scale) *scale= 1.0f; + if (scale) + tscale = *scale; + + if ((stab->flag & TRACKING_2D_STABILIZATION) == 0) { + if (loc) + zero_v2(loc); + + if (scale) + *scale = 1.0f; return ibuf; } BKE_tracking_stabilization_data(tracking, framenr, width, height, tloc, &tscale, &tangle); - tmpibuf= stabilize_alloc_ibuf(NULL, ibuf, 1); + tmpibuf = stabilize_alloc_ibuf(NULL, ibuf, TRUE); /* scale would be handled by matrix transformation when angle is non-zero */ - if (tscale!=1.0f && tangle==0.0f) { + if (tscale != 1.0f && tangle == 0.0f) { ImBuf *scaleibuf; stabilization_auto_scale_factor(tracking, width, height); - scaleibuf= stabilize_alloc_ibuf(stab->scaleibuf, ibuf, 0); - stab->scaleibuf= scaleibuf; + scaleibuf = stabilize_alloc_ibuf(stab->scaleibuf, ibuf, 0); + stab->scaleibuf = scaleibuf; IMB_rectcpy(scaleibuf, ibuf, 0, 0, 0, 0, ibuf->x, ibuf->y); IMB_scalefastImBuf(scaleibuf, ibuf->x*tscale, ibuf->y*tscale); - ibuf= scaleibuf; + ibuf = scaleibuf; } - if (tangle==0.0f) { + if (tangle == 0.0f) { /* if angle is zero, then it's much faster to use rect copy * but could be issues with subpixel precisions */ - IMB_rectcpy(tmpibuf, ibuf, tloc[0]-(tscale-1.0f)*width/2.0f, tloc[1]-(tscale-1.0f)*height/2.0f, 0, 0, ibuf->x, ibuf->y); + IMB_rectcpy(tmpibuf, ibuf, + tloc[0] - (tscale - 1.0f) * width / 2.0f, + tloc[1] - (tscale - 1.0f) * height / 2.0f, + 0, 0, ibuf->x, ibuf->y); } else { float mat[4][4]; - int i, j, filter= tracking->stabilization.filter; + int i, j, filter = tracking->stabilization.filter; void (*interpolation) (struct ImBuf*, struct ImBuf*, float, float, int, int) = NULL; BKE_tracking_stabdata_to_mat4(ibuf->x, ibuf->y, aspect, tloc, tscale, tangle, mat); @@ -2772,9 +2842,9 @@ ImBuf *BKE_tracking_stabilize(MovieTracking *tracking, int framenr, ImBuf *ibuf, /* fallback to default interpolation method */ interpolation = neareast_interpolation; - for (j=0; j<tmpibuf->y; j++) { - for (i=0; i<tmpibuf->x;i++) { - float vec[3]= {i, j, 0}; + for (j = 0; j < tmpibuf->y; j++) { + for (i = 0; i < tmpibuf->x;i++) { + float vec[3] = {i, j, 0}; mul_v3_m4v3(vec, mat, vec); @@ -2783,14 +2853,19 @@ ImBuf *BKE_tracking_stabilize(MovieTracking *tracking, int framenr, ImBuf *ibuf, } } - tmpibuf->userflags|= IB_MIPMAP_INVALID; + tmpibuf->userflags |= IB_MIPMAP_INVALID; if (tmpibuf->rect_float) - tmpibuf->userflags|= IB_RECT_INVALID; + tmpibuf->userflags |= IB_RECT_INVALID; + + if (loc) + copy_v2_v2(loc, tloc); - if (loc) copy_v2_v2(loc, tloc); - if (scale) *scale= tscale; - if (angle) *angle= tangle; + if (scale) + *scale= tscale; + + if (angle) + *angle= tangle; return tmpibuf; } @@ -2811,8 +2886,8 @@ void BKE_tracking_stabdata_to_mat4(int width, int height, float aspect, float lo invert_m4_m4(iamat, amat); /* image center as rotation center */ - cmat[3][0]= (float)width/2.0f; - cmat[3][1]= (float)height/2.0f; + cmat[3][0] = (float)width / 2.0f; + cmat[3][1] = (float)height / 2.0f; invert_m4_m4(icmat, cmat); size_to_mat4(smat, svec); /* scale matrix */ @@ -2827,7 +2902,7 @@ MovieDistortion *BKE_tracking_distortion_create(void) { MovieDistortion *distortion; - distortion= MEM_callocN(sizeof(MovieDistortion), "BKE_tracking_distortion_create"); + distortion = MEM_callocN(sizeof(MovieDistortion), "BKE_tracking_distortion_create"); return distortion; } @@ -2836,12 +2911,12 @@ MovieDistortion *BKE_tracking_distortion_copy(MovieDistortion *distortion) { MovieDistortion *new_distortion; - new_distortion= MEM_callocN(sizeof(MovieDistortion), "BKE_tracking_distortion_create"); + new_distortion = MEM_callocN(sizeof(MovieDistortion), "BKE_tracking_distortion_create"); #ifdef WITH_LIBMV - new_distortion->intrinsics= libmv_CameraIntrinsicsCopy(distortion->intrinsics); + new_distortion->intrinsics = libmv_CameraIntrinsicsCopy(distortion->intrinsics); #else - (void)distortion; + (void) distortion; #endif return new_distortion; @@ -2849,12 +2924,12 @@ MovieDistortion *BKE_tracking_distortion_copy(MovieDistortion *distortion) void BKE_tracking_distortion_update(MovieDistortion *distortion, MovieTracking *tracking, int width, int height) { - MovieTrackingCamera *camera= &tracking->camera; - float aspy= 1.0f/tracking->camera.pixel_aspect; + MovieTrackingCamera *camera = &tracking->camera; + float aspy = 1.0f / tracking->camera.pixel_aspect; #ifdef WITH_LIBMV if (!distortion->intrinsics) { - distortion->intrinsics= libmv_CameraIntrinsicsNew(camera->focal, + distortion->intrinsics = libmv_CameraIntrinsicsNew(camera->focal, camera->principal[0], camera->principal[1] * aspy, camera->k1, camera->k2, camera->k3, width, height * aspy); } @@ -2864,22 +2939,22 @@ void BKE_tracking_distortion_update(MovieDistortion *distortion, MovieTracking * camera->k1, camera->k2, camera->k3, width, height * aspy); } #else - (void)distortion; - (void)width; - (void)height; - (void)camera; - (void)aspy; + (void) distortion; + (void) width; + (void) height; + (void) camera; + (void) aspy; #endif } ImBuf *BKE_tracking_distortion_exec(MovieDistortion *distortion, MovieTracking *tracking, - ImBuf *ibuf, int width, int height, float overscan, int undistort) + ImBuf *ibuf, int width, int height, float overscan, int undistort) { ImBuf *resibuf; BKE_tracking_distortion_update(distortion, tracking, width, height); - resibuf= IMB_dupImBuf(ibuf); + resibuf = IMB_dupImBuf(ibuf); if (ibuf->rect_float) { #ifdef WITH_LIBMV @@ -2895,7 +2970,7 @@ ImBuf *BKE_tracking_distortion_exec(MovieDistortion *distortion, MovieTracking * } #endif - ibuf->userflags|= IB_RECT_INVALID; + ibuf->userflags |= IB_RECT_INVALID; } else { #ifdef WITH_LIBMV @@ -2913,8 +2988,8 @@ ImBuf *BKE_tracking_distortion_exec(MovieDistortion *distortion, MovieTracking * } #ifndef WITH_LIBMV - (void)overscan; - (void)undistort; + (void) overscan; + (void) undistort; #endif return resibuf; @@ -2931,20 +3006,20 @@ void BKE_tracking_distortion_destroy(MovieDistortion *distortion) ImBuf *BKE_tracking_undistort(MovieTracking *tracking, ImBuf *ibuf, int width, int height, float overscan) { - MovieTrackingCamera *camera= &tracking->camera; + MovieTrackingCamera *camera = &tracking->camera; if (camera->intrinsics == NULL) - camera->intrinsics= BKE_tracking_distortion_create(); + camera->intrinsics = BKE_tracking_distortion_create(); return BKE_tracking_distortion_exec(camera->intrinsics, tracking, ibuf, width, height, overscan, 1); } ImBuf *BKE_tracking_distort(MovieTracking *tracking, ImBuf *ibuf, int width, int height, float overscan) { - MovieTrackingCamera *camera= &tracking->camera; + MovieTrackingCamera *camera = &tracking->camera; if (camera->intrinsics == NULL) - camera->intrinsics= BKE_tracking_distortion_create(); + camera->intrinsics = BKE_tracking_distortion_create(); return BKE_tracking_distortion_exec(camera->intrinsics, tracking, ibuf, width, height, overscan, 0); } @@ -2956,11 +3031,11 @@ void BKE_tracking_select_track(ListBase *tracksbase, MovieTrackingTrack *track, BKE_tracking_track_flag(track, area, SELECT, 0); } else { - MovieTrackingTrack *cur= tracksbase->first; + MovieTrackingTrack *cur = tracksbase->first; while (cur) { if ((cur->flag & TRACK_HIDDEN) == 0) { - if (cur==track) { + if (cur == track) { BKE_tracking_track_flag(cur, TRACK_AREA_ALL, SELECT, 1); BKE_tracking_track_flag(cur, area, SELECT, 0); } @@ -2969,7 +3044,7 @@ void BKE_tracking_select_track(ListBase *tracksbase, MovieTrackingTrack *track, } } - cur= cur->next; + cur = cur->next; } } } @@ -2981,13 +3056,13 @@ void BKE_tracking_deselect_track(MovieTrackingTrack *track, int area) MovieTrackingObject *BKE_tracking_new_object(MovieTracking *tracking, const char *name) { - MovieTrackingObject *object= MEM_callocN(sizeof(MovieTrackingObject), "tracking object"); + MovieTrackingObject *object = MEM_callocN(sizeof(MovieTrackingObject), "tracking object"); - if (tracking->tot_object==0) { + if (tracking->tot_object == 0) { /* first object is always camera */ BLI_strncpy(object->name, "Camera", sizeof(object->name)); - object->flag|= TRACKING_OBJECT_CAMERA; + object->flag |= TRACKING_OBJECT_CAMERA; } else { BLI_strncpy(object->name, name, sizeof(object->name)); @@ -2996,9 +3071,9 @@ MovieTrackingObject *BKE_tracking_new_object(MovieTracking *tracking, const char BLI_addtail(&tracking->objects, object); tracking->tot_object++; - tracking->objectnr= BLI_countlist(&tracking->objects) - 1; + tracking->objectnr = BLI_countlist(&tracking->objects) - 1; - object->scale= 1.0f; + object->scale = 1.0f; BKE_tracking_object_unique_name(tracking, object); @@ -3008,7 +3083,7 @@ MovieTrackingObject *BKE_tracking_new_object(MovieTracking *tracking, const char void BKE_tracking_remove_object(MovieTracking *tracking, MovieTrackingObject *object) { MovieTrackingTrack *track; - int index= BLI_findindex(&tracking->objects, object); + int index = BLI_findindex(&tracking->objects, object); if (index<0) return; @@ -3018,10 +3093,10 @@ void BKE_tracking_remove_object(MovieTracking *tracking, MovieTrackingObject *ob return; } - track= object->tracks.first; + track = object->tracks.first; while (track) { - if (track==tracking->act_track) - tracking->act_track= NULL; + if (track == tracking->act_track) + tracking->act_track = NULL; track= track->next; } @@ -3032,9 +3107,9 @@ void BKE_tracking_remove_object(MovieTracking *tracking, MovieTrackingObject *ob tracking->tot_object--; if (index>0) - tracking->objectnr= index-1; + tracking->objectnr = index - 1; else - tracking->objectnr= 0; + tracking->objectnr = 0; } void BKE_tracking_object_unique_name(MovieTracking *tracking, MovieTrackingObject *object) @@ -3044,13 +3119,13 @@ void BKE_tracking_object_unique_name(MovieTracking *tracking, MovieTrackingObjec MovieTrackingObject *BKE_tracking_named_object(MovieTracking *tracking, const char *name) { - MovieTrackingObject *object= tracking->objects.first; + MovieTrackingObject *object = tracking->objects.first; while (object) { if (!strcmp(object->name, name)) return object; - object= object->next; + object = object->next; } return NULL; diff --git a/source/blender/editors/space_clip/clip_buttons.c b/source/blender/editors/space_clip/clip_buttons.c index bb816d1b8b2..eabd64bdc4f 100644 --- a/source/blender/editors/space_clip/clip_buttons.c +++ b/source/blender/editors/space_clip/clip_buttons.c @@ -67,11 +67,11 @@ void ED_clip_buttons_register(ARegionType *art) { PanelType *pt; - pt= MEM_callocN(sizeof(PanelType), "spacetype clip panel gpencil"); + pt = MEM_callocN(sizeof(PanelType), "spacetype clip panel gpencil"); strcpy(pt->idname, "CLIP_PT_gpencil"); strcpy(pt->label, "Grease Pencil"); - pt->draw= gpencil_panel_standard; - pt->flag|= PNL_DEFAULT_CLOSED; + pt->draw = gpencil_panel_standard; + pt->flag |= PNL_DEFAULT_CLOSED; BLI_addtail(&art->paneltypes, pt); } @@ -88,7 +88,7 @@ void uiTemplateMovieClip(uiLayout *layout, bContext *C, PointerRNA *ptr, const c if (!ptr->data) return; - prop= RNA_struct_find_property(ptr, propname); + prop = RNA_struct_find_property(ptr, propname); if (!prop) { printf("%s: property not found: %s.%s\n", __func__, RNA_struct_identifier(ptr->type), propname); @@ -101,8 +101,8 @@ void uiTemplateMovieClip(uiLayout *layout, bContext *C, PointerRNA *ptr, const c return; } - clipptr= RNA_property_pointer_get(ptr, prop); - clip= clipptr.data; + clipptr = RNA_property_pointer_get(ptr, prop); + clip = clipptr.data; uiLayoutSetContextPointer(layout, "edit_movieclip", &clipptr); @@ -110,13 +110,13 @@ void uiTemplateMovieClip(uiLayout *layout, bContext *C, PointerRNA *ptr, const c uiTemplateID(layout, C, ptr, propname, NULL, "CLIP_OT_open", NULL); if (clip) { - row= uiLayoutRow(layout, 0); - block= uiLayoutGetBlock(row); + row = uiLayoutRow(layout, 0); + block = uiLayoutGetBlock(row); uiDefBut(block, LABEL, 0, "File Path:", 0, 19, 145, 19, NULL, 0, 0, 0, 0, ""); - row= uiLayoutRow(layout, 0); + row = uiLayoutRow(layout, 0); split = uiLayoutSplit(row, 0.0, 0); - row= uiLayoutRow(split, 1); + row = uiLayoutRow(split, 1); uiItemR(row, &clipptr, "filepath", 0, "", ICON_NONE); uiItemO(row, "", ICON_FILE_REFRESH, "clip.reload"); @@ -136,7 +136,7 @@ void uiTemplateTrack(uiLayout *layout, PointerRNA *ptr, const char *propname) if (!ptr->data) return; - prop= RNA_struct_find_property(ptr, propname); + prop = RNA_struct_find_property(ptr, propname); if (!prop) { printf("%s: property not found: %s.%s\n", __func__, RNA_struct_identifier(ptr->type), propname); @@ -149,15 +149,15 @@ void uiTemplateTrack(uiLayout *layout, PointerRNA *ptr, const char *propname) return; } - scopesptr= RNA_property_pointer_get(ptr, prop); - scopes= (MovieClipScopes *)scopesptr.data; + scopesptr = RNA_property_pointer_get(ptr, prop); + scopes = (MovieClipScopes *)scopesptr.data; rect.xmin = 0; rect.xmax = 200; rect.ymin = 0; rect.ymax = 120; - block= uiLayoutAbsoluteBlock(layout); + block = uiLayoutAbsoluteBlock(layout); - scopes->track_preview_height= (scopes->track_preview_height<=UI_UNIT_Y)?UI_UNIT_Y:scopes->track_preview_height; + scopes->track_preview_height = (scopes->track_preview_height<=UI_UNIT_Y)?UI_UNIT_Y:scopes->track_preview_height; uiDefBut(block, TRACKPREVIEW, 0, "", rect.xmin, rect.ymin, rect.xmax-rect.xmin, scopes->track_preview_height, scopes, 0, 0, 0, 0, ""); } @@ -189,89 +189,89 @@ typedef struct { static void to_pixel_space(float r[2], float a[2], int width, int height) { copy_v2_v2(r, a); - r[0]*= width; - r[1]*= height; + r[0] *= width; + r[1] *= height; } static void marker_update_cb(bContext *C, void *arg_cb, void *UNUSED(arg)) { - MarkerUpdateCb *cb= (MarkerUpdateCb*) arg_cb; + MarkerUpdateCb *cb = (MarkerUpdateCb*) arg_cb; MovieTrackingMarker *marker; if (!cb->compact) return; - marker= BKE_tracking_ensure_marker(cb->track, cb->framenr); + marker = BKE_tracking_ensure_marker(cb->track, cb->framenr); - marker->flag= cb->marker_flag; + marker->flag = cb->marker_flag; WM_event_add_notifier(C, NC_MOVIECLIP|NA_EDITED, NULL); } static void marker_block_handler(bContext *C, void *arg_cb, int event) { - MarkerUpdateCb *cb= (MarkerUpdateCb*) arg_cb; + MarkerUpdateCb *cb = (MarkerUpdateCb*) arg_cb; MovieTrackingMarker *marker; - int width, height, ok= 0; + int width, height, ok = FALSE; BKE_movieclip_get_size(cb->clip, cb->user, &width, &height); - marker= BKE_tracking_ensure_marker(cb->track, cb->framenr); + marker = BKE_tracking_ensure_marker(cb->track, cb->framenr); - if (event==B_MARKER_POS) { - marker->pos[0]= cb->marker_pos[0]/width; - marker->pos[1]= cb->marker_pos[1]/height; + if (event == B_MARKER_POS) { + marker->pos[0] = cb->marker_pos[0]/width; + marker->pos[1] = cb->marker_pos[1]/height; /* to update position of "parented" objects */ DAG_id_tag_update(&cb->clip->id, 0); WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, NULL); - ok= 1; + ok = TRUE; } - else if (event==B_MARKER_PAT_DIM) { + else if (event == B_MARKER_PAT_DIM) { float dim[2], pat_dim[2]; sub_v2_v2v2(pat_dim, cb->track->pat_max, cb->track->pat_min); - dim[0]= cb->track_pat[0]/width; - dim[1]= cb->track_pat[1]/height; + dim[0] = cb->track_pat[0] / width; + dim[1] = cb->track_pat[1] / height; sub_v2_v2(dim, pat_dim); mul_v2_fl(dim, 0.5f); - cb->track->pat_min[0]-= dim[0]; - cb->track->pat_min[1]-= dim[1]; + cb->track->pat_min[0] -= dim[0]; + cb->track->pat_min[1] -= dim[1]; - cb->track->pat_max[0]+= dim[0]; - cb->track->pat_max[1]+= dim[1]; + cb->track->pat_max[0] += dim[0]; + cb->track->pat_max[1] += dim[1]; BKE_tracking_clamp_track(cb->track, CLAMP_PAT_DIM); - ok= 1; + ok = TRUE; } - else if (event==B_MARKER_SEARCH_POS) { + else if (event == B_MARKER_SEARCH_POS) { float delta[2], side[2]; sub_v2_v2v2(side, cb->track->search_max, cb->track->search_min); mul_v2_fl(side, 0.5f); - delta[0]= cb->track_search_pos[0]/width; - delta[1]= cb->track_search_pos[1]/height; + delta[0] = cb->track_search_pos[0] / width; + delta[1] = cb->track_search_pos[1] / height; sub_v2_v2v2(cb->track->search_min, delta, side); add_v2_v2v2(cb->track->search_max, delta, side); BKE_tracking_clamp_track(cb->track, CLAMP_SEARCH_POS); - ok= 1; + ok = TRUE; } - else if (event==B_MARKER_SEARCH_DIM) { + else if (event == B_MARKER_SEARCH_DIM) { float dim[2], search_dim[2]; sub_v2_v2v2(search_dim, cb->track->search_max, cb->track->search_min); - dim[0]= cb->track_search[0]/width; - dim[1]= cb->track_search[1]/height; + dim[0] = cb->track_search[0]/width; + dim[1] = cb->track_search[1]/height; sub_v2_v2(dim, search_dim); mul_v2_fl(dim, 0.5f); @@ -284,31 +284,31 @@ static void marker_block_handler(bContext *C, void *arg_cb, int event) BKE_tracking_clamp_track(cb->track, CLAMP_SEARCH_DIM); - ok= 1; + ok = TRUE; } - else if (event==B_MARKER_FLAG) { - marker->flag= cb->marker_flag; + else if (event == B_MARKER_FLAG) { + marker->flag = cb->marker_flag; - ok= 1; + ok = TRUE; } - else if (event==B_MARKER_OFFSET) { + else if (event == B_MARKER_OFFSET) { float offset[2], delta[2]; int i; - offset[0]= cb->track_offset[0]/width; - offset[1]= cb->track_offset[1]/height; + offset[0] = cb->track_offset[0] / width; + offset[1] = cb->track_offset[1] / height; sub_v2_v2v2(delta, offset, cb->track->offset); copy_v2_v2(cb->track->offset, offset); - for (i=0; i<cb->track->markersnr; i++) + for (i = 0; i < cb->track->markersnr; i++) sub_v2_v2(cb->track->markers[i].pos, delta); /* to update position of "parented" objects */ DAG_id_tag_update(&cb->clip->id, 0); WM_event_add_notifier(C, NC_SPACE|ND_SPACE_VIEW3D, NULL); - ok= 1; + ok = TRUE; } if (ok) @@ -331,7 +331,7 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P if (!ptr->data) return; - prop= RNA_struct_find_property(ptr, propname); + prop = RNA_struct_find_property(ptr, propname); if (!prop) { printf("%s: property not found: %s.%s\n", __func__, RNA_struct_identifier(ptr->type), propname); @@ -344,30 +344,30 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P return; } - clipptr= RNA_property_pointer_get(ptr, prop); - clip= (MovieClip *)clipptr.data; - user= userptr->data; - track= trackptr->data; + clipptr = RNA_property_pointer_get(ptr, prop); + clip = (MovieClip *)clipptr.data; + user = userptr->data; + track = trackptr->data; - marker= BKE_tracking_get_marker(track, user->framenr); + marker = BKE_tracking_get_marker(track, user->framenr); - cb= MEM_callocN(sizeof(MarkerUpdateCb), "uiTemplateMarker update_cb"); - cb->compact= compact; - cb->clip= clip; - cb->user= user; - cb->track= track; - cb->marker_flag= marker->flag; - cb->framenr= user->framenr; + cb = MEM_callocN(sizeof(MarkerUpdateCb), "uiTemplateMarker update_cb"); + cb->compact = compact; + cb->clip = clip; + cb->user = user; + cb->track = track; + cb->marker_flag = marker->flag; + cb->framenr = user->framenr; if (compact) { - block= uiLayoutGetBlock(layout); + block = uiLayoutGetBlock(layout); - if (cb->marker_flag&MARKER_DISABLED) + if (cb->marker_flag & MARKER_DISABLED) tip= "Marker is disabled at current frame"; else tip= "Marker is enabled at current frame"; - bt= uiDefIconButBitI(block, TOGN, MARKER_DISABLED, 0, ICON_RESTRICT_VIEW_OFF, 0, 0, 20, 20, &cb->marker_flag, 0, 0, 1, 0, tip); + bt = uiDefIconButBitI(block, TOGN, MARKER_DISABLED, 0, ICON_RESTRICT_VIEW_OFF, 0, 0, 20, 20, &cb->marker_flag, 0, 0, 1, 0, tip); uiButSetNFunc(bt, marker_update_cb, cb, NULL); } else { @@ -377,16 +377,16 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P BKE_movieclip_get_size(clip, user, &width, &height); - if (track->flag&TRACK_LOCKED) { + if (track->flag & TRACK_LOCKED) { uiLayoutSetActive(layout, 0); - block= uiLayoutAbsoluteBlock(layout); + block = uiLayoutAbsoluteBlock(layout); uiDefBut(block, LABEL, 0, "Track is locked", 0, 0, 300, 19, NULL, 0, 0, 0, 0, ""); return; } step= 100; - digits= 2; + digits = 2; sub_v2_v2v2(pat_dim, track->pat_max, track->pat_min); sub_v2_v2v2(search_dim, track->search_max, track->search_min); @@ -403,13 +403,13 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P to_pixel_space(cb->track_search_pos, search_pos, width, height); to_pixel_space(cb->track_offset, track->offset, width, height); - cb->marker_flag= marker->flag; + cb->marker_flag = marker->flag; block= uiLayoutAbsoluteBlock(layout); uiBlockSetHandleFunc(block, marker_block_handler, cb); uiBlockSetNFunc(block, marker_update_cb, cb, NULL); - if (cb->marker_flag&MARKER_DISABLED) + if (cb->marker_flag & MARKER_DISABLED) tip= "Marker is disabled at current frame"; else tip= "Marker is enabled at current frame"; @@ -417,10 +417,10 @@ void uiTemplateMarker(uiLayout *layout, PointerRNA *ptr, const char *propname, P uiDefButBitI(block, OPTIONN, MARKER_DISABLED, B_MARKER_FLAG, "Enabled", 10, 190, 145, 19, &cb->marker_flag, 0, 0, 0, 0, tip); - col= uiLayoutColumn(layout, 1); + col = uiLayoutColumn(layout, 1); uiLayoutSetActive(col, (cb->marker_flag&MARKER_DISABLED)==0); - block= uiLayoutAbsoluteBlock(col); + block = uiLayoutAbsoluteBlock(col); uiBlockBeginAlign(block); uiDefBut(block, LABEL, 0, "Position:", 0, 190, 300, 19, NULL, 0, 0, 0, 0, ""); diff --git a/source/blender/editors/space_clip/clip_draw.c b/source/blender/editors/space_clip/clip_draw.c index ef83a62c290..019b23c231b 100644 --- a/source/blender/editors/space_clip/clip_draw.c +++ b/source/blender/editors/space_clip/clip_draw.c @@ -73,8 +73,8 @@ void clip_draw_curfra_label(SpaceClip *sc, float x, float y) { - uiStyle *style= UI_GetStyle(); - int fontid= style->widget.uifont_id; + uiStyle *style = UI_GetStyle(); + int fontid = style->widget.uifont_id; char numstr[32]; float font_dims[2] = {0.0f, 0.0f}; @@ -95,9 +95,9 @@ static void draw_movieclip_cache(SpaceClip *sc, ARegion *ar, MovieClip *clip, Sc { float x; int *points, totseg, i, a; - float sfra= SFRA, efra= EFRA, framelen= ar->winx/(efra-sfra+1); - MovieTrackingTrack *act_track= BKE_tracking_active_track(&clip->tracking); - MovieTrackingReconstruction *reconstruction= BKE_tracking_get_reconstruction(&clip->tracking); + float sfra = SFRA, efra = EFRA, framelen = ar->winx / (efra - sfra + 1); + MovieTrackingTrack *act_track = BKE_tracking_active_track(&clip->tracking); + MovieTrackingReconstruction *reconstruction = BKE_tracking_get_reconstruction(&clip->tracking); glEnable(GL_BLEND); @@ -110,11 +110,11 @@ static void draw_movieclip_cache(SpaceClip *sc, ARegion *ar, MovieClip *clip, Sc if (totseg) { glColor4ub(128, 128, 255, 128); - for (a= 0; a<totseg; a++) { + for (a = 0; a < totseg; a++) { float x1, x2; - x1= (points[a*2]-sfra)/(efra-sfra+1)*ar->winx; - x2= (points[a*2+1]-sfra+1)/(efra-sfra+1)*ar->winx; + x1 = (points[a * 2] - sfra) / (efra - sfra + 1) * ar->winx; + x2 = (points[a * 2 + 1] - sfra + 1) / (efra - sfra + 1) * ar->winx; glRecti(x1, 0, x2, 8); } @@ -122,53 +122,58 @@ static void draw_movieclip_cache(SpaceClip *sc, ARegion *ar, MovieClip *clip, Sc /* track */ if (act_track) { - MovieTrackingTrack *track= act_track; + MovieTrackingTrack *track = act_track; - for (i= sfra, a= 0; i <= efra; i++) { + for (i = sfra, a = 0; i <= efra; i++) { int framenr; MovieTrackingMarker *marker; while (a<track->markersnr) { - if (track->markers[a].framenr>=i) + if (track->markers[a].framenr >= i) break; - if (a<track->markersnr-1 && track->markers[a+1].framenr>i) + if (a < track->markersnr - 1 && track->markers[a + 1].framenr > i) break; a++; } - if (a<track->markersnr) marker= &track->markers[a]; - else marker= &track->markers[track->markersnr-1]; + if (a < track->markersnr) + marker = &track->markers[a]; + else + marker = &track->markers[track->markersnr - 1]; - if ((marker->flag&MARKER_DISABLED)==0) { - framenr= marker->framenr; + if ((marker->flag & MARKER_DISABLED) == 0) { + framenr = marker->framenr; - if (framenr!=i) glColor4ub(128, 128, 0, 96); - else if ((marker->flag&MARKER_TRACKED)==0) glColor4ub(255, 255, 0, 196); - else glColor4ub(255, 255, 0, 96); + if (framenr != i) + glColor4ub(128, 128, 0, 96); + else if ((marker->flag & MARKER_TRACKED) == 0) + glColor4ub(255, 255, 0, 196); + else + glColor4ub(255, 255, 0, 96); - glRecti((i-sfra)*framelen, 0, (i-sfra+1)*framelen, 4); + glRecti((i - sfra) * framelen, 0, (i - sfra + 1)*framelen, 4); } } } /* failed frames */ - if (reconstruction->flag&TRACKING_RECONSTRUCTED) { - int n= reconstruction->camnr; - MovieReconstructedCamera *cameras= reconstruction->cameras; + if (reconstruction->flag & TRACKING_RECONSTRUCTED) { + int n = reconstruction->camnr; + MovieReconstructedCamera *cameras = reconstruction->cameras; glColor4ub(255, 0, 0, 96); - for (i= sfra, a= 0; i <= efra; i++) { - int ok= 0; + for (i = sfra, a = 0; i <= efra; i++) { + int ok = FALSE; - while (a<n) { - if (cameras[a].framenr==i) { - ok= 1; + while (a < n) { + if (cameras[a].framenr == i) { + ok = TRUE; break; } - else if (cameras[a].framenr>i) { + else if (cameras[a].framenr > i) { break; } @@ -176,14 +181,14 @@ static void draw_movieclip_cache(SpaceClip *sc, ARegion *ar, MovieClip *clip, Sc } if (!ok) - glRecti((i-sfra)*framelen, 0, (i-sfra+1)*framelen, 8); + glRecti((i - sfra) * framelen, 0, (i - sfra + 1) * framelen, 8); } } glDisable(GL_BLEND); /* current frame */ - x= (sc->user.framenr-sfra)/(efra-sfra+1)*ar->winx; + x = (sc->user.framenr - sfra) / (efra - sfra + 1) * ar->winx; UI_ThemeColor(TH_CFRAME); glRecti(x, 0, x+framelen, 8); @@ -193,17 +198,17 @@ static void draw_movieclip_cache(SpaceClip *sc, ARegion *ar, MovieClip *clip, Sc static void draw_movieclip_notes(SpaceClip *sc, ARegion *ar) { - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - char str[256]= {0}; - int block= 0; + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + char str[256] = {0}; + int block = FALSE; if (tracking->stats) { BLI_strncpy(str, tracking->stats->message, sizeof(str)); - block= 1; + block = TRUE; } else { - if (sc->flag&SC_LOCK_SELECTION) + if (sc->flag & SC_LOCK_SELECTION) strcpy(str, "Locked"); } @@ -212,10 +217,10 @@ static void draw_movieclip_notes(SpaceClip *sc, ARegion *ar) } static void draw_movieclip_buffer(SpaceClip *sc, ARegion *ar, ImBuf *ibuf, - int width, int height, float zoomx, float zoomy) + int width, int height, float zoomx, float zoomy) { int x, y; - MovieClip *clip= ED_space_clip(sc); + MovieClip *clip = ED_space_clip(sc); /* set zoom */ glPixelZoom(zoomx*width/ibuf->x, zoomy*height/ibuf->y); @@ -223,9 +228,9 @@ static void draw_movieclip_buffer(SpaceClip *sc, ARegion *ar, ImBuf *ibuf, /* find window pixel coordinates of origin */ UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &x, &y); - if (sc->flag&SC_MUTE_FOOTAGE) { + if (sc->flag & SC_MUTE_FOOTAGE) { glColor3f(0.0f, 0.0f, 0.0f); - glRectf(x, y, x+zoomx*width, y+zoomy*height); + glRectf(x, y, x + zoomx * width, y + zoomy * height); } else { if (ibuf->rect_float && !ibuf->rect) { @@ -237,7 +242,7 @@ static void draw_movieclip_buffer(SpaceClip *sc, ARegion *ar, ImBuf *ibuf, } /* draw boundary border for frame if stabilization is enabled */ - if (sc->flag&SC_SHOW_STABLE && clip->tracking.stabilization.flag&TRACKING_2D_STABILIZATION) { + if (sc->flag & SC_SHOW_STABLE && clip->tracking.stabilization.flag & TRACKING_2D_STABILIZATION) { glColor3f(0.0f, 0.0f, 0.0f); glLineStipple(3, 0xaaaa); glEnable(GL_LINE_STIPPLE); @@ -270,35 +275,35 @@ static void draw_movieclip_buffer(SpaceClip *sc, ARegion *ar, ImBuf *ibuf, static void draw_track_path(SpaceClip *sc, MovieClip *UNUSED(clip), MovieTrackingTrack *track) { - int count= sc->path_length; - int i, a, b, curindex= -1; + int count = sc->path_length; + int i, a, b, curindex = -1; float path[102][2]; - int tiny= sc->flag&SC_SHOW_TINY_MARKER, framenr; + int tiny = sc->flag&SC_SHOW_TINY_MARKER, framenr; MovieTrackingMarker *marker; - if (count==0) + if (count == 0) return; - marker= BKE_tracking_get_marker(track, sc->user.framenr); - if (marker->framenr!=sc->user.framenr || marker->flag&MARKER_DISABLED) + marker = BKE_tracking_get_marker(track, sc->user.framenr); + if (marker->framenr != sc->user.framenr || marker->flag & MARKER_DISABLED) return; - framenr= marker->framenr; + framenr = marker->framenr; - a= count; - i= framenr-1; - while (i>=framenr-count) { - marker= BKE_tracking_get_marker(track, i); + a = count; + i = framenr - 1; + while (i >= framenr - count) { + marker = BKE_tracking_get_marker(track, i); - if (!marker || marker->flag&MARKER_DISABLED) + if (!marker || marker->flag & MARKER_DISABLED) break; - if (marker->framenr==i) { + if (marker->framenr == i) { add_v2_v2v2(path[--a], marker->pos, track->offset); ED_clip_point_undistorted_pos(sc, path[a], path[a]); - if (marker->framenr==sc->user.framenr) - curindex= a; + if (marker->framenr == sc->user.framenr) + curindex = a; } else { break; @@ -307,16 +312,16 @@ static void draw_track_path(SpaceClip *sc, MovieClip *UNUSED(clip), MovieTrackin i--; } - b= count; - i= framenr; - while (i<=framenr+count) { - marker= BKE_tracking_get_marker(track, i); + b = count; + i = framenr; + while (i <= framenr+count) { + marker = BKE_tracking_get_marker(track, i); - if (!marker || marker->flag&MARKER_DISABLED) + if (!marker || marker->flag & MARKER_DISABLED) break; - if (marker->framenr==i) { - if (marker->framenr==sc->user.framenr) + if (marker->framenr == i) { + if (marker->framenr == sc->user.framenr) curindex= b; add_v2_v2v2(path[b++], marker->pos, track->offset); @@ -334,8 +339,8 @@ static void draw_track_path(SpaceClip *sc, MovieClip *UNUSED(clip), MovieTrackin if (TRACK_VIEW_SELECTED(sc, track)) { glPointSize(5.0f); glBegin(GL_POINTS); - for (i= a; i<b; i++) { - if (i!=curindex) + for (i = a; i < b; i++) { + if (i != curindex) glVertex2f(path[i][0], path[i][1]); } glEnd(); @@ -343,7 +348,7 @@ static void draw_track_path(SpaceClip *sc, MovieClip *UNUSED(clip), MovieTrackin glLineWidth(3.0f); glBegin(GL_LINE_STRIP); - for (i= a; i<b; i++) + for (i = a; i < b; i++) glVertex2f(path[i][0], path[i][1]); glEnd(); glLineWidth(1.0f); @@ -354,11 +359,11 @@ static void draw_track_path(SpaceClip *sc, MovieClip *UNUSED(clip), MovieTrackin if (TRACK_VIEW_SELECTED(sc, track)) { glPointSize(3.0f); glBegin(GL_POINTS); - for (i= a; i<b; i++) { - if (i==count+1) + for (i = a; i < b; i++) { + if (i == count + 1) UI_ThemeColor(TH_PATH_AFTER); - if (i!=curindex) + if (i != curindex) glVertex2f(path[i][0], path[i][1]); } glEnd(); @@ -367,8 +372,8 @@ static void draw_track_path(SpaceClip *sc, MovieClip *UNUSED(clip), MovieTrackin UI_ThemeColor(TH_PATH_BEFORE); glBegin(GL_LINE_STRIP); - for (i= a; i<b; i++) { - if (i==count+1) + for (i = a; i < b; i++) { + if (i == count + 1) UI_ThemeColor(TH_PATH_AFTER); glVertex2f(path[i][0], path[i][1]); @@ -379,16 +384,16 @@ static void draw_track_path(SpaceClip *sc, MovieClip *UNUSED(clip), MovieTrackin static void draw_marker_outline(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, float marker_pos[2], int width, int height) { - int tiny= sc->flag&SC_SHOW_TINY_MARKER; - int show_search= 0; + int tiny = sc->flag&SC_SHOW_TINY_MARKER; + int show_search = FALSE; float px[2]; UI_ThemeColor(TH_MARKER_OUTLINE); - px[0]= 1.0f/width/sc->zoom; - px[1]= 1.0f/height/sc->zoom; + px[0] = 1.0f / width / sc->zoom; + px[1] = 1.0f / height / sc->zoom; - if ((marker->flag&MARKER_DISABLED)==0) { + if ((marker->flag & MARKER_DISABLED) == 0) { float pos[2]; rctf r; @@ -428,9 +433,10 @@ static void draw_marker_outline(SpaceClip *sc, MovieTrackingTrack *track, MovieT glPushMatrix(); glTranslatef(marker_pos[0], marker_pos[1], 0); - if (!tiny) glLineWidth(3.0f); + if (!tiny) + glLineWidth(3.0f); - if (sc->flag&SC_SHOW_MARKER_PATTERN) { + if (sc->flag & SC_SHOW_MARKER_PATTERN) { glBegin(GL_LINE_LOOP); glVertex2f(track->pat_min[0], track->pat_min[1]); glVertex2f(track->pat_max[0], track->pat_min[1]); @@ -439,8 +445,9 @@ static void draw_marker_outline(SpaceClip *sc, MovieTrackingTrack *track, MovieT glEnd(); } - show_search= TRACK_VIEW_SELECTED(sc, track) && ((marker->flag&MARKER_DISABLED)==0 || (sc->flag&SC_SHOW_MARKER_PATTERN)==0); - if (sc->flag&SC_SHOW_MARKER_SEARCH && show_search) { + show_search = TRACK_VIEW_SELECTED(sc, track) && + ((marker->flag & MARKER_DISABLED) == 0 || (sc->flag & SC_SHOW_MARKER_PATTERN) == 0); + if (sc->flag & SC_SHOW_MARKER_SEARCH && show_search) { glBegin(GL_LINE_LOOP); glVertex2f(track->search_min[0], track->search_min[1]); glVertex2f(track->search_max[0], track->search_min[1]); @@ -450,22 +457,27 @@ static void draw_marker_outline(SpaceClip *sc, MovieTrackingTrack *track, MovieT } glPopMatrix(); - if (!tiny) glLineWidth(1.0f); + if (!tiny) + glLineWidth(1.0f); } static void track_colors(MovieTrackingTrack *track, int act, float col[3], float scol[3]) { - if (track->flag&TRACK_CUSTOMCOLOR) { - if (act) UI_GetThemeColor3fv(TH_ACT_MARKER, scol); - else copy_v3_v3(scol, track->color); + if (track->flag & TRACK_CUSTOMCOLOR) { + if (act) + UI_GetThemeColor3fv(TH_ACT_MARKER, scol); + else + copy_v3_v3(scol, track->color); mul_v3_v3fl(col, track->color, 0.5f); } else { UI_GetThemeColor3fv(TH_MARKER, col); - if (act) UI_GetThemeColor3fv(TH_ACT_MARKER, scol); - else UI_GetThemeColor3fv(TH_SEL_MARKER, scol); + if (act) + UI_GetThemeColor3fv(TH_ACT_MARKER, scol); + else + UI_GetThemeColor3fv(TH_SEL_MARKER, scol); } } @@ -477,22 +489,27 @@ static void draw_marker_areas(SpaceClip *sc, MovieTrackingTrack *track, MovieTra track_colors(track, act, col, scol); - px[0]= 1.0f/width/sc->zoom; - px[1]= 1.0f/height/sc->zoom; + px[0]= 1.0f / width / sc->zoom; + px[1]= 1.0f / height / sc->zoom; /* marker position and offset position */ - if ((track->flag&SELECT)==sel && (marker->flag&MARKER_DISABLED)==0) { + if ((track->flag&SELECT) == sel && (marker->flag & MARKER_DISABLED) == 0) { float pos[2]; rctf r; - if (track->flag&TRACK_LOCKED) { - if (act) UI_ThemeColor(TH_ACT_MARKER); - else if (track->flag&SELECT) UI_ThemeColorShade(TH_LOCK_MARKER, 64); - else UI_ThemeColor(TH_LOCK_MARKER); + if (track->flag & TRACK_LOCKED) { + if (act) + UI_ThemeColor(TH_ACT_MARKER); + else if (track->flag & SELECT) + UI_ThemeColorShade(TH_LOCK_MARKER, 64); + else + UI_ThemeColor(TH_LOCK_MARKER); } else { - if (track->flag&SELECT) glColor3fv(scol); - else glColor3fv(col); + if (track->flag & SELECT) + glColor3fv(scol); + else + glColor3fv(col); } BLI_init_rctf(&r, track->pat_min[0], track->pat_max[0], track->pat_min[1], track->pat_max[1]); @@ -500,11 +517,15 @@ static void draw_marker_areas(SpaceClip *sc, MovieTrackingTrack *track, MovieTra ED_clip_point_undistorted_pos(sc, pos, pos); if (BLI_in_rctf(&r, pos[0]-marker_pos[0], pos[1]-marker_pos[1])) { - if (!tiny) glPointSize(2.0f); + if (!tiny) + glPointSize(2.0f); + glBegin(GL_POINTS); glVertex2f(pos[0], pos[1]); glEnd(); - if (!tiny) glPointSize(1.0f); + + if (!tiny) + glPointSize(1.0f); } else { glBegin(GL_LINES); @@ -546,19 +567,24 @@ static void draw_marker_areas(SpaceClip *sc, MovieTrackingTrack *track, MovieTra glEnable(GL_LINE_STIPPLE); } - if ((track->pat_flag&SELECT)==sel && (sc->flag&SC_SHOW_MARKER_PATTERN)) { - if (track->flag&TRACK_LOCKED) { - if (act) UI_ThemeColor(TH_ACT_MARKER); - else if (track->pat_flag&SELECT) UI_ThemeColorShade(TH_LOCK_MARKER, 64); + if ((track->pat_flag & SELECT) == sel && (sc->flag & SC_SHOW_MARKER_PATTERN)) { + if (track->flag & TRACK_LOCKED) { + if (act) + UI_ThemeColor(TH_ACT_MARKER); + else if (track->pat_flag & SELECT) + UI_ThemeColorShade(TH_LOCK_MARKER, 64); else UI_ThemeColor(TH_LOCK_MARKER); } - else if (marker->flag&MARKER_DISABLED) { - if (act) UI_ThemeColor(TH_ACT_MARKER); - else if (track->pat_flag&SELECT) UI_ThemeColorShade(TH_DIS_MARKER, 128); + else if (marker->flag & MARKER_DISABLED) { + if (act) + UI_ThemeColor(TH_ACT_MARKER); + else if (track->pat_flag & SELECT) + UI_ThemeColorShade(TH_DIS_MARKER, 128); else UI_ThemeColor(TH_DIS_MARKER); } else { - if (track->pat_flag&SELECT) glColor3fv(scol); + if (track->pat_flag & SELECT) + glColor3fv(scol); else glColor3fv(col); } @@ -571,21 +597,28 @@ static void draw_marker_areas(SpaceClip *sc, MovieTrackingTrack *track, MovieTra } /* search */ - show_search= TRACK_VIEW_SELECTED(sc, track) && ((marker->flag&MARKER_DISABLED)==0 || (sc->flag&SC_SHOW_MARKER_PATTERN)==0); - if ((track->search_flag&SELECT)==sel && (sc->flag&SC_SHOW_MARKER_SEARCH) && show_search) { - if (track->flag&TRACK_LOCKED) { - if (act) UI_ThemeColor(TH_ACT_MARKER); - else if (track->search_flag&SELECT) UI_ThemeColorShade(TH_LOCK_MARKER, 64); + show_search = TRACK_VIEW_SELECTED(sc, track) && + ((marker->flag & MARKER_DISABLED) == 0 || (sc->flag & SC_SHOW_MARKER_PATTERN) == 0); + if ((track->search_flag & SELECT) == sel && (sc->flag & SC_SHOW_MARKER_SEARCH) && show_search) { + if (track->flag & TRACK_LOCKED) { + if (act) + UI_ThemeColor(TH_ACT_MARKER); + else if (track->search_flag & SELECT) + UI_ThemeColorShade(TH_LOCK_MARKER, 64); else UI_ThemeColor(TH_LOCK_MARKER); } - else if (marker->flag&MARKER_DISABLED) { - if (act) UI_ThemeColor(TH_ACT_MARKER); - else if (track->search_flag&SELECT) UI_ThemeColorShade(TH_DIS_MARKER, 128); + else if (marker->flag & MARKER_DISABLED) { + if (act) + UI_ThemeColor(TH_ACT_MARKER); + else if (track->search_flag & SELECT) + UI_ThemeColorShade(TH_DIS_MARKER, 128); else UI_ThemeColor(TH_DIS_MARKER); } else { - if (track->search_flag&SELECT) glColor3fv(scol); - else glColor3fv(col); + if (track->search_flag & SELECT) + glColor3fv(scol); + else + glColor3fv(col); } glBegin(GL_LINE_LOOP); @@ -597,20 +630,29 @@ static void draw_marker_areas(SpaceClip *sc, MovieTrackingTrack *track, MovieTra } /* pyramid */ - if (sel && TRACK_VIEW_SELECTED(sc, track) && (track->tracker==TRACKER_KLT) && (marker->flag&MARKER_DISABLED)==0) { - if (track->flag&TRACK_LOCKED) { - if (act) UI_ThemeColor(TH_ACT_MARKER); - else if (track->pat_flag&SELECT) UI_ThemeColorShade(TH_LOCK_MARKER, 64); + if (sel && TRACK_VIEW_SELECTED(sc, track) && + (track->tracker == TRACKER_KLT) && + (marker->flag & MARKER_DISABLED) == 0) + { + if (track->flag & TRACK_LOCKED) { + if (act) + UI_ThemeColor(TH_ACT_MARKER); + else if (track->pat_flag & SELECT) + UI_ThemeColorShade(TH_LOCK_MARKER, 64); else UI_ThemeColor(TH_LOCK_MARKER); } - else if (marker->flag&MARKER_DISABLED) { - if (act) UI_ThemeColor(TH_ACT_MARKER); - else if (track->pat_flag&SELECT) UI_ThemeColorShade(TH_DIS_MARKER, 128); + else if (marker->flag & MARKER_DISABLED) { + if (act) + UI_ThemeColor(TH_ACT_MARKER); + else if (track->pat_flag & SELECT) + UI_ThemeColorShade(TH_DIS_MARKER, 128); else UI_ThemeColor(TH_DIS_MARKER); } else { - if (track->pat_flag&SELECT) glColor3fv(scol); - else glColor3fv(col); + if (track->pat_flag & SELECT) + glColor3fv(scol); + else + glColor3fv(col); } { @@ -639,16 +681,16 @@ static void draw_marker_areas(SpaceClip *sc, MovieTrackingTrack *track, MovieTra } static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, - float marker_pos[2], int outline, int sel, int act, int width, int height) + float marker_pos[2], int outline, int sel, int act, int width, int height) { float x, y, dx, dy, patdx, patdy, searchdx, searchdy, tdx, tdy; - int tiny= sc->flag&SC_SHOW_TINY_MARKER; + int tiny = sc->flag&SC_SHOW_TINY_MARKER; float col[3], scol[3], px[2]; - if ((tiny && outline) || (marker->flag&MARKER_DISABLED)) + if ((tiny && outline) || (marker->flag & MARKER_DISABLED)) return; - if (!TRACK_VIEW_SELECTED(sc, track) || track->flag&TRACK_LOCKED) + if (!TRACK_VIEW_SELECTED(sc, track) || track->flag & TRACK_LOCKED) return; track_colors(track, act, col, scol); @@ -661,34 +703,36 @@ static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, Mo glPushMatrix(); glTranslatef(marker_pos[0], marker_pos[1], 0); - dx= 6.0f/width/sc->zoom; - dy= 6.0f/height/sc->zoom; + dx = 6.0f / width / sc->zoom; + dy = 6.0f / height / sc->zoom; - patdx= MIN2(dx*2.0f/3.0f, (track->pat_max[0]-track->pat_min[0])/6.0f); - patdy= MIN2(dy*2.0f/3.0f, (track->pat_max[1]-track->pat_min[1])/6.0f); + patdx = MIN2(dx * 2.0f / 3.0f, (track->pat_max[0] - track->pat_min[0]) / 6.0f); + patdy = MIN2(dy * 2.0f / 3.0f, (track->pat_max[1] - track->pat_min[1]) / 6.0f); - searchdx= MIN2(dx, (track->search_max[0]-track->search_min[0])/6.0f); - searchdy= MIN2(dy, (track->search_max[1]-track->search_min[1])/6.0f); + searchdx = MIN2(dx, (track->search_max[0] - track->search_min[0]) / 6.0f); + searchdy = MIN2(dy, (track->search_max[1] - track->search_min[1]) / 6.0f); - px[0]= 1.0f/sc->zoom/width/sc->scale; - px[1]= 1.0f/sc->zoom/height/sc->scale; + px[0] = 1.0f / sc->zoom / width / sc->scale; + px[1] = 1.0f / sc->zoom / height / sc->scale; - if ((sc->flag&SC_SHOW_MARKER_SEARCH) && ((track->search_flag&SELECT)==sel || outline)) { + if ((sc->flag & SC_SHOW_MARKER_SEARCH) && ((track->search_flag & SELECT) == sel || outline)) { if (!outline) { - if (track->search_flag&SELECT) glColor3fv(scol); - else glColor3fv(col); + if (track->search_flag & SELECT) + glColor3fv(scol); + else + glColor3fv(col); } /* search offset square */ - x= track->search_min[0]; - y= track->search_max[1]; + x = track->search_min[0]; + y = track->search_max[1]; - tdx= searchdx; - tdy= searchdy; + tdx = searchdx; + tdy = searchdy; if (outline) { - tdx+= px[0]; - tdy+= px[1]; + tdx += px[0]; + tdy += px[1]; } glBegin(GL_QUADS); @@ -699,15 +743,15 @@ static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, Mo glEnd(); /* search re-sizing triangle */ - x= track->search_max[0]; - y= track->search_min[1]; + x = track->search_max[0]; + y = track->search_min[1]; - tdx= searchdx*2.0f; - tdy= searchdy*2.0f; + tdx = searchdx*2.0f; + tdy = searchdy*2.0f; if (outline) { - tdx+= px[0]; - tdy+= px[1]; + tdx += px[0]; + tdy += px[1]; } glBegin(GL_TRIANGLES); @@ -717,22 +761,24 @@ static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, Mo glEnd(); } - if ((sc->flag&SC_SHOW_MARKER_PATTERN) && ((track->pat_flag&SELECT)==sel || outline)) { + if ((sc->flag & SC_SHOW_MARKER_PATTERN) && ((track->pat_flag & SELECT)==sel || outline)) { if (!outline) { - if (track->pat_flag&SELECT) glColor3fv(scol); - else glColor3fv(col); + if (track->pat_flag & SELECT) + glColor3fv(scol); + else + glColor3fv(col); } /* pattern offset square */ - x= track->pat_min[0]; - y= track->pat_max[1]; + x = track->pat_min[0]; + y = track->pat_max[1]; - tdx= patdx; - tdy= patdy; + tdx = patdx; + tdy = patdy; if (outline) { - tdx+= px[0]; - tdy+= px[1]; + tdx += px[0]; + tdy += px[1]; } glBegin(GL_QUADS); @@ -743,15 +789,15 @@ static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, Mo glEnd(); /* pattern re-sizing triangle */ - x= track->pat_max[0]; - y= track->pat_min[1]; + x = track->pat_max[0]; + y = track->pat_min[1]; - tdx= patdx*2.0f; - tdy= patdy*2.0f; + tdx = patdx*2.0f; + tdy = patdy*2.0f; if (outline) { - tdx+= px[0]; - tdy+= px[1]; + tdx += px[0]; + tdy += px[1]; } glBegin(GL_TRIANGLES); @@ -768,52 +814,60 @@ static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, Mo } static void draw_marker_texts(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, float marker_pos[2], int act, - int width, int height, float zoomx, float zoomy) + int width, int height, float zoomx, float zoomy) { - char str[128]= {0}, state[64]= {0}; - float dx= 0.0f, dy= 0.0f, fontsize, pos[3]; - uiStyle *style= U.uistyles.first; - int fontid= style->widget.uifont_id; + char str[128] = {0}, state[64] = {0}; + float dx= 0.0f, dy = 0.0f, fontsize, pos[3]; + uiStyle *style = U.uistyles.first; + int fontid = style->widget.uifont_id; if (!TRACK_VIEW_SELECTED(sc, track)) return; BLF_size(fontid, 11.0f, U.dpi); - fontsize= BLF_height_max(fontid); + fontsize = BLF_height_max(fontid); - if (marker->flag&MARKER_DISABLED) { - if (act) UI_ThemeColor(TH_ACT_MARKER); - else UI_ThemeColorShade(TH_DIS_MARKER, 128); + if (marker->flag & MARKER_DISABLED) { + if (act) + UI_ThemeColor(TH_ACT_MARKER); + else + UI_ThemeColorShade(TH_DIS_MARKER, 128); } else { - if (act) UI_ThemeColor(TH_ACT_MARKER); - else UI_ThemeColor(TH_SEL_MARKER); + if (act) + UI_ThemeColor(TH_ACT_MARKER); + else + UI_ThemeColor(TH_SEL_MARKER); } - if ((sc->flag&SC_SHOW_MARKER_SEARCH) && - ((marker->flag&MARKER_DISABLED)==0 || (sc->flag&SC_SHOW_MARKER_PATTERN)==0)) + if ((sc->flag & SC_SHOW_MARKER_SEARCH) && + ((marker->flag & MARKER_DISABLED) == 0 || (sc->flag & SC_SHOW_MARKER_PATTERN) == 0)) { - dx= track->search_min[0]; - dy= track->search_min[1]; + dx = track->search_min[0]; + dy = track->search_min[1]; } - else if (sc->flag&SC_SHOW_MARKER_PATTERN) { - dx= track->pat_min[0]; - dy= track->pat_min[1]; + else if (sc->flag & SC_SHOW_MARKER_PATTERN) { + dx = track->pat_min[0]; + dy = track->pat_min[1]; } - pos[0]= (marker_pos[0]+dx)*width; - pos[1]= (marker_pos[1]+dy)*height; - pos[2]= 0.0f; + pos[0] = (marker_pos[0] + dx) * width; + pos[1] = (marker_pos[1] + dy) * height; + pos[2] = 0.0f; mul_m4_v3(sc->stabmat, pos); - pos[0]= pos[0]*zoomx; - pos[1]= pos[1]*zoomy - fontsize; + pos[0] = pos[0]*zoomx; + pos[1] = pos[1]*zoomy - fontsize; - if (marker->flag&MARKER_DISABLED) strcpy(state, "disabled"); - else if (marker->framenr!=sc->user.framenr) strcpy(state, "estimated"); - else if (marker->flag&MARKER_TRACKED) strcpy(state, "tracked"); - else strcpy(state, "keyframed"); + if (marker->flag & MARKER_DISABLED) + strcpy(state, "disabled"); + else if (marker->framenr != sc->user.framenr) + strcpy(state, "estimated"); + else if (marker->flag & MARKER_TRACKED) + strcpy(state, "tracked"); + else + strcpy(state, "keyframed"); if (state[0]) BLI_snprintf(str, sizeof(str), "%s: %s", track->name, state); @@ -822,16 +876,16 @@ static void draw_marker_texts(SpaceClip *sc, MovieTrackingTrack *track, MovieTra BLF_position(fontid, pos[0], pos[1], 0.0f); BLF_draw(fontid, str, sizeof(str)); - pos[1]-= fontsize; + pos[1] -= fontsize; - if (track->flag&TRACK_HAS_BUNDLE) { + if (track->flag & TRACK_HAS_BUNDLE) { BLI_snprintf(str, sizeof(str), "Average error: %.3f", track->error); BLF_position(fontid, pos[0], pos[1], 0.0f); BLF_draw(fontid, str, sizeof(str)); - pos[1]-= fontsize; + pos[1] -= fontsize; } - if (track->flag&TRACK_LOCKED) { + if (track->flag & TRACK_LOCKED) { BLF_position(fontid, pos[0], pos[1], 0.0f); BLF_draw(fontid, "locked", 6); } @@ -840,25 +894,25 @@ static void draw_marker_texts(SpaceClip *sc, MovieTrackingTrack *track, MovieTra static void view2d_to_region_float(View2D *v2d, float x, float y, float *regionx, float *regiony) { /* express given coordinates as proportional values */ - x= -v2d->cur.xmin / (v2d->cur.xmax-v2d->cur.xmin); - y= -v2d->cur.ymin / (v2d->cur.ymax-v2d->cur.ymin); + x = -v2d->cur.xmin / (v2d->cur.xmax - v2d->cur.xmin); + y = -v2d->cur.ymin / (v2d->cur.ymax - v2d->cur.ymin); /* convert proportional distances to screen coordinates */ - *regionx= v2d->mask.xmin + x*(v2d->mask.xmax-v2d->mask.xmin); - *regiony= v2d->mask.ymin + y*(v2d->mask.ymax-v2d->mask.ymin); + *regionx = v2d->mask.xmin + x*(v2d->mask.xmax - v2d->mask.xmin); + *regiony = v2d->mask.ymin + y*(v2d->mask.ymax - v2d->mask.ymin); } static void draw_tracking_tracks(SpaceClip *sc, ARegion *ar, MovieClip *clip, - int width, int height, float zoomx, float zoomy) + int width, int height, float zoomx, float zoomy) { float x, y; - MovieTracking* tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); MovieTrackingTrack *track, *act_track; MovieTrackingMarker *marker; - int framenr= sc->user.framenr; - int undistort= sc->user.render_flag&MCLIP_PROXY_RENDER_UNDISTORT; - float *marker_pos= NULL, *fp, *active_pos= NULL, cur_pos[2]; + int framenr = sc->user.framenr; + int undistort = sc->user.render_flag & MCLIP_PROXY_RENDER_UNDISTORT; + float *marker_pos = NULL, *fp, *active_pos = NULL, cur_pos[2]; /* ** find window pixel coordinates of origin ** */ @@ -877,65 +931,65 @@ static void draw_tracking_tracks(SpaceClip *sc, ARegion *ar, MovieClip *clip, glMultMatrixf(sc->stabmat); glScalef(width, height, 0); - act_track= BKE_tracking_active_track(tracking); + act_track = BKE_tracking_active_track(tracking); - if (sc->user.render_flag&MCLIP_PROXY_RENDER_UNDISTORT) { - int count= 0; + if (sc->user.render_flag & MCLIP_PROXY_RENDER_UNDISTORT) { + int count = 0; /* count */ - track= tracksbase->first; + track = tracksbase->first; while (track) { - if ((track->flag&TRACK_HIDDEN)==0) { - marker= BKE_tracking_get_marker(track, framenr); + if ((track->flag & TRACK_HIDDEN)==0) { + marker = BKE_tracking_get_marker(track, framenr); if (MARKER_VISIBLE(sc, marker)) count++; } - track= track->next; + track = track->next; } /* undistort */ if (count) { - marker_pos= MEM_callocN(2*sizeof(float)*count, "draw_tracking_tracks marker_pos"); + marker_pos = MEM_callocN(2*sizeof(float)*count, "draw_tracking_tracks marker_pos"); - track= tracksbase->first; - fp= marker_pos; + track = tracksbase->first; + fp = marker_pos; while (track) { - if ((track->flag&TRACK_HIDDEN)==0) { - marker= BKE_tracking_get_marker(track, framenr); + if ((track->flag & TRACK_HIDDEN)==0) { + marker = BKE_tracking_get_marker(track, framenr); if (MARKER_VISIBLE(sc, marker)) { ED_clip_point_undistorted_pos(sc, marker->pos, fp); - if (track==act_track) - active_pos= fp; + if (track == act_track) + active_pos = fp; - fp+= 2; + fp += 2; } } - track= track->next; + track = track->next; } } } - if (sc->flag&SC_SHOW_TRACK_PATH) { - track= tracksbase->first; + if (sc->flag & SC_SHOW_TRACK_PATH) { + track = tracksbase->first; while (track) { - if ((track->flag&TRACK_HIDDEN)==0) + if ((track->flag & TRACK_HIDDEN)==0) draw_track_path(sc, clip, track); - track= track->next; + track = track->next; } } /* markers outline and non-selected areas */ - track= tracksbase->first; - fp= marker_pos; + track = tracksbase->first; + fp = marker_pos; while (track) { - if ((track->flag&TRACK_HIDDEN)==0) { - marker= BKE_tracking_get_marker(track, framenr); + if ((track->flag & TRACK_HIDDEN)==0) { + marker = BKE_tracking_get_marker(track, framenr); if (MARKER_VISIBLE(sc, marker)) { copy_v2_v2(cur_pos, fp ? fp : marker->pos); @@ -946,21 +1000,21 @@ static void draw_tracking_tracks(SpaceClip *sc, ARegion *ar, MovieClip *clip, draw_marker_slide_zones(sc, track, marker, cur_pos, 0, 0, 0, width, height); if (fp) - fp+= 2; + fp += 2; } } - track= track->next; + track = track->next; } /* selected areas only, so selection wouldn't be overlapped by * non-selected areas */ - track= tracksbase->first; - fp= marker_pos; + track = tracksbase->first; + fp = marker_pos; while (track) { - if ((track->flag&TRACK_HIDDEN)==0) { - int act= track==act_track; - marker= BKE_tracking_get_marker(track, framenr); + if ((track->flag & TRACK_HIDDEN)==0) { + int act = track == act_track; + marker = BKE_tracking_get_marker(track, framenr); if (MARKER_VISIBLE(sc, marker)) { if (!act) { @@ -971,17 +1025,17 @@ static void draw_tracking_tracks(SpaceClip *sc, ARegion *ar, MovieClip *clip, } if (fp) - fp+= 2; + fp += 2; } } - track= track->next; + track = track->next; } /* active marker would be displayed on top of everything else */ if (act_track) { - if ((act_track->flag&TRACK_HIDDEN)==0) { - marker= BKE_tracking_get_marker(act_track, framenr); + if ((act_track->flag & TRACK_HIDDEN)==0) { + marker = BKE_tracking_get_marker(act_track, framenr); if (MARKER_VISIBLE(sc, marker)) { copy_v2_v2(cur_pos, active_pos ? active_pos : marker->pos); @@ -992,19 +1046,19 @@ static void draw_tracking_tracks(SpaceClip *sc, ARegion *ar, MovieClip *clip, } } - if (sc->flag&SC_SHOW_BUNDLES) { - MovieTrackingObject *object= BKE_tracking_active_object(tracking); + if (sc->flag & SC_SHOW_BUNDLES) { + MovieTrackingObject *object = BKE_tracking_active_object(tracking); float pos[4], vec[4], mat[4][4], aspy; glEnable(GL_POINT_SMOOTH); glPointSize(3.0f); - aspy= 1.0f/clip->tracking.camera.pixel_aspect; + aspy = 1.0f / clip->tracking.camera.pixel_aspect; BKE_tracking_projection_matrix(tracking, object, framenr, width, height, mat); - track= tracksbase->first; + track = tracksbase->first; while (track) { - if ((track->flag&TRACK_HIDDEN)==0 && track->flag&TRACK_HAS_BUNDLE) { + if ((track->flag & TRACK_HIDDEN) == 0 && track->flag & TRACK_HAS_BUNDLE) { marker= BKE_tracking_get_marker(track, framenr); if (MARKER_VISIBLE(sc, marker)) { @@ -1014,29 +1068,33 @@ static void draw_tracking_tracks(SpaceClip *sc, ARegion *ar, MovieClip *clip, mul_v4_m4v4(pos, mat, vec); - pos[0]= (pos[0]/(pos[3]*2.0f)+0.5f)*width; - pos[1]= (pos[1]/(pos[3]*2.0f)+0.5f)*height*aspy; + pos[0] = (pos[0] / (pos[3] * 2.0f) + 0.5f) * width; + pos[1] = (pos[1] / (pos[3] * 2.0f) + 0.5f) * height * aspy; BKE_tracking_apply_intrinsics(tracking, pos, npos); - if (npos[0]>=0.0f && npos[1]>=0.0f && npos[0]<=width && npos[1]<=height*aspy) { - vec[0]= (marker->pos[0]+track->offset[0])*width; - vec[1]= (marker->pos[1]+track->offset[1])*height*aspy; + if (npos[0] >= 0.0f && npos[1] >= 0.0f && npos[0] <= width && npos[1] <= height * aspy) { + vec[0] = (marker->pos[0] + track->offset[0]) * width; + vec[1] = (marker->pos[1] + track->offset[1]) * height * aspy; sub_v2_v2(vec, npos); - if (len_v2(vec)<3) glColor3f(0.0f, 1.0f, 0.0f); - else glColor3f(1.0f, 0.0f, 0.0f); + if (len_v2(vec)< 3.0f) + glColor3f(0.0f, 1.0f, 0.0f); + else + glColor3f(1.0f, 0.0f, 0.0f); glBegin(GL_POINTS); - if (undistort) glVertex3f(pos[0]/width, pos[1]/(height*aspy), 0); - else glVertex3f(npos[0]/width, npos[1]/(height*aspy), 0); + if (undistort) + glVertex3f(pos[0] / width, pos[1] / (height * aspy), 0); + else + glVertex3f(npos[0] / width, npos[1] / (height * aspy), 0); glEnd(); } } } - track= track->next; + track = track->next; } glPointSize(1.0f); @@ -1045,26 +1103,27 @@ static void draw_tracking_tracks(SpaceClip *sc, ARegion *ar, MovieClip *clip, glPopMatrix(); - if (sc->flag&SC_SHOW_NAMES) { + if (sc->flag & SC_SHOW_NAMES) { /* scaling should be cleared before drawing texts, otherwise font would also be scaled */ - track= tracksbase->first; - fp= marker_pos; + track = tracksbase->first; + fp = marker_pos; while (track) { - if ((track->flag&TRACK_HIDDEN)==0) { - marker= BKE_tracking_get_marker(track, framenr); + if ((track->flag & TRACK_HIDDEN) == 0) { + marker = BKE_tracking_get_marker(track, framenr); if (MARKER_VISIBLE(sc, marker)) { - int act= track==act_track; + int act = track == act_track; copy_v2_v2(cur_pos, fp ? fp : marker->pos); draw_marker_texts(sc, track, marker, cur_pos, act, width, height, zoomx, zoomy); - if (fp) fp+= 2; + if (fp) + fp += 2; } } - track= track->next; + track = track->next; } } @@ -1077,20 +1136,20 @@ static void draw_tracking_tracks(SpaceClip *sc, ARegion *ar, MovieClip *clip, static void draw_distortion(SpaceClip *sc, ARegion *ar, MovieClip *clip, int width, int height, float zoomx, float zoomy) { float x, y; - const int n= 10; + const int n = 10; int i, j, a; float pos[2], tpos[2], grid[11][11][2]; - MovieTracking *tracking= &clip->tracking; - float aspy= 1.0f/tracking->camera.pixel_aspect; - float dx= (float)width/n, dy= (float)height/n*aspy; + MovieTracking *tracking = &clip->tracking; + float aspy = 1.0f / tracking->camera.pixel_aspect; + float dx = (float)width / n, dy = (float)height / n * aspy; - if (sc->mode!=SC_MODE_DISTORTION) + if (sc->mode != SC_MODE_DISTORTION) return; if (!tracking->camera.focal) return; - if ((sc->flag&SC_SHOW_GRID)==0 && (sc->flag&SC_MANUAL_CALIBRATION)==0) + if ((sc->flag & SC_SHOW_GRID) == 0 && (sc->flag & SC_MANUAL_CALIBRATION) == 0) return; view2d_to_region_float(&ar->v2d, 0.0f, 0.0f, &x, &y); @@ -1102,47 +1161,51 @@ static void draw_distortion(SpaceClip *sc, ARegion *ar, MovieClip *clip, int wid glScalef(width, height, 0); /* grid */ - if (sc->flag&SC_SHOW_GRID) { + if (sc->flag & SC_SHOW_GRID) { float val[4][2], idx[4][2]; float min[2], max[2]; - for (a=0; a<4; a++) { - if (a<2) val[a][a%2]= FLT_MAX; - else val[a][a%2]= -FLT_MAX; + for (a = 0; a < 4; a++) { + if (a < 2) + val[a][a%2] = FLT_MAX; + else + val[a][a%2] = -FLT_MAX; } zero_v2(pos); - for (i= 0; i<=n; i++) { - for (j= 0; j<=n; j++) { - if (i==0 || j==0 || i==n || j==n) { + for (i = 0; i <= n; i++) { + for (j = 0; j <= n; j++) { + if (i == 0 || j == 0 || i == n || j == n) { BKE_tracking_apply_intrinsics(tracking, pos, tpos); - for (a=0; a<4; a++) { + for (a = 0; a < 4; a++) { int ok; - if (a<2) ok= tpos[a%2] < val[a][a%2]; - else ok= tpos[a%2] > val[a][a%2]; + if (a<2) + ok = tpos[a%2] < val[a][a%2]; + else + ok= tpos[a%2] > val[a][a%2]; if (ok) { copy_v2_v2(val[a], tpos); - idx[a][0]= j; - idx[a][1]= i; + idx[a][0] = j; + idx[a][1] = i; } } } - pos[0]+= dx; + pos[0] += dx; } - pos[0]= 0.0f; - pos[1]+= dy; + pos[0] = 0.0f; + pos[1] += dy; } INIT_MINMAX2(min, max); - for (a= 0; a<4; a++) { - pos[0]= idx[a][0]*dx; - pos[1]= idx[a][1]*dy; + for (a = 0; a < 4; a++) { + pos[0] = idx[a][0] * dx; + pos[1] = idx[a][1] * dy; BKE_tracking_invert_intrinsics(tracking, pos, tpos); @@ -1150,50 +1213,50 @@ static void draw_distortion(SpaceClip *sc, ARegion *ar, MovieClip *clip, int wid } copy_v2_v2(pos, min); - dx= (max[0]-min[0])/n; - dy= (max[1]-min[1])/n; + dx = (max[0] - min[0]) / n; + dy = (max[1] - min[1]) / n; - for (i= 0; i<=n; i++) { - for (j= 0; j<=n; j++) { + for (i = 0; i <= n; i++) { + for (j = 0; j <= n; j++) { BKE_tracking_apply_intrinsics(tracking, pos, grid[i][j]); - grid[i][j][0]/= width; - grid[i][j][1]/= height*aspy; + grid[i][j][0] /= width; + grid[i][j][1] /= height*aspy; - pos[0]+= dx; + pos[0] += dx; } - pos[0]= min[0]; - pos[1]+= dy; + pos[0] = min[0]; + pos[1] += dy; } glColor3f(1.0f, 0.0f, 0.0f); - for (i= 0; i<=n; i++) { + for (i = 0; i <= n; i++) { glBegin(GL_LINE_STRIP); - for (j= 0; j<=n; j++) { + for (j = 0; j <= n; j++) { glVertex2fv(grid[i][j]); } glEnd(); } - for (j= 0; j<=n; j++) { + for (j = 0; j <= n; j++) { glBegin(GL_LINE_STRIP); - for (i= 0; i<=n; i++) { + for (i = 0; i <= n; i++) { glVertex2fv(grid[i][j]); } glEnd(); } } - if (sc->flag&SC_MANUAL_CALIBRATION && clip->gpd) { + if (sc->flag & SC_MANUAL_CALIBRATION && clip->gpd) { bGPDlayer *layer= clip->gpd->layers.first; while (layer) { - bGPDframe *frame= layer->frames.first; + bGPDframe *frame = layer->frames.first; if (layer->flag & GP_LAYER_HIDE) { - layer= layer->next; + layer = layer->next; continue; } @@ -1202,27 +1265,27 @@ static void draw_distortion(SpaceClip *sc, ARegion *ar, MovieClip *clip, int wid glPointSize((float)(layer->thickness + 2)); while (frame) { - bGPDstroke *stroke= frame->strokes.first; + bGPDstroke *stroke = frame->strokes.first; while (stroke) { - if (stroke->flag&GP_STROKE_2DSPACE) { - if (stroke->totpoints>1) { + if (stroke->flag & GP_STROKE_2DSPACE) { + if (stroke->totpoints > 1) { glBegin(GL_LINE_STRIP); - for (i= 0; i<stroke->totpoints-1; i++) { + for (i = 0; i < stroke->totpoints - 1; i++) { float npos[2], dpos[2], len; int steps; - pos[0]= stroke->points[i].x*width; - pos[1]= stroke->points[i].y*height*aspy; + pos[0] = stroke->points[i].x * width; + pos[1] = stroke->points[i].y * height * aspy; - npos[0]= stroke->points[i+1].x*width; - npos[1]= stroke->points[i+1].y*height*aspy; + npos[0] = stroke->points[i+1].x * width; + npos[1] = stroke->points[i+1].y * height * aspy; - len= len_v2v2(pos, npos); + len = len_v2v2(pos, npos); steps= ceil(len/5.0f); /* we want to distort only long straight lines */ - if (stroke->totpoints==2) { + if (stroke->totpoints == 2) { BKE_tracking_invert_intrinsics(tracking, pos, pos); BKE_tracking_invert_intrinsics(tracking, npos, npos); } @@ -1230,7 +1293,7 @@ static void draw_distortion(SpaceClip *sc, ARegion *ar, MovieClip *clip, int wid sub_v2_v2v2(dpos, npos, pos); mul_v2_fl(dpos, 1.0f/steps); - for (j= 0; j<=steps; j++) { + for (j = 0; j <= steps; j++) { BKE_tracking_apply_intrinsics(tracking, pos, tpos); glVertex2f(tpos[0]/width, tpos[1]/(height*aspy)); @@ -1239,20 +1302,20 @@ static void draw_distortion(SpaceClip *sc, ARegion *ar, MovieClip *clip, int wid } glEnd(); } - else if (stroke->totpoints==1) { + else if (stroke->totpoints == 1) { glBegin(GL_POINTS); glVertex2f(stroke->points[0].x, stroke->points[0].y); glEnd(); } } - stroke= stroke->next; + stroke = stroke->next; } - frame= frame->next; + frame = frame->next; } - layer= layer->next; + layer = layer->next; } glLineWidth(1.0f); @@ -1276,14 +1339,14 @@ void clip_draw_main(SpaceClip *sc, ARegion *ar, Scene *scene) ED_space_clip_size(sc, &width, &height); ED_space_clip_zoom(sc, ar, &zoomx, &zoomy); - if (sc->flag&SC_SHOW_STABLE) { + if (sc->flag & SC_SHOW_STABLE) { float smat[4][4], ismat[4][4]; - ibuf= ED_space_clip_get_stable_buffer(sc, sc->loc, &sc->scale, &sc->angle); + ibuf = ED_space_clip_get_stable_buffer(sc, sc->loc, &sc->scale, &sc->angle); if (ibuf) { float loc[2]; - float aspect= clip->tracking.camera.pixel_aspect; + float aspect = clip->tracking.camera.pixel_aspect; if (width != ibuf->x) mul_v2_v2fl(loc, sc->loc, (float)width / ibuf->x); @@ -1293,18 +1356,18 @@ void clip_draw_main(SpaceClip *sc, ARegion *ar, Scene *scene) BKE_tracking_stabdata_to_mat4(width, height, aspect, loc, sc->scale, sc->angle, sc->stabmat); unit_m4(smat); - smat[0][0]= 1.0f/width; - smat[1][1]= 1.0f/height; + smat[0][0] = 1.0f / width; + smat[1][1] = 1.0f / height; invert_m4_m4(ismat, smat); mul_serie_m4(sc->unistabmat, smat, sc->stabmat, ismat, NULL, NULL, NULL, NULL, NULL); } } else { - ibuf= ED_space_clip_get_buffer(sc); + ibuf = ED_space_clip_get_buffer(sc); zero_v2(sc->loc); - sc->scale= 1.0f; + sc->scale = 1.0f; unit_m4(sc->stabmat); unit_m4(sc->unistabmat); } @@ -1324,8 +1387,8 @@ void clip_draw_main(SpaceClip *sc, ARegion *ar, Scene *scene) /* draw grease pencil */ void clip_draw_grease_pencil(bContext *C, int onlyv2d) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); ImBuf *ibuf; if (!clip) @@ -1334,8 +1397,8 @@ void clip_draw_grease_pencil(bContext *C, int onlyv2d) if (onlyv2d) { /* if manual calibration is used then grease pencil data is already * drawed in draw_distortion */ - if ((sc->flag&SC_MANUAL_CALIBRATION)==0 || sc->mode!=SC_MODE_DISTORTION) { - ibuf= ED_space_clip_get_buffer(sc); + if ((sc->flag & SC_MANUAL_CALIBRATION)==0 || sc->mode != SC_MODE_DISTORTION) { + ibuf = ED_space_clip_get_buffer(sc); if (ibuf) { glPushMatrix(); diff --git a/source/blender/editors/space_clip/clip_editor.c b/source/blender/editors/space_clip/clip_editor.c index 87b0ac1aac1..3946d4cc36d 100644 --- a/source/blender/editors/space_clip/clip_editor.c +++ b/source/blender/editors/space_clip/clip_editor.c @@ -57,20 +57,20 @@ int ED_space_clip_poll(bContext *C) { - SpaceClip *sc= CTX_wm_space_clip(C); + SpaceClip *sc = CTX_wm_space_clip(C); if (sc && sc->clip) - return 1; + return TRUE; - return 0; + return FALSE; } void ED_space_clip_set(bContext *C, SpaceClip *sc, MovieClip *clip) { - sc->clip= clip; + sc->clip = clip; if (sc->clip && sc->clip->id.us==0) - sc->clip->id.us= 1; + sc->clip->id.us = 1; if (C) WM_event_add_notifier(C, NC_MOVIECLIP|NA_SELECTED, sc->clip); @@ -86,7 +86,7 @@ ImBuf *ED_space_clip_get_buffer(SpaceClip *sc) if (sc->clip) { ImBuf *ibuf; - ibuf= BKE_movieclip_get_postprocessed_ibuf(sc->clip, &sc->user, sc->postproc_flag); + ibuf = BKE_movieclip_get_postprocessed_ibuf(sc->clip, &sc->user, sc->postproc_flag); if (ibuf && (ibuf->rect || ibuf->rect_float)) return ibuf; @@ -103,7 +103,7 @@ ImBuf *ED_space_clip_get_stable_buffer(SpaceClip *sc, float loc[2], float *scale if (sc->clip) { ImBuf *ibuf; - ibuf= BKE_movieclip_get_stable_ibuf(sc->clip, &sc->user, loc, scale, angle, sc->postproc_flag); + ibuf = BKE_movieclip_get_stable_ibuf(sc->clip, &sc->user, loc, scale, angle, sc->postproc_flag); if (ibuf && (ibuf->rect || ibuf->rect_float)) return ibuf; @@ -131,18 +131,18 @@ void ED_space_clip_zoom(SpaceClip *sc, ARegion *ar, float *zoomx, float *zoomy) ED_space_clip_size(sc, &width, &height); - *zoomx= (float)(ar->winrct.xmax - ar->winrct.xmin + 1)/(float)((ar->v2d.cur.xmax - ar->v2d.cur.xmin)*width); - *zoomy= (float)(ar->winrct.ymax - ar->winrct.ymin + 1)/(float)((ar->v2d.cur.ymax - ar->v2d.cur.ymin)*height); + *zoomx = (float)(ar->winrct.xmax - ar->winrct.xmin + 1)/(float)((ar->v2d.cur.xmax - ar->v2d.cur.xmin)*width); + *zoomy = (float)(ar->winrct.ymax - ar->winrct.ymin + 1)/(float)((ar->v2d.cur.ymax - ar->v2d.cur.ymin)*height); } void ED_space_clip_aspect(SpaceClip *sc, float *aspx, float *aspy) { - MovieClip *clip= ED_space_clip(sc); + MovieClip *clip = ED_space_clip(sc); if (clip) BKE_movieclip_aspect(clip, aspx, aspy); else - *aspx= *aspy= 1.0f; + *aspx = *aspy = 1.0f; } void ED_clip_update_frame(const Main *mainp, int cfra) @@ -151,14 +151,15 @@ void ED_clip_update_frame(const Main *mainp, int cfra) wmWindow *win; /* image window, compo node users */ - for (wm=mainp->wm.first; wm; wm= wm->id.next) { /* only 1 wm */ - for (win= wm->windows.first; win; win= win->next) { + for (wm = mainp->wm.first; wm; wm = wm->id.next) { /* only 1 wm */ + for (win = wm->windows.first; win; win = win->next) { ScrArea *sa; - for (sa= win->screen->areabase.first; sa; sa= sa->next) { - if (sa->spacetype==SPACE_CLIP) { - SpaceClip *sc= sa->spacedata.first; - sc->scopes.ok= 0; + for (sa = win->screen->areabase.first; sa; sa = sa->next) { + if (sa->spacetype == SPACE_CLIP) { + SpaceClip *sc = sa->spacedata.first; + + sc->scopes.ok = FALSE; BKE_movieclip_user_set_frame(&sc->user, cfra); } @@ -169,44 +170,45 @@ void ED_clip_update_frame(const Main *mainp, int cfra) static int selected_boundbox(SpaceClip *sc, float min[2], float max[2]) { - MovieClip *clip= ED_space_clip(sc); + MovieClip *clip = ED_space_clip(sc); MovieTrackingTrack *track; - int width, height, ok= 0; + int width, height, ok = FALSE; ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); INIT_MINMAX2(min, max); ED_space_clip_size(sc, &width, &height); - track= tracksbase->first; + track = tracksbase->first; while (track) { if (TRACK_VIEW_SELECTED(sc, track)) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, sc->user.framenr); + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, sc->user.framenr); if (marker) { float pos[3]; - pos[0]= marker->pos[0]+track->offset[0]; - pos[1]= marker->pos[1]+track->offset[1]; - pos[2]= 0.0f; + pos[0] = marker->pos[0] + track->offset[0]; + pos[1] = marker->pos[1] + track->offset[1]; + pos[2] = 0.0f; /* undistortion happens for normalized coords */ - if (sc->user.render_flag&MCLIP_PROXY_RENDER_UNDISTORT) + if (sc->user.render_flag & MCLIP_PROXY_RENDER_UNDISTORT) { /* undistortion happens for normalized coords */ ED_clip_point_undistorted_pos(sc, pos, pos); + } - pos[0]*= width; - pos[1]*= height; + pos[0] *= width; + pos[1] *= height; mul_v3_m4v3(pos, sc->stabmat, pos); DO_MINMAX2(pos, min, max); - ok= 1; + ok = TRUE; } } - track= track->next; + track = track->next; } return ok; @@ -219,90 +221,92 @@ int ED_clip_view_selection(SpaceClip *sc, ARegion *ar, int fit) ED_space_clip_size(sc, &frame_width, &frame_height); - if (frame_width==0 || frame_height==0) return 0; + if (frame_width == 0 || frame_height == 0) + return FALSE; if (!selected_boundbox(sc, min, max)) - return 0; + return FALSE; /* center view */ clip_view_center_to_point(sc, (max[0]+min[0])/(2*frame_width), (max[1]+min[1])/(2*frame_height)); - w= max[0]-min[0]; - h= max[1]-min[1]; + w = max[0] - min[0]; + h = max[1] - min[1]; /* set zoom to see all selection */ - if (w>0 && h>0) { + if (w > 0 && h > 0) { int width, height; float zoomx, zoomy, newzoom, aspx, aspy; ED_space_clip_aspect(sc, &aspx, &aspy); - width= ar->winrct.xmax - ar->winrct.xmin + 1; - height= ar->winrct.ymax - ar->winrct.ymin + 1; + width = ar->winrct.xmax - ar->winrct.xmin + 1; + height = ar->winrct.ymax - ar->winrct.ymin + 1; - zoomx= (float)width/w/aspx; - zoomy= (float)height/h/aspy; + zoomx = (float)width / w / aspx; + zoomy = (float)height / h / aspy; - newzoom= 1.0f/power_of_2(1/MIN2(zoomx, zoomy)); + newzoom = 1.0f / power_of_2(1.0f / MIN2(zoomx, zoomy)); if (fit || sc->zoom>newzoom) - sc->zoom= newzoom; + sc->zoom = newzoom; } - return 1; + return TRUE; } void ED_clip_point_undistorted_pos(SpaceClip *sc, float co[2], float nco[2]) { copy_v2_v2(nco, co); - if (sc->user.render_flag&MCLIP_PROXY_RENDER_UNDISTORT) { - MovieClip *clip= ED_space_clip(sc); - float aspy= 1.0f/clip->tracking.camera.pixel_aspect; + if (sc->user.render_flag & MCLIP_PROXY_RENDER_UNDISTORT) { + MovieClip *clip = ED_space_clip(sc); + float aspy = 1.0f / clip->tracking.camera.pixel_aspect; int width, height; ED_space_clip_size(sc, &width, &height); - nco[0]*= width; - nco[1]*= height*aspy; + nco[0] *= width; + nco[1] *= height * aspy; BKE_tracking_invert_intrinsics(&clip->tracking, nco, nco); - nco[0]/= width; - nco[1]/= height*aspy; + + nco[0] /= width; + nco[1] /= height * aspy; } } void ED_clip_point_stable_pos(bContext *C, float x, float y, float *xr, float *yr) { - ARegion *ar= CTX_wm_region(C); - SpaceClip *sc= CTX_wm_space_clip(C); + ARegion *ar = CTX_wm_region(C); + SpaceClip *sc = CTX_wm_space_clip(C); int sx, sy, width, height; - float zoomx, zoomy, pos[3]={0.0f, 0.0f, 0.0f}, imat[4][4]; + float zoomx, zoomy, pos[3] = {0.0f, 0.0f, 0.0f}, imat[4][4]; ED_space_clip_zoom(sc, ar, &zoomx, &zoomy); ED_space_clip_size(sc, &width, &height); UI_view2d_to_region_no_clip(&ar->v2d, 0.0f, 0.0f, &sx, &sy); - pos[0]= (x-sx)/zoomx; - pos[1]= (y-sy)/zoomy; + pos[0] = (x - sx) / zoomx; + pos[1] = (y - sy) / zoomy; invert_m4_m4(imat, sc->stabmat); mul_v3_m4v3(pos, imat, pos); - *xr= pos[0]/width; - *yr= pos[1]/height; + *xr = pos[0] / width; + *yr = pos[1] / height; - if (sc->user.render_flag&MCLIP_PROXY_RENDER_UNDISTORT) { - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - float aspy= 1.0f/tracking->camera.pixel_aspect; - float tmp[2]= {*xr*width, *yr*height*aspy}; + if (sc->user.render_flag & MCLIP_PROXY_RENDER_UNDISTORT) { + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + float aspy = 1.0f / tracking->camera.pixel_aspect; + float tmp[2] = {*xr * width, *yr * height * aspy}; BKE_tracking_apply_intrinsics(tracking, tmp, tmp); - *xr= tmp[0]/width; - *yr= tmp[1]/(height*aspy); + *xr = tmp[0] / width; + *yr = tmp[1] / (height * aspy); } } diff --git a/source/blender/editors/space_clip/clip_graph_draw.c b/source/blender/editors/space_clip/clip_graph_draw.c index c1089d2bbcf..df14491c9c9 100644 --- a/source/blender/editors/space_clip/clip_graph_draw.c +++ b/source/blender/editors/space_clip/clip_graph_draw.c @@ -67,10 +67,10 @@ static void draw_curve_knot(float x, float y, float xscale, float yscale, float if (displist == 0) { GLUquadricObj *qobj; - displist= glGenLists(1); + displist = glGenLists(1); glNewList(displist, GL_COMPILE); - qobj= gluNewQuadric(); + qobj = gluNewQuadric(); gluQuadricDrawStyle(qobj, GLU_SILHOUETTE); gluDisk(qobj, 0, 0.7, 8, 1); gluDeleteQuadric(qobj); @@ -89,21 +89,21 @@ static void draw_curve_knot(float x, float y, float xscale, float yscale, float static void draw_graph_cfra(SpaceClip *sc, ARegion *ar, Scene *scene) { - View2D *v2d= &ar->v2d; + View2D *v2d = &ar->v2d; float xscale, yscale; float vec[2]; /* Draw a light green line to indicate current frame */ - vec[0]= (float)(sc->user.framenr * scene->r.framelen); + vec[0] = (float)(sc->user.framenr * scene->r.framelen); UI_ThemeColor(TH_CFRAME); glLineWidth(2.0); glBegin(GL_LINE_STRIP); - vec[1]= v2d->cur.ymin; + vec[1] = v2d->cur.ymin; glVertex2fv(vec); - vec[1]= v2d->cur.ymax; + vec[1] = v2d->cur.ymax; glVertex2fv(vec); glEnd(); @@ -156,11 +156,11 @@ void tracking_segment_start_cb(void *userdata, MovieTrackingTrack *track, int co copy_v3_v3(col, colors[coord]); if (track==userdata) { - col[3]= 1.0f; + col[3] = 1.0f; glLineWidth(2.0f); } else { - col[3]= 0.5f; + col[3] = 0.5f; glLineWidth(1.0f); } @@ -182,15 +182,17 @@ static void tracking_segment_knot_cb(void *userdata, MovieTrackingTrack *track, struct { MovieTrackingTrack *act_track; int sel; float xscale, yscale, hsize; } *data = userdata; int sel= 0, sel_flag; - if (track!=data->act_track) + if (track != data->act_track) return; - sel_flag= coord == 0 ? MARKER_GRAPH_SEL_X : MARKER_GRAPH_SEL_Y; - sel= (marker->flag & sel_flag) ? 1 : 0; + sel_flag = coord == 0 ? MARKER_GRAPH_SEL_X : MARKER_GRAPH_SEL_Y; + sel = (marker->flag & sel_flag) ? 1 : 0; if (sel == data->sel) { - if (sel) UI_ThemeColor(TH_HANDLE_VERTEX_SELECT); - else UI_ThemeColor(TH_HANDLE_VERTEX); + if (sel) + UI_ThemeColor(TH_HANDLE_VERTEX_SELECT); + else + UI_ThemeColor(TH_HANDLE_VERTEX); draw_curve_knot(marker->framenr, val, data->xscale, data->yscale, data->hsize); } @@ -198,9 +200,9 @@ static void tracking_segment_knot_cb(void *userdata, MovieTrackingTrack *track, static void draw_tracks_curves(View2D *v2d, SpaceClip *sc) { - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); int width, height; struct { MovieTrackingTrack *act_track; int sel; float xscale, yscale, hsize; } userdata; @@ -210,9 +212,9 @@ static void draw_tracks_curves(View2D *v2d, SpaceClip *sc) return; /* non-selected knot handles */ - userdata.hsize= UI_GetThemeValuef(TH_HANDLE_VERTEX_SIZE); - userdata.sel= 0; - userdata.act_track= act_track; + userdata.hsize = UI_GetThemeValuef(TH_HANDLE_VERTEX_SIZE); + userdata.sel = FALSE; + userdata.act_track = act_track; UI_view2d_getscale(v2d, &userdata.xscale, &userdata.yscale); clip_graph_tracking_values_iterate(sc, &userdata, tracking_segment_knot_cb, NULL, NULL); @@ -222,35 +224,35 @@ static void draw_tracks_curves(View2D *v2d, SpaceClip *sc) glDisable(GL_BLEND); /* selected knot handles on top of curves */ - userdata.sel= 1; + userdata.sel= TRUE; clip_graph_tracking_values_iterate(sc, &userdata, tracking_segment_knot_cb, NULL, NULL); } static void draw_frame_curves(SpaceClip *sc) { - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingReconstruction *reconstruction= BKE_tracking_get_reconstruction(tracking); - int i, lines= 0, prevfra= 0; + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingReconstruction *reconstruction = BKE_tracking_get_reconstruction(tracking); + int i, lines = 0, prevfra = 0; glColor3f(0.0f, 0.0f, 1.0f); - for (i= 0; i<reconstruction->camnr; i++) { - MovieReconstructedCamera *camera= &reconstruction->cameras[i]; + for (i = 0; i<reconstruction->camnr; i++) { + MovieReconstructedCamera *camera = &reconstruction->cameras[i]; if (lines && camera->framenr!=prevfra+1) { glEnd(); - lines= 0; + lines = 0; } if (!lines) { glBegin(GL_LINE_STRIP); - lines= 1; + lines = 1; } glVertex2f(camera->framenr, camera->error); - prevfra= camera->framenr; + prevfra = camera->framenr; } if (lines) @@ -259,21 +261,21 @@ static void draw_frame_curves(SpaceClip *sc) void clip_draw_graph(SpaceClip *sc, ARegion *ar, Scene *scene) { - MovieClip *clip= ED_space_clip(sc); - View2D *v2d= &ar->v2d; + MovieClip *clip = ED_space_clip(sc); + View2D *v2d = &ar->v2d; View2DGrid *grid; - short unitx= V2D_UNIT_FRAMESCALE, unity= V2D_UNIT_VALUES; + short unitx = V2D_UNIT_FRAMESCALE, unity = V2D_UNIT_VALUES; /* grid */ - grid= UI_view2d_grid_calc(scene, v2d, unitx, V2D_GRID_NOCLAMP, unity, V2D_GRID_NOCLAMP, ar->winx, ar->winy); + grid = UI_view2d_grid_calc(scene, v2d, unitx, V2D_GRID_NOCLAMP, unity, V2D_GRID_NOCLAMP, ar->winx, ar->winy); UI_view2d_grid_draw(v2d, grid, V2D_GRIDLINES_ALL); UI_view2d_grid_free(grid); if (clip) { - if (sc->flag&SC_SHOW_GRAPH_TRACKS) + if (sc->flag & SC_SHOW_GRAPH_TRACKS) draw_tracks_curves(v2d, sc); - if (sc->flag&SC_SHOW_GRAPH_FRAMES) + if (sc->flag & SC_SHOW_GRAPH_FRAMES) draw_frame_curves(sc); } diff --git a/source/blender/editors/space_clip/clip_graph_ops.c b/source/blender/editors/space_clip/clip_graph_ops.c index 4a1f2c56ee0..f8c81c2944a 100644 --- a/source/blender/editors/space_clip/clip_graph_ops.c +++ b/source/blender/editors/space_clip/clip_graph_ops.c @@ -80,17 +80,17 @@ typedef struct { static void toggle_selection_cb(void *userdata, MovieTrackingMarker *marker) { - SelectUserData *data= (SelectUserData *)userdata; + SelectUserData *data = (SelectUserData *)userdata; switch(data->action) { case SEL_SELECT: - marker->flag|= MARKER_GRAPH_SEL; + marker->flag |= MARKER_GRAPH_SEL; break; case SEL_DESELECT: - marker->flag&= ~MARKER_GRAPH_SEL; + marker->flag &= ~MARKER_GRAPH_SEL; break; case SEL_INVERT: - marker->flag^= MARKER_GRAPH_SEL; + marker->flag ^= MARKER_GRAPH_SEL; break; } } @@ -111,47 +111,47 @@ typedef struct { } MouseSelectUserData; static void find_nearest_tracking_segment_cb(void *userdata, MovieTrackingTrack *track, - MovieTrackingMarker *marker, int coord, float val) + MovieTrackingMarker *marker, int coord, float val) { - MouseSelectUserData *data= userdata; - float co[2]= {marker->framenr, val}; + MouseSelectUserData *data = userdata; + float co[2] = {marker->framenr, val}; if (data->has_prev) { - float d= dist_to_line_segment_v2(data->mouse_co, data->prev_co, co); + float d = dist_to_line_segment_v2(data->mouse_co, data->prev_co, co); - if (data->track==NULL || d<data->min_dist) { - data->track= track; - data->min_dist= d; - data->coord= coord; + if (data->track == NULL || d < data->min_dist) { + data->track = track; + data->min_dist = d; + data->coord = coord; copy_v2_v2(data->min_co, co); } } - data->has_prev= 1; + data->has_prev = TRUE; copy_v2_v2(data->prev_co, co); } void find_nearest_tracking_segment_end_cb(void *userdata) { - MouseSelectUserData *data= userdata; + MouseSelectUserData *data = userdata; - data->has_prev= 0; + data->has_prev = FALSE; } static void find_nearest_tracking_knot_cb(void *userdata, MovieTrackingTrack *track, - MovieTrackingMarker *marker, int coord, float val) + MovieTrackingMarker *marker, int coord, float val) { - MouseSelectUserData *data= userdata; - float dx= marker->framenr-data->mouse_co[0], dy= val-data->mouse_co[1]; - float d= dx*dx+dy*dy; + MouseSelectUserData *data = userdata; + float dx = marker->framenr - data->mouse_co[0], dy = val - data->mouse_co[1]; + float d = dx * dx + dy * dy; - if (data->marker==NULL || d<data->min_dist) { + if (data->marker == NULL || d < data->min_dist) { float co[2]= {marker->framenr, val}; - data->track= track; - data->marker= marker; - data->min_dist= d; - data->coord= coord; + data->track = track; + data->marker = marker; + data->min_dist = d; + data->coord = coord; copy_v2_v2(data->min_co, co); } @@ -160,26 +160,26 @@ static void find_nearest_tracking_knot_cb(void *userdata, MovieTrackingTrack *tr static void mouse_select_init_data(MouseSelectUserData *userdata, float *co) { memset(userdata, 0, sizeof(MouseSelectUserData)); - userdata->min_dist= FLT_MAX; + userdata->min_dist = FLT_MAX; copy_v2_v2(userdata->mouse_co, co); } static int mouse_select_knot(bContext *C, float co[2], int extend) { - SpaceClip *sc= CTX_wm_space_clip(C); + SpaceClip *sc = CTX_wm_space_clip(C); MovieClip *clip= ED_space_clip(sc); - ARegion *ar= CTX_wm_region(C); - View2D *v2d= &ar->v2d; - MovieTracking *tracking= &clip->tracking; - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); - static const int delta= 6; + ARegion *ar = CTX_wm_region(C); + View2D *v2d = &ar->v2d; + MovieTracking *tracking = &clip->tracking; + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); + static const int delta = 6; if (act_track) { MouseSelectUserData userdata; mouse_select_init_data(&userdata, co); - clip_graph_tracking_values_iterate_track(sc, act_track, - &userdata, find_nearest_tracking_knot_cb, NULL, NULL); + clip_graph_tracking_values_iterate_track(sc, act_track, &userdata, + find_nearest_tracking_knot_cb, NULL, NULL); if (userdata.marker) { int x1, y1, x2, y2; @@ -187,51 +187,53 @@ static int mouse_select_knot(bContext *C, float co[2], int extend) UI_view2d_view_to_region(v2d, co[0], co[1], &x1, &y1); UI_view2d_view_to_region(v2d, userdata.min_co[0], userdata.min_co[1], &x2, &y2); - if (abs(x2-x1)<=delta && abs(y2-y1)<=delta) { + if (abs(x2 - x1) <= delta && abs(y2 - y1) <= delta) { if (!extend) { SelectUserData selectdata = {SEL_DESELECT}; + clip_graph_tracking_iterate(sc, &selectdata, toggle_selection_cb); } - if (userdata.coord==0) - userdata.marker->flag|= MARKER_GRAPH_SEL_X; + if (userdata.coord == 0) + userdata.marker->flag |= MARKER_GRAPH_SEL_X; else - userdata.marker->flag|= MARKER_GRAPH_SEL_Y; + userdata.marker->flag |= MARKER_GRAPH_SEL_Y; - return 1; + return TRUE; } } } - return 0; + return FALSE; } static int mouse_select_curve(bContext *C, float co[2], int extend) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); MouseSelectUserData userdata; mouse_select_init_data(&userdata, co); - clip_graph_tracking_values_iterate(sc, &userdata, find_nearest_tracking_segment_cb, NULL, find_nearest_tracking_segment_end_cb); + clip_graph_tracking_values_iterate(sc, &userdata, find_nearest_tracking_segment_cb, + NULL, find_nearest_tracking_segment_end_cb); if (userdata.track) { if (extend) { - if (act_track==userdata.track) { + if (act_track == userdata.track) { /* currently only single curve can be selected (selected curve represents active track) */ - act_track= NULL; + act_track = NULL; } } - else if (act_track!=userdata.track) { + else if (act_track != userdata.track) { MovieTrackingMarker *marker; SelectUserData selectdata = {SEL_DESELECT}; - tracking->act_track= userdata.track; + tracking->act_track = userdata.track; /* make active track be centered to screen */ - marker= BKE_tracking_get_marker(userdata.track, sc->user.framenr); + marker = BKE_tracking_get_marker(userdata.track, sc->user.framenr); clip_view_center_to_point(sc, marker->pos[0], marker->pos[1]); @@ -239,22 +241,22 @@ static int mouse_select_curve(bContext *C, float co[2], int extend) clip_graph_tracking_iterate(sc, &selectdata, toggle_selection_cb); } - return 1; + return TRUE; } - return 0; + return FALSE; } static int mouse_select(bContext *C, float co[2], int extend) { - int sel= 0; + int sel = FALSE; /* first try to select knot on selected curves */ - sel= mouse_select_knot(C, co, extend); + sel = mouse_select_knot(C, co, extend); if (!sel) { /* if there's no close enough knot to mouse osition, select nearest curve */ - sel= mouse_select_curve(C, co, extend); + sel = mouse_select_curve(C, co, extend); } if (sel) @@ -266,7 +268,7 @@ static int mouse_select(bContext *C, float co[2], int extend) static int select_exec(bContext *C, wmOperator *op) { float co[2]; - int extend= RNA_boolean_get(op->ptr, "extend"); + int extend = RNA_boolean_get(op->ptr, "extend"); RNA_float_get_array(op->ptr, "location", co); @@ -275,7 +277,7 @@ static int select_exec(bContext *C, wmOperator *op) static int select_invoke(bContext *C, wmOperator *op, wmEvent *event) { - ARegion *ar= CTX_wm_region(C); + ARegion *ar = CTX_wm_region(C); float co[2]; UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &co[0], &co[1]); @@ -343,8 +345,8 @@ static int border_select_graph_exec(bContext *C, wmOperator *op) SpaceClip *sc = CTX_wm_space_clip(C); ARegion *ar = CTX_wm_region(C); MovieClip *clip = ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); + MovieTracking *tracking = &clip->tracking; + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); BorderSelectuserData userdata; rcti rect; @@ -399,7 +401,7 @@ static int graph_select_all_markers_exec(bContext *C, wmOperator *op) SpaceClip *sc = CTX_wm_space_clip(C); MovieClip *clip = ED_space_clip(sc); MovieTracking *tracking = &clip->tracking; - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); MovieTrackingMarker *marker; int action = RNA_enum_get(op->ptr, "action"); int a; @@ -462,11 +464,11 @@ void CLIP_OT_graph_select_all_markers(wmOperatorType *ot) static int delete_curve_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); if (act_track) clip_delete_track(C, clip, tracksbase, act_track); @@ -494,17 +496,17 @@ void CLIP_OT_graph_delete_curve(wmOperatorType *ot) static int delete_knot_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); + SpaceClip *sc = CTX_wm_space_clip(C); MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); if (act_track) { - int a= 0; + int a = 0; - while (a<act_track->markersnr) { - MovieTrackingMarker *marker= &act_track->markers[a]; + while (a < act_track->markersnr) { + MovieTrackingMarker *marker = &act_track->markers[a]; if (marker->flag & MARKER_GRAPH_SEL) clip_delete_marker(C, clip, tracksbase, act_track, marker); @@ -540,10 +542,13 @@ typedef struct { static void view_all_cb(void *userdata, MovieTrackingTrack *UNUSED(track), MovieTrackingMarker *UNUSED(marker), int UNUSED(coord), float val) { - ViewAllUserData *data = (ViewAllUserData *)userdata; + ViewAllUserData *data = (ViewAllUserData *) userdata; + + if (val < data->min) + data->min = val; - if (val < data->min) data->min = val; - if (val > data->max) data->max = val; + if (val > data->max) + data->max = val; } static int view_all_exec(bContext *C, wmOperator *UNUSED(op)) @@ -561,8 +566,8 @@ static int view_all_exec(bContext *C, wmOperator *UNUSED(op)) clip_graph_tracking_values_iterate(sc, &userdata, view_all_cb, NULL, NULL); /* set extents of view to start/end frames */ - v2d->cur.xmin = (float)SFRA; - v2d->cur.xmax = (float)EFRA; + v2d->cur.xmin = (float) SFRA; + v2d->cur.xmax = (float) EFRA; if (userdata.min < userdata.max) { v2d->cur.ymin = userdata.min; @@ -574,11 +579,11 @@ static int view_all_exec(bContext *C, wmOperator *UNUSED(op)) } /* we need an extra "buffer" factor on either side so that the endpoints are visible */ - extra= 0.01f * (v2d->cur.xmax - v2d->cur.xmin); + extra = 0.01f * (v2d->cur.xmax - v2d->cur.xmin); v2d->cur.xmin -= extra; v2d->cur.xmax += extra; - extra= 0.01f * (v2d->cur.ymax - v2d->cur.ymin); + extra = 0.01f * (v2d->cur.ymax - v2d->cur.ymin); v2d->cur.ymin -= extra; v2d->cur.ymax += extra; diff --git a/source/blender/editors/space_clip/clip_intern.h b/source/blender/editors/space_clip/clip_intern.h index 8d4da7e995c..425a1da9ec5 100644 --- a/source/blender/editors/space_clip/clip_intern.h +++ b/source/blender/editors/space_clip/clip_intern.h @@ -97,7 +97,7 @@ void clip_graph_tracking_values_iterate(struct SpaceClip *sc, void *userdata, void (*segment_end) (void *userdata)); void clip_graph_tracking_iterate(struct SpaceClip *sc, void *userdata, - void (*func) (void *userdata, struct MovieTrackingMarker *marker)); + void (*func) (void *userdata, struct MovieTrackingMarker *marker)); void clip_delete_track(struct bContext *C, struct MovieClip *clip, struct ListBase *tracksbase, struct MovieTrackingTrack *track); void clip_delete_marker(struct bContext *C, struct MovieClip *clip, struct ListBase *tracksbase, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker); diff --git a/source/blender/editors/space_clip/clip_ops.c b/source/blender/editors/space_clip/clip_ops.c index ff8feb69bd9..7e1bbc254e9 100644 --- a/source/blender/editors/space_clip/clip_ops.c +++ b/source/blender/editors/space_clip/clip_ops.c @@ -4,7 +4,7 @@ * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. + * of the License, or (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -70,31 +70,31 @@ static void sclip_zoom_set(SpaceClip *sc, ARegion *ar, float zoom, float location[2]) { - float oldzoom= sc->zoom; + float oldzoom = sc->zoom; int width, height; - sc->zoom= zoom; + sc->zoom = zoom; if (sc->zoom < 0.1f || sc->zoom > 4.0f) { /* check zoom limits */ ED_space_clip_size(sc, &width, &height); - width*= sc->zoom; - height*= sc->zoom; + width *= sc->zoom; + height *= sc->zoom; if ((width < 4) && (height < 4)) - sc->zoom= oldzoom; + sc->zoom = oldzoom; else if ((ar->winrct.xmax - ar->winrct.xmin) <= sc->zoom) - sc->zoom= oldzoom; + sc->zoom = oldzoom; else if ((ar->winrct.ymax - ar->winrct.ymin) <= sc->zoom) - sc->zoom= oldzoom; + sc->zoom = oldzoom; } if ((U.uiflag & USER_ZOOM_TO_MOUSEPOS) && location) { ED_space_clip_size(sc, &width, &height); - sc->xof+= ((location[0]-0.5f)*width-sc->xof)*(sc->zoom-oldzoom)/sc->zoom; - sc->yof+= ((location[1]-0.5f)*height-sc->yof)*(sc->zoom-oldzoom)/sc->zoom; + sc->xof += ((location[0] - 0.5f) * width-sc->xof) * (sc->zoom-oldzoom) / sc->zoom; + sc->yof += ((location[1] - 0.5f) * height-sc->yof) * (sc->zoom-oldzoom) / sc->zoom; } } @@ -105,8 +105,8 @@ static void sclip_zoom_set_factor(SpaceClip *sc, ARegion *ar, float zoomfac, flo static void sclip_zoom_set_factor_exec(bContext *C, wmEvent *event, float factor) { - SpaceClip *sc= CTX_wm_space_clip(C); - ARegion *ar= CTX_wm_region(C); + SpaceClip *sc = CTX_wm_space_clip(C); + ARegion *ar = CTX_wm_region(C); float location[2], *mpos = NULL; if (event) { @@ -124,6 +124,7 @@ static void sclip_zoom_set_factor_exec(bContext *C, wmEvent *event, float factor static void clip_filesel(bContext *C, wmOperator *op, const char *path) { RNA_string_set(op->ptr, "filepath", path); + WM_event_add_fileselect(C, op); } @@ -131,32 +132,32 @@ static void open_init(bContext *C, wmOperator *op) { PropertyPointerRNA *pprop; - op->customdata= pprop= MEM_callocN(sizeof(PropertyPointerRNA), "OpenPropertyPointerRNA"); + op->customdata = pprop = MEM_callocN(sizeof(PropertyPointerRNA), "OpenPropertyPointerRNA"); uiIDContextProperty(C, &pprop->ptr, &pprop->prop); } static int open_cancel(bContext *UNUSED(C), wmOperator *op) { MEM_freeN(op->customdata); - op->customdata= NULL; + op->customdata = NULL; return OPERATOR_CANCELLED; } static int open_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); + SpaceClip *sc = CTX_wm_space_clip(C); PropertyPointerRNA *pprop; PointerRNA idptr; - MovieClip *clip= NULL; + MovieClip *clip = NULL; char str[FILE_MAX]; RNA_string_get(op->ptr, "filepath", str); /* default to frame 1 if there's no scene in context */ - errno= 0; + errno = 0; - clip= BKE_add_movieclip_file(str); + clip = BKE_add_movieclip_file(str); if (!clip) { if (op->customdata) @@ -171,7 +172,7 @@ static int open_exec(bContext *C, wmOperator *op) open_init(C, op); /* hook into UI */ - pprop= op->customdata; + pprop = op->customdata; if (pprop->prop) { /* when creating new ID blocks, use is already 1, but RNA @@ -195,15 +196,15 @@ static int open_exec(bContext *C, wmOperator *op) static int open_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { - SpaceClip *sc= CTX_wm_space_clip(C); - char *path= U.textudir; - MovieClip *clip= NULL; + SpaceClip *sc = CTX_wm_space_clip(C); + char *path = U.textudir; + MovieClip *clip = NULL; if (sc) - clip= ED_space_clip(sc); + clip = ED_space_clip(sc); if (clip) - path= clip->name; + path = clip->name; if (!RNA_struct_property_is_set(op->ptr, "relative_path")) RNA_boolean_set(op->ptr, "relative_path", U.flag & USER_RELPATHS); @@ -241,7 +242,7 @@ void CLIP_OT_open(wmOperatorType *ot) static int reload_exec(bContext *C, wmOperator *UNUSED(op)) { - MovieClip *clip= CTX_data_edit_movieclip(C); + MovieClip *clip = CTX_data_edit_movieclip(C); if (!clip) return OPERATOR_CANCELLED; @@ -275,17 +276,19 @@ typedef struct ViewPanData { static void view_pan_init(bContext *C, wmOperator *op, wmEvent *event) { - SpaceClip *sc= CTX_wm_space_clip(C); + SpaceClip *sc = CTX_wm_space_clip(C); ViewPanData *vpd; - op->customdata= vpd= MEM_callocN(sizeof(ViewPanData), "ClipViewPanData"); + op->customdata = vpd = MEM_callocN(sizeof(ViewPanData), "ClipViewPanData"); WM_cursor_modal(CTX_wm_window(C), BC_NSEW_SCROLLCURSOR); - vpd->x= event->x; - vpd->y= event->y; + vpd->x = event->x; + vpd->y = event->y; - if (sc->flag&SC_LOCK_SELECTION) vpd->vec= &sc->xlockof; - else vpd->vec= &sc->xof; + if (sc->flag & SC_LOCK_SELECTION) + vpd->vec= &sc->xlockof; + else + vpd->vec= &sc->xof; copy_v2_v2(&vpd->xof, vpd->vec); copy_v2_v2(&vpd->xorig, &vpd->xof); @@ -297,7 +300,7 @@ static void view_pan_init(bContext *C, wmOperator *op, wmEvent *event) static void view_pan_exit(bContext *C, wmOperator *op, int cancel) { - ViewPanData *vpd= op->customdata; + ViewPanData *vpd = op->customdata; if (cancel) { copy_v2_v2(vpd->vec, &vpd->xorig); @@ -311,18 +314,18 @@ static void view_pan_exit(bContext *C, wmOperator *op, int cancel) static int view_pan_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); + SpaceClip *sc = CTX_wm_space_clip(C); float offset[2]; RNA_float_get_array(op->ptr, "offset", offset); - if (sc->flag&SC_LOCK_SELECTION) { - sc->xlockof+= offset[0]; - sc->ylockof+= offset[1]; + if (sc->flag & SC_LOCK_SELECTION) { + sc->xlockof += offset[0]; + sc->ylockof += offset[1]; } else { - sc->xof+= offset[0]; - sc->yof+= offset[1]; + sc->xof += offset[0]; + sc->yof += offset[1]; } ED_region_tag_redraw(CTX_wm_region(C)); @@ -332,47 +335,52 @@ static int view_pan_exec(bContext *C, wmOperator *op) static int view_pan_invoke(bContext *C, wmOperator *op, wmEvent *event) { - if (event->type==MOUSEPAN) { - SpaceClip *sc= CTX_wm_space_clip(C); + if (event->type == MOUSEPAN) { + SpaceClip *sc = CTX_wm_space_clip(C); float offset[2]; - offset[0]= (event->x - event->prevx)/sc->zoom; - offset[1]= (event->y - event->prevy)/sc->zoom; + offset[0] = (event->x - event->prevx) / sc->zoom; + offset[1] = (event->y - event->prevy) / sc->zoom; RNA_float_set_array(op->ptr, "offset", offset); view_pan_exec(C, op); + return OPERATOR_FINISHED; } else { view_pan_init(C, op, event); + return OPERATOR_RUNNING_MODAL; } } static int view_pan_modal(bContext *C, wmOperator *op, wmEvent *event) { - SpaceClip *sc= CTX_wm_space_clip(C); - ViewPanData *vpd= op->customdata; + SpaceClip *sc = CTX_wm_space_clip(C); + ViewPanData *vpd = op->customdata; float offset[2]; switch(event->type) { case MOUSEMOVE: copy_v2_v2(vpd->vec, &vpd->xorig); - offset[0]= (vpd->x - event->x)/sc->zoom; - offset[1]= (vpd->y - event->y)/sc->zoom; + offset[0] = (vpd->x - event->x) / sc->zoom; + offset[1] = (vpd->y - event->y) / sc->zoom; RNA_float_set_array(op->ptr, "offset", offset); view_pan_exec(C, op); break; case ESCKEY: view_pan_exit(C, op, 1); + return OPERATOR_CANCELLED; case SPACEKEY: view_pan_exit(C, op, 0); + return OPERATOR_FINISHED; default: - if (event->type==vpd->event_type && event->val==KM_RELEASE) { + if (event->type == vpd->event_type && event->val == KM_RELEASE) { view_pan_exit(C, op, 0); + return OPERATOR_FINISHED; } break; @@ -420,16 +428,16 @@ typedef struct ViewZoomData { static void view_zoom_init(bContext *C, wmOperator *op, wmEvent *event) { - SpaceClip *sc= CTX_wm_space_clip(C); + SpaceClip *sc = CTX_wm_space_clip(C); ViewZoomData *vpd; op->customdata= vpd= MEM_callocN(sizeof(ViewZoomData), "ClipViewZoomData"); WM_cursor_modal(CTX_wm_window(C), BC_NSEW_SCROLLCURSOR); - vpd->x= event->x; - vpd->y= event->y; - vpd->zoom= sc->zoom; - vpd->event_type= event->type; + vpd->x = event->x; + vpd->y = event->y; + vpd->zoom = sc->zoom; + vpd->event_type = event->type; ED_clip_mouse_pos(C, event, vpd->location); @@ -438,11 +446,11 @@ static void view_zoom_init(bContext *C, wmOperator *op, wmEvent *event) static void view_zoom_exit(bContext *C, wmOperator *op, int cancel) { - SpaceClip *sc= CTX_wm_space_clip(C); - ViewZoomData *vpd= op->customdata; + SpaceClip *sc = CTX_wm_space_clip(C); + ViewZoomData *vpd = op->customdata; if (cancel) { - sc->zoom= vpd->zoom; + sc->zoom = vpd->zoom; ED_region_tag_redraw(CTX_wm_region(C)); } @@ -452,8 +460,8 @@ static void view_zoom_exit(bContext *C, wmOperator *op, int cancel) static int view_zoom_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - ARegion *ar= CTX_wm_region(C); + SpaceClip *sc = CTX_wm_space_clip(C); + ARegion *ar = CTX_wm_region(C); sclip_zoom_set_factor(sc, ar, RNA_float_get(op->ptr, "factor"), NULL); @@ -464,10 +472,10 @@ static int view_zoom_exec(bContext *C, wmOperator *op) static int view_zoom_invoke(bContext *C, wmOperator *op, wmEvent *event) { - if (event->type==MOUSEZOOM) { + if (event->type == MOUSEZOOM) { float factor; - factor= 1.0f + (event->x-event->prevx+event->y-event->prevy)/300.0f; + factor = 1.0f + (event->x - event->prevx + event->y - event->prevy) / 300.0f; RNA_float_set(op->ptr, "factor", factor); sclip_zoom_set_factor_exec(C, event, factor); @@ -483,21 +491,22 @@ static int view_zoom_invoke(bContext *C, wmOperator *op, wmEvent *event) static int view_zoom_modal(bContext *C, wmOperator *op, wmEvent *event) { - SpaceClip *sc= CTX_wm_space_clip(C); - ARegion *ar= CTX_wm_region(C); - ViewZoomData *vpd= op->customdata; + SpaceClip *sc = CTX_wm_space_clip(C); + ARegion *ar = CTX_wm_region(C); + ViewZoomData *vpd = op->customdata; float factor; switch(event->type) { case MOUSEMOVE: - factor= 1.0f + (vpd->x-event->x+vpd->y-event->y)/300.0f; + factor = 1.0f + (vpd->x-event->x + vpd->y - event->y) / 300.0f; RNA_float_set(op->ptr, "factor", factor); - sclip_zoom_set(sc, ar, vpd->zoom*factor, vpd->location); + sclip_zoom_set(sc, ar, vpd->zoom * factor, vpd->location); ED_region_tag_redraw(CTX_wm_region(C)); break; default: - if (event->type==vpd->event_type && event->val==KM_RELEASE) { + if (event->type == vpd->event_type && event->val == KM_RELEASE) { view_zoom_exit(C, op, 0); + return OPERATOR_FINISHED; } break; @@ -509,6 +518,7 @@ static int view_zoom_modal(bContext *C, wmOperator *op, wmEvent *event) static int view_zoom_cancel(bContext *C, wmOperator *op) { view_zoom_exit(C, op, 1); + return OPERATOR_CANCELLED; } @@ -537,8 +547,8 @@ void CLIP_OT_view_zoom(wmOperatorType *ot) static int view_zoom_in_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - ARegion *ar= CTX_wm_region(C); + SpaceClip *sc = CTX_wm_space_clip(C); + ARegion *ar = CTX_wm_region(C); float location[2]; RNA_float_get_array(op->ptr, "location", location); @@ -577,8 +587,8 @@ void CLIP_OT_view_zoom_in(wmOperatorType *ot) static int view_zoom_out_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - ARegion *ar= CTX_wm_region(C); + SpaceClip *sc = CTX_wm_space_clip(C); + ARegion *ar = CTX_wm_region(C); float location[2]; RNA_float_get_array(op->ptr, "location", location); @@ -619,14 +629,14 @@ void CLIP_OT_view_zoom_out(wmOperatorType *ot) static int view_zoom_ratio_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - ARegion *ar= CTX_wm_region(C); + SpaceClip *sc = CTX_wm_space_clip(C); + ARegion *ar = CTX_wm_region(C); sclip_zoom_set(sc, ar, RNA_float_get(op->ptr, "ratio"), NULL); /* ensure pixel exact locations for draw */ - sc->xof= (int)sc->xof; - sc->yof= (int)sc->yof; + sc->xof= (int) sc->xof; + sc->yof= (int) sc->yof; ED_region_tag_redraw(CTX_wm_region(C)); @@ -660,31 +670,31 @@ static int view_all_exec(bContext *C, wmOperator *op) float zoomx, zoomy; /* retrieve state */ - sc= CTX_wm_space_clip(C); - ar= CTX_wm_region(C); + sc = CTX_wm_space_clip(C); + ar = CTX_wm_region(C); ED_space_clip_size(sc, &w, &h); ED_space_clip_aspect(sc, &aspx, &aspy); - w= w*aspx; - h= h*aspy; + w = w * aspx; + h = h * aspy; /* check if the image will fit in the image with zoom==1 */ - width= ar->winrct.xmax - ar->winrct.xmin + 1; - height= ar->winrct.ymax - ar->winrct.ymin + 1; + width = ar->winrct.xmax - ar->winrct.xmin + 1; + height = ar->winrct.ymax - ar->winrct.ymin + 1; if (fit_view) { const int margin = 5; /* margin from border */ - zoomx= (float)width / (w + 2*margin); - zoomy= (float)height / (h + 2*margin); + zoomx= (float) width / (w + 2 * margin); + zoomy= (float) height / (h + 2 * margin); sclip_zoom_set(sc, ar, MIN2(zoomx, zoomy), NULL); } else { if ((w >= width || h >= height) && (width > 0 && height > 0)) { - zoomx= (float)width/w; - zoomy= (float)height/h; + zoomx= (float) width / w; + zoomy= (float) height / h; /* find the zoom value that will fit the image in the image space */ sclip_zoom_set(sc, ar, 1.0f/power_of_2(1/MIN2(zoomx, zoomy)), NULL); @@ -693,7 +703,7 @@ static int view_all_exec(bContext *C, wmOperator *op) sclip_zoom_set(sc, ar, 1.0f, NULL); } - sc->xof= sc->yof= 0.0f; + sc->xof = sc->yof = 0.0f; ED_region_tag_redraw(CTX_wm_region(C)); @@ -718,11 +728,11 @@ void CLIP_OT_view_all(wmOperatorType *ot) static int view_selected_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - ARegion *ar= CTX_wm_region(C); + SpaceClip *sc = CTX_wm_space_clip(C); + ARegion *ar = CTX_wm_region(C); - sc->xlockof= 0.0f; - sc->ylockof= 0.0f; + sc->xlockof = 0.0f; + sc->ylockof = 0.0f; ED_clip_view_selection(sc, ar, 1); ED_region_tag_redraw(CTX_wm_region(C)); @@ -754,10 +764,10 @@ static int change_frame_poll(bContext *C) static void change_frame_apply(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); /* set the new frame number */ - CFRA= RNA_int_get(op->ptr, "frame"); + CFRA = RNA_int_get(op->ptr, "frame"); FRAMENUMBER_MIN_CLAMP(CFRA); SUBFRA = 0.0f; @@ -775,21 +785,21 @@ static int change_frame_exec(bContext *C, wmOperator *op) static int frame_from_event(bContext *C, wmEvent *event) { - ARegion *ar= CTX_wm_region(C); - Scene *scene= CTX_data_scene(C); - int framenr= 0; + ARegion *ar = CTX_wm_region(C); + Scene *scene = CTX_data_scene(C); + int framenr = 0; if (ar->regiontype == RGN_TYPE_WINDOW) { - float sfra= SFRA, efra= EFRA, framelen= ar->winx/(efra-sfra+1); + float sfra = SFRA, efra = EFRA, framelen = ar->winx / (efra - sfra + 1); - framenr= sfra+event->mval[0]/framelen; + framenr = sfra + event->mval[0] / framelen; } else { float viewx, viewy; UI_view2d_region_to_view(&ar->v2d, event->mval[0], event->mval[1], &viewx, &viewy); - framenr= (int)floor(viewx+0.5f); + framenr= (int) floor(viewx + 0.5f); } return framenr; @@ -797,10 +807,10 @@ static int frame_from_event(bContext *C, wmEvent *event) static int change_frame_invoke(bContext *C, wmOperator *op, wmEvent *event) { - ARegion *ar= CTX_wm_region(C); + ARegion *ar = CTX_wm_region(C); if (ar->regiontype == RGN_TYPE_WINDOW) { - if (event->mval[1]>16) + if (event->mval[1] > 16) return OPERATOR_PASS_THROUGH; } @@ -827,7 +837,7 @@ static int change_frame_modal(bContext *C, wmOperator *op, wmEvent *event) case LEFTMOUSE: case RIGHTMOUSE: - if (event->val==KM_RELEASE) + if (event->val == KM_RELEASE) return OPERATOR_FINISHED; break; } @@ -885,10 +895,17 @@ static int proxy_bitflag_to_array(int size_flag, int build_sizes[4], int undisto MCLIP_PROXY_UNDISTORTED_SIZE_100}}; int size_nr = undistort ? 1 : 0; - if (size_flag & size_flags[size_nr][0]) build_sizes[build_count++]= MCLIP_PROXY_RENDER_SIZE_25; - if (size_flag & size_flags[size_nr][1]) build_sizes[build_count++]= MCLIP_PROXY_RENDER_SIZE_50; - if (size_flag & size_flags[size_nr][2]) build_sizes[build_count++]= MCLIP_PROXY_RENDER_SIZE_75; - if (size_flag & size_flags[size_nr][3]) build_sizes[build_count++]= MCLIP_PROXY_RENDER_SIZE_100; + if (size_flag & size_flags[size_nr][0]) + build_sizes[build_count++]= MCLIP_PROXY_RENDER_SIZE_25; + + if (size_flag & size_flags[size_nr][1]) + build_sizes[build_count++]= MCLIP_PROXY_RENDER_SIZE_50; + + if (size_flag & size_flags[size_nr][2]) + build_sizes[build_count++]= MCLIP_PROXY_RENDER_SIZE_75; + + if (size_flag & size_flags[size_nr][3]) + build_sizes[build_count++]= MCLIP_PROXY_RENDER_SIZE_100; return build_count; } @@ -896,19 +913,19 @@ static int proxy_bitflag_to_array(int size_flag, int build_sizes[4], int undisto /* only this runs inside thread */ static void proxy_startjob(void *pjv, short *stop, short *do_update, float *progress) { - ProxyJob *pj= pjv; - Scene *scene=pj->scene; - MovieClip *clip= pj->clip; - struct MovieDistortion *distortion= NULL; + ProxyJob *pj = pjv; + Scene *scene = pj->scene; + MovieClip *clip = pj->clip; + struct MovieDistortion *distortion = NULL; short size_flag; - int cfra, sfra= SFRA, efra= EFRA; - int build_sizes[4], build_count= 0; - int build_undistort_sizes[4], build_undistort_count= 0; + int cfra, sfra = SFRA, efra = EFRA; + int build_sizes[4], build_count = 0; + int build_undistort_sizes[4], build_undistort_count = 0; - size_flag= clip->proxy.build_size_flag; + size_flag = clip->proxy.build_size_flag; - build_count= proxy_bitflag_to_array(size_flag, build_sizes, 0); - build_undistort_count= proxy_bitflag_to_array(size_flag, build_undistort_sizes, 1); + build_count = proxy_bitflag_to_array(size_flag, build_sizes, 0); + build_undistort_count = proxy_bitflag_to_array(size_flag, build_undistort_sizes, 1); if (clip->source == MCLIP_SRC_MOVIE) { if (pj->index_context) @@ -921,15 +938,15 @@ static void proxy_startjob(void *pjv, short *stop, short *do_update, float *prog return; } else { - sfra= 1; - efra= IMB_anim_get_duration(clip->anim, IMB_TC_NONE); + sfra = 1; + efra = IMB_anim_get_duration(clip->anim, IMB_TC_NONE); } } if (build_undistort_count) - distortion= BKE_tracking_distortion_create(); + distortion = BKE_tracking_distortion_create(); - for (cfra= sfra; cfra<=efra; cfra++) { + for (cfra = sfra; cfra <= efra; cfra++) { if (clip->source != MCLIP_SRC_MOVIE) BKE_movieclip_build_proxy_frame(clip, pj->clip_flag, NULL, cfra, build_sizes, build_count, 0); @@ -938,8 +955,8 @@ static void proxy_startjob(void *pjv, short *stop, short *do_update, float *prog if (*stop || G.afbreek) break; - *do_update= 1; - *progress= ((float)cfra)/(efra-sfra); + *do_update = TRUE; + *progress= ((float) cfra) / (efra - sfra); } if (distortion) @@ -968,21 +985,21 @@ static int clip_rebuild_proxy_exec(bContext *C, wmOperator *UNUSED(op)) { wmJob * steve; ProxyJob *pj; - Scene *scene= CTX_data_scene(C); - ScrArea *sa= CTX_wm_area(C); - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + Scene *scene = CTX_data_scene(C); + ScrArea *sa = CTX_wm_area(C); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); - if ((clip->flag&MCLIP_USE_PROXY)==0) + if ((clip->flag & MCLIP_USE_PROXY) == 0) return OPERATOR_CANCELLED; - steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Building Proxies", WM_JOB_PROGRESS); + steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Building Proxies", WM_JOB_PROGRESS); - pj= MEM_callocN(sizeof(ProxyJob), "proxy rebuild job"); - pj->scene= scene; - pj->main= CTX_data_main(C); - pj->clip= clip; - pj->clip_flag= clip->flag&MCLIP_TIMECODE_FLAGS; + pj = MEM_callocN(sizeof(ProxyJob), "proxy rebuild job"); + pj->scene = scene; + pj->main = CTX_data_main(C); + pj->clip = clip; + pj->clip_flag = clip->flag & MCLIP_TIMECODE_FLAGS; if (clip->anim) { pj->index_context = IMB_anim_index_rebuild_context(clip->anim, clip->proxy.build_tc_flag, @@ -993,7 +1010,7 @@ static int clip_rebuild_proxy_exec(bContext *C, wmOperator *UNUSED(op)) WM_jobs_timer(steve, 0.2, NC_MOVIECLIP|ND_DISPLAY, 0); WM_jobs_callbacks(steve, proxy_startjob, NULL, NULL, proxy_endjob); - G.afbreek= 0; + G.afbreek = 0; WM_jobs_start(CTX_wm_manager(C), steve); ED_area_tag_redraw(CTX_wm_area(C)); @@ -1020,16 +1037,16 @@ void CLIP_OT_rebuild_proxy(wmOperatorType *ot) static int mode_set_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - int mode= RNA_enum_get(op->ptr, "mode"); - int toggle= RNA_boolean_get(op->ptr, "toggle"); + SpaceClip *sc = CTX_wm_space_clip(C); + int mode = RNA_enum_get(op->ptr, "mode"); + int toggle = RNA_boolean_get(op->ptr, "toggle"); - if (sc->mode==mode) { + if (sc->mode == mode) { if (toggle) - sc->mode= SC_MODE_TRACKING; + sc->mode = SC_MODE_TRACKING; } else { - sc->mode= mode; + sc->mode = mode; } WM_event_add_notifier(C, NC_SPACE|ND_SPACE_CLIP, NULL); diff --git a/source/blender/editors/space_clip/clip_toolbar.c b/source/blender/editors/space_clip/clip_toolbar.c index b42b4137ea0..b80deb8260a 100644 --- a/source/blender/editors/space_clip/clip_toolbar.c +++ b/source/blender/editors/space_clip/clip_toolbar.c @@ -60,24 +60,24 @@ static ARegion *clip_has_properties_region(ScrArea *sa) { ARegion *ar, *arnew; - ar= BKE_area_find_region_type(sa, RGN_TYPE_UI); + ar = BKE_area_find_region_type(sa, RGN_TYPE_UI); if (ar) return ar; /* add subdiv level; after header */ - ar= BKE_area_find_region_type(sa, RGN_TYPE_HEADER); + ar = BKE_area_find_region_type(sa, RGN_TYPE_HEADER); /* is error! */ - if (ar==NULL) + if (ar == NULL) return NULL; - arnew= MEM_callocN(sizeof(ARegion), "clip properties region"); + arnew = MEM_callocN(sizeof(ARegion), "clip properties region"); BLI_insertlinkafter(&sa->regionbase, ar, arnew); - arnew->regiontype= RGN_TYPE_UI; - arnew->alignment= RGN_ALIGN_RIGHT; + arnew->regiontype = RGN_TYPE_UI; + arnew->alignment = RGN_ALIGN_RIGHT; - arnew->flag= RGN_FLAG_HIDDEN; + arnew->flag = RGN_FLAG_HIDDEN; return arnew; } @@ -89,8 +89,8 @@ static int properties_poll(bContext *C) static int properties_exec(bContext *C, wmOperator *UNUSED(op)) { - ScrArea *sa= CTX_wm_area(C); - ARegion *ar= clip_has_properties_region(sa); + ScrArea *sa = CTX_wm_area(C); + ARegion *ar = clip_has_properties_region(sa); if (ar) ED_region_toggle_hidden(C, ar); @@ -114,43 +114,44 @@ void CLIP_OT_properties(wmOperatorType *ot) static ARegion *clip_has_tools_region(ScrArea *sa) { - ARegion *ar, *artool=NULL, *arprops=NULL, *arhead; + ARegion *ar, *artool = NULL, *arprops = NULL, *arhead; - for (ar= sa->regionbase.first; ar; ar= ar->next) { - if (ar->regiontype==RGN_TYPE_TOOLS) - artool= ar; - if (ar->regiontype==RGN_TYPE_TOOL_PROPS) - arprops= ar; + for (ar = sa->regionbase.first; ar; ar = ar->next) { + if (ar->regiontype == RGN_TYPE_TOOLS) + artool = ar; + + if (ar->regiontype == RGN_TYPE_TOOL_PROPS) + arprops = ar; } /* tool region hide/unhide also hides props */ if (arprops && artool) return artool; - if (artool==NULL) { + if (artool == NULL) { /* add subdiv level; after header */ - arhead= BKE_area_find_region_type(sa, RGN_TYPE_HEADER); + arhead = BKE_area_find_region_type(sa, RGN_TYPE_HEADER); /* is error! */ - if (arhead==NULL) + if (arhead == NULL) return NULL; - artool= MEM_callocN(sizeof(ARegion), "clip tools region"); + artool = MEM_callocN(sizeof(ARegion), "clip tools region"); BLI_insertlinkafter(&sa->regionbase, arhead, artool); - artool->regiontype= RGN_TYPE_TOOLS; - artool->alignment= RGN_ALIGN_LEFT; + artool->regiontype = RGN_TYPE_TOOLS; + artool->alignment = RGN_ALIGN_LEFT; - artool->flag= RGN_FLAG_HIDDEN; + artool->flag = RGN_FLAG_HIDDEN; } - if (arprops==NULL) { + if (arprops == NULL) { /* add extra subdivided region for tool properties */ - arprops= MEM_callocN(sizeof(ARegion), "tool props for clip"); + arprops = MEM_callocN(sizeof(ARegion), "tool props for clip"); BLI_insertlinkafter(&sa->regionbase, artool, arprops); - arprops->regiontype= RGN_TYPE_TOOL_PROPS; - arprops->alignment= RGN_ALIGN_BOTTOM|RGN_SPLIT_PREV; + arprops->regiontype = RGN_TYPE_TOOL_PROPS; + arprops->alignment = RGN_ALIGN_BOTTOM|RGN_SPLIT_PREV; } return artool; @@ -163,8 +164,8 @@ static int tools_poll(bContext *C) static int tools_exec(bContext *C, wmOperator *UNUSED(op)) { - ScrArea *sa= CTX_wm_area(C); - ARegion *ar= clip_has_tools_region(sa); + ScrArea *sa = CTX_wm_area(C); + ARegion *ar = clip_has_tools_region(sa); if (ar) ED_region_toggle_hidden(C, ar); @@ -193,16 +194,18 @@ static void clip_panel_operator_redo_buts(const bContext *C, Panel *pa, wmOperat static void clip_panel_operator_redo_header(const bContext *C, Panel *pa) { - wmOperator *op= WM_operator_last_redo(C); + wmOperator *op = WM_operator_last_redo(C); - if (op) BLI_strncpy(pa->drawname, op->type->name, sizeof(pa->drawname)); - else BLI_strncpy(pa->drawname, "Operator", sizeof(pa->drawname)); + if (op) + BLI_strncpy(pa->drawname, op->type->name, sizeof(pa->drawname)); + else + BLI_strncpy(pa->drawname, "Operator", sizeof(pa->drawname)); } static void clip_panel_operator_redo_operator(const bContext *C, Panel *pa, wmOperator *op) { if (op->type->flag & OPTYPE_MACRO) { - for (op= op->macro.first; op; op= op->next) { + for (op = op->macro.first; op; op = op->next) { uiItemL(pa->layout, op->type->name, ICON_NONE); clip_panel_operator_redo_operator(C, pa, op); } @@ -215,15 +218,16 @@ static void clip_panel_operator_redo_operator(const bContext *C, Panel *pa, wmOp /* TODO de-duplicate redo panel functions - campbell */ static void clip_panel_operator_redo(const bContext *C, Panel *pa) { - wmOperator *op= WM_operator_last_redo(C); + wmOperator *op = WM_operator_last_redo(C); uiBlock *block; - if (op==NULL) + if (op == NULL) return; + if (WM_operator_poll((bContext*)C, op->type) == 0) return; - block= uiLayoutGetBlock(pa->layout); + block = uiLayoutGetBlock(pa->layout); if (!WM_operator_check_ui_enabled(C, op->type->name)) uiLayoutSetEnabled(pa->layout, 0); @@ -238,10 +242,10 @@ void ED_clip_tool_props_register(ARegionType *art) { PanelType *pt; - pt= MEM_callocN(sizeof(PanelType), "spacetype clip panel last operator"); + pt = MEM_callocN(sizeof(PanelType), "spacetype clip panel last operator"); strcpy(pt->idname, "CLIP_PT_last_operator"); strcpy(pt->label, "Operator"); - pt->draw_header= clip_panel_operator_redo_header; - pt->draw= clip_panel_operator_redo; + pt->draw_header = clip_panel_operator_redo_header; + pt->draw = clip_panel_operator_redo; BLI_addtail(&art->paneltypes, pt); } diff --git a/source/blender/editors/space_clip/clip_utils.c b/source/blender/editors/space_clip/clip_utils.c index c637bffe3ad..443a1d0cdd3 100644 --- a/source/blender/editors/space_clip/clip_utils.c +++ b/source/blender/editors/space_clip/clip_utils.c @@ -62,25 +62,25 @@ void clip_graph_tracking_values_iterate_track(SpaceClip *sc, MovieTrackingTrack void (*segment_start) (void *userdata, MovieTrackingTrack *track, int coord), void (*segment_end) (void *userdata)) { - MovieClip *clip= ED_space_clip(sc); + MovieClip *clip = ED_space_clip(sc); int width, height, coord; BKE_movieclip_get_size(clip, &sc->user, &width, &height); - for (coord= 0; coord<2; coord++) { - int i, open= 0, prevfra= 0; - float prevval= 0.0f; + for (coord = 0; coord < 2; coord++) { + int i, open = FALSE, prevfra = 0; + float prevval = 0.0f; - for (i= 0; i<track->markersnr; i++) { - MovieTrackingMarker *marker= &track->markers[i]; + for (i = 0; i < track->markersnr; i++) { + MovieTrackingMarker *marker = &track->markers[i]; float val; - if (marker->flag&MARKER_DISABLED) { + if (marker->flag & MARKER_DISABLED) { if (open) { if (segment_end) segment_end(userdata); - open= 0; + open = FALSE; } continue; @@ -90,19 +90,19 @@ void clip_graph_tracking_values_iterate_track(SpaceClip *sc, MovieTrackingTrack if (segment_start) segment_start(userdata, track, coord); - open= 1; - prevval= marker->pos[coord]; + open = TRUE; + prevval = marker->pos[coord]; } /* value is a pixels per frame speed */ - val= (marker->pos[coord] - prevval) * ((coord==0) ? (width) : (height)); - val/= marker->framenr-prevfra; + val = (marker->pos[coord] - prevval) * ((coord == 0) ? (width) : (height)); + val /= marker->framenr - prevfra; if (func) func(userdata, track, marker, coord, val); - prevval= marker->pos[coord]; - prevfra= marker->framenr; + prevval = marker->pos[coord]; + prevfra = marker->framenr; } if (open) { @@ -117,38 +117,38 @@ void clip_graph_tracking_values_iterate(SpaceClip *sc, void *userdata, void (*segment_start) (void *userdata, MovieTrackingTrack *track, int coord), void (*segment_end) (void *userdata)) { - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); MovieTrackingTrack *track; - track= tracksbase->first; + track = tracksbase->first; while (track) { if (TRACK_VIEW_SELECTED(sc, track)) { clip_graph_tracking_values_iterate_track(sc, track, userdata, func, segment_start, segment_end); } - track= track->next; + track = track->next; } } void clip_graph_tracking_iterate(SpaceClip *sc, void *userdata, void (*func) (void *userdata, MovieTrackingMarker *marker)) { - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); MovieTrackingTrack *track; - track= tracksbase->first; + track = tracksbase->first; while (track) { if (TRACK_VIEW_SELECTED(sc, track)) { int i; - for (i= 0; i<track->markersnr; i++) { - MovieTrackingMarker *marker= &track->markers[i]; + for (i = 0; i < track->markersnr; i++) { + MovieTrackingMarker *marker = &track->markers[i]; - if (marker->flag&MARKER_DISABLED) + if (marker->flag & MARKER_DISABLED) continue; if (func) @@ -156,30 +156,30 @@ void clip_graph_tracking_iterate(SpaceClip *sc, void *userdata, } } - track= track->next; + track = track->next; } } void clip_delete_track(bContext *C, MovieClip *clip, ListBase *tracksbase, MovieTrackingTrack *track) { - MovieTracking *tracking= &clip->tracking; - MovieTrackingStabilization *stab= &tracking->stabilization; - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); + MovieTracking *tracking = &clip->tracking; + MovieTrackingStabilization *stab = &tracking->stabilization; + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); - int has_bundle= 0, update_stab= 0; + int has_bundle = FALSE, update_stab = FALSE; if (track==act_track) - tracking->act_track= NULL; + tracking->act_track = NULL; - if (track==stab->rot_track) { - stab->rot_track= NULL; + if (track == stab->rot_track) { + stab->rot_track = NULL; - update_stab= 1; + update_stab = TRUE; } /* handle reconstruction display in 3d viewport */ - if (track->flag&TRACK_HAS_BUNDLE) - has_bundle= 1; + if (track->flag & TRACK_HAS_BUNDLE) + has_bundle = TRUE; BKE_tracking_free_track(track); BLI_freelinkN(tracksbase, track); @@ -187,7 +187,7 @@ void clip_delete_track(bContext *C, MovieClip *clip, ListBase *tracksbase, Movie WM_event_add_notifier(C, NC_MOVIECLIP|NA_EDITED, clip); if (update_stab) { - tracking->stabilization.ok= 0; + tracking->stabilization.ok = FALSE; DAG_id_tag_update(&clip->id, 0); WM_event_add_notifier(C, NC_MOVIECLIP|ND_DISPLAY, clip); @@ -199,7 +199,7 @@ void clip_delete_track(bContext *C, MovieClip *clip, ListBase *tracksbase, Movie void clip_delete_marker(bContext *C, MovieClip *clip, ListBase *tracksbase, MovieTrackingTrack *track, MovieTrackingMarker *marker) { - if (track->markersnr==1) { + if (track->markersnr == 1) { clip_delete_track(C, clip, tracksbase, track); } else { @@ -217,6 +217,6 @@ void clip_view_center_to_point(SpaceClip *sc, float x, float y) ED_space_clip_size(sc, &width, &height); ED_space_clip_aspect(sc, &aspx, &aspy); - sc->xof= (x-0.5f)*width*aspx; - sc->yof= (y-0.5f)*height*aspy; + sc->xof = (x - 0.5f) * width * aspx; + sc->yof = (y - 0.5f) * height * aspy; } diff --git a/source/blender/editors/space_clip/space_clip.c b/source/blender/editors/space_clip/space_clip.c index ca66248682c..228c716e3b6 100644 --- a/source/blender/editors/space_clip/space_clip.c +++ b/source/blender/editors/space_clip/space_clip.c @@ -71,47 +71,47 @@ static void init_preview_region(const bContext *C, ARegion *ar) { - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); - ar->regiontype= RGN_TYPE_PREVIEW; - ar->alignment= RGN_ALIGN_TOP; - ar->flag|= RGN_FLAG_HIDDEN; + ar->regiontype = RGN_TYPE_PREVIEW; + ar->alignment = RGN_ALIGN_TOP; + ar->flag |= RGN_FLAG_HIDDEN; ar->v2d.tot.xmin = 0.0f; ar->v2d.tot.ymin = -10.0f; ar->v2d.tot.xmax = (float)scene->r.efra; ar->v2d.tot.ymax = 10.0f; - ar->v2d.cur= ar->v2d.tot; + ar->v2d.cur = ar->v2d.tot; - ar->v2d.min[0]= FLT_MIN; - ar->v2d.min[1]= FLT_MIN; + ar->v2d.min[0] = FLT_MIN; + ar->v2d.min[1] = FLT_MIN; - ar->v2d.max[0]= MAXFRAMEF; - ar->v2d.max[1]= FLT_MAX; + ar->v2d.max[0] = MAXFRAMEF; + ar->v2d.max[1] = FLT_MAX; - ar->v2d.scroll= (V2D_SCROLL_BOTTOM|V2D_SCROLL_SCALE_HORIZONTAL); + ar->v2d.scroll = (V2D_SCROLL_BOTTOM|V2D_SCROLL_SCALE_HORIZONTAL); ar->v2d.scroll |= (V2D_SCROLL_LEFT|V2D_SCROLL_SCALE_VERTICAL); - ar->v2d.keeptot= 0; + ar->v2d.keeptot = 0; } static ARegion *clip_has_preview_region(const bContext *C, ScrArea *sa) { ARegion *ar, *arnew; - ar= BKE_area_find_region_type(sa, RGN_TYPE_PREVIEW); + ar = BKE_area_find_region_type(sa, RGN_TYPE_PREVIEW); if (ar) return ar; /* add subdiv level; after header */ - ar= BKE_area_find_region_type(sa, RGN_TYPE_WINDOW); + ar = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW); /* is error! */ - if (ar==NULL) + if (ar == NULL) return NULL; - arnew= MEM_callocN(sizeof(ARegion), "clip preview region"); + arnew = MEM_callocN(sizeof(ARegion), "clip preview region"); BLI_insertlinkbefore(&sa->regionbase, ar, arnew); init_preview_region(C, arnew); @@ -121,30 +121,30 @@ static ARegion *clip_has_preview_region(const bContext *C, ScrArea *sa) static void clip_scopes_tag_refresh(ScrArea *sa) { - SpaceClip *sc= (SpaceClip *)sa->spacedata.first; + SpaceClip *sc = (SpaceClip *)sa->spacedata.first; ARegion *ar; - if (sc->mode!=SC_MODE_TRACKING) + if (sc->mode != SC_MODE_TRACKING) return; /* only while proeprties are visible */ - for (ar=sa->regionbase.first; ar; ar=ar->next) { + for (ar = sa->regionbase.first; ar; ar = ar->next) { if (ar->regiontype == RGN_TYPE_UI && ar->flag & RGN_FLAG_HIDDEN) return; } - sc->scopes.ok= 0; + sc->scopes.ok = FALSE; } static void clip_stabilization_tag_refresh(ScrArea *sa) { - SpaceClip *sc= (SpaceClip *)sa->spacedata.first; - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = (SpaceClip *) sa->spacedata.first; + MovieClip *clip = ED_space_clip(sc); if (clip) { - MovieTrackingStabilization *stab= &clip->tracking.stabilization; + MovieTrackingStabilization *stab = &clip->tracking.stabilization; - stab->ok= 0; + stab->ok = FALSE; } } @@ -155,62 +155,62 @@ static SpaceLink *clip_new(const bContext *C) ARegion *ar; SpaceClip *sc; - sc= MEM_callocN(sizeof(SpaceClip), "initclip"); - sc->spacetype= SPACE_CLIP; - sc->flag= SC_SHOW_MARKER_PATTERN|SC_SHOW_TRACK_PATH|SC_MANUAL_CALIBRATION|SC_SHOW_GRAPH_TRACKS|SC_SHOW_GRAPH_FRAMES; - sc->zoom= 1.0f; - sc->path_length= 20; - sc->scopes.track_preview_height= 120; + sc = MEM_callocN(sizeof(SpaceClip), "initclip"); + sc->spacetype = SPACE_CLIP; + sc->flag = SC_SHOW_MARKER_PATTERN|SC_SHOW_TRACK_PATH|SC_MANUAL_CALIBRATION|SC_SHOW_GRAPH_TRACKS|SC_SHOW_GRAPH_FRAMES; + sc->zoom = 1.0f; + sc->path_length = 20; + sc->scopes.track_preview_height = 120; /* header */ - ar= MEM_callocN(sizeof(ARegion), "header for clip"); + ar = MEM_callocN(sizeof(ARegion), "header for clip"); BLI_addtail(&sc->regionbase, ar); - ar->regiontype= RGN_TYPE_HEADER; - ar->alignment= RGN_ALIGN_BOTTOM; + ar->regiontype = RGN_TYPE_HEADER; + ar->alignment = RGN_ALIGN_BOTTOM; /* tools view */ - ar= MEM_callocN(sizeof(ARegion), "tools for clip"); + ar = MEM_callocN(sizeof(ARegion), "tools for clip"); BLI_addtail(&sc->regionbase, ar); - ar->regiontype= RGN_TYPE_TOOLS; - ar->alignment= RGN_ALIGN_LEFT; + ar->regiontype = RGN_TYPE_TOOLS; + ar->alignment = RGN_ALIGN_LEFT; /* tool properties */ - ar= MEM_callocN(sizeof(ARegion), "tool properties for clip"); + ar = MEM_callocN(sizeof(ARegion), "tool properties for clip"); BLI_addtail(&sc->regionbase, ar); - ar->regiontype= RGN_TYPE_TOOL_PROPS; - ar->alignment= RGN_ALIGN_BOTTOM|RGN_SPLIT_PREV; + ar->regiontype = RGN_TYPE_TOOL_PROPS; + ar->alignment = RGN_ALIGN_BOTTOM|RGN_SPLIT_PREV; /* properties view */ - ar= MEM_callocN(sizeof(ARegion), "properties for clip"); + ar = MEM_callocN(sizeof(ARegion), "properties for clip"); BLI_addtail(&sc->regionbase, ar); - ar->regiontype= RGN_TYPE_UI; - ar->alignment= RGN_ALIGN_RIGHT; + ar->regiontype = RGN_TYPE_UI; + ar->alignment = RGN_ALIGN_RIGHT; /* preview view */ - ar= MEM_callocN(sizeof(ARegion), "preview for clip"); + ar = MEM_callocN(sizeof(ARegion), "preview for clip"); BLI_addtail(&sc->regionbase, ar); init_preview_region(C, ar); /* main area */ - ar= MEM_callocN(sizeof(ARegion), "main area for clip"); + ar = MEM_callocN(sizeof(ARegion), "main area for clip"); BLI_addtail(&sc->regionbase, ar); - ar->regiontype= RGN_TYPE_WINDOW; + ar->regiontype = RGN_TYPE_WINDOW; - return (SpaceLink *)sc; + return (SpaceLink *) sc; } /* not spacelink itself */ static void clip_free(SpaceLink *sl) { - SpaceClip *sc= (SpaceClip*) sl; + SpaceClip *sc = (SpaceClip*) sl; - sc->clip= NULL; + sc->clip = NULL; if (sc->scopes.track_preview) IMB_freeImBuf(sc->scopes.track_preview); @@ -224,11 +224,11 @@ static void clip_init(struct wmWindowManager *UNUSED(wm), ScrArea *UNUSED(sa)) static SpaceLink *clip_duplicate(SpaceLink *sl) { - SpaceClip *scn= MEM_dupallocN(sl); + SpaceClip *scn = MEM_dupallocN(sl); /* clear or remove stuff from old */ - scn->scopes.track_preview= NULL; - scn->scopes.ok= 0; + scn->scopes.track_preview = NULL; + scn->scopes.ok = FALSE; return (SpaceLink *)scn; } @@ -278,12 +278,12 @@ static void clip_listener(ScrArea *sa, wmNotifier *wmn) } break; case NC_SCREEN: - if (wmn->data==ND_ANIMPLAY) { + if (wmn->data ==ND_ANIMPLAY) { ED_area_tag_redraw(sa); } break; case NC_SPACE: - if (wmn->data==ND_SPACE_CLIP) { + if (wmn->data ==ND_SPACE_CLIP) { clip_scopes_tag_refresh(sa); clip_stabilization_tag_refresh(sa); ED_area_tag_redraw(sa); @@ -615,29 +615,29 @@ const char *clip_context_dir[]= {"edit_movieclip", NULL}; static int clip_context(const bContext *C, const char *member, bContextDataResult *result) { - SpaceClip *sc= CTX_wm_space_clip(C); + SpaceClip *sc = CTX_wm_space_clip(C); if (CTX_data_dir(member)) { CTX_data_dir_set(result, clip_context_dir); - return 1; + return TRUE; } else if (CTX_data_equals(member, "edit_movieclip")) { CTX_data_id_pointer_set(result, &sc->clip->id); - return 1; + return TRUE; } - return 0; + return FALSE; } static void clip_refresh(const bContext *C, ScrArea *sa) { - wmWindowManager *wm= CTX_wm_manager(C); - wmWindow *window= CTX_wm_window(C); + wmWindowManager *wm = CTX_wm_manager(C); + wmWindow *window = CTX_wm_window(C); Scene *scene = CTX_data_scene(C); - SpaceClip *sc= (SpaceClip *)sa->spacedata.first; - ARegion *ar_main= BKE_area_find_region_type(sa, RGN_TYPE_WINDOW); - ARegion *ar_preview= clip_has_preview_region(C, sa); - int view_changed= 0; + SpaceClip *sc = (SpaceClip *)sa->spacedata.first; + ARegion *ar_main = BKE_area_find_region_type(sa, RGN_TYPE_WINDOW); + ARegion *ar_preview = clip_has_preview_region(C, sa); + int view_changed = FALSE; switch (sc->view) { case SC_VIEW_CLIP: @@ -645,11 +645,11 @@ static void clip_refresh(const bContext *C, ScrArea *sa) ar_preview->flag |= RGN_FLAG_HIDDEN; ar_preview->v2d.flag &= ~V2D_IS_INITIALISED; WM_event_remove_handlers((bContext*)C, &ar_preview->handlers); - view_changed= 1; + view_changed = TRUE; } if (ar_main && ar_main->alignment != RGN_ALIGN_NONE) { - ar_main->alignment= RGN_ALIGN_NONE; - view_changed= 1; + ar_main->alignment = RGN_ALIGN_NONE; + view_changed = TRUE; } if (ar_preview && ar_preview->alignment != RGN_ALIGN_NONE) { /* store graph region align */ @@ -658,8 +658,8 @@ static void clip_refresh(const bContext *C, ScrArea *sa) else sc->runtime_flag |= SC_GRAPH_BOTTOM; - ar_preview->alignment= RGN_ALIGN_NONE; - view_changed= 1; + ar_preview->alignment = RGN_ALIGN_NONE; + view_changed = TRUE; } break; case SC_VIEW_GRAPH: @@ -667,19 +667,19 @@ static void clip_refresh(const bContext *C, ScrArea *sa) ar_preview->flag &= ~RGN_FLAG_HIDDEN; ar_preview->v2d.flag &= ~V2D_IS_INITIALISED; ar_preview->v2d.cur = ar_preview->v2d.tot; - view_changed= 1; + view_changed = TRUE; } if (ar_main && ar_main->alignment != RGN_ALIGN_NONE) { - ar_main->alignment= RGN_ALIGN_NONE; - view_changed= 1; + ar_main->alignment = RGN_ALIGN_NONE; + view_changed = TRUE; } if (ar_preview && !ELEM(ar_preview->alignment, RGN_ALIGN_TOP, RGN_ALIGN_BOTTOM)) { if (sc->runtime_flag & SC_GRAPH_BOTTOM) - ar_preview->alignment= RGN_ALIGN_BOTTOM; + ar_preview->alignment = RGN_ALIGN_BOTTOM; else - ar_preview->alignment= RGN_ALIGN_TOP; + ar_preview->alignment = RGN_ALIGN_TOP; - view_changed= 1; + view_changed = TRUE; } break; } @@ -697,20 +697,20 @@ static void clip_refresh(const bContext *C, ScrArea *sa) /* sets up the fields of the View2D from zoom and offset */ static void movieclip_main_area_set_view2d(SpaceClip *sc, ARegion *ar) { - MovieClip *clip= ED_space_clip(sc); + MovieClip *clip = ED_space_clip(sc); float x1, y1, w, h; int width, height, winx, winy; ED_space_clip_size(sc, &width, &height); - w= width; - h= height; + w = width; + h = height; if (clip) - h*= clip->aspy/clip->aspx/clip->tracking.camera.pixel_aspect; + h *= clip->aspy / clip->aspx / clip->tracking.camera.pixel_aspect; - winx= ar->winrct.xmax - ar->winrct.xmin + 1; - winy= ar->winrct.ymax - ar->winrct.ymin + 1; + winx = ar->winrct.xmax - ar->winrct.xmin + 1; + winy = ar->winrct.ymax - ar->winrct.ymin + 1; ar->v2d.tot.xmin = 0; ar->v2d.tot.ymin = 0; @@ -722,19 +722,19 @@ static void movieclip_main_area_set_view2d(SpaceClip *sc, ARegion *ar) ar->v2d.mask.ymax = winy; /* which part of the image space do we see? */ - x1= ar->winrct.xmin+(winx-sc->zoom*w)/2.0f; - y1= ar->winrct.ymin+(winy-sc->zoom*h)/2.0f; + x1= ar->winrct.xmin + (winx-sc->zoom * w) / 2.0f; + y1= ar->winrct.ymin + (winy-sc->zoom * h) / 2.0f; - x1-= sc->zoom*sc->xof; - y1-= sc->zoom*sc->yof; + x1-= sc->zoom * sc->xof; + y1-= sc->zoom * sc->yof; /* relative display right */ - ar->v2d.cur.xmin = ((ar->winrct.xmin - (float)x1)/sc->zoom); - ar->v2d.cur.xmax = ar->v2d.cur.xmin + ((float)winx/sc->zoom); + ar->v2d.cur.xmin = (ar->winrct.xmin - (float)x1) / sc->zoom; + ar->v2d.cur.xmax = ar->v2d.cur.xmin + ((float)winx / sc->zoom); /* relative display left */ - ar->v2d.cur.ymin = ((ar->winrct.ymin-(float)y1)/sc->zoom); - ar->v2d.cur.ymax = ar->v2d.cur.ymin + ((float)winy/sc->zoom); + ar->v2d.cur.ymin = (ar->winrct.ymin - (float)y1) / sc->zoom; + ar->v2d.cur.ymax = ar->v2d.cur.ymin + ((float)winy / sc->zoom); /* normalize 0.0..1.0 */ ar->v2d.cur.xmin /= w; @@ -761,25 +761,25 @@ static void clip_main_area_init(wmWindowManager *wm, ARegion *ar) static void clip_main_area_draw(const bContext *C, ARegion *ar) { /* draw entirely, view changes should be handled here */ - SpaceClip *sc= CTX_wm_space_clip(C); - Scene *scene= CTX_data_scene(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + Scene *scene = CTX_data_scene(C); + MovieClip *clip = ED_space_clip(sc); /* if tracking is in progress, we should synchronize framenr from clipuser * so latest tracked frame would be shown */ if (clip && clip->tracking_context) BKE_tracking_sync_user(&sc->user, clip->tracking_context); - if (sc->flag&SC_LOCK_SELECTION) { - ImBuf *tmpibuf= NULL; + if (sc->flag & SC_LOCK_SELECTION) { + ImBuf *tmpibuf = NULL; - if (clip && clip->tracking.stabilization.flag&TRACKING_2D_STABILIZATION) { - tmpibuf= ED_space_clip_get_stable_buffer(sc, NULL, NULL, NULL); + if (clip && clip->tracking.stabilization.flag & TRACKING_2D_STABILIZATION) { + tmpibuf = ED_space_clip_get_stable_buffer(sc, NULL, NULL, NULL); } if (ED_clip_view_selection(sc, ar, 0)) { - sc->xof+= sc->xlockof; - sc->yof+= sc->ylockof; + sc->xof += sc->xlockof; + sc->yof += sc->ylockof; } if (tmpibuf) @@ -810,7 +810,7 @@ static void clip_main_area_listener(ARegion *ar, wmNotifier *wmn) /* context changes */ switch(wmn->category) { case NC_SCREEN: - if (wmn->data==ND_GPENCIL) + if (wmn->data == ND_GPENCIL) ED_region_tag_redraw(ar); break; } @@ -834,11 +834,11 @@ static void clip_preview_area_init(wmWindowManager *wm, ARegion *ar) static void clip_preview_area_draw(const bContext *C, ARegion *ar) { - View2D *v2d= &ar->v2d; + View2D *v2d = &ar->v2d; View2DScrollers *scrollers; - SpaceClip *sc= CTX_wm_space_clip(C); - Scene *scene= CTX_data_scene(C); - short unitx= V2D_UNIT_FRAMESCALE, unity= V2D_UNIT_VALUES; + SpaceClip *sc = CTX_wm_space_clip(C); + Scene *scene = CTX_data_scene(C); + short unitx = V2D_UNIT_FRAMESCALE, unity = V2D_UNIT_VALUES; if (sc->flag & SC_LOCK_TIMECURSOR) ED_clip_graph_center_current_frame(scene, ar); @@ -856,7 +856,7 @@ static void clip_preview_area_draw(const bContext *C, ARegion *ar) UI_view2d_view_restore(C); /* scrollers */ - scrollers= UI_view2d_scrollers_calc(C, v2d, unitx, V2D_GRID_NOCLAMP, unity, V2D_GRID_NOCLAMP); + scrollers = UI_view2d_scrollers_calc(C, v2d, unitx, V2D_GRID_NOCLAMP, unity, V2D_GRID_NOCLAMP); UI_view2d_scrollers_draw(C, v2d, scrollers); UI_view2d_scrollers_free(scrollers); } @@ -931,7 +931,7 @@ static void clip_properties_area_init(wmWindowManager *wm, ARegion *ar) static void clip_properties_area_draw(const bContext *C, ARegion *ar) { - SpaceClip *sc= CTX_wm_space_clip(C); + SpaceClip *sc = CTX_wm_space_clip(C); BKE_movieclip_update_scopes(sc->clip, &sc->user, &sc->scopes); @@ -943,11 +943,11 @@ static void clip_properties_area_listener(ARegion *ar, wmNotifier *wmn) /* context changes */ switch(wmn->category) { case NC_SCREEN: - if (wmn->data==ND_GPENCIL) + if (wmn->data ==ND_GPENCIL) ED_region_tag_redraw(ar); break; case NC_BRUSH: - if (wmn->action==NA_EDITED) + if (wmn->action ==NA_EDITED) ED_region_tag_redraw(ar); break; } @@ -958,86 +958,86 @@ static void clip_properties_area_listener(ARegion *ar, wmNotifier *wmn) /* only called once, from space/spacetypes.c */ void ED_spacetype_clip(void) { - SpaceType *st= MEM_callocN(sizeof(SpaceType), "spacetype clip"); + SpaceType *st = MEM_callocN(sizeof(SpaceType), "spacetype clip"); ARegionType *art; - st->spaceid= SPACE_CLIP; + st->spaceid = SPACE_CLIP; strncpy(st->name, "Clip", BKE_ST_MAXNAME); - st->new= clip_new; - st->free= clip_free; - st->init= clip_init; - st->duplicate= clip_duplicate; - st->operatortypes= clip_operatortypes; - st->keymap= clip_keymap; - st->listener= clip_listener; - st->context= clip_context; - st->refresh= clip_refresh; + st->new = clip_new; + st->free = clip_free; + st->init = clip_init; + st->duplicate = clip_duplicate; + st->operatortypes = clip_operatortypes; + st->keymap = clip_keymap; + st->listener = clip_listener; + st->context = clip_context; + st->refresh = clip_refresh; /* regions: main window */ - art= MEM_callocN(sizeof(ARegionType), "spacetype clip region"); - art->regionid= RGN_TYPE_WINDOW; - art->init= clip_main_area_init; - art->draw= clip_main_area_draw; - art->listener= clip_main_area_listener; - art->keymapflag= ED_KEYMAP_FRAMES|ED_KEYMAP_UI|ED_KEYMAP_GPENCIL; + art = MEM_callocN(sizeof(ARegionType), "spacetype clip region"); + art->regionid = RGN_TYPE_WINDOW; + art->init = clip_main_area_init; + art->draw = clip_main_area_draw; + art->listener = clip_main_area_listener; + art->keymapflag = ED_KEYMAP_FRAMES|ED_KEYMAP_UI|ED_KEYMAP_GPENCIL; BLI_addhead(&st->regiontypes, art); /* preview */ - art= MEM_callocN(sizeof(ARegionType), "spacetype clip region preview"); + art = MEM_callocN(sizeof(ARegionType), "spacetype clip region preview"); art->regionid = RGN_TYPE_PREVIEW; art->prefsizey = 240; - art->init= clip_preview_area_init; - art->draw= clip_preview_area_draw; - art->listener= clip_preview_area_listener; - art->keymapflag= ED_KEYMAP_FRAMES|ED_KEYMAP_UI|ED_KEYMAP_VIEW2D; + art->init = clip_preview_area_init; + art->draw = clip_preview_area_draw; + art->listener = clip_preview_area_listener; + art->keymapflag = ED_KEYMAP_FRAMES|ED_KEYMAP_UI|ED_KEYMAP_VIEW2D; BLI_addhead(&st->regiontypes, art); /* regions: properties */ - art= MEM_callocN(sizeof(ARegionType), "spacetype clip region properties"); - art->regionid= RGN_TYPE_UI; - art->prefsizex= UI_COMPACT_PANEL_WIDTH; - art->keymapflag= ED_KEYMAP_FRAMES|ED_KEYMAP_UI; - art->init= clip_properties_area_init; - art->draw= clip_properties_area_draw; - art->listener= clip_properties_area_listener; + art = MEM_callocN(sizeof(ARegionType), "spacetype clip region properties"); + art->regionid = RGN_TYPE_UI; + art->prefsizex = UI_COMPACT_PANEL_WIDTH; + art->keymapflag = ED_KEYMAP_FRAMES|ED_KEYMAP_UI; + art->init = clip_properties_area_init; + art->draw = clip_properties_area_draw; + art->listener = clip_properties_area_listener; BLI_addhead(&st->regiontypes, art); ED_clip_buttons_register(art); /* regions: tools */ - art= MEM_callocN(sizeof(ARegionType), "spacetype clip region tools"); - art->regionid= RGN_TYPE_TOOLS; - art->prefsizex= UI_COMPACT_PANEL_WIDTH; - art->keymapflag= ED_KEYMAP_FRAMES|ED_KEYMAP_UI; - art->listener= clip_props_area_listener; - art->init= clip_tools_area_init; - art->draw= clip_tools_area_draw; + art = MEM_callocN(sizeof(ARegionType), "spacetype clip region tools"); + art->regionid = RGN_TYPE_TOOLS; + art->prefsizex = UI_COMPACT_PANEL_WIDTH; + art->keymapflag = ED_KEYMAP_FRAMES|ED_KEYMAP_UI; + art->listener = clip_props_area_listener; + art->init = clip_tools_area_init; + art->draw = clip_tools_area_draw; BLI_addhead(&st->regiontypes, art); /* tool properties */ - art= MEM_callocN(sizeof(ARegionType), "spacetype clip tool properties region"); + art = MEM_callocN(sizeof(ARegionType), "spacetype clip tool properties region"); art->regionid = RGN_TYPE_TOOL_PROPS; - art->prefsizex= 0; - art->prefsizey= 120; - art->keymapflag= ED_KEYMAP_FRAMES|ED_KEYMAP_UI; - art->listener= clip_props_area_listener; - art->init= clip_tools_area_init; - art->draw= clip_tools_area_draw; + art->prefsizex = 0; + art->prefsizey = 120; + art->keymapflag = ED_KEYMAP_FRAMES|ED_KEYMAP_UI; + art->listener = clip_props_area_listener; + art->init = clip_tools_area_init; + art->draw = clip_tools_area_draw; ED_clip_tool_props_register(art); BLI_addhead(&st->regiontypes, art); /* regions: header */ - art= MEM_callocN(sizeof(ARegionType), "spacetype clip region"); - art->regionid= RGN_TYPE_HEADER; - art->prefsizey= HEADERY; - art->keymapflag= ED_KEYMAP_FRAMES|ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_HEADER; + art = MEM_callocN(sizeof(ARegionType), "spacetype clip region"); + art->regionid = RGN_TYPE_HEADER; + art->prefsizey = HEADERY; + art->keymapflag = ED_KEYMAP_FRAMES|ED_KEYMAP_UI|ED_KEYMAP_VIEW2D|ED_KEYMAP_HEADER; - art->init= clip_header_area_init; - art->draw= clip_header_area_draw; + art->init = clip_header_area_init; + art->draw = clip_header_area_draw; BLI_addhead(&st->regiontypes, art); diff --git a/source/blender/editors/space_clip/tracking_ops.c b/source/blender/editors/space_clip/tracking_ops.c index 6cb7536b1ae..79569b82476 100644 --- a/source/blender/editors/space_clip/tracking_ops.c +++ b/source/blender/editors/space_clip/tracking_ops.c @@ -80,41 +80,41 @@ static int space_clip_frame_poll(bContext *C) { - SpaceClip *sc= CTX_wm_space_clip(C); + SpaceClip *sc = CTX_wm_space_clip(C); if (sc) { - MovieClip *clip= ED_space_clip(sc); + MovieClip *clip = ED_space_clip(sc); if (clip) return BKE_movieclip_has_frame(clip, &sc->user); } - return 0; + return FALSE; } /********************** add marker operator *********************/ static void add_marker(SpaceClip *sc, float x, float y) { - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); MovieTrackingTrack *track; int width, height; - + ED_space_clip_size(sc, &width, &height); - track= BKE_tracking_add_track(tracking, tracksbase, x, y, sc->user.framenr, width, height); + track = BKE_tracking_add_track(tracking, tracksbase, x, y, sc->user.framenr, width, height); BKE_tracking_select_track(tracksbase, track, TRACK_AREA_ALL, 0); - clip->tracking.act_track= track; + clip->tracking.act_track = track; } static int add_marker_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); float pos[2]; int width, height; @@ -127,8 +127,8 @@ static int add_marker_exec(bContext *C, wmOperator *op) add_marker(sc, pos[0], pos[1]); /* reset offset from locked position, so frame jumping wouldn't be so confusing */ - sc->xlockof= 0; - sc->ylockof= 0; + sc->xlockof = 0; + sc->ylockof = 0; WM_event_add_notifier(C, NC_MOVIECLIP|NA_EDITED, clip); @@ -170,23 +170,23 @@ void CLIP_OT_add_marker(wmOperatorType *ot) static int delete_track_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - MovieTrackingTrack *track= tracksbase->first, *next; + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + MovieTrackingTrack *track = tracksbase->first, *next; while (track) { - next= track->next; + next = track->next; if (TRACK_VIEW_SELECTED(sc, track)) clip_delete_track(C, clip, tracksbase, track); - track= next; + track = next; } /* nothing selected now, unlock view so it can be scrolled nice again */ - sc->flag&= ~SC_LOCK_SELECTION; + sc->flag &= ~SC_LOCK_SELECTION; return OPERATOR_FINISHED; } @@ -211,32 +211,32 @@ void CLIP_OT_delete_track(wmOperatorType *ot) static int delete_marker_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); - MovieTrackingTrack *track= tracksbase->first, *next; - int framenr= sc->user.framenr; - int has_selection= 0; + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); + MovieTrackingTrack *track = tracksbase->first, *next; + int framenr = sc->user.framenr; + int has_selection = 0; while (track) { - next= track->next; + next = track->next; if (TRACK_VIEW_SELECTED(sc, track)) { - MovieTrackingMarker *marker= BKE_tracking_exact_marker(track, framenr); + MovieTrackingMarker *marker = BKE_tracking_exact_marker(track, framenr); if (marker) { - has_selection|= track->markersnr>1; + has_selection |= track->markersnr>1; clip_delete_marker(C, clip, tracksbase, track, marker); } } - track= next; + track = next; } if (!has_selection) { /* nothing selected now, unlock view so it can be scrolled nice again */ - sc->flag&= ~SC_LOCK_SELECTION; + sc->flag &= ~SC_LOCK_SELECTION; } return OPERATOR_FINISHED; @@ -281,57 +281,57 @@ typedef struct { static SlideMarkerData *create_slide_marker_data(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, wmEvent *event, int area, int action, int width, int height) { - SlideMarkerData *data= MEM_callocN(sizeof(SlideMarkerData), "slide marker data"); + SlideMarkerData *data = MEM_callocN(sizeof(SlideMarkerData), "slide marker data"); - marker= BKE_tracking_ensure_marker(track, sc->user.framenr); + marker = BKE_tracking_ensure_marker(track, sc->user.framenr); - data->area= area; - data->action= action; - data->track= track; - data->marker= marker; + data->area = area; + data->action = action; + data->track = track; + data->marker = marker; - if (area==TRACK_AREA_POINT) { - data->pos= marker->pos; - data->offset= track->offset; + if (area == TRACK_AREA_POINT) { + data->pos = marker->pos; + data->offset = track->offset; copy_v2_v2(data->spos, marker->pos); copy_v2_v2(data->soff, track->offset); } - else if (area==TRACK_AREA_PAT) { - if (action==SLIDE_ACTION_SIZE) { - data->min= track->pat_min; - data->max= track->pat_max; + else if (area == TRACK_AREA_PAT) { + if (action == SLIDE_ACTION_SIZE) { + data->min = track->pat_min; + data->max = track->pat_max; } else { int a; - data->pos= marker->pos; - data->offset= track->offset; + data->pos = marker->pos; + data->offset = track->offset; copy_v2_v2(data->soff, track->offset); - data->smarkers= MEM_callocN(sizeof(*data->smarkers)*track->markersnr, "slide marekrs"); - for (a= 0; a<track->markersnr; a++) + data->smarkers = MEM_callocN(sizeof(*data->smarkers)*track->markersnr, "slide marekrs"); + for (a = 0; a < track->markersnr; a++) copy_v2_v2(data->smarkers[a], track->markers[a].pos); } } - else if (area==TRACK_AREA_SEARCH) { - data->min= track->search_min; - data->max= track->search_max; + else if (area == TRACK_AREA_SEARCH) { + data->min = track->search_min; + data->max = track->search_max; } - if (area==TRACK_AREA_SEARCH || (area==TRACK_AREA_PAT && action!=SLIDE_ACTION_OFFSET)) { + if (area == TRACK_AREA_SEARCH || (area == TRACK_AREA_PAT && action != SLIDE_ACTION_OFFSET)) { copy_v2_v2(data->smin, data->min); copy_v2_v2(data->smax, data->max); } - data->mval[0]= event->mval[0]; - data->mval[1]= event->mval[1]; + data->mval[0] = event->mval[0]; + data->mval[1] = event->mval[1]; - data->width= width; - data->height= height; + data->width = width; + data->height = height; - if (action==SLIDE_ACTION_SIZE) - data->lock= 1; + if (action == SLIDE_ACTION_SIZE) + data->lock = 1; return data; } @@ -339,14 +339,14 @@ static SlideMarkerData *create_slide_marker_data(SpaceClip *sc, MovieTrackingTra /* corner = 0: right-bottom corner, * corner = 1: left-top corner */ static int mouse_on_corner(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, - int area, float co[2], int corner, int width, int height) + int area, float co[2], int corner, int width, int height) { - int inside= 0; - float size= 12.0f; + int inside = 0; + float size = 12.0f; float min[2], max[2]; float crn[2], dx, dy, tdx, tdy; - if (area==TRACK_AREA_SEARCH) { + if (area == TRACK_AREA_SEARCH) { copy_v2_v2(min, track->search_min); copy_v2_v2(max, track->search_max); } @@ -355,26 +355,26 @@ static int mouse_on_corner(SpaceClip *sc, MovieTrackingTrack *track, MovieTracki copy_v2_v2(max, track->pat_max); } - dx= size/width/sc->zoom; - dy= size/height/sc->zoom; + dx = size / width / sc->zoom; + dy = size / height / sc->zoom; - tdx= 5.0f/width/sc->zoom; - tdy= 5.0f/height/sc->zoom; + tdx = 5.0f / width / sc->zoom; + tdy = 5.0f / height / sc->zoom; - dx= MIN2(dx, (max[0]-min[0])/6.0f) + tdx; - dy= MIN2(dy, (max[1]-min[1])/6.0f) + tdy; + dx = MIN2(dx, (max[0] - min[0]) / 6.0f) + tdx; + dy = MIN2(dy, (max[1] - min[1]) / 6.0f) + tdy; - if (corner==0) { - crn[0]= marker->pos[0]+max[0]; - crn[1]= marker->pos[1]+min[1]; + if (corner == 0) { + crn[0] = marker->pos[0] + max[0]; + crn[1] = marker->pos[1] + min[1]; - inside= co[0]>=crn[0]-dx && co[0]<=crn[0]+tdx && co[1]>=crn[1]-tdy && co[1]<=crn[1]+dy; + inside = co[0] >= crn[0] - dx && co[0] <= crn[0] + tdx && co[1] >= crn[1] - tdy && co[1] <= crn[1] + dy; } else { - crn[0]= marker->pos[0]+min[0]; - crn[1]= marker->pos[1]+max[1]; + crn[0] = marker->pos[0]+min[0]; + crn[1] = marker->pos[1]+max[1]; - inside= co[0]>=crn[0]-dx && co[0]<=crn[0]+dx && co[1]>=crn[1]-dy && co[1]<=crn[1]+dy; + inside = co[0] >= crn[0] - dx && co[0] <= crn[0] + dx && co[1] >= crn[1] - dy && co[1] <= crn[1] + dy; } return inside; @@ -387,69 +387,69 @@ static int mouse_on_offset(SpaceClip *sc, MovieTrackingTrack *track, MovieTracki add_v2_v2v2(pos, marker->pos, track->offset); - dx= 12.0f/width/sc->zoom; - dy= 12.0f/height/sc->zoom; + dx = 12.0f / width / sc->zoom; + dy = 12.0f / height /sc->zoom; - dx=MIN2(dx, (track->pat_max[0]-track->pat_min[0])/2.0f); - dy=MIN2(dy, (track->pat_max[1]-track->pat_min[1])/2.0f); + dx = MIN2(dx, (track->pat_max[0] - track->pat_min[0]) / 2.0f); + dy = MIN2(dy, (track->pat_max[1] - track->pat_min[1]) / 2.0f); - return co[0]>=pos[0]-dx && co[0]<=pos[0]+dx && co[1]>=pos[1]-dy && co[1]<=pos[1]+dy; + return co[0] >= pos[0] - dx && co[0] <= pos[0] + dx && co[1] >= pos[1] - dy && co[1] <= pos[1] + dy; } static void hide_cursor(bContext *C) { - wmWindow *win= CTX_wm_window(C); + wmWindow *win = CTX_wm_window(C); WM_cursor_set(win, CURSOR_NONE); } static void show_cursor(bContext *C) { - wmWindow *win= CTX_wm_window(C); + wmWindow *win = CTX_wm_window(C); WM_cursor_set(win, CURSOR_STD); } static void *slide_marker_customdata(bContext *C, wmEvent *event) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); MovieTrackingTrack *track; int width, height; float co[2]; - void *customdata= NULL; - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); + void *customdata = NULL; + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); ED_space_clip_size(sc, &width, &height); - if (width==0 || height==0) + if (width == 0 || height == 0) return NULL; ED_clip_mouse_pos(C, event, co); - track= tracksbase->first; + track = tracksbase->first; while (track) { - if (TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_LOCKED)==0) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, sc->user.framenr); + if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED) == 0) { + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, sc->user.framenr); - if ((marker->flag&MARKER_DISABLED)==0) { + if ((marker->flag & MARKER_DISABLED) == 0) { if (!customdata) if (mouse_on_offset(sc, track, marker, co, width, height)) - customdata= create_slide_marker_data(sc, track, marker, event, TRACK_AREA_POINT, SLIDE_ACTION_POS, width, height); + customdata = create_slide_marker_data(sc, track, marker, event, TRACK_AREA_POINT, SLIDE_ACTION_POS, width, height); - if (sc->flag&SC_SHOW_MARKER_SEARCH) { + if (sc->flag & SC_SHOW_MARKER_SEARCH) { if (mouse_on_corner(sc, track, marker, TRACK_AREA_SEARCH, co, 1, width, height)) - customdata= create_slide_marker_data(sc, track, marker, event, TRACK_AREA_SEARCH, SLIDE_ACTION_OFFSET, width, height); + customdata = create_slide_marker_data(sc, track, marker, event, TRACK_AREA_SEARCH, SLIDE_ACTION_OFFSET, width, height); else if (mouse_on_corner(sc, track, marker, TRACK_AREA_SEARCH, co, 0, width, height)) - customdata= create_slide_marker_data(sc, track, marker, event, TRACK_AREA_SEARCH, SLIDE_ACTION_SIZE, width, height); + customdata = create_slide_marker_data(sc, track, marker, event, TRACK_AREA_SEARCH, SLIDE_ACTION_SIZE, width, height); } - if (!customdata && sc->flag&SC_SHOW_MARKER_PATTERN) { + if (!customdata && (sc->flag & SC_SHOW_MARKER_PATTERN)) { if (mouse_on_corner(sc, track, marker, TRACK_AREA_PAT, co, 1, width, height)) - customdata= create_slide_marker_data(sc, track, marker, event, TRACK_AREA_PAT, SLIDE_ACTION_OFFSET, width, height); + customdata = create_slide_marker_data(sc, track, marker, event, TRACK_AREA_PAT, SLIDE_ACTION_OFFSET, width, height); if (!customdata && mouse_on_corner(sc, track, marker, TRACK_AREA_PAT, co, 0, width, height)) - customdata= create_slide_marker_data(sc, track, marker, event, TRACK_AREA_PAT, SLIDE_ACTION_SIZE, width, height); + customdata = create_slide_marker_data(sc, track, marker, event, TRACK_AREA_PAT, SLIDE_ACTION_SIZE, width, height); } if (customdata) @@ -457,7 +457,7 @@ static void *slide_marker_customdata(bContext *C, wmEvent *event) } } - track= track->next; + track = track->next; } return customdata; @@ -465,16 +465,16 @@ static void *slide_marker_customdata(bContext *C, wmEvent *event) static int slide_marker_invoke(bContext *C, wmOperator *op, wmEvent *event) { - SlideMarkerData *slidedata= slide_marker_customdata(C, event); + SlideMarkerData *slidedata = slide_marker_customdata(C, event); if (slidedata) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; - tracking->act_track= slidedata->track; + tracking->act_track = slidedata->track; - op->customdata= slidedata; + op->customdata = slidedata; hide_cursor(C); WM_event_add_modal_handler(C, op); @@ -491,20 +491,20 @@ static void cancel_mouse_slide(SlideMarkerData *data) { /* cancel sliding */ if (data->area == TRACK_AREA_POINT) { - if (data->action==SLIDE_ACTION_OFFSET) + if (data->action == SLIDE_ACTION_OFFSET) copy_v2_v2(data->offset, data->soff); else copy_v2_v2(data->pos, data->spos); } else { - if (data->action==SLIDE_ACTION_SIZE) { + if (data->action == SLIDE_ACTION_SIZE) { copy_v2_v2(data->min, data->smin); copy_v2_v2(data->max, data->smax); } else { int a; - for (a= 0; a<data->track->markersnr; a++) + for (a = 0; a<data->track->markersnr; a++) copy_v2_v2(data->track->markers[a].pos, data->smarkers[a]); copy_v2_v2(data->offset, data->soff); @@ -514,14 +514,16 @@ static void cancel_mouse_slide(SlideMarkerData *data) static void free_slide_data(SlideMarkerData *data) { - if (data->smarkers) MEM_freeN(data->smarkers); + if (data->smarkers) + MEM_freeN(data->smarkers); + MEM_freeN(data); } static int slide_marker_modal(bContext *C, wmOperator *op, wmEvent *event) { - SpaceClip *sc= CTX_wm_space_clip(C); - SlideMarkerData *data= (SlideMarkerData *)op->customdata; + SpaceClip *sc = CTX_wm_space_clip(C); + SlideMarkerData *data = (SlideMarkerData *)op->customdata; float dx, dy, mdelta[2]; switch(event->type) { @@ -529,72 +531,76 @@ static int slide_marker_modal(bContext *C, wmOperator *op, wmEvent *event) case RIGHTCTRLKEY: case LEFTSHIFTKEY: case RIGHTSHIFTKEY: - if (data->action==SLIDE_ACTION_SIZE) + if (data->action == SLIDE_ACTION_SIZE) if (ELEM(event->type, LEFTCTRLKEY, RIGHTCTRLKEY)) - data->lock= event->val==KM_RELEASE; + data->lock = event->val == KM_RELEASE; if (ELEM(event->type, LEFTSHIFTKEY, RIGHTSHIFTKEY)) - data->accurate= event->val==KM_PRESS; + data->accurate = event->val == KM_PRESS; /* no break! update area size */ case MOUSEMOVE: - mdelta[0]= event->mval[0]-data->mval[0]; - mdelta[1]= event->mval[1]-data->mval[1]; + mdelta[0] = event->mval[0]-data->mval[0]; + mdelta[1] = event->mval[1]-data->mval[1]; - dx= mdelta[0]/data->width/sc->zoom; + dx = mdelta[0] / data->width / sc->zoom; - if (data->lock) dy= -dx/data->height*data->width; - else dy= mdelta[1]/data->height/sc->zoom; + if (data->lock) + dy = -dx / data->height * data->width; + else + dy = mdelta[1] / data->height / sc->zoom; if (data->accurate) { - dx/= 5; - dy/= 5; + dx /= 5; + dy /= 5; } - if (data->area==TRACK_AREA_POINT) { - if (data->action==SLIDE_ACTION_OFFSET) { - data->offset[0]= data->soff[0]+dx; - data->offset[1]= data->soff[1]+dy; + if (data->area == TRACK_AREA_POINT) { + if (data->action == SLIDE_ACTION_OFFSET) { + data->offset[0] = data->soff[0] + dx; + data->offset[1] = data->soff[1] + dy; } else { - data->pos[0]= data->spos[0]+dx; - data->pos[1]= data->spos[1]+dy; + data->pos[0] = data->spos[0] + dx; + data->pos[1] = data->spos[1] + dy; - data->marker->flag&= ~MARKER_TRACKED; + data->marker->flag &= ~MARKER_TRACKED; } WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); DAG_id_tag_update(&sc->clip->id, 0); } else { - if (data->action==SLIDE_ACTION_SIZE) { - data->min[0]= data->smin[0]-dx; - data->max[0]= data->smax[0]+dx; + if (data->action == SLIDE_ACTION_SIZE) { + data->min[0] = data->smin[0] - dx; + data->max[0] = data->smax[0] + dx; - data->min[1]= data->smin[1]+dy; - data->max[1]= data->smax[1]-dy; + data->min[1] = data->smin[1] + dy; + data->max[1] = data->smax[1] - dy; - if (data->area==TRACK_AREA_SEARCH) BKE_tracking_clamp_track(data->track, CLAMP_SEARCH_DIM); - else BKE_tracking_clamp_track(data->track, CLAMP_PAT_DIM); + if (data->area == TRACK_AREA_SEARCH) + BKE_tracking_clamp_track(data->track, CLAMP_SEARCH_DIM); + else + BKE_tracking_clamp_track(data->track, CLAMP_PAT_DIM); } else { - float d[2]={dx, dy}; + float d[2] = {dx, dy}; - if (data->area==TRACK_AREA_SEARCH) { + if (data->area == TRACK_AREA_SEARCH) { add_v2_v2v2(data->min, data->smin, d); add_v2_v2v2(data->max, data->smax, d); } else { int a; - for (a= 0; a<data->track->markersnr; a++) + for (a = 0; a<data->track->markersnr; a++) add_v2_v2v2(data->track->markers[a].pos, data->smarkers[a], d); sub_v2_v2v2(data->offset, data->soff, d); } - if (data->area==TRACK_AREA_SEARCH) + if (data->area == TRACK_AREA_SEARCH) BKE_tracking_clamp_track(data->track, CLAMP_SEARCH_POS); } } @@ -604,7 +610,7 @@ static int slide_marker_modal(bContext *C, wmOperator *op, wmEvent *event) break; case LEFTMOUSE: - if (event->val==KM_RELEASE) { + if (event->val == KM_RELEASE) { free_slide_data(op->customdata); show_cursor(C); @@ -653,10 +659,14 @@ void CLIP_OT_slide_marker(wmOperatorType *ot) static int mouse_on_side(float co[2], float x1, float y1, float x2, float y2, float epsx, float epsy) { - if (x1>x2) SWAP(float, x1, x2); - if (y1>y2) SWAP(float, y1, y2); + if (x1 > x2) + + SWAP(float, x1, x2); - return (co[0]>=x1-epsx && co[0]<=x2+epsx) && (co[1]>=y1-epsy && co[1]<=y2+epsy); + if (y1 > y2) + SWAP(float, y1, y2); + + return (co[0] >= x1 - epsx && co[0] <= x2 + epsx) && (co[1] >= y1 - epsy && co[1] <= y2 + epsy); } static int mouse_on_rect(float co[2], float pos[2], float min[2], float max[2], float epsx, float epsy) @@ -669,31 +679,32 @@ static int mouse_on_rect(float co[2], float pos[2], float min[2], float max[2], static int track_mouse_area(SpaceClip *sc, float co[2], MovieTrackingTrack *track) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, sc->user.framenr); + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, sc->user.framenr); float epsx, epsy; int width, height; ED_space_clip_size(sc, &width, &height); - epsx= MIN4(track->pat_min[0]-track->search_min[0], track->search_max[0]-track->pat_max[0], + epsx = MIN4(track->pat_min[0]-track->search_min[0], track->search_max[0]-track->pat_max[0], fabsf(track->pat_min[0]), fabsf(track->pat_max[0])) / 2; - epsy= MIN4(track->pat_min[1]-track->search_min[1], track->search_max[1]-track->pat_max[1], + epsy = MIN4(track->pat_min[1]-track->search_min[1], track->search_max[1]-track->pat_max[1], fabsf(track->pat_min[1]), fabsf(track->pat_max[1])) / 2; - epsx= MAX2(epsx, 2.0f / width); - epsy= MAX2(epsy, 2.0f / height); + epsx = MAX2(epsx, 2.0f / width); + epsy = MAX2(epsy, 2.0f / height); - if (sc->flag&SC_SHOW_MARKER_SEARCH) + if (sc->flag & SC_SHOW_MARKER_SEARCH) { if (mouse_on_rect(co, marker->pos, track->search_min, track->search_max, epsx, epsy)) return TRACK_AREA_SEARCH; + } - if ((marker->flag&MARKER_DISABLED)==0) { - if (sc->flag&SC_SHOW_MARKER_PATTERN) + if ((marker->flag & MARKER_DISABLED)== 0) { + if (sc->flag & SC_SHOW_MARKER_PATTERN) if (mouse_on_rect(co, marker->pos, track->pat_min, track->pat_max, epsx, epsy)) return TRACK_AREA_PAT; - epsx= 12.0f/width; - epsy= 12.0f/height; + epsx = 12.0f / width; + epsy = 12.0f / height; if (fabsf(co[0]-marker->pos[0]-track->offset[0])< epsx && fabsf(co[1]-marker->pos[1]-track->offset[1])<=epsy) return TRACK_AREA_POINT; @@ -705,51 +716,51 @@ static int track_mouse_area(SpaceClip *sc, float co[2], MovieTrackingTrack *trac static float dist_to_rect(float co[2], float pos[2], float min[2], float max[2]) { float d1, d2, d3, d4; - float p[2]= {co[0]-pos[0], co[1]-pos[1]}; - float v1[2]= {min[0], min[1]}, v2[2]= {max[0], min[1]}, - v3[2]= {max[0], max[1]}, v4[2]= {min[0], max[1]}; + float p[2] = {co[0]-pos[0], co[1]-pos[1]}; + float v1[2] = {min[0], min[1]}, v2[2] = {max[0], min[1]}, + v3[2] = {max[0], max[1]}, v4[2] = {min[0], max[1]}; - d1= dist_to_line_segment_v2(p, v1, v2); - d2= dist_to_line_segment_v2(p, v2, v3); - d3= dist_to_line_segment_v2(p, v3, v4); - d4= dist_to_line_segment_v2(p, v4, v1); + d1 = dist_to_line_segment_v2(p, v1, v2); + d2 = dist_to_line_segment_v2(p, v2, v3); + d3 = dist_to_line_segment_v2(p, v3, v4); + d4 = dist_to_line_segment_v2(p, v4, v1); return MIN4(d1, d2, d3, d4); } static MovieTrackingTrack *find_nearest_track(SpaceClip *sc, ListBase *tracksbase, float co[2]) { - MovieTrackingTrack *track= NULL, *cur; - float mindist= 0.0f; + MovieTrackingTrack *track = NULL, *cur; + float mindist = 0.0f; - cur= tracksbase->first; + cur = tracksbase->first; while (cur) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(cur, sc->user.framenr); + MovieTrackingMarker *marker = BKE_tracking_get_marker(cur, sc->user.framenr); - if (((cur->flag&TRACK_HIDDEN)==0) && MARKER_VISIBLE(sc, marker)) { - float dist, d1, d2=FLT_MAX, d3=FLT_MAX; + if (((cur->flag & TRACK_HIDDEN) == 0) && MARKER_VISIBLE(sc, marker)) { + float dist, d1, d2 = FLT_MAX, d3 = FLT_MAX; d1= sqrtf((co[0]-marker->pos[0]-cur->offset[0])*(co[0]-marker->pos[0]-cur->offset[0])+ (co[1]-marker->pos[1]-cur->offset[1])*(co[1]-marker->pos[1]-cur->offset[1])); /* distance to marker point */ /* distance to pattern boundbox */ - if (sc->flag&SC_SHOW_MARKER_PATTERN) + if (sc->flag & SC_SHOW_MARKER_PATTERN) d2= dist_to_rect(co, marker->pos, cur->pat_min, cur->pat_max); /* distance to search boundbox */ - if (sc->flag&SC_SHOW_MARKER_SEARCH && TRACK_VIEW_SELECTED(sc, cur)) + if (sc->flag & SC_SHOW_MARKER_SEARCH && TRACK_VIEW_SELECTED(sc, cur)) d3= dist_to_rect(co, marker->pos, cur->search_min, cur->search_max); /* choose minimal distance. useful for cases of overlapped markers. */ - dist= MIN3(d1, d2, d3); + dist = MIN3(d1, d2, d3); - if (track==NULL || dist<mindist) { - track= cur; - mindist= dist; + if (track == NULL || dist<mindist) { + track = cur; + mindist = dist; } } - cur= cur->next; + cur = cur->next; } return track; @@ -757,39 +768,39 @@ static MovieTrackingTrack *find_nearest_track(SpaceClip *sc, ListBase *tracksbas static int mouse_select(bContext *C, float co[2], int extend) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); - MovieTrackingTrack *track= NULL; /* selected marker */ + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); + MovieTrackingTrack *track = NULL; /* selected marker */ - track= find_nearest_track(sc, tracksbase, co); + track = find_nearest_track(sc, tracksbase, co); if (track) { - int area= track_mouse_area(sc, co, track); + int area = track_mouse_area(sc, co, track); if (!extend || !TRACK_VIEW_SELECTED(sc, track)) - area= TRACK_AREA_ALL; + area = TRACK_AREA_ALL; if (extend && TRACK_AREA_SELECTED(track, area)) { - if (track==act_track) + if (track == act_track) BKE_tracking_deselect_track(track, area); else - clip->tracking.act_track= track; + clip->tracking.act_track = track; } else { - if (area==TRACK_AREA_POINT) - area= TRACK_AREA_ALL; + if (area == TRACK_AREA_POINT) + area = TRACK_AREA_ALL; BKE_tracking_select_track(tracksbase, track, area, extend); - clip->tracking.act_track= track; + clip->tracking.act_track = track; } } if (!extend) { - sc->xlockof= 0.0f; - sc->ylockof= 0.0f; + sc->xlockof = 0.0f; + sc->ylockof = 0.0f; } WM_event_add_notifier(C, NC_GEOM|ND_SELECT, NULL); @@ -803,7 +814,7 @@ static int select_exec(bContext *C, wmOperator *op) int extend; RNA_float_get_array(op->ptr, "location", co); - extend= RNA_boolean_get(op->ptr, "extend"); + extend = RNA_boolean_get(op->ptr, "extend"); return mouse_select(C, co, extend); } @@ -811,16 +822,16 @@ static int select_exec(bContext *C, wmOperator *op) static int select_invoke(bContext *C, wmOperator *op, wmEvent *event) { float co[2]; - int extend= RNA_boolean_get(op->ptr, "extend"); + int extend = RNA_boolean_get(op->ptr, "extend"); if (!extend) { - SlideMarkerData *slidedata= slide_marker_customdata(C, event); + SlideMarkerData *slidedata = slide_marker_customdata(C, event); if (slidedata) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); - clip->tracking.act_track= slidedata->track; + clip->tracking.act_track = slidedata->track; WM_event_add_notifier(C, NC_GEOM|ND_SELECT, NULL); @@ -862,13 +873,13 @@ void CLIP_OT_select(wmOperatorType *ot) static int border_select_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); MovieTrackingTrack *track; - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); rcti rect; rctf rectf; - int change= 0, mode, extend; + int change = FALSE, mode, extend; /* get rectangle from operator */ rect.xmin = RNA_int_get(op->ptr, "xmin"); @@ -879,14 +890,14 @@ static int border_select_exec(bContext *C, wmOperator *op) ED_clip_point_stable_pos(C, rect.xmin, rect.ymin, &rectf.xmin, &rectf.ymin); ED_clip_point_stable_pos(C, rect.xmax, rect.ymax, &rectf.xmax, &rectf.ymax); - mode= RNA_int_get(op->ptr, "gesture_mode"); - extend= RNA_boolean_get(op->ptr, "extend"); + mode = RNA_int_get(op->ptr, "gesture_mode"); + extend = RNA_boolean_get(op->ptr, "extend"); /* do actual selection */ - track= tracksbase->first; + track = tracksbase->first; while (track) { - if ((track->flag&TRACK_HIDDEN)==0) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, sc->user.framenr); + if ((track->flag & TRACK_HIDDEN) == 0) { + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, sc->user.framenr); if (MARKER_VISIBLE(sc, marker)) { if (BLI_in_rctf(&rectf, marker->pos[0], marker->pos[1])) { @@ -896,11 +907,11 @@ static int border_select_exec(bContext *C, wmOperator *op) BKE_tracking_track_flag(track, TRACK_AREA_ALL, SELECT, 1); } - change= 1; + change = TRUE; } } - track= track->next; + track = track->next; } if (change) { @@ -939,52 +950,52 @@ static int marker_inside_ellipse(MovieTrackingMarker *marker, float offset[2], f /* normalized ellipse: ell[0] = scaleX, ell[1] = scaleY */ float x, y; - x= (marker->pos[0] - offset[0])*ellipse[0]; - y= (marker->pos[1] - offset[1])*ellipse[1]; + x = (marker->pos[0] - offset[0])*ellipse[0]; + y = (marker->pos[1] - offset[1])*ellipse[1]; return x*x + y*y < 1.0f; } static int circle_select_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - ARegion *ar= CTX_wm_region(C); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + ARegion *ar = CTX_wm_region(C); MovieTrackingTrack *track; - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); - int x, y, radius, width, height, mode, change= 0; + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); + int x, y, radius, width, height, mode, change = FALSE; float zoomx, zoomy, offset[2], ellipse[2]; /* get operator properties */ - x= RNA_int_get(op->ptr, "x"); - y= RNA_int_get(op->ptr, "y"); - radius= RNA_int_get(op->ptr, "radius"); + x = RNA_int_get(op->ptr, "x"); + y = RNA_int_get(op->ptr, "y"); + radius = RNA_int_get(op->ptr, "radius"); - mode= RNA_int_get(op->ptr, "gesture_mode"); + mode = RNA_int_get(op->ptr, "gesture_mode"); /* compute ellipse and position in unified coordinates */ ED_space_clip_size(sc, &width, &height); ED_space_clip_zoom(sc, ar, &zoomx, &zoomy); - ellipse[0]= width*zoomx/radius; - ellipse[1]= height*zoomy/radius; + ellipse[0] = width * zoomx / radius; + ellipse[1] = height * zoomy / radius; ED_clip_point_stable_pos(C, x, y, &offset[0], &offset[1]); /* do selection */ - track= tracksbase->first; + track = tracksbase->first; while (track) { - if ((track->flag&TRACK_HIDDEN)==0) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, sc->user.framenr); + if ((track->flag & TRACK_HIDDEN) == 0) { + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, sc->user.framenr); if (MARKER_VISIBLE(sc, marker) && marker_inside_ellipse(marker, offset, ellipse)) { BKE_tracking_track_flag(track, TRACK_AREA_ALL, SELECT, mode!=GESTURE_MODAL_SELECT); - change= 1; + change = TRUE; } } - track= track->next; + track = track->next; } if (change) { @@ -1023,66 +1034,66 @@ void CLIP_OT_select_circle(wmOperatorType *ot) static int select_all_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTrackingTrack *track= NULL; /* selected track */ + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTrackingTrack *track = NULL; /* selected track */ MovieTrackingMarker *marker; - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); - int action= RNA_enum_get(op->ptr, "action"); - int framenr= sc->user.framenr; - int has_selection= 0; + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); + int action = RNA_enum_get(op->ptr, "action"); + int framenr = sc->user.framenr; + int has_selection = FALSE; if (action == SEL_TOGGLE) { - action= SEL_SELECT; - track= tracksbase->first; + action = SEL_SELECT; + track = tracksbase->first; while (track) { if (TRACK_VIEW_SELECTED(sc, track)) { - marker= BKE_tracking_get_marker(track, framenr); + marker = BKE_tracking_get_marker(track, framenr); if (MARKER_VISIBLE(sc, marker)) { - action= SEL_DESELECT; + action = SEL_DESELECT; break; } } - track= track->next; + track = track->next; } } - track= tracksbase->first; + track = tracksbase->first; while (track) { - if ((track->flag&TRACK_HIDDEN)==0) { - marker= BKE_tracking_get_marker(track, framenr); + if ((track->flag & TRACK_HIDDEN)==0) { + marker = BKE_tracking_get_marker(track, framenr); if (MARKER_VISIBLE(sc, marker)) { switch (action) { case SEL_SELECT: - track->flag|= SELECT; - track->pat_flag|= SELECT; - track->search_flag|= SELECT; + track->flag |= SELECT; + track->pat_flag |= SELECT; + track->search_flag |= SELECT; break; case SEL_DESELECT: - track->flag&= ~SELECT; - track->pat_flag&= ~SELECT; - track->search_flag&= ~SELECT; + track->flag &= ~SELECT; + track->pat_flag &= ~SELECT; + track->search_flag &= ~SELECT; break; case SEL_INVERT: - track->flag^= SELECT; - track->pat_flag^= SELECT; - track->search_flag^= SELECT; + track->flag ^= SELECT; + track->pat_flag ^= SELECT; + track->search_flag ^= SELECT; break; } } } if (TRACK_VIEW_SELECTED(sc, track)) - has_selection= 1; + has_selection = TRUE; - track= track->next; + track = track->next; } if (!has_selection) - sc->flag&= ~SC_LOCK_SELECTION; + sc->flag &= ~SC_LOCK_SELECTION; WM_event_add_notifier(C, NC_GEOM|ND_SELECT, NULL); @@ -1110,56 +1121,58 @@ void CLIP_OT_select_all(wmOperatorType *ot) static int select_groped_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); MovieTrackingTrack *track; MovieTrackingMarker *marker; - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - int group= RNA_enum_get(op->ptr, "group"); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + int group = RNA_enum_get(op->ptr, "group"); - track= tracksbase->first; + track = tracksbase->first; while (track) { - int ok= 0; + int ok = FALSE; - marker= BKE_tracking_get_marker(track, sc->user.framenr); + marker = BKE_tracking_get_marker(track, sc->user.framenr); - if (group==0) { /* Keyframed */ - ok= marker->framenr==sc->user.framenr && (marker->flag&MARKER_TRACKED)==0; + if (group == 0) { /* Keyframed */ + ok = marker->framenr == sc->user.framenr && (marker->flag & MARKER_TRACKED)==0; } - else if (group==1) { /* Estimated */ - ok= marker->framenr!=sc->user.framenr; + else if (group == 1) { /* Estimated */ + ok = marker->framenr != sc->user.framenr; } - else if (group==2) { /* tracked */ - ok= marker->framenr==sc->user.framenr && (marker->flag&MARKER_TRACKED); + else if (group == 2) { /* tracked */ + ok = marker->framenr == sc->user.framenr && (marker->flag & MARKER_TRACKED); } - else if (group==3) { /* locked */ - ok= track->flag&TRACK_LOCKED; + else if (group == 3) { /* locked */ + ok = track->flag & TRACK_LOCKED; } - else if (group==4) { /* disabled */ - ok= marker->flag&MARKER_DISABLED; + else if (group == 4) { /* disabled */ + ok = marker->flag & MARKER_DISABLED; } - else if (group==5) { /* color */ - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); + else if (group == 5) { /* color */ + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); if (act_track) { - ok= (track->flag&TRACK_CUSTOMCOLOR) == (act_track->flag&TRACK_CUSTOMCOLOR); + ok = (track->flag & TRACK_CUSTOMCOLOR) == (act_track->flag & TRACK_CUSTOMCOLOR); - if (ok && track->flag&TRACK_CUSTOMCOLOR) - ok= equals_v3v3(track->color, act_track->color); + if (ok && track->flag & TRACK_CUSTOMCOLOR) + ok = equals_v3v3(track->color, act_track->color); } } - else if (group==6) { /* failed */ - ok= (track->flag&TRACK_HAS_BUNDLE) == 0; + else if (group == 6) { /* failed */ + ok = (track->flag & TRACK_HAS_BUNDLE) == 0; } if (ok) { - track->flag|= SELECT; - if (sc->flag&SC_SHOW_MARKER_PATTERN) track->pat_flag|= SELECT; - if (sc->flag&SC_SHOW_MARKER_SEARCH) track->search_flag|= SELECT; + track->flag |= SELECT; + if (sc->flag & SC_SHOW_MARKER_PATTERN) + track->pat_flag |= SELECT; + if (sc->flag & SC_SHOW_MARKER_SEARCH) + track->search_flag |= SELECT; } - track= track->next; + track = track->next; } WM_event_add_notifier(C, NC_MOVIECLIP|ND_DISPLAY, clip); @@ -1217,21 +1230,21 @@ static int track_markers_testbreak(void) static int track_count_markers(SpaceClip *sc, MovieClip *clip) { - int tot= 0; - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); + int tot = 0; + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); MovieTrackingTrack *track; - int framenr= sc->user.framenr; + int framenr = sc->user.framenr; - track= tracksbase->first; + track = tracksbase->first; while (track) { - if (TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_LOCKED)==0) { - MovieTrackingMarker *marker= BKE_tracking_get_marker(track, framenr); + if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED) == 0) { + MovieTrackingMarker *marker = BKE_tracking_get_marker(track, framenr); - if (!marker || (marker->flag&MARKER_DISABLED) == 0) + if (!marker || (marker->flag & MARKER_DISABLED) == 0) tot++; } - track= track->next; + track = track->next; } return tot; @@ -1239,13 +1252,13 @@ static int track_count_markers(SpaceClip *sc, MovieClip *clip) static void clear_invisible_track_selection(SpaceClip *sc, MovieClip *clip) { - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); int hidden = 0; - if ((sc->flag&SC_SHOW_MARKER_PATTERN)==0) + if ((sc->flag & SC_SHOW_MARKER_PATTERN)==0) hidden |= TRACK_AREA_PAT; - if ((sc->flag&SC_SHOW_MARKER_SEARCH)==0) + if ((sc->flag & SC_SHOW_MARKER_SEARCH)==0) hidden |= TRACK_AREA_SEARCH; if (hidden) { @@ -1262,128 +1275,139 @@ static void clear_invisible_track_selection(SpaceClip *sc, MovieClip *clip) static void track_init_markers(SpaceClip *sc, MovieClip *clip, int *frames_limit_r) { - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); MovieTrackingTrack *track; - int framenr= sc->user.framenr; - int frames_limit= 0; + int framenr = sc->user.framenr; + int frames_limit = 0; clear_invisible_track_selection(sc, clip); - track= tracksbase->first; + track = tracksbase->first; while (track) { if (TRACK_VIEW_SELECTED(sc, track)) { - if ((track->flag&TRACK_HIDDEN)==0 && (track->flag&TRACK_LOCKED)==0) { + if ((track->flag & TRACK_HIDDEN)==0 && (track->flag & TRACK_LOCKED)==0) { BKE_tracking_ensure_marker(track, framenr); if (track->frames_limit) { - if (frames_limit==0) - frames_limit= track->frames_limit; + if (frames_limit == 0) + frames_limit = track->frames_limit; else - frames_limit= MIN2(frames_limit, track->frames_limit); + frames_limit = MIN2(frames_limit, track->frames_limit); } } } - track= track->next; + track = track->next; } - *frames_limit_r= frames_limit; + *frames_limit_r = frames_limit; } static int track_markers_check_direction(int backwards, int curfra, int efra) { if (backwards) { - if (curfra<efra) return 0; + if (curfra < efra) + return FALSE; } else { - if (curfra>efra) return 0; + if (curfra > efra) + return FALSE; } - return 1; + return TRUE; } static int track_markers_initjob(bContext *C, TrackMarkersJob *tmj, int backwards) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - Scene *scene= CTX_data_scene(C); - MovieTrackingSettings *settings= &clip->tracking.settings; + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + Scene *scene = CTX_data_scene(C); + MovieTrackingSettings *settings = &clip->tracking.settings; int frames_limit; track_init_markers(sc, clip, &frames_limit); - tmj->sfra= sc->user.framenr; - tmj->clip= clip; - tmj->backwards= backwards; + tmj->sfra = sc->user.framenr; + tmj->clip = clip; + tmj->backwards = backwards; - if (backwards) tmj->efra= SFRA; - else tmj->efra= EFRA; + if (backwards) + tmj->efra = SFRA; + else + tmj->efra = EFRA; /* limit frames to be tracked by user setting */ if (frames_limit) { - if (backwards) tmj->efra= MAX2(tmj->efra, tmj->sfra-frames_limit); - else tmj->efra= MIN2(tmj->efra, tmj->sfra+frames_limit); + if (backwards) + tmj->efra = MAX2(tmj->efra, tmj->sfra - frames_limit); + else + tmj->efra = MIN2(tmj->efra, tmj->sfra + frames_limit); } - if (settings->speed!=TRACKING_SPEED_FASTEST) { - tmj->delay= 1.0f/scene->r.frs_sec*1000.0f; + if (settings->speed != TRACKING_SPEED_FASTEST) { + tmj->delay = 1.0f / scene->r.frs_sec * 1000.0f; - if (settings->speed==TRACKING_SPEED_HALF) tmj->delay*= 2; - else if (settings->speed==TRACKING_SPEED_QUARTER) tmj->delay*= 4; - else if (settings->speed==TRACKING_SPEED_DOUBLE) tmj->delay/= 2; + if (settings->speed == TRACKING_SPEED_HALF) + tmj->delay *= 2; + else if (settings->speed == TRACKING_SPEED_QUARTER) + tmj->delay *= 4; + else if (settings->speed == TRACKING_SPEED_DOUBLE) + tmj->delay /= 2; } - tmj->context= BKE_tracking_context_new(clip, &sc->user, backwards, 1); + tmj->context = BKE_tracking_context_new(clip, &sc->user, backwards, 1); - clip->tracking_context= tmj->context; + clip->tracking_context = tmj->context; - tmj->lastfra= tmj->sfra; + tmj->lastfra = tmj->sfra; /* XXX: silly to store this, but this data is needed to update scene and movie-clip * frame numbers when tracking is finished. This introduces better feedback for artists. * Maybe there's another way to solve this problem, but can't think better way atm. * Anyway, this way isn't more unstable as animation rendering animation * which uses the same approach (except storing screen). */ - tmj->scene= scene; - tmj->main= CTX_data_main(C); - tmj->screen= CTX_wm_screen(C); + tmj->scene = scene; + tmj->main = CTX_data_main(C); + tmj->screen = CTX_wm_screen(C); return track_markers_check_direction(backwards, tmj->sfra, tmj->efra); } static void track_markers_startjob(void *tmv, short *stop, short *do_update, float *progress) { - TrackMarkersJob *tmj= (TrackMarkersJob *)tmv; - int framenr= tmj->sfra; - //double t= PIL_check_seconds_timer(); + TrackMarkersJob *tmj = (TrackMarkersJob *)tmv; + int framenr = tmj->sfra; + //double t = PIL_check_seconds_timer(); while (framenr != tmj->efra) { - if (tmj->delay>0) { + if (tmj->delay > 0) { /* tracking should happen with fixed fps. Calculate time * using current timer value before tracking frame and after. * * Small (and maybe unneeded optimization): do not calculate exec_time * for "Fastest" tracking */ - double start_time= PIL_check_seconds_timer(), exec_time; + double start_time = PIL_check_seconds_timer(), exec_time; if (!BKE_tracking_next(tmj->context)) break; - exec_time= PIL_check_seconds_timer()-start_time; + exec_time = PIL_check_seconds_timer()-start_time; if (tmj->delay > (float)exec_time) PIL_sleep_ms(tmj->delay-(float)exec_time); } else if (!BKE_tracking_next(tmj->context)) break; - *do_update= 1; - *progress=(float)(framenr-tmj->sfra) / (tmj->efra-tmj->sfra); + *do_update = TRUE; + *progress = (float)(framenr-tmj->sfra) / (tmj->efra-tmj->sfra); - if (tmj->backwards) framenr--; - else framenr++; + if (tmj->backwards) + framenr--; + else + framenr++; - tmj->lastfra= framenr; + tmj->lastfra = framenr; if (*stop || track_markers_testbreak()) break; @@ -1394,17 +1418,17 @@ static void track_markers_startjob(void *tmv, short *stop, short *do_update, flo static void track_markers_updatejob(void *tmv) { - TrackMarkersJob *tmj= (TrackMarkersJob *)tmv; + TrackMarkersJob *tmj = (TrackMarkersJob *)tmv; BKE_tracking_sync(tmj->context); } static void track_markers_freejob(void *tmv) { - TrackMarkersJob *tmj= (TrackMarkersJob *)tmv; + TrackMarkersJob *tmj = (TrackMarkersJob *)tmv; - tmj->clip->tracking_context= NULL; - tmj->scene->r.cfra= tmj->lastfra; + tmj->clip->tracking_context = NULL; + tmj->scene->r.cfra = tmj->lastfra; ED_update_for_newframe(tmj->main, tmj->scene, tmj->screen, 0); BKE_tracking_sync(tmj->context); @@ -1417,14 +1441,14 @@ static void track_markers_freejob(void *tmv) static int track_markers_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - Scene *scene= CTX_data_scene(C); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + Scene *scene = CTX_data_scene(C); struct MovieTrackingContext *context; - int framenr= sc->user.framenr; - int sfra= framenr, efra; - int backwards= RNA_boolean_get(op->ptr, "backwards"); - int sequence= RNA_boolean_get(op->ptr, "sequence"); + int framenr = sc->user.framenr; + int sfra = framenr, efra; + int backwards = RNA_boolean_get(op->ptr, "backwards"); + int sequence = RNA_boolean_get(op->ptr, "sequence"); int frames_limit; if (track_count_markers(sc, clip)==0) @@ -1432,20 +1456,22 @@ static int track_markers_exec(bContext *C, wmOperator *op) track_init_markers(sc, clip, &frames_limit); - if (backwards) efra= SFRA; - else efra= EFRA; + if (backwards) + efra = SFRA; + else + efra = EFRA; /* limit frames to be tracked by user setting */ if (frames_limit) { - if (backwards) efra= MAX2(efra, sfra-frames_limit); - else efra= MIN2(efra, sfra+frames_limit); + if (backwards) efra = MAX2(efra, sfra-frames_limit); + else efra = MIN2(efra, sfra+frames_limit); } if (!track_markers_check_direction(backwards, framenr, efra)) return OPERATOR_CANCELLED; /* do not disable tracks due to threshold when tracking frame-by-frame */ - context= BKE_tracking_context_new(clip, &sc->user, backwards, sequence); + context = BKE_tracking_context_new(clip, &sc->user, backwards, sequence); while (framenr != efra) { if (!BKE_tracking_next(context)) @@ -1462,7 +1488,7 @@ static int track_markers_exec(bContext *C, wmOperator *op) BKE_tracking_context_free(context); /* update scene current frame to the lastes tracked frame */ - scene->r.cfra= framenr; + scene->r.cfra = framenr; WM_event_add_notifier(C, NC_MOVIECLIP|NA_EVALUATED, clip); WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); @@ -1473,12 +1499,12 @@ static int track_markers_exec(bContext *C, wmOperator *op) static int track_markers_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { TrackMarkersJob *tmj; - ScrArea *sa= CTX_wm_area(C); - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + ScrArea *sa = CTX_wm_area(C); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); wmJob *steve; - int backwards= RNA_boolean_get(op->ptr, "backwards"); - int sequence= RNA_boolean_get(op->ptr, "sequence"); + int backwards = RNA_boolean_get(op->ptr, "backwards"); + int sequence = RNA_boolean_get(op->ptr, "sequence"); if (WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C))) { /* only one tracking is allowed at a time */ @@ -1494,7 +1520,7 @@ static int track_markers_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(eve if (!sequence) return track_markers_exec(C, op); - tmj= MEM_callocN(sizeof(TrackMarkersJob), "TrackMarkersJob data"); + tmj = MEM_callocN(sizeof(TrackMarkersJob), "TrackMarkersJob data"); if (!track_markers_initjob(C, tmj, backwards)) { track_markers_freejob(tmj); @@ -1502,7 +1528,7 @@ static int track_markers_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(eve } /* setup job */ - steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Track Markers", WM_JOB_PROGRESS); + steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Track Markers", WM_JOB_PROGRESS); WM_jobs_customdata(steve, tmj, track_markers_freejob); /* if there's delay set in tracking job, tracking should happen @@ -1514,7 +1540,7 @@ static int track_markers_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(eve WM_jobs_callbacks(steve, track_markers_startjob, NULL, track_markers_updatejob, NULL); - G.afbreek= 0; + G.afbreek = 0; WM_jobs_start(CTX_wm_manager(C), steve); WM_cursor_wait(0); @@ -1578,12 +1604,12 @@ typedef struct { static int solve_camera_initjob(bContext *C, SolveCameraJob *scj, wmOperator *op, char *error_msg, int max_error) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - Scene *scene= CTX_data_scene(C); - MovieTracking *tracking= &clip->tracking; - MovieTrackingSettings *settings= &clip->tracking.settings; - MovieTrackingObject *object= BKE_tracking_active_object(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + Scene *scene = CTX_data_scene(C); + MovieTracking *tracking = &clip->tracking; + MovieTrackingSettings *settings = &clip->tracking.settings; + MovieTrackingObject *object = BKE_tracking_active_object(tracking); int width, height; if (!BKE_tracking_can_reconstruct(tracking, object, error_msg, max_error)) @@ -1592,30 +1618,30 @@ static int solve_camera_initjob(bContext *C, SolveCameraJob *scj, wmOperator *op /* could fail if footage uses images with different sizes */ BKE_movieclip_get_size(clip, &sc->user, &width, &height); - scj->clip= clip; - scj->scene= scene; - scj->reports= op->reports; - scj->user= sc->user; + scj->clip = clip; + scj->scene = scene; + scj->reports = op->reports; + scj->user = sc->user; - scj->context= BKE_tracking_reconstruction_context_new(tracking, object, + scj->context = BKE_tracking_reconstruction_context_new(tracking, object, settings->keyframe1, settings->keyframe2, width, height); - tracking->stats= MEM_callocN(sizeof(MovieTrackingStats), "solve camera stats"); + tracking->stats = MEM_callocN(sizeof(MovieTrackingStats), "solve camera stats"); return 1; } static void solve_camera_updatejob(void *scv) { - SolveCameraJob *scj= (SolveCameraJob *)scv; - MovieTracking *tracking= &scj->clip->tracking; + SolveCameraJob *scj = (SolveCameraJob *)scv; + MovieTracking *tracking = &scj->clip->tracking; BLI_strncpy(tracking->stats->message, scj->stats_message, sizeof(tracking->stats->message)); } static void solve_camera_startjob(void *scv, short *stop, short *do_update, float *progress) { - SolveCameraJob *scj= (SolveCameraJob *)scv; + SolveCameraJob *scj = (SolveCameraJob *)scv; BKE_tracking_solve_reconstruction(scj->context, stop, do_update, progress, scj->stats_message, sizeof(scj->stats_message)); @@ -1623,10 +1649,10 @@ static void solve_camera_startjob(void *scv, short *stop, short *do_update, floa static void solve_camera_freejob(void *scv) { - SolveCameraJob *scj= (SolveCameraJob *)scv; - MovieTracking *tracking= &scj->clip->tracking; - Scene *scene= scj->scene; - MovieClip *clip= scj->clip; + SolveCameraJob *scj = (SolveCameraJob *)scv; + MovieTracking *tracking = &scj->clip->tracking; + Scene *scene = scj->scene; + MovieClip *clip = scj->clip; int solved; if (!scj->context) { @@ -1635,7 +1661,7 @@ static void solve_camera_freejob(void *scv) return; } - solved= BKE_tracking_finish_reconstruction(scj->context, tracking); + solved = BKE_tracking_finish_reconstruction(scj->context, tracking); if (!solved) BKE_report(scj->reports, RPT_WARNING, "Some data failed to reconstruct, see console for details"); @@ -1646,12 +1672,12 @@ static void solve_camera_freejob(void *scv) if (scene->clip) id_us_min(&clip->id); - scene->clip= clip; + scene->clip = clip; id_us_plus(&clip->id); /* set blender camera focal length so result would look fine there */ if (scene->camera) { - Camera *camera= (Camera*)scene->camera->data; + Camera *camera = (Camera*)scene->camera->data; int width, height; BKE_movieclip_get_size(clip, &scj->user, &width, &height); @@ -1662,7 +1688,7 @@ static void solve_camera_freejob(void *scv) } MEM_freeN(tracking->stats); - tracking->stats= NULL; + tracking->stats = NULL; DAG_id_tag_update(&clip->id, 0); @@ -1679,9 +1705,9 @@ static void solve_camera_freejob(void *scv) static int solve_camera_exec(bContext *C, wmOperator *op) { SolveCameraJob *scj; - char error_msg[256]= "\0"; + char error_msg[256] = "\0"; - scj= MEM_callocN(sizeof(SolveCameraJob), "SolveCameraJob data"); + scj = MEM_callocN(sizeof(SolveCameraJob), "SolveCameraJob data"); if (!solve_camera_initjob(C, scj, op, error_msg, sizeof(error_msg))) { if (error_msg[0]) BKE_report(op->reports, RPT_ERROR, error_msg); @@ -1701,20 +1727,20 @@ static int solve_camera_exec(bContext *C, wmOperator *op) static int solve_camera_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { SolveCameraJob *scj; - ScrArea *sa= CTX_wm_area(C); - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingReconstruction *reconstruction= BKE_tracking_get_reconstruction(tracking); + ScrArea *sa = CTX_wm_area(C); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingReconstruction *reconstruction = BKE_tracking_get_reconstruction(tracking); wmJob *steve; - char error_msg[256]= "\0"; + char error_msg[256] = "\0"; if (WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C))) { /* only one solve is allowed at a time */ return OPERATOR_CANCELLED; } - scj= MEM_callocN(sizeof(SolveCameraJob), "SolveCameraJob data"); + scj = MEM_callocN(sizeof(SolveCameraJob), "SolveCameraJob data"); if (!solve_camera_initjob(C, scj, op, error_msg, sizeof(error_msg))) { if (error_msg[0]) BKE_report(op->reports, RPT_ERROR, error_msg); @@ -1727,16 +1753,16 @@ static int solve_camera_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(even BLI_strncpy(tracking->stats->message, "Solving camera | Preparing solve", sizeof(tracking->stats->message)); /* hide reconstruction statistics from previous solve */ - reconstruction->flag&= ~TRACKING_RECONSTRUCTED; + reconstruction->flag &= ~TRACKING_RECONSTRUCTED; WM_event_add_notifier(C, NC_MOVIECLIP|NA_EVALUATED, clip); /* setup job */ - steve= WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Solve Camera", WM_JOB_PROGRESS); + steve = WM_jobs_get(CTX_wm_manager(C), CTX_wm_window(C), sa, "Solve Camera", WM_JOB_PROGRESS); WM_jobs_customdata(steve, scj, solve_camera_freejob); WM_jobs_timer(steve, 0.1, NC_MOVIECLIP|NA_EVALUATED, 0); WM_jobs_callbacks(steve, solve_camera_startjob, NULL, solve_camera_updatejob, NULL); - G.afbreek= 0; + G.afbreek = 0; WM_jobs_start(CTX_wm_manager(C), steve); WM_cursor_wait(0); @@ -1750,7 +1776,7 @@ static int solve_camera_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(even static int solve_camera_modal(bContext *C, wmOperator *UNUSED(op), wmEvent *event) { /* no running solver, remove handler and pass through */ - if (0==WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C))) + if (0 == WM_jobs_test(CTX_wm_manager(C), CTX_wm_area(C))) return OPERATOR_FINISHED|OPERATOR_PASS_THROUGH; /* running tracking */ @@ -1784,26 +1810,26 @@ void CLIP_OT_solve_camera(wmOperatorType *ot) static int clear_solution_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); - MovieTrackingReconstruction *reconstruction= BKE_tracking_get_reconstruction(tracking); - MovieTrackingTrack *track= tracksbase->first; + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); + MovieTrackingReconstruction *reconstruction = BKE_tracking_get_reconstruction(tracking); + MovieTrackingTrack *track = tracksbase->first; while (track) { - track->flag&= ~TRACK_HAS_BUNDLE; + track->flag &= ~TRACK_HAS_BUNDLE; - track= track->next; + track = track->next; } if (reconstruction->cameras) MEM_freeN(reconstruction->cameras); - reconstruction->cameras= NULL; - reconstruction->camnr= 0; + reconstruction->cameras = NULL; + reconstruction->camnr = 0; - reconstruction->flag&= ~TRACKING_RECONSTRUCTED; + reconstruction->flag &= ~TRACKING_RECONSTRUCTED; DAG_id_tag_update(&clip->id, 0); @@ -1832,24 +1858,24 @@ void CLIP_OT_clear_solution(wmOperatorType *ot) static int clear_track_path_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); MovieTrackingTrack *track; - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); - int action= RNA_enum_get(op->ptr, "action"); - int clear_active= RNA_boolean_get(op->ptr, "clear_active"); + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); + int action = RNA_enum_get(op->ptr, "action"); + int clear_active = RNA_boolean_get(op->ptr, "clear_active"); if (clear_active) { - track= BKE_tracking_active_track(&clip->tracking); + track = BKE_tracking_active_track(&clip->tracking); BKE_tracking_clear_path(track, sc->user.framenr, action); } else { - track= tracksbase->first; + track = tracksbase->first; while (track) { if (TRACK_VIEW_SELECTED(sc, track)) BKE_tracking_clear_path(track, sc->user.framenr, action); - track= track->next; + track = track->next; } } @@ -1888,23 +1914,25 @@ void CLIP_OT_clear_track_path(wmOperatorType *ot) static int disable_markers_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - MovieTrackingTrack *track= tracksbase->first; - int action= RNA_enum_get(op->ptr, "action"); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + MovieTrackingTrack *track = tracksbase->first; + int action = RNA_enum_get(op->ptr, "action"); while (track) { - if (TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_LOCKED)==0) { - MovieTrackingMarker *marker= BKE_tracking_ensure_marker(track, sc->user.framenr); - - if (action==0) marker->flag|= MARKER_DISABLED; - else if (action==1) marker->flag&= ~MARKER_DISABLED; - else marker->flag^= MARKER_DISABLED; + if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED)==0) { + MovieTrackingMarker *marker = BKE_tracking_ensure_marker(track, sc->user.framenr); + + if (action == 0) + marker->flag |= MARKER_DISABLED; + else if (action == 1) + marker->flag &= ~MARKER_DISABLED; + else marker->flag ^= MARKER_DISABLED; } - track= track->next; + track = track->next; } DAG_id_tag_update(&clip->id, 0); @@ -1943,22 +1971,22 @@ void CLIP_OT_disable_markers(wmOperatorType *ot) static Object *get_camera_with_movieclip(Scene *scene, MovieClip *clip) { - Object *camera= scene->camera; + Object *camera = scene->camera; Base *base; if (camera && object_get_movieclip(scene, camera, 0)==clip) return camera; - base= scene->base.first; + base = scene->base.first; while (base) { if (base->object->type == OB_CAMERA) { if (object_get_movieclip(scene, base->object, 0)==clip) { - camera= base->object; + camera = base->object; break; } } - base= base->next; + base = base->next; } return camera; @@ -1966,22 +1994,22 @@ static Object *get_camera_with_movieclip(Scene *scene, MovieClip *clip) static Object *get_orientation_object(bContext *C) { - Scene *scene= CTX_data_scene(C); - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingObject *tracking_object= BKE_tracking_active_object(tracking); - Object *object= NULL; + Scene *scene = CTX_data_scene(C); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingObject *tracking_object = BKE_tracking_active_object(tracking); + Object *object = NULL; - if (tracking_object->flag&TRACKING_OBJECT_CAMERA) { - object= get_camera_with_movieclip(scene, clip); + if (tracking_object->flag & TRACKING_OBJECT_CAMERA) { + object = get_camera_with_movieclip(scene, clip); } else { - object= OBACT; + object = OBACT; } if (object && object->parent) - object= object->parent; + object = object->parent; return object; } @@ -1989,37 +2017,37 @@ static Object *get_orientation_object(bContext *C) static int set_orientation_poll(bContext *C) { if (space_clip_frame_poll(C)) { - Scene *scene= CTX_data_scene(C); - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingObject *tracking_object= BKE_tracking_active_object(tracking); - - if (tracking_object->flag&TRACKING_OBJECT_CAMERA) { - return 1; + Scene *scene = CTX_data_scene(C); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingObject *tracking_object = BKE_tracking_active_object(tracking); + + if (tracking_object->flag & TRACKING_OBJECT_CAMERA) { + return TRUE; } else { return OBACT != NULL; } } - return 0; + return FALSE; } static int count_selected_bundles(bContext *C) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); MovieTrackingTrack *track; - int tot= 0; + int tot = 0; - track= tracksbase->first; + track = tracksbase->first; while (track) { - if (TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_HAS_BUNDLE)) + if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_HAS_BUNDLE)) tot++; - track= track->next; + track = track->next; } return tot; @@ -2028,26 +2056,26 @@ static int count_selected_bundles(bContext *C) static void object_solver_inverted_matrix(Scene *scene, Object *ob, float invmat[4][4]) { bConstraint *con; - int found= 0; + int found = FALSE; - for (con= ob->constraints.first; con; con=con->next) { - bConstraintTypeInfo *cti= constraint_get_typeinfo(con); + for (con = ob->constraints.first; con; con = con->next) { + bConstraintTypeInfo *cti = constraint_get_typeinfo(con); if (!cti) continue; - if (cti->type==CONSTRAINT_TYPE_OBJECTSOLVER) { - bObjectSolverConstraint *data= (bObjectSolverConstraint *)con->data; + if (cti->type == CONSTRAINT_TYPE_OBJECTSOLVER) { + bObjectSolverConstraint *data = (bObjectSolverConstraint *)con->data; if (!found) { - Object *cam= data->camera ? data->camera : scene->camera; + Object *cam = data->camera ? data->camera : scene->camera; where_is_object_mat(scene, cam, invmat); } mult_m4_m4m4(invmat, invmat, data->invmat); - found= 1; + found = TRUE; } } @@ -2061,14 +2089,14 @@ static Object *object_solver_camera(Scene *scene, Object *ob) { bConstraint *con; - for (con= ob->constraints.first; con; con=con->next) { - bConstraintTypeInfo *cti= constraint_get_typeinfo(con); + for (con = ob->constraints.first; con; con = con->next) { + bConstraintTypeInfo *cti = constraint_get_typeinfo(con); if (!cti) continue; - if (cti->type==CONSTRAINT_TYPE_OBJECTSOLVER) { - bObjectSolverConstraint *data= (bObjectSolverConstraint *)con->data; + if (cti->type == CONSTRAINT_TYPE_OBJECTSOLVER) { + bObjectSolverConstraint *data = (bObjectSolverConstraint *)con->data; return data->camera ? data->camera : scene->camera; } @@ -2079,43 +2107,43 @@ static Object *object_solver_camera(Scene *scene, Object *ob) static int set_origin_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; MovieTrackingTrack *track; MovieTrackingObject *tracking_object; - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); Object *object; - Object *camera= get_camera_with_movieclip(scene, clip); + Object *camera = get_camera_with_movieclip(scene, clip); ListBase *tracksbase; float mat[4][4], vec[3], median[3]; - int selected_count= count_selected_bundles(C); + int selected_count = count_selected_bundles(C); - if (selected_count==0) { + if (selected_count == 0) { BKE_report(op->reports, RPT_ERROR, "At least one track with bundle should be selected to define origin position"); return OPERATOR_CANCELLED; } - object= get_orientation_object(C); + object = get_orientation_object(C); if (!object) { BKE_report(op->reports, RPT_ERROR, "No object to apply orientation on"); return OPERATOR_CANCELLED; } - tracking_object= BKE_tracking_active_object(tracking); + tracking_object = BKE_tracking_active_object(tracking); - tracksbase= BKE_tracking_object_tracks(tracking, tracking_object); + tracksbase = BKE_tracking_object_tracks(tracking, tracking_object); - track= tracksbase->first; + track = tracksbase->first; zero_v3(median); while (track) { - if (TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_HAS_BUNDLE)) { + if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_HAS_BUNDLE)) { add_v3_v3(median, track->bundle_pos); } - track= track->next; + track = track->next; } mul_v3_fl(median, 1.0f/selected_count); @@ -2123,7 +2151,7 @@ static int set_origin_exec(bContext *C, wmOperator *op) mul_v3_m4v3(vec, mat, median); - if (tracking_object->flag&TRACKING_OBJECT_CAMERA) { + if (tracking_object->flag & TRACKING_OBJECT_CAMERA) { sub_v3_v3(object->loc, vec); } else { @@ -2164,9 +2192,9 @@ void CLIP_OT_set_origin(wmOperatorType *ot) static void set_axis(Scene *scene, Object *ob, MovieClip *clip, MovieTrackingObject *tracking_object, MovieTrackingTrack *track, char axis) { - Object *camera= get_camera_with_movieclip(scene, clip); - int is_camera= tracking_object->flag&TRACKING_OBJECT_CAMERA; - int flip= 0; + Object *camera = get_camera_with_movieclip(scene, clip); + int is_camera = tracking_object->flag & TRACKING_OBJECT_CAMERA; + int flip = FALSE; float mat[4][4], vec[3], obmat[4][4], dvec[3]; object_to_mat4(ob, obmat); @@ -2192,24 +2220,24 @@ static void set_axis(Scene *scene, Object *ob, MovieClip *clip, MovieTrackingOb unit_m4(mat); - if (axis=='X') { - if (fabsf(dvec[1])<1e-3f) { - flip= 1; + if (axis == 'X') { + if (fabsf(dvec[1]) < 1e-3f) { + flip = TRUE; - mat[0][0]= -1.0f; mat[0][1]= 0.0f; mat[0][2]= 0.0f; - mat[1][0]= 0.0f; mat[1][1]= -1.0f; mat[1][2]= 0.0f; - mat[2][0]= 0.0f; mat[2][1]= 0.0f; mat[2][2]= 1.0f; + mat[0][0] = -1.0f; mat[0][1] = 0.0f; mat[0][2] = 0.0f; + mat[1][0] = 0.0f; mat[1][1] = -1.0f; mat[1][2] = 0.0f; + mat[2][0] = 0.0f; mat[2][1] = 0.0f; mat[2][2] = 1.0f; } else { copy_v3_v3(mat[0], vec); - if (is_camera || fabsf(vec[2])<1e-3f) { - mat[0][2]= 0.0f; - mat[2][0]= 0.0f; mat[2][1]= 0.0f; mat[2][2]= 1.0f; + if (is_camera || fabsf(vec[2]) < 1e-3f) { + mat[0][2] = 0.0f; + mat[2][0] = 0.0f; mat[2][1] = 0.0f; mat[2][2] = 1.0f; cross_v3_v3v3(mat[1], mat[2], mat[0]); } else { - vec[2]= 0.0f; + vec[2] = 0.0f; cross_v3_v3v3(mat[1], mat[0], vec); cross_v3_v3v3(mat[2], mat[0], mat[1]); @@ -2217,23 +2245,23 @@ static void set_axis(Scene *scene, Object *ob, MovieClip *clip, MovieTrackingOb } } else { - if (fabsf(dvec[0])<1e-3f) { - flip= 1; + if (fabsf(dvec[0]) < 1e-3f) { + flip = TRUE; - mat[0][0]= -1.0f; mat[0][1]= 0.0f; mat[0][2]= 0.0f; - mat[1][0]= 0.0f; mat[1][1]= -1.0f; mat[1][2]= 0.0f; - mat[2][0]= 0.0f; mat[2][1]= 0.0f; mat[2][2]= 1.0f; + mat[0][0] = -1.0f; mat[0][1] = 0.0f; mat[0][2] = 0.0f; + mat[1][0] = 0.0f; mat[1][1] = -1.0f; mat[1][2] = 0.0f; + mat[2][0] = 0.0f; mat[2][1] = 0.0f; mat[2][2] = 1.0f; } else { copy_v3_v3(mat[1], vec); if (is_camera || fabsf(vec[2])<1e-3f) { - mat[1][2]= 0.0f; - mat[2][0]= 0.0f; mat[2][1]= 0.0f; mat[2][2]= 1.0f; + mat[1][2] = 0.0f; + mat[2][0] = 0.0f; mat[2][1] = 0.0f; mat[2][2] = 1.0f; cross_v3_v3v3(mat[0], mat[1], mat[2]); } else { - vec[2]= 0.0f; + vec[2] = 0.0f; cross_v3_v3v3(mat[0], vec, mat[1]); cross_v3_v3v3(mat[2], mat[0], mat[1]); @@ -2274,22 +2302,22 @@ static void set_axis(Scene *scene, Object *ob, MovieClip *clip, MovieTrackingOb static int set_plane_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - Scene *scene= CTX_data_scene(C); - MovieTracking *tracking= &clip->tracking; + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + Scene *scene = CTX_data_scene(C); + MovieTracking *tracking = &clip->tracking; MovieTrackingObject *tracking_object; - MovieTrackingTrack *track, *axis_track= NULL, *act_track; + MovieTrackingTrack *track, *axis_track = NULL, *act_track; ListBase *tracksbase; Object *object; - Object *camera= get_camera_with_movieclip(scene, clip); - int tot= 0; - float vec[3][3], mat[4][4], obmat[4][4], newmat[4][4], orig[3]= {0.0f, 0.0f, 0.0f}; - int plane= RNA_enum_get(op->ptr, "plane"); - float rot[4][4]={{0.0f, 0.0f, -1.0f, 0.0f}, - {0.0f, 1.0f, 0.0f, 0.0f}, - {1.0f, 0.0f, 0.0f, 0.0f}, - {0.0f, 0.0f, 0.0f, 1.0f}}; /* 90 degrees Y-axis rotation matrix */ + Object *camera = get_camera_with_movieclip(scene, clip); + int tot = 0; + float vec[3][3], mat[4][4], obmat[4][4], newmat[4][4], orig[3] = {0.0f, 0.0f, 0.0f}; + int plane = RNA_enum_get(op->ptr, "plane"); + float rot[4][4] = {{0.0f, 0.0f, -1.0f, 0.0f}, + {0.0f, 1.0f, 0.0f, 0.0f}, + {1.0f, 0.0f, 0.0f, 0.0f}, + {0.0f, 0.0f, 0.0f, 1.0f}}; /* 90 degrees Y-axis rotation matrix */ if (count_selected_bundles(C)!=3) { BKE_report(op->reports, RPT_ERROR, "Three tracks with bundles are needed to orient the floor"); @@ -2297,11 +2325,11 @@ static int set_plane_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - tracking_object= BKE_tracking_active_object(tracking); - tracksbase= BKE_tracking_object_tracks(tracking, tracking_object); - act_track= BKE_tracking_active_track(tracking); + tracking_object = BKE_tracking_active_object(tracking); + tracksbase = BKE_tracking_object_tracks(tracking, tracking_object); + act_track = BKE_tracking_active_track(tracking); - object= get_orientation_object(C); + object = get_orientation_object(C); if (!object) { BKE_report(op->reports, RPT_ERROR, "No object to apply orientation on"); @@ -2311,20 +2339,20 @@ static int set_plane_exec(bContext *C, wmOperator *op) BKE_get_tracking_mat(scene, camera, mat); /* get 3 bundles to use as reference */ - track= tracksbase->first; + track = tracksbase->first; while (track && tot<3) { - if (track->flag&TRACK_HAS_BUNDLE && TRACK_VIEW_SELECTED(sc, track)) { + if (track->flag & TRACK_HAS_BUNDLE && TRACK_VIEW_SELECTED(sc, track)) { mul_v3_m4v3(vec[tot], mat, track->bundle_pos); - if (tot==0 || track==act_track) + if (tot == 0 || track == act_track) copy_v3_v3(orig, vec[tot]); else - axis_track= track; + axis_track = track; tot++; } - track= track->next; + track = track->next; } sub_v3_v3(vec[1], vec[0]); @@ -2349,11 +2377,11 @@ static int set_plane_exec(bContext *C, wmOperator *op) normalize_v3(mat[2]); /* move to origin point */ - mat[3][0]= orig[0]; - mat[3][1]= orig[1]; - mat[3][2]= orig[2]; + mat[3][0] = orig[0]; + mat[3][1] = orig[1]; + mat[3][2] = orig[2]; - if (tracking_object->flag&TRACKING_OBJECT_CAMERA) { + if (tracking_object->flag & TRACKING_OBJECT_CAMERA) { invert_m4(mat); object_to_mat4(object, obmat); @@ -2412,15 +2440,15 @@ void CLIP_OT_set_plane(wmOperatorType *ot) static int set_axis_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingObject *tracking_object= BKE_tracking_active_object(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingObject *tracking_object = BKE_tracking_active_object(tracking); MovieTrackingTrack *track; - Scene *scene= CTX_data_scene(C); + Scene *scene = CTX_data_scene(C); Object *object; ListBase *tracksbase; - int axis= RNA_enum_get(op->ptr, "axis"); + int axis = RNA_enum_get(op->ptr, "axis"); if (count_selected_bundles(C)!=1) { BKE_report(op->reports, RPT_ERROR, "Single track with bundle should be selected to define axis"); @@ -2428,24 +2456,24 @@ static int set_axis_exec(bContext *C, wmOperator *op) return OPERATOR_CANCELLED; } - object= get_orientation_object(C); + object = get_orientation_object(C); if (!object) { BKE_report(op->reports, RPT_ERROR, "No object to apply orientation on"); return OPERATOR_CANCELLED; } - tracksbase= BKE_tracking_object_tracks(tracking, tracking_object); + tracksbase = BKE_tracking_object_tracks(tracking, tracking_object); - track=tracksbase->first; + track = tracksbase->first; while (track) { if (TRACK_VIEW_SELECTED(sc, track)) break; - track= track->next; + track = track->next; } - set_axis(scene, object, clip, tracking_object, track, axis==0?'X':'Y'); + set_axis(scene, object, clip, tracking_object, track, axis == 0 ? 'X' : 'Y'); DAG_id_tag_update(&clip->id, 0); DAG_id_tag_update(&object->id, OB_RECALC_OB); @@ -2484,26 +2512,26 @@ void CLIP_OT_set_axis(wmOperatorType *ot) static int do_set_scale(bContext *C, wmOperator *op, int scale_solution) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingObject *tracking_object= BKE_tracking_active_object(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingObject *tracking_object = BKE_tracking_active_object(tracking); MovieTrackingTrack *track; - Scene *scene= CTX_data_scene(C); - Object *object= NULL; - Object *camera= get_camera_with_movieclip(scene, clip); - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - int tot= 0; + Scene *scene = CTX_data_scene(C); + Object *object = NULL; + Object *camera = get_camera_with_movieclip(scene, clip); + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + int tot = 0; float vec[2][3], mat[4][4], scale; - float dist= RNA_float_get(op->ptr, "distance"); + float dist = RNA_float_get(op->ptr, "distance"); - if (count_selected_bundles(C)!=2) { + if (count_selected_bundles(C) != 2) { BKE_report(op->reports, RPT_ERROR, "Two tracks with bundles should be selected to set scale"); return OPERATOR_CANCELLED; } - object= get_orientation_object(C); + object = get_orientation_object(C); if (!object) { BKE_report(op->reports, RPT_ERROR, "No object to apply orientation on"); @@ -2512,38 +2540,38 @@ static int do_set_scale(bContext *C, wmOperator *op, int scale_solution) BKE_get_tracking_mat(scene, camera, mat); - track= tracksbase->first; + track = tracksbase->first; while (track) { if (TRACK_VIEW_SELECTED(sc, track)) { mul_v3_m4v3(vec[tot], mat, track->bundle_pos); tot++; } - track= track->next; + track = track->next; } sub_v3_v3(vec[0], vec[1]); if (len_v3(vec[0])>1e-5f) { - scale= dist / len_v3(vec[0]); + scale = dist / len_v3(vec[0]); - if (tracking_object->flag&TRACKING_OBJECT_CAMERA) { + if (tracking_object->flag & TRACKING_OBJECT_CAMERA) { mul_v3_fl(object->size, scale); mul_v3_fl(object->loc, scale); } else if (!scale_solution) { - Object *solver_camera= object_solver_camera(scene, object); + Object *solver_camera = object_solver_camera(scene, object); - object->size[0]= object->size[1]= object->size[2]= 1.0f/scale; + object->size[0] = object->size[1] = object->size[2] = 1.0f/scale; if (solver_camera) { - object->size[0]/= solver_camera->size[0]; - object->size[1]/= solver_camera->size[1]; - object->size[2]/= solver_camera->size[2]; + object->size[0] /= solver_camera->size[0]; + object->size[1] /= solver_camera->size[1]; + object->size[2] /= solver_camera->size[2]; } } else { - tracking_object->scale= scale; + tracking_object->scale = scale; } DAG_id_tag_update(&clip->id, 0); @@ -2565,8 +2593,8 @@ static int set_scale_exec(bContext *C, wmOperator *op) static int set_scale_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); if (!RNA_struct_property_is_set(op->ptr, "distance")) RNA_float_set(op->ptr, "distance", clip->tracking.settings.dist); @@ -2599,12 +2627,12 @@ void CLIP_OT_set_scale(wmOperatorType *ot) static int set_solution_scale_poll(bContext *C) { if (space_clip_frame_poll(C)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingObject *tracking_object= BKE_tracking_active_object(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingObject *tracking_object = BKE_tracking_active_object(tracking); - return (tracking_object->flag&TRACKING_OBJECT_CAMERA) == 0; + return (tracking_object->flag & TRACKING_OBJECT_CAMERA) == 0; } return 0; @@ -2617,8 +2645,8 @@ static int set_solution_scale_exec(bContext *C, wmOperator *op) static int set_solution_scale_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); if (!RNA_struct_property_is_set(op->ptr, "distance")) RNA_float_set(op->ptr, "distance", clip->tracking.settings.object_distance); @@ -2650,17 +2678,17 @@ void CLIP_OT_set_solution_scale(wmOperatorType *ot) static int set_center_principal_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); int width, height; BKE_movieclip_get_size(clip, &sc->user, &width, &height); - if (width==0 || height==0) + if (width == 0 || height == 0) return OPERATOR_CANCELLED; - clip->tracking.camera.principal[0]= ((float)width)/2.0f; - clip->tracking.camera.principal[1]= ((float)height)/2.0f; + clip->tracking.camera.principal[0] = ((float)width)/2.0f; + clip->tracking.camera.principal[1] = ((float)height)/2.0f; WM_event_add_notifier(C, NC_MOVIECLIP|NA_EDITED, clip); @@ -2686,34 +2714,34 @@ void CLIP_OT_set_center_principal(wmOperatorType *ot) static int hide_tracks_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); MovieTrackingTrack *track; - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); int unselected; - unselected= RNA_boolean_get(op->ptr, "unselected"); + unselected = RNA_boolean_get(op->ptr, "unselected"); - track= tracksbase->first; + track = tracksbase->first; while (track) { - if (unselected==0 && TRACK_VIEW_SELECTED(sc, track)) { - track->flag|= TRACK_HIDDEN; + if (unselected == 0 && TRACK_VIEW_SELECTED(sc, track)) { + track->flag |= TRACK_HIDDEN; } - else if (unselected==1 && !TRACK_VIEW_SELECTED(sc, track)) { - track->flag|= TRACK_HIDDEN; + else if (unselected == 1 && !TRACK_VIEW_SELECTED(sc, track)) { + track->flag |= TRACK_HIDDEN; } - track= track->next; + track = track->next; } - if (act_track && act_track->flag&TRACK_HIDDEN) - clip->tracking.act_track= NULL; + if (act_track && act_track->flag & TRACK_HIDDEN) + clip->tracking.act_track = NULL; - if (unselected==0) { + if (unselected == 0) { /* no selection on screen now, unlock view so it can be scrolled nice again */ - sc->flag&= ~SC_LOCK_SELECTION; + sc->flag &= ~SC_LOCK_SELECTION; } WM_event_add_notifier(C, NC_MOVIECLIP|ND_DISPLAY, NULL); @@ -2743,16 +2771,16 @@ void CLIP_OT_hide_tracks(wmOperatorType *ot) static int hide_tracks_clear_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); MovieTrackingTrack *track; - track= tracksbase->first; + track = tracksbase->first; while (track) { - track->flag&= ~TRACK_HIDDEN; + track->flag &= ~TRACK_HIDDEN; - track= track->next; + track = track->next; } WM_event_add_notifier(C, NC_MOVIECLIP|ND_DISPLAY, NULL); @@ -2784,12 +2812,12 @@ static bGPDlayer *detect_get_layer(MovieClip *clip) if (!clip->gpd) return NULL; - layer= clip->gpd->layers.first; + layer = clip->gpd->layers.first; while (layer) { - if (layer->flag&GP_LAYER_ACTIVE) + if (layer->flag & GP_LAYER_ACTIVE) return layer; - layer= layer->next; + layer = layer->next; } return NULL; @@ -2797,32 +2825,32 @@ static bGPDlayer *detect_get_layer(MovieClip *clip) static int detect_features_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - int clip_flag= clip->flag&MCLIP_TIMECODE_FLAGS; - ImBuf *ibuf= BKE_movieclip_get_ibuf_flag(clip, &sc->user, clip_flag, MOVIECLIP_CACHE_SKIP); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - MovieTrackingTrack *track= tracksbase->first; - int placement= RNA_enum_get(op->ptr, "placement"); - int margin= RNA_int_get(op->ptr, "margin"); - int min_trackability= RNA_int_get(op->ptr, "min_trackability"); - int min_distance= RNA_int_get(op->ptr, "min_distance"); - int place_outside_layer= 0; - bGPDlayer *layer= NULL; - - if (placement!=0) { - layer= detect_get_layer(clip); - place_outside_layer= placement==2; + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + int clip_flag = clip->flag & MCLIP_TIMECODE_FLAGS; + ImBuf *ibuf = BKE_movieclip_get_ibuf_flag(clip, &sc->user, clip_flag, MOVIECLIP_CACHE_SKIP); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + MovieTrackingTrack *track = tracksbase->first; + int placement = RNA_enum_get(op->ptr, "placement"); + int margin = RNA_int_get(op->ptr, "margin"); + int min_trackability = RNA_int_get(op->ptr, "min_trackability"); + int min_distance = RNA_int_get(op->ptr, "min_distance"); + int place_outside_layer = 0; + bGPDlayer *layer = NULL; + + if (placement != 0) { + layer = detect_get_layer(clip); + place_outside_layer = placement == 2; } /* deselect existing tracks */ while (track) { - track->flag&= ~SELECT; - track->pat_flag&= ~SELECT; - track->search_flag&= ~SELECT; + track->flag &= ~SELECT; + track->pat_flag &= ~SELECT; + track->search_flag &= ~SELECT; - track= track->next; + track = track->next; } BKE_tracking_detect_fast(tracking, tracksbase, ibuf, sc->user.framenr, margin, @@ -2867,58 +2895,58 @@ void CLIP_OT_detect_features(wmOperatorType *ot) static int frame_jump_exec(bContext *C, wmOperator *op) { - Scene *scene= CTX_data_scene(C); - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + Scene *scene = CTX_data_scene(C); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); MovieTrackingTrack *track; - int pos= RNA_enum_get(op->ptr, "position"); + int pos = RNA_enum_get(op->ptr, "position"); int delta; - if (pos<=1) { /* jump to path */ - track= BKE_tracking_active_track(&clip->tracking); + if (pos <= 1) { /* jump to path */ + track = BKE_tracking_active_track(&clip->tracking); if (!track) return OPERATOR_CANCELLED; - delta= pos == 1 ? 1 : -1; + delta = pos == 1 ? 1 : -1; while (sc->user.framenr+delta >= SFRA && sc->user.framenr+delta <= EFRA) { - MovieTrackingMarker *marker= BKE_tracking_exact_marker(track, sc->user.framenr+delta); + MovieTrackingMarker *marker = BKE_tracking_exact_marker(track, sc->user.framenr+delta); - if (!marker || marker->flag&MARKER_DISABLED) + if (!marker || marker->flag & MARKER_DISABLED) break; - sc->user.framenr+= delta; + sc->user.framenr += delta; } } else { /* to to failed frame */ - if (clip->tracking.reconstruction.flag&TRACKING_RECONSTRUCTED) { - int a= sc->user.framenr; - MovieTracking *tracking= &clip->tracking; - MovieTrackingObject *object= BKE_tracking_active_object(tracking); + if (clip->tracking.reconstruction.flag & TRACKING_RECONSTRUCTED) { + int a = sc->user.framenr; + MovieTracking *tracking = &clip->tracking; + MovieTrackingObject *object = BKE_tracking_active_object(tracking); - delta= pos == 3 ? 1 : -1; + delta = pos == 3 ? 1 : -1; - a+= delta; + a += delta; while (a+delta >= SFRA && a+delta <= EFRA) { MovieReconstructedCamera *cam; - cam= BKE_tracking_get_reconstructed_camera(tracking, object, a); + cam = BKE_tracking_get_reconstructed_camera(tracking, object, a); if (!cam) { - sc->user.framenr= a; + sc->user.framenr = a; break; } - a+= delta; + a += delta; } } } - if (CFRA!=sc->user.framenr) { - CFRA= sc->user.framenr; + if (CFRA != sc->user.framenr) { + CFRA = sc->user.framenr; sound_seek_scene(CTX_data_main(C), CTX_data_scene(C)); WM_event_add_notifier(C, NC_SCENE|ND_FRAME, scene); @@ -2959,34 +2987,34 @@ void CLIP_OT_frame_jump(wmOperatorType *ot) static int join_tracks_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); MovieTrackingTrack *act_track, *track, *next; - act_track= BKE_tracking_active_track(tracking); + act_track = BKE_tracking_active_track(tracking); if (!act_track) { BKE_report(op->reports, RPT_ERROR, "No active track to join to"); return OPERATOR_CANCELLED; } - track= tracksbase->first; + track = tracksbase->first; while (track) { - next= track->next; + next = track->next; - if (TRACK_VIEW_SELECTED(sc, track) && track!=act_track) { + if (TRACK_VIEW_SELECTED(sc, track) && track != act_track) { BKE_tracking_join_tracks(act_track, track); if (tracking->stabilization.rot_track == track) - tracking->stabilization.rot_track= act_track; + tracking->stabilization.rot_track = act_track; BKE_tracking_free_track(track); BLI_freelinkN(tracksbase, track); } - track= next; + track = next; } WM_event_add_notifier(C, NC_MOVIECLIP|NA_EDITED, clip); @@ -3013,21 +3041,23 @@ void CLIP_OT_join_tracks(wmOperatorType *ot) static int lock_tracks_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - MovieTrackingTrack *track= tracksbase->first; - int action= RNA_enum_get(op->ptr, "action"); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + MovieTrackingTrack *track = tracksbase->first; + int action = RNA_enum_get(op->ptr, "action"); while (track) { if (TRACK_VIEW_SELECTED(sc, track)) { - if (action==0) track->flag|= TRACK_LOCKED; - else if (action==1) track->flag&= ~TRACK_LOCKED; - else track->flag^= TRACK_LOCKED; + if (action == 0) + track->flag |= TRACK_LOCKED; + else if (action == 1) + track->flag &= ~TRACK_LOCKED; + else track->flag ^= TRACK_LOCKED; } - track= track->next; + track = track->next; } WM_event_add_notifier(C, NC_MOVIECLIP|NA_EVALUATED, clip); @@ -3064,27 +3094,27 @@ void CLIP_OT_lock_tracks(wmOperatorType *ot) static int track_copy_color_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - MovieTrackingTrack *track, *act_track= BKE_tracking_active_track(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + MovieTrackingTrack *track, *act_track = BKE_tracking_active_track(tracking); if (!act_track) return OPERATOR_CANCELLED; - track= tracksbase->first; + track = tracksbase->first; while (track) { - if (TRACK_VIEW_SELECTED(sc, track) && track!=act_track) { - track->flag&= ~TRACK_CUSTOMCOLOR; + if (TRACK_VIEW_SELECTED(sc, track) && track != act_track) { + track->flag &= ~TRACK_CUSTOMCOLOR; - if (act_track->flag&TRACK_CUSTOMCOLOR) { + if (act_track->flag & TRACK_CUSTOMCOLOR) { copy_v3_v3(track->color, act_track->color); - track->flag|= TRACK_CUSTOMCOLOR; + track->flag |= TRACK_CUSTOMCOLOR; } } - track= track->next; + track = track->next; } WM_event_add_notifier(C, NC_MOVIECLIP|ND_DISPLAY, clip); @@ -3111,28 +3141,28 @@ void CLIP_OT_track_copy_color(wmOperatorType *ot) static int stabilize_2d_add_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); MovieTrackingTrack *track; - MovieTrackingStabilization *stab= &tracking->stabilization; - int update= 0; + MovieTrackingStabilization *stab = &tracking->stabilization; + int update = 0; - track= tracksbase->first; + track = tracksbase->first; while (track) { - if (TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_USE_2D_STAB)==0) { - track->flag|= TRACK_USE_2D_STAB; + if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_USE_2D_STAB)==0) { + track->flag |= TRACK_USE_2D_STAB; stab->tot_track++; - update= 1; + update = 1; } - track= track->next; + track = track->next; } if (update) { - stab->ok= 0; + stab->ok = 0; DAG_id_tag_update(&clip->id, 0); WM_event_add_notifier(C, NC_MOVIECLIP|ND_DISPLAY, clip); @@ -3160,27 +3190,27 @@ void CLIP_OT_stabilize_2d_add(wmOperatorType *ot) static int stabilize_2d_remove_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingStabilization *stab= &tracking->stabilization; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingStabilization *stab = &tracking->stabilization; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); MovieTrackingTrack *track; - int a= 0, update= 0; + int a = 0, update = 0; - track= tracksbase->first; + track = tracksbase->first; while (track) { - if (track->flag&TRACK_USE_2D_STAB) { - if (a==stab->act_track) { - track->flag&= ~TRACK_USE_2D_STAB; + if (track->flag & TRACK_USE_2D_STAB) { + if (a == stab->act_track) { + track->flag &= ~TRACK_USE_2D_STAB; stab->act_track--; stab->tot_track--; if (stab->act_track<0) - stab->act_track= 0; + stab->act_track = 0; - update= 1; + update = 1; break; } @@ -3188,11 +3218,11 @@ static int stabilize_2d_remove_exec(bContext *C, wmOperator *UNUSED(op)) a++; } - track= track->next; + track = track->next; } if (update) { - stab->ok= 0; + stab->ok = 0; DAG_id_tag_update(&clip->id, 0); WM_event_add_notifier(C, NC_MOVIECLIP|ND_DISPLAY, clip); @@ -3220,22 +3250,22 @@ void CLIP_OT_stabilize_2d_remove(wmOperatorType *ot) static int stabilize_2d_select_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); MovieTrackingTrack *track; - int update= 0; + int update = 0; - track= tracksbase->first; + track = tracksbase->first; while (track) { - if (track->flag&TRACK_USE_2D_STAB) { + if (track->flag & TRACK_USE_2D_STAB) { BKE_tracking_track_flag(track, TRACK_AREA_ALL, SELECT, 0); - update= 1; + update = 1; } - track= track->next; + track = track->next; } if (update) @@ -3263,16 +3293,16 @@ void CLIP_OT_stabilize_2d_select(wmOperatorType *ot) static int stabilize_2d_set_rotation_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - MovieTrackingTrack *act_track= BKE_tracking_active_track(tracking); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + MovieTrackingTrack *act_track = BKE_tracking_active_track(tracking); if (act_track) { - MovieTrackingStabilization *stab= &tracking->stabilization; + MovieTrackingStabilization *stab = &tracking->stabilization; - stab->rot_track= act_track; - stab->ok= 0; + stab->rot_track = act_track; + stab->ok = 0; DAG_id_tag_update(&clip->id, 0); WM_event_add_notifier(C, NC_MOVIECLIP|ND_DISPLAY, clip); @@ -3300,43 +3330,43 @@ void CLIP_OT_stabilize_2d_set_rotation(wmOperatorType *ot) static int is_track_clean(MovieTrackingTrack *track, int frames, int del) { - int ok= 1, a, prev= -1, count= 0; - MovieTrackingMarker *markers= track->markers, *new_markers= NULL; - int start_disabled= 0; - int markersnr= track->markersnr; + int ok = 1, a, prev = -1, count = 0; + MovieTrackingMarker *markers = track->markers, *new_markers = NULL; + int start_disabled = 0; + int markersnr = track->markersnr; if (del) - new_markers= MEM_callocN(markersnr*sizeof(MovieTrackingMarker), "track cleaned markers"); + new_markers = MEM_callocN(markersnr*sizeof(MovieTrackingMarker), "track cleaned markers"); - for (a= 0; a<markersnr; a++) { - int end= 0; + for (a = 0; a<markersnr; a++) { + int end = 0; - if (prev==-1) { - if ((markers[a].flag&MARKER_DISABLED)==0) - prev= a; + if (prev == -1) { + if ((markers[a].flag & MARKER_DISABLED)==0) + prev = a; else - start_disabled= 1; + start_disabled = 1; } if (prev >= 0) { - end= a == markersnr-1; - end|= (a < markersnr-1) && (markers[a].framenr != markers[a+1].framenr-1 || - markers[a].flag&MARKER_DISABLED); + end = a == markersnr-1; + end |= (a < markersnr-1) && (markers[a].framenr != markers[a+1].framenr-1 || + markers[a].flag & MARKER_DISABLED); } if (end) { - int segok= 1, len= 0; + int segok = 1, len = 0; if (a != prev && markers[a].framenr != markers[a-1].framenr+1) - len= a-prev; - else if (markers[a].flag&MARKER_DISABLED) - len= a-prev; - else len= a-prev+1; + len = a-prev; + else if (markers[a].flag & MARKER_DISABLED) + len = a-prev; + else len = a-prev+1; if (frames) { if (len < frames) { - segok= 0; - ok= 0; + segok = 0; + ok = 0; if (!del) break; @@ -3345,32 +3375,32 @@ static int is_track_clean(MovieTrackingTrack *track, int frames, int del) if (del) { if (segok) { - int t= len; + int t = len; - if (markers[a].flag&MARKER_DISABLED) + if (markers[a].flag & MARKER_DISABLED) t++; /* place disabled marker in front of current segment */ if (start_disabled) { memcpy(new_markers+count, markers+prev, sizeof(MovieTrackingMarker)); new_markers[count].framenr--; - new_markers[count].flag|= MARKER_DISABLED; + new_markers[count].flag |= MARKER_DISABLED; count++; - start_disabled= 0; + start_disabled = 0; } memcpy(new_markers+count, markers+prev, t*sizeof(MovieTrackingMarker)); - count+= t; + count += t; } - else if (markers[a].flag&MARKER_DISABLED) { + else if (markers[a].flag & MARKER_DISABLED) { /* current segment which would be deleted was finished by disabled marker, * so next segment should be started from disabled marker */ - start_disabled= 1; + start_disabled = 1; } } - prev= -1; + prev = -1; } } @@ -3378,14 +3408,14 @@ static int is_track_clean(MovieTrackingTrack *track, int frames, int del) MEM_freeN(track->markers); if (count) { - track->markers= new_markers; + track->markers = new_markers; } else { - track->markers= NULL; + track->markers = NULL; MEM_freeN(new_markers); } - track->markersnr= count; + track->markersnr = count; } return ok; @@ -3393,45 +3423,45 @@ static int is_track_clean(MovieTrackingTrack *track, int frames, int del) static int clean_tracks_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; - ListBase *tracksbase= BKE_tracking_get_tracks(tracking); - MovieTrackingTrack *track, *next, *act_track= BKE_tracking_active_track(tracking); - int frames= RNA_int_get(op->ptr, "frames"); - int action= RNA_enum_get(op->ptr, "action"); - float error= RNA_float_get(op->ptr, "error"); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; + ListBase *tracksbase = BKE_tracking_get_tracks(tracking); + MovieTrackingTrack *track, *next, *act_track = BKE_tracking_active_track(tracking); + int frames = RNA_int_get(op->ptr, "frames"); + int action = RNA_enum_get(op->ptr, "action"); + float error = RNA_float_get(op->ptr, "error"); - if (error && action==TRACKING_CLEAN_DELETE_SEGMENT) - action= TRACKING_CLEAN_DELETE_TRACK; + if (error && action == TRACKING_CLEAN_DELETE_SEGMENT) + action = TRACKING_CLEAN_DELETE_TRACK; - track= tracksbase->first; + track = tracksbase->first; while (track) { - next= track->next; + next = track->next; - if ((track->flag&TRACK_HIDDEN)==0 && (track->flag&TRACK_LOCKED)==0) { - int ok= 1; + if ((track->flag & TRACK_HIDDEN)==0 && (track->flag & TRACK_LOCKED)==0) { + int ok = 1; - ok= (is_track_clean(track, frames, action==TRACKING_CLEAN_DELETE_SEGMENT)) && - (error == 0.0f || (track->flag&TRACK_HAS_BUNDLE)==0 || track->error < error); + ok = (is_track_clean(track, frames, action == TRACKING_CLEAN_DELETE_SEGMENT)) && + (error == 0.0f || (track->flag & TRACK_HAS_BUNDLE)==0 || track->error < error); if (!ok) { - if (action==TRACKING_CLEAN_SELECT) { + if (action == TRACKING_CLEAN_SELECT) { BKE_tracking_track_flag(track, TRACK_AREA_ALL, SELECT, 0); } - else if (action==TRACKING_CLEAN_DELETE_TRACK) { - if (track==act_track) - clip->tracking.act_track= NULL; + else if (action == TRACKING_CLEAN_DELETE_TRACK) { + if (track == act_track) + clip->tracking.act_track = NULL; BKE_tracking_free_track(track); BLI_freelinkN(tracksbase, track); - track= NULL; + track = NULL; } /* happens when all tracking segments are not long enough */ - if (track && track->markersnr==0) { - if (track==act_track) - clip->tracking.act_track= NULL; + if (track && track->markersnr == 0) { + if (track == act_track) + clip->tracking.act_track = NULL; BKE_tracking_free_track(track); BLI_freelinkN(tracksbase, track); @@ -3439,7 +3469,7 @@ static int clean_tracks_exec(bContext *C, wmOperator *op) } } - track= next; + track = next; } WM_event_add_notifier(C, NC_MOVIECLIP|ND_SELECT, clip); @@ -3449,8 +3479,8 @@ static int clean_tracks_exec(bContext *C, wmOperator *op) static int clean_tracks_invoke(bContext *C, wmOperator *op, wmEvent *UNUSED(event)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); if (!RNA_struct_property_is_set(op->ptr, "frames")) RNA_int_set(op->ptr, "frames", clip->tracking.settings.clean_frames); @@ -3496,9 +3526,9 @@ void CLIP_OT_clean_tracks(wmOperatorType *ot) static int tracking_object_new_exec(bContext *C, wmOperator *UNUSED(op)) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; BKE_tracking_new_object(tracking, "Object"); @@ -3526,14 +3556,14 @@ void CLIP_OT_tracking_object_new(wmOperatorType *ot) static int tracking_object_remove_exec(bContext *C, wmOperator *op) { - SpaceClip *sc= CTX_wm_space_clip(C); - MovieClip *clip= ED_space_clip(sc); - MovieTracking *tracking= &clip->tracking; + SpaceClip *sc = CTX_wm_space_clip(C); + MovieClip *clip = ED_space_clip(sc); + MovieTracking *tracking = &clip->tracking; MovieTrackingObject *object; - object= BKE_tracking_active_object(tracking); + object = BKE_tracking_active_object(tracking); - if (object->flag&TRACKING_OBJECT_CAMERA) { + if (object->flag & TRACKING_OBJECT_CAMERA) { BKE_report(op->reports, RPT_WARNING, "Object used for camera tracking can't be deleted"); return OPERATOR_CANCELLED; } diff --git a/source/blender/editors/transform/transform.c b/source/blender/editors/transform/transform.c index 68b7268596c..71bca7bfce8 100644 --- a/source/blender/editors/transform/transform.c +++ b/source/blender/editors/transform/transform.c @@ -163,8 +163,8 @@ void convertViewVec(TransInfo *t, float r_vec[3], int dx, int dy) View2D *v2d = t->view; float divx, divy; - divx= v2d->mask.xmax-v2d->mask.xmin; - divy= v2d->mask.ymax-v2d->mask.ymin; + divx = v2d->mask.xmax-v2d->mask.xmin; + divy = v2d->mask.ymax-v2d->mask.ymin; r_vec[0] = (v2d->cur.xmax-v2d->cur.xmin)*(dx)/divx; r_vec[1] = (v2d->cur.ymax-v2d->cur.ymin)*(dy)/divy; @@ -337,8 +337,8 @@ static void viewRedrawForce(const bContext *C, TransInfo *t) else ED_area_tag_redraw(t->sa); } else if (t->spacetype==SPACE_CLIP) { - SpaceClip *sc= (SpaceClip*)t->sa->spacedata.first; - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = (SpaceClip*)t->sa->spacedata.first; + MovieClip *clip = ED_space_clip(sc); /* objects could be parented to tracking data, so send this for viewport refresh */ WM_event_add_notifier(C, NC_OBJECT|ND_TRANSFORM, NULL); diff --git a/source/blender/editors/transform/transform_conversions.c b/source/blender/editors/transform/transform_conversions.c index 60ec08fcb5d..3f15a05d843 100644 --- a/source/blender/editors/transform/transform_conversions.c +++ b/source/blender/editors/transform/transform_conversions.c @@ -4941,8 +4941,8 @@ void special_aftertrans_update(bContext *C, TransInfo *t) ED_node_link_intersect_test(t->sa, 0); } else if (t->spacetype == SPACE_CLIP) { - SpaceClip *sc= t->sa->spacedata.first; - MovieClip *clip= ED_space_clip(sc); + SpaceClip *sc = t->sa->spacedata.first; + MovieClip *clip = ED_space_clip(sc); if (t->scene->nodetree) { /* tracks can be used for stabilization nodes, @@ -5448,10 +5448,10 @@ typedef struct TransDataTracking { short coord; } TransDataTracking; -static void markerToTransDataInit(TransData *td, TransData2D *td2d, - TransDataTracking *tdt, MovieTrackingTrack *track, int area, float *loc, float *rel, float *off) +static void markerToTransDataInit(TransData *td, TransData2D *td2d, TransDataTracking *tdt, MovieTrackingTrack *track, + int area, float *loc, float *rel, float *off) { - int anchor = area==TRACK_AREA_POINT && off; + int anchor = area == TRACK_AREA_POINT && off; tdt->mode = transDataTracking_ModeTracks; @@ -5470,16 +5470,16 @@ static void markerToTransDataInit(TransData *td, TransData2D *td2d, } td2d->loc[2] = 0.0f; - tdt->relative= rel; - tdt->area= area; + tdt->relative = rel; + tdt->area = area; - tdt->markersnr= track->markersnr; - tdt->markers= track->markers; + tdt->markersnr = track->markersnr; + tdt->markers = track->markers; if (rel) { if (!anchor) { - td2d->loc[0]+= rel[0]; - td2d->loc[1]+= rel[1]; + td2d->loc[0] += rel[0]; + td2d->loc[1] += rel[1]; } copy_v2_v2(tdt->srelative, rel); @@ -5496,34 +5496,35 @@ static void markerToTransDataInit(TransData *td, TransData2D *td2d, memset(td->axismtx, 0, sizeof(td->axismtx)); td->axismtx[2][2] = 1.0f; - td->ext= NULL; td->val= NULL; + td->ext= NULL; + td->val= NULL; td->flag |= TD_SELECTED; - td->dist= 0.0; + td->dist = 0.0; unit_m3(td->mtx); unit_m3(td->smtx); } static void trackToTransData(SpaceClip *sc, TransData *td, TransData2D *td2d, - TransDataTracking *tdt, MovieTrackingTrack *track) + TransDataTracking *tdt, MovieTrackingTrack *track) { - MovieTrackingMarker *marker= BKE_tracking_ensure_marker(track, sc->user.framenr); + MovieTrackingMarker *marker = BKE_tracking_ensure_marker(track, sc->user.framenr); - tdt->flag= marker->flag; - marker->flag&= ~(MARKER_DISABLED|MARKER_TRACKED); + tdt->flag = marker->flag; + marker->flag &= ~(MARKER_DISABLED|MARKER_TRACKED); markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_POINT, track->offset, marker->pos, track->offset); - if (track->flag&SELECT) + if (track->flag & SELECT) markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_POINT, marker->pos, NULL, NULL); - if (track->pat_flag&SELECT) { + if (track->pat_flag & SELECT) { markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_PAT, track->pat_min, marker->pos, NULL); markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_PAT, track->pat_max, marker->pos, NULL); } - if (track->search_flag&SELECT) { + if (track->search_flag & SELECT) { markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_SEARCH, track->search_min, marker->pos, NULL); markerToTransDataInit(td++, td2d++, tdt++, track, TRACK_AREA_SEARCH, track->search_max, marker->pos, NULL); } @@ -5531,10 +5532,12 @@ static void trackToTransData(SpaceClip *sc, TransData *td, TransData2D *td2d, static void transDataTrackingFree(TransInfo *t) { - TransDataTracking *tdt= t->customData; + TransDataTracking *tdt = t->customData; if (tdt) { - if (tdt->smarkers) MEM_freeN(tdt->smarkers); + if (tdt->smarkers) + MEM_freeN(tdt->smarkers); + MEM_freeN(tdt); } } @@ -5545,7 +5548,7 @@ static void createTransTrackingTracksData(bContext *C, TransInfo *t) TransData2D *td2d; SpaceClip *sc = CTX_wm_space_clip(C); MovieClip *clip = ED_space_clip(sc); - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); MovieTrackingTrack *track; MovieTrackingMarker *marker; TransDataTracking *tdt; @@ -5556,33 +5559,38 @@ static void createTransTrackingTracksData(bContext *C, TransInfo *t) track = tracksbase->first; while (track) { - if (TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_LOCKED)==0) { - marker= BKE_tracking_get_marker(track, framenr); + if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED)==0) { + marker = BKE_tracking_get_marker(track, framenr); t->total++; /* offset */ - if (track->flag&SELECT) t->total++; - if (track->pat_flag&SELECT) t->total+= 2; - if (track->search_flag&SELECT) t->total+= 2; + if (track->flag & SELECT) + t->total++; + + if (track->pat_flag & SELECT) + t->total+= 2; + + if (track->search_flag & SELECT) + t->total+= 2; } track = track->next; } - if (t->total==0) + if (t->total == 0) return; td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransTracking TransData"); td2d = t->data2d = MEM_callocN(t->total*sizeof(TransData2D), "TransTracking TransData2D"); tdt = t->customData = MEM_callocN(t->total*sizeof(TransDataTracking), "TransTracking TransDataTracking"); - t->customFree= transDataTrackingFree; + t->customFree = transDataTrackingFree; /* create actual data */ track = tracksbase->first; while (track) { - if (TRACK_VIEW_SELECTED(sc, track) && (track->flag&TRACK_LOCKED)==0) { - marker= BKE_tracking_get_marker(track, framenr); + if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED) == 0) { + marker = BKE_tracking_get_marker(track, framenr); trackToTransData(sc, td, td2d, tdt, track); @@ -5591,20 +5599,29 @@ static void createTransTrackingTracksData(bContext *C, TransInfo *t) td2d++; tdt++; - if ((marker->flag&MARKER_DISABLED)==0) { - if (track->flag&SELECT) {td++; td2d++; tdt++;} - if (track->pat_flag&SELECT) {td+= 2; td2d+= 2;tdt+=2;} + if ((marker->flag & MARKER_DISABLED) == 0) { + if (track->flag & SELECT) { + td++; + td2d++; + tdt++; + } + + if (track->pat_flag & SELECT) { + td += 2; + td2d += 2; + tdt +=2; + } } - if (track->search_flag&SELECT) { - td+= 2; - td2d+= 2; - tdt+= 2; + if (track->search_flag & SELECT) { + td += 2; + td2d += 2; + tdt += 2; - if (marker->flag&MARKER_DISABLED) { - td+= 3; - td2d+= 3; - tdt+= 3; + if (marker->flag & MARKER_DISABLED) { + td += 3; + td2d += 3; + tdt += 3; }; } } @@ -5614,7 +5631,7 @@ static void createTransTrackingTracksData(bContext *C, TransInfo *t) } static void markerToTransCurveDataInit(TransData *td, TransData2D *td2d, TransDataTracking *tdt, - MovieTrackingMarker *marker, MovieTrackingMarker *prev_marker, + MovieTrackingMarker *marker, MovieTrackingMarker *prev_marker, short coord, float size) { float frames_delta = (marker->framenr - prev_marker->framenr); @@ -5642,10 +5659,11 @@ static void markerToTransCurveDataInit(TransData *td, TransData2D *td2d, TransDa memset(td->axismtx, 0, sizeof(td->axismtx)); td->axismtx[2][2] = 1.0f; - td->ext= NULL; td->val= NULL; + td->ext= NULL; + td->val= NULL; td->flag |= TD_SELECTED; - td->dist= 0.0; + td->dist = 0.0; unit_m3(td->mtx); unit_m3(td->smtx); @@ -5689,7 +5707,7 @@ static void createTransTrackingCurvesData(bContext *C, TransInfo *t) track = track->next; } - if (t->total==0) + if (t->total == 0) return; td = t->data = MEM_callocN(t->total*sizeof(TransData), "TransTracking TransData"); @@ -5756,9 +5774,9 @@ static void createTransTrackingData(bContext *C, TransInfo *t) static void cancelTransTracking(TransInfo *t) { TransDataTracking *tdt = t->customData; - SpaceClip *sc= t->sa->spacedata.first; - MovieClip *clip= ED_space_clip(sc); - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); + SpaceClip *sc = t->sa->spacedata.first; + MovieClip *clip = ED_space_clip(sc); + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); MovieTrackingTrack *track; MovieTrackingMarker *marker; int a, framenr = sc->user.framenr; @@ -5772,9 +5790,14 @@ static void cancelTransTracking(TransInfo *t) tdt++; - if (track->flag&SELECT) tdt++; - if (track->pat_flag&SELECT) tdt += 2; - if (track->search_flag&SELECT) tdt += 2; + if (track->flag & SELECT) + tdt++; + + if (track->pat_flag & SELECT) + tdt += 2; + + if (track->search_flag & SELECT) + tdt += 2; } track = track->next; @@ -5817,13 +5840,13 @@ void flushTransTracking(TransInfo *t) /* flush to 2d vector from internally used 3d vector */ for (a=0, td= t->data, td2d= t->data2d, tdt= t->customData; a<t->total; a++, td2d++, td++, tdt++) { if (tdt->mode == transDataTracking_ModeTracks) { - if (t->flag&T_ALT_TRANSFORM) { - if (tdt->area==TRACK_AREA_POINT && tdt->relative) { + if (t->flag & T_ALT_TRANSFORM) { + if (tdt->area == TRACK_AREA_POINT && tdt->relative) { float d[2], d2[2]; if (!tdt->smarkers) { - tdt->smarkers= MEM_callocN(sizeof(*tdt->smarkers)*tdt->markersnr, "flushTransTracking markers"); - for (a= 0; a<tdt->markersnr; a++) + tdt->smarkers = MEM_callocN(sizeof(*tdt->smarkers)*tdt->markersnr, "flushTransTracking markers"); + for (a = 0; a < tdt->markersnr; a++) copy_v2_v2(tdt->smarkers[a], tdt->markers[a].pos); } diff --git a/source/blender/editors/transform/transform_generics.c b/source/blender/editors/transform/transform_generics.c index 6dbab08ba7f..19dc968a8d2 100644 --- a/source/blender/editors/transform/transform_generics.c +++ b/source/blender/editors/transform/transform_generics.c @@ -637,14 +637,14 @@ static void recalcData_image(TransInfo *t) /* helper for recalcData() - for Movie Clip transforms */ static void recalcData_clip(TransInfo *t) { - SpaceClip *sc= t->sa->spacedata.first; - MovieClip *clip= ED_space_clip(sc); - ListBase *tracksbase= BKE_tracking_get_tracks(&clip->tracking); + SpaceClip *sc = t->sa->spacedata.first; + MovieClip *clip = ED_space_clip(sc); + ListBase *tracksbase = BKE_tracking_get_tracks(&clip->tracking); MovieTrackingTrack *track; flushTransTracking(t); - track= tracksbase->first; + track = tracksbase->first; while (track) { if (TRACK_VIEW_SELECTED(sc, track) && (track->flag & TRACK_LOCKED)==0) { if (t->mode == TFM_TRANSLATION) { @@ -661,7 +661,7 @@ static void recalcData_clip(TransInfo *t) } } - track= track->next; + track = track->next; } DAG_id_tag_update(&clip->id, 0); |