Compositor: Pre-fill motion tracking fields

Extends current functionality which was only filling in
the active movie clip. Now we also pre-fill tracking object
name, as well as (plane)track name.
This commit is contained in:
Sergey Sharybin 2022-07-07 16:13:26 +02:00
parent 59e1009f10
commit c76e1ecac6
3 changed files with 51 additions and 6 deletions

View File

@ -6,12 +6,14 @@
*/
#include "DNA_movieclip_types.h"
#include "DNA_tracking_types.h"
#include "BLI_math_base.h"
#include "BLI_math_color.h"
#include "BKE_context.h"
#include "BKE_lib_id.h"
#include "BKE_tracking.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
@ -38,8 +40,15 @@ static void node_composit_init_keyingscreen(const bContext *C, PointerRNA *ptr)
node->storage = data;
const Scene *scene = CTX_data_scene(C);
node->id = (ID *)scene->clip;
id_us_plus(node->id);
if (scene->clip) {
MovieClip *clip = scene->clip;
node->id = &clip->id;
id_us_plus(&clip->id);
const MovieTrackingObject *tracking_object = BKE_tracking_object_get_active(&clip->tracking);
BLI_strncpy(data->tracking_object, tracking_object->name, sizeof(data->tracking_object));
}
}
static void node_composit_buts_keyingscreen(uiLayout *layout, bContext *C, PointerRNA *ptr)

View File

@ -5,6 +5,11 @@
* \ingroup cmpnodes
*/
#include "DNA_movieclip_types.h"
#include "DNA_tracking_types.h"
#include "BKE_tracking.h"
#include "RNA_access.h"
#include "RNA_prototypes.h"
@ -32,8 +37,23 @@ static void init(const bContext *C, PointerRNA *ptr)
node->storage = data;
const Scene *scene = CTX_data_scene(C);
node->id = (ID *)scene->clip;
id_us_plus(node->id);
if (scene->clip) {
MovieClip *clip = scene->clip;
MovieTracking *tracking = &clip->tracking;
node->id = &clip->id;
id_us_plus(&clip->id);
const MovieTrackingObject *tracking_object = BKE_tracking_object_get_active(tracking);
BLI_strncpy(data->tracking_object, tracking_object->name, sizeof(data->tracking_object));
const MovieTrackingPlaneTrack *active_plane_track = BKE_tracking_plane_track_get_active(
tracking);
if (active_plane_track) {
BLI_strncpy(
data->plane_track_name, active_plane_track->name, sizeof(data->plane_track_name));
}
}
}
static void node_composit_buts_planetrackdeform(uiLayout *layout, bContext *C, PointerRNA *ptr)

View File

@ -5,6 +5,9 @@
* \ingroup cmpnodes
*/
#include "DNA_movieclip_types.h"
#include "DNA_tracking_types.h"
#include "BKE_context.h"
#include "BKE_lib_id.h"
#include "BKE_tracking.h"
@ -34,8 +37,21 @@ static void init(const bContext *C, PointerRNA *ptr)
node->storage = data;
const Scene *scene = CTX_data_scene(C);
node->id = (ID *)scene->clip;
id_us_plus(node->id);
if (scene->clip) {
MovieClip *clip = scene->clip;
MovieTracking *tracking = &clip->tracking;
node->id = &clip->id;
id_us_plus(&clip->id);
const MovieTrackingObject *tracking_object = BKE_tracking_object_get_active(tracking);
BLI_strncpy(data->tracking_object, tracking_object->name, sizeof(data->tracking_object));
const MovieTrackingTrack *active_track = BKE_tracking_track_get_active(tracking);
if (active_track) {
BLI_strncpy(data->track_name, active_track->name, sizeof(data->track_name));
}
}
}
static void node_composit_buts_trackpos(uiLayout *layout, bContext *C, PointerRNA *ptr)