|
Blender V5.0
|
#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_utf8.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 290 of file tracking_solver.cc.
References BLI_strncpy_utf8(), MovieTrackingSettings::motion_flag, N_, reconstruct_count_tracks_on_both_keyframes(), MovieTrackingSettings::reconstruction_flag, MovieTracking::settings, 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 402 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 320 of file tracking_solver.cc.
References BLI_listbase_count(), MovieTracking::camera, MovieTrackingMarker::flag, MovieTrackingMarker::framenr, libmv_tracks_new(), LISTBASE_FOREACH, MARKER_DISABLED, max_ii(), MEM_callocN(), min_ii(), MovieTrackingSettings::motion_flag, MovieTrackingObject::name, MovieTrackingCamera::pixel_aspect, reconstruct_refine_intrinsics_get_flags(), MovieTrackingSettings::reconstruction_flag, MovieTracking::settings, STRNCPY_UTF8, MovieClip::tracking, 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 397 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 488 of file tracking_solver.cc.
References BKE_tracking_dopesheet_tag_update(), BKE_tracking_object_get_named(), BKE_tracking_reconstruction_report_error_message(), MovieTrackingReconstruction::error, MovieTrackingReconstruction::flag, MovieTrackingObject::keyframe1, MovieTrackingObject::keyframe2, libmv_reconstructionIsValid(), reconstruct_retrieve_libmv(), MovieTrackingObject::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 387 of file tracking_solver.cc.
References STRNCPY_UTF8.
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 543 of file tracking_solver.cc.
References LISTBASE_FOREACH, MovieTracking::objects, 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 441 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 65 of file tracking_solver.cc.
References BKE_movieclip_remap_clip_to_scene_frame(), evaluate_fcurve(), ListBase::first, MovieTrackingMarker::flag, MovieTrackingMarker::framenr, MovieClip::id, 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 274 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 244 of file tracking_solver.cc.
References MovieTrackingObject::flag, LIBMV_REFINE_FOCAL_LENGTH, LIBMV_REFINE_PRINCIPAL_POINT, LIBMV_REFINE_RADIAL_DISTORTION, LIBMV_REFINE_TANGENTIAL_DISTORTION, MovieTrackingSettings::refine_camera_intrinsics, REFINE_FOCAL_LENGTH, REFINE_PRINCIPAL_POINT, REFINE_RADIAL_DISTORTION, REFINE_TANGENTIAL_DISTORTION, MovieTracking::settings, and TRACKING_OBJECT_CAMERA.
Referenced by BKE_tracking_reconstruction_context_new().
|
static |
Definition at line 235 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 104 of file tracking_solver.cc.
References libmv_cameraIntrinsicsExtractOptions(), libmv_reconstructionExtractIntrinsics(), and tracking_trackingCameraFromIntrinscisOptions().
Referenced by reconstruct_retrieve_libmv().
|
static |
Definition at line 121 of file tracking_solver.cc.
References BKE_tracking_object_get_named(), MovieTrackingReconstruction::cameras, MovieTrackingReconstruction::camnr, copy_m4_m4(), error(), MovieReconstructedCamera::error, MovieReconstructedCamera::framenr, i, invert_m4_m4(), libmv_reprojectionCameraForImage(), libmv_reprojectionErrorForImage(), libmv_reprojectionErrorForTrack(), libmv_reprojectionPointForTrack(), LISTBASE_FOREACH, LISTBASE_FOREACH_INDEX, MovieReconstructedCamera::mat, MEM_calloc_arrayN(), MEM_freeN(), mul_m4_m4m4(), mul_v3_m4v3(), pos, printf, MovieTrackingObject::reconstruction, size(), TRACK_HAS_BUNDLE, MovieTrackingObject::tracks, and unit_m4().
Referenced by reconstruct_retrieve_libmv().
|
static |
Definition at line 416 of file tracking_solver.cc.
References BLI_snprintf_utf8(), ReconstructProgressData::do_update, ReconstructProgressData::message_size, ReconstructProgressData::progress, and ReconstructProgressData::stats_message.
Referenced by BKE_tracking_reconstruction_solve().
|
static |
Definition at line 430 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 519 of file tracking_solver.cc.
References MovieTrackingReconstruction::cameras, MovieTrackingReconstruction::camnr, i, LISTBASE_FOREACH, MovieReconstructedCamera::mat, mul_v3_v3(), mul_v3_v3v3(), sub_v3_v3(), and TRACK_HAS_BUNDLE.
Referenced by BKE_tracking_reconstruction_scale().