|
Blender V4.3
|
#include <climits>#include "MEM_guardedalloc.h"#include "DNA_movieclip_types.h"#include "BLI_listbase.h"#include "BLI_math_matrix.h"#include "BLI_math_vector.h"#include "BLI_string.h"#include "BLI_utildefines.h"#include "BLT_translation.hh"#include "BKE_fcurve.hh"#include "BKE_movieclip.h"#include "BKE_tracking.h"#include "RNA_prototypes.hh"#include "libmv-capi.h"#include "tracking_private.h"Go to the source code of this file.
Classes | |
| struct | MovieReconstructContext |
| struct | ReconstructProgressData |
This file contains blender-side implementation of camera solver.
Definition in file tracking_solver.cc.
| bool BKE_tracking_reconstruction_check | ( | struct MovieTracking * | tracking, |
| struct MovieTrackingObject * | tracking_object, | ||
| char * | error_msg, | ||
| int | error_size ) |
Perform early check on whether everything is fine to start reconstruction.
Definition at line 291 of file tracking_solver.cc.
References BLI_strncpy(), N_, reconstruct_count_tracks_on_both_keyframes(), TRACKING_MOTION_MODAL, and TRACKING_USE_KEYFRAME_SELECTION.
Referenced by solve_camera_initjob().
| void BKE_tracking_reconstruction_context_free | ( | struct MovieReconstructContext * | context | ) |
Free memory used by a reconstruction process.
Definition at line 401 of file tracking_solver.cc.
References libmv_reconstructionDestroy(), libmv_tracksDestroy(), MEM_freeN(), and tracks_map_free().
Referenced by solve_camera_freejob().
| MovieReconstructContext * BKE_tracking_reconstruction_context_new | ( | struct MovieClip * | clip, |
| struct MovieTrackingObject * | tracking_object, | ||
| int | keyframe1, | ||
| int | keyframe2, | ||
| int | width, | ||
| int | height ) |
Create context for camera/object motion reconstruction. Copies all data needed for reconstruction from movie clip datablock, so editing this clip is safe during reconstruction job is in progress.
Definition at line 319 of file tracking_solver.cc.
References BLI_listbase_count(), MovieTrackingMarker::flag, MovieTrackingMarker::framenr, libmv_tracks_new(), LISTBASE_FOREACH, MARKER_DISABLED, max_ii(), min_ii(), MovieTrackingObject::name, reconstruct_refine_intrinsics_get_flags(), STRNCPY, tracking_cameraIntrinscisOptionsFromTracking(), TRACKING_USE_KEYFRAME_SELECTION, MovieTrackingObject::tracks, tracks_map_insert(), and tracks_map_new().
Referenced by solve_camera_initjob().
| const char * BKE_tracking_reconstruction_error_message_get | ( | const MovieReconstructContext * | context | ) |
Definition at line 396 of file tracking_solver.cc.
| bool BKE_tracking_reconstruction_finish | ( | struct MovieReconstructContext * | context, |
| struct MovieTracking * | tracking ) |
Finish reconstruction process by copying reconstructed data to an actual movie clip data-block.
Definition at line 487 of file tracking_solver.cc.
References BKE_tracking_dopesheet_tag_update(), BKE_tracking_object_get_named(), BKE_tracking_reconstruction_report_error_message(), MovieTrackingObject::keyframe1, MovieTrackingObject::keyframe2, libmv_reconstructionIsValid(), reconstruct_retrieve_libmv(), MovieTrackingObject::reconstruction, reconstruction, TRACKING_RECONSTRUCTED, and tracks_map_merge().
Referenced by solve_camera_freejob().
| void BKE_tracking_reconstruction_report_error_message | ( | MovieReconstructContext * | context, |
| const char * | error_message ) |
Definition at line 386 of file tracking_solver.cc.
References STRNCPY.
Referenced by BKE_tracking_reconstruction_finish().
| void BKE_tracking_reconstruction_scale | ( | struct MovieTracking * | tracking, |
| float | scale[3] ) |
Apply scale on all reconstructed cameras and bundles, used by camera scale apply operator.
Definition at line 542 of file tracking_solver.cc.
References LISTBASE_FOREACH, and tracking_scale_reconstruction().
Referenced by blender::ed::object::apply_objects_internal().
| void BKE_tracking_reconstruction_solve | ( | struct MovieReconstructContext * | context, |
| bool * | stop, | ||
| bool * | do_update, | ||
| float * | progress, | ||
| char * | stats_message, | ||
| int | message_size ) |
Solve camera/object motion and reconstruct 3D markers position from a prepared reconstruction context.
stop is not actually used at this moment, so reconstruction job could not be stopped.
do_update, progress and stat_message are set by reconstruction callback in libmv side and passing to an interface.
Definition at line 440 of file tracking_solver.cc.
References ReconstructProgressData::do_update, error(), libmv_ReconstructionOptions::keyframe1, libmv_ReconstructionOptions::keyframe2, libmv_reprojectionError(), libmv_solveModal(), libmv_solveReconstruction(), ReconstructProgressData::message_size, ReconstructProgressData::progress, reconstruct_update_solve_cb(), reconstructionOptionsFromContext(), ReconstructProgressData::stats_message, ReconstructProgressData::stop, and TRACKING_MOTION_MODAL.
Referenced by solve_camera_startjob().
|
static |
Definition at line 66 of file tracking_solver.cc.
References BKE_movieclip_remap_clip_to_scene_frame(), evaluate_fcurve(), ListBase::first, MovieTrackingMarker::flag, MovieTrackingMarker::framenr, id_data_find_fcurve(), libmv_tracksInsert(), libmv_tracksNew(), MARKER_DISABLED, MovieTrackingTrack::markers, MovieTrackingTrack::markersnr, MovieTrackingTrack::next, MovieTrackingTrack::offset, MovieTrackingMarker::pos, tracks, and MovieTrackingTrack::weight.
Referenced by BKE_tracking_reconstruction_context_new().
|
static |
Definition at line 275 of file tracking_solver.cc.
References BKE_tracking_track_has_enabled_marker_at_frame(), MovieTrackingObject::keyframe1, MovieTrackingObject::keyframe2, LISTBASE_FOREACH, and MovieTrackingObject::tracks.
Referenced by BKE_tracking_reconstruction_check().
|
static |
Definition at line 245 of file tracking_solver.cc.
References MovieTrackingObject::flag, LIBMV_REFINE_FOCAL_LENGTH, LIBMV_REFINE_PRINCIPAL_POINT, LIBMV_REFINE_RADIAL_DISTORTION, LIBMV_REFINE_TANGENTIAL_DISTORTION, refine(), REFINE_FOCAL_LENGTH, REFINE_PRINCIPAL_POINT, REFINE_RADIAL_DISTORTION, REFINE_TANGENTIAL_DISTORTION, and TRACKING_OBJECT_CAMERA.
Referenced by BKE_tracking_reconstruction_context_new().
|
static |
Definition at line 236 of file tracking_solver.cc.
References reconstruct_retrieve_libmv_intrinsics(), and reconstruct_retrieve_libmv_tracks().
Referenced by BKE_tracking_reconstruction_finish().
|
static |
Definition at line 105 of file tracking_solver.cc.
References libmv_cameraIntrinsicsExtractOptions(), libmv_reconstructionExtractIntrinsics(), libmv_Reconstruction::reconstruction, and tracking_trackingCameraFromIntrinscisOptions().
Referenced by reconstruct_retrieve_libmv().
|
static |
Definition at line 122 of file tracking_solver.cc.
References BKE_tracking_object_get_named(), copy_m4_m4(), error(), MovieReconstructedCamera::error, MovieReconstructedCamera::framenr, invert_m4_m4(), libmv_reprojectionCameraForImage(), libmv_reprojectionErrorForImage(), libmv_reprojectionErrorForTrack(), libmv_reprojectionPointForTrack(), LISTBASE_FOREACH, LISTBASE_FOREACH_INDEX, MovieReconstructedCamera::mat, MEM_freeN(), mul_m4_m4m4(), mul_v3_m4v3(), pos, printf, libmv_Reconstruction::reconstruction, MovieTrackingObject::reconstruction, reconstruction, TRACK_HAS_BUNDLE, MovieTrackingObject::tracks, and unit_m4().
Referenced by reconstruct_retrieve_libmv().
|
static |
Definition at line 415 of file tracking_solver.cc.
References BLI_snprintf(), ReconstructProgressData::do_update, ReconstructProgressData::message_size, ReconstructProgressData::progress, and ReconstructProgressData::stats_message.
Referenced by BKE_tracking_reconstruction_solve().
|
static |
Definition at line 429 of file tracking_solver.cc.
References libmv_ReconstructionOptions::keyframe1, libmv_ReconstructionOptions::keyframe2, libmv_ReconstructionOptions::refine_intrinsics, and libmv_ReconstructionOptions::select_keyframes.
Referenced by BKE_tracking_reconstruction_solve().
|
static |
Definition at line 518 of file tracking_solver.cc.
References LISTBASE_FOREACH, mul_v3_v3(), mul_v3_v3v3(), reconstruction, sub_v3_v3(), and TRACK_HAS_BUNDLE.
Referenced by BKE_tracking_reconstruction_scale().