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:
parent
59e1009f10
commit
c76e1ecac6
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue