Commit: c76e1ecac6d6611269f15b5fd229ca726bde0337 Author: Sergey Sharybin Date: Thu Jul 7 16:13:26 2022 +0200 Branches: master https://developer.blender.org/rBc76e1ecac6d6611269f15b5fd229ca726bde0337
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. =================================================================== M source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc M source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc M source/blender/nodes/composite/nodes/node_composite_trackpos.cc =================================================================== diff --git a/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc b/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc index e4e37f630a2..e835ee9e721 100644 --- a/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc +++ b/source/blender/nodes/composite/nodes/node_composite_keyingscreen.cc @@ -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) diff --git a/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc b/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc index 8055e350d51..472bf2344ca 100644 --- a/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc +++ b/source/blender/nodes/composite/nodes/node_composite_planetrackdeform.cc @@ -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) diff --git a/source/blender/nodes/composite/nodes/node_composite_trackpos.cc b/source/blender/nodes/composite/nodes/node_composite_trackpos.cc index 723b82998ee..0e99ff59327 100644 --- a/source/blender/nodes/composite/nodes/node_composite_trackpos.cc +++ b/source/blender/nodes/composite/nodes/node_composite_trackpos.cc @@ -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) _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs