80 tracking->stats = MEM_cnew<MovieTrackingStats>(
"solve camera stats");
116 if (scj->
wm !=
nullptr) {
129 if (error_message[0]) {
134 scj->
reports,
RPT_WARNING,
"Some data failed to reconstruct (see console for details)");
141 "Average re-projection error: %.2f px",
146 if (scene->clip !=
nullptr) {
153 if (scene->camera !=
nullptr && scene->camera->data &&
154 GS(((
ID *)scene->camera->data)->name) ==
ID_CA)
165 tracking->stats =
nullptr;
182 char error_msg[256] =
"\0";
183 scj = MEM_cnew<SolveCameraJob>(
"SolveCameraJob data");
206 char error_msg[256] =
"\0";
213 scj = MEM_cnew<SolveCameraJob>(
"SolveCameraJob data");
222 STRNCPY(tracking->stats->message,
"Solving camera | Preparing solve");
258 switch (event->
type) {
269 ot->
name =
"Solve Camera";
271 ot->
idname =
"CLIP_OT_solve_camera";
293 track->
flag &= ~TRACK_HAS_BUNDLE;
312 ot->
name =
"Clear Solution";
314 ot->
idname =
"CLIP_OT_clear_solution";
ScrArea * CTX_wm_area(const bContext *C)
wmWindow * CTX_wm_window(const bContext *C)
Scene * CTX_data_scene(const bContext *C)
SpaceClip * CTX_wm_space_clip(const bContext *C)
wmWindowManager * CTX_wm_manager(const bContext *C)
void BKE_movieclip_get_size(struct MovieClip *clip, const struct MovieClipUser *user, int *r_width, int *r_height)
void BKE_reportf(ReportList *reports, eReportType type, const char *format,...) ATTR_PRINTF_FORMAT(3
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BKE_tracking_reconstruction_context_free(struct MovieReconstructContext *context)
void BKE_tracking_reconstruction_solve(struct MovieReconstructContext *context, bool *stop, bool *do_update, float *progress, char *stats_message, int message_size)
bool BKE_tracking_reconstruction_finish(struct MovieReconstructContext *context, struct MovieTracking *tracking)
struct MovieTrackingObject * BKE_tracking_object_get_active(const struct MovieTracking *tracking)
void BKE_tracking_camera_to_blender(struct MovieTracking *tracking, struct Scene *scene, struct Camera *camera, int width, int height)
const char * BKE_tracking_reconstruction_error_message_get(const struct MovieReconstructContext *context)
bool BKE_tracking_reconstruction_check(struct MovieTracking *tracking, struct MovieTrackingObject *tracking_object, char *error_msg, int error_size)
struct MovieReconstructContext * BKE_tracking_reconstruction_context_new(struct MovieClip *clip, struct MovieTrackingObject *tracking_object, int keyframe1, int keyframe2, int width, int height)
#define LISTBASE_FOREACH(type, var, list)
#define STRNCPY(dst, src)
void DEG_id_tag_update(ID *id, unsigned int flags)
Object is a sort of wrapper for general info.
MovieClip * ED_space_clip_get_clip(const SpaceClip *sc)
bool ED_space_clip_tracking_poll(bContext *C)
Read Guarded memory(de)allocation.
@ WM_JOB_TYPE_CLIP_SOLVE_CAMERA
const ProjectiveReconstruction & reconstruction
void MEM_freeN(void *vmemh)
struct MovieTracking tracking
MovieTrackingReconstruction reconstruction
MovieReconstructContext * context
struct MovieClipUser user
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
int(* modal)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
int(* invoke)(bContext *C, wmOperator *op, const wmEvent *event) ATTR_WARN_UNUSED_RESULT
int(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
static int clear_solution_exec(bContext *C, wmOperator *)
static bool solve_camera_initjob(bContext *C, SolveCameraJob *scj, wmOperator *op, char *error_msg, int max_error)
void CLIP_OT_clear_solution(wmOperatorType *ot)
static void solve_camera_startjob(void *scv, wmJobWorkerStatus *worker_status)
static int solve_camera_modal(bContext *C, wmOperator *, const wmEvent *event)
static int solve_camera_invoke(bContext *C, wmOperator *op, const wmEvent *)
void CLIP_OT_solve_camera(wmOperatorType *ot)
static void solve_camera_freejob(void *scv)
static void solve_camera_updatejob(void *scv)
static int solve_camera_exec(bContext *C, wmOperator *op)
void WM_cursor_wait(bool val)
void WM_main_add_notifier(uint type, void *reference)
wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
void WM_set_locked_interface(wmWindowManager *wm, bool lock)
void WM_jobs_timer(wmJob *wm_job, double time_step, uint note, uint endnote)
void WM_jobs_start(wmWindowManager *wm, wmJob *wm_job)
wmJob * WM_jobs_get(wmWindowManager *wm, wmWindow *win, const void *owner, const char *name, const eWM_JobFlag flag, const eWM_JobType job_type)
void WM_jobs_callbacks(wmJob *wm_job, wm_jobs_start_callback startjob, void(*initjob)(void *), void(*update)(void *), void(*endjob)(void *))
bool WM_jobs_test(const wmWindowManager *wm, const void *owner, int job_type)
void WM_jobs_customdata_set(wmJob *wm_job, void *customdata, void(*free)(void *customdata))