145 "Location of marker on frame",
164 switch (event->
type) {
202 ot->
name =
"Add Marker at Click";
203 ot->
idname =
"CLIP_OT_add_marker_at_click";
204 ot->
description =
"Place new marker at the desired (clicked) position";
222 bool changed =
false;
227 plane_track = next_plane_track) {
228 next_plane_track = plane_track->next;
239 track = next_track) {
240 next_track = track->next;
255 ot->
name =
"Delete Track";
256 ot->
idname =
"CLIP_OT_delete_track";
276 bool has_selection =
false;
277 bool changed =
false;
281 track = next_track) {
282 next_track = track->next;
285 if (marker !=
NULL) {
286 has_selection |= track->markersnr > 1;
296 plane_track = plane_track_next) {
297 plane_track_next = plane_track->next;
301 if (plane_marker !=
NULL) {
302 if (plane_track->markersnr == 1) {
324 ot->
name =
"Delete Marker";
325 ot->
idname =
"CLIP_OT_delete_marker";
326 ot->
description =
"Delete marker for current frame from selected tracks";
359 float old_search_min[2], old_search_max[2], old_pos[2], old_offset[2];
360 float old_corners[4][2];
386 data->action = action;
388 data->marker = marker;
422 data->mval[0] =
event->mval[0];
423 data->mval[1] =
event->mval[1];
443 const float slide_zone[2],
447 const float pixel_co[2] = {co[0] *
width, co[1] *
height},
448 pixel_slide_zone[2] = {slide_zone[0] *
width, slide_zone[1] *
height};
449 return square_f(pixel_co[0] - pixel_slide_zone[0]) +
square_f(pixel_co[1] - pixel_slide_zone[1]);
470 float min_distance_squared = FLT_MAX;
471 for (
int i = 0; i < 4; i++) {
475 if (distance_squared < min_distance_squared) {
476 min_distance_squared = distance_squared;
480 return min_distance_squared;
507 const float p[2] = {0.0f, 0.0f};
513 for (
int i = 0; i < 4; i++) {
516 int next = (i + 1) % 4;
517 int prev = (4 + i - 1) % 4;
524 if (
fabsf(cur_cross) > FLT_EPSILON) {
528 else if (
cross * cur_cross < 0.0f) {
538 bContext *
C,
const wmEvent *event,
int *r_area,
int *r_action,
int *r_corner)
540 const float distance_clip_squared = 12.0f * 12.0f;
550 float global_min_distance_squared = FLT_MAX;
555 int min_action = -1, min_area = 0, min_corner = -1;
566 track = tracksbase->
first;
573 float min_distance_squared = FLT_MAX;
577 float distance_squared;
591 min_distance_squared = distance_squared;
598 if (distance_squared < min_distance_squared) {
601 min_distance_squared = distance_squared;
605 if (distance_squared < min_distance_squared) {
608 min_distance_squared = distance_squared;
616 int current_corner = -1;
619 if (distance_squared < min_distance_squared) {
623 min_distance_squared = distance_squared;
630 if (distance_squared < min_distance_squared) {
633 min_distance_squared = distance_squared;
637 if (min_distance_squared < global_min_distance_squared) {
642 global_min_distance_squared = min_distance_squared;
650 if (global_min_distance_squared < distance_clip_squared / sc->zoom) {
655 *r_action = min_action;
658 *r_corner = min_corner;
673 void *customdata =
NULL;
698 if (slidedata !=
NULL) {
731 for (
int a = 0;
a <
data->track->markersnr;
a++) {
747 plane_track = plane_track->next) {
771 float dx, dy, mdelta[2];
773 switch (event->
type) {
789 mdelta[0] =
event->mval[0] -
data->mval[0];
790 mdelta[1] =
event->mval[1] -
data->mval[1];
792 dx = mdelta[0] /
data->width / sc->
zoom;
795 dy = -dx /
data->height *
data->width;
798 dy = mdelta[1] /
data->height / sc->
zoom;
801 if (
data->accurate) {
808 data->offset[0] =
data->old_offset[0] + dx;
809 data->offset[1] =
data->old_offset[1] + dy;
812 data->pos[0] =
data->old_pos[0] + dx;
813 data->pos[1] =
data->old_pos[1] + dy;
821 float start[2], end[2];
831 if (
data->accurate) {
832 mval[0] =
data->mval[0] + (
event->mval[0] -
data->mval[0]) / 5.0f;
833 mval[1] =
data->mval[1] + (
event->mval[1] -
data->mval[1]) / 5.0f;
836 mval[0] =
event->mval[0];
837 mval[1] =
event->mval[1];
846 for (
int a = 0;
a < 4;
a++) {
855 const float d[2] = {dx, dy};
856 for (
int a = 0;
a <
data->track->markersnr;
a++) {
879 float start[2], end[2];
880 float scale = 1.0f,
angle = 0.0f;
883 if (
data->accurate) {
884 mval[0] =
data->mval[0] + (
event->mval[0] -
data->mval[0]) / 5.0f;
885 mval[1] =
data->mval[1] + (
event->mval[1] -
data->mval[1]) / 5.0f;
888 mval[0] =
event->mval[0];
889 mval[1] =
event->mval[1];
907 for (
int a = 0;
a < 4;
a++) {
913 vec[0] *=
data->width;
914 vec[1] *=
data->height;
925 data->min[0] =
data->old_search_min[0] - dx;
926 data->max[0] =
data->old_search_max[0] + dx;
928 data->min[1] =
data->old_search_min[1] + dy;
929 data->max[1] =
data->old_search_max[1] - dy;
934 const float d[2] = {dx, dy};
978 ot->
name =
"Slide Marker";
980 ot->
idname =
"CLIP_OT_slide_marker";
998 "Offset in floating-point units, 1.0 is the width and height of the image",
1017 if (track !=
NULL) {
1038 {
TRACK_CLEAR_UPTO,
"UPTO", 0,
"Clear Up To",
"Clear path up to current frame"},
1043 "Clear path at remaining frames (after current)"},
1049 ot->
name =
"Clear Track Path";
1050 ot->
description =
"Clear tracks after/before current position or clear the whole track";
1051 ot->
idname =
"CLIP_OT_clear_track_path";
1066 "Clear action to execute");
1071 "Clear active track only instead of all selected tracks");
1120 {
MARKER_OP_TOGGLE,
"TOGGLE", 0,
"Toggle",
"Toggle disabled flag for selected markers"},
1125 ot->
name =
"Disable Markers";
1127 ot->
idname =
"CLIP_OT_disable_markers";
1137 RNA_def_enum(
ot->
srna,
"action", actions_items, 0,
"Action",
"Disable action to execute");
1165 ot->
name =
"Set Principal to Center";
1166 ot->
description =
"Set optical center to center of footage";
1167 ot->
idname =
"CLIP_OT_set_center_principal";
1208 plane_track = plane_track->next) {
1209 if (unselected == 0 && plane_track->flag &
SELECT) {
1212 else if (unselected == 1 && (plane_track->flag &
SELECT) == 0) {
1229 ot->
name =
"Hide Tracks";
1231 ot->
idname =
"CLIP_OT_hide_tracks";
1261 plane_track = plane_track->next) {
1275 ot->
name =
"Hide Tracks Clear";
1277 ot->
idname =
"CLIP_OT_hide_tracks_clear";
1292 return space_clip !=
NULL;
1306 if (track ==
NULL) {
1310 delta =
pos == 1 ? 1 : -1;
1327 delta =
pos == 3 ? 1 : -1;
1330 while (framenr + delta >=
SFRA && framenr + delta <=
EFRA) {
1332 tracking,
object, framenr);
1359 {0,
"PATHSTART", 0,
"Path Start",
"Jump to start of current path"},
1360 {1,
"PATHEND", 0,
"Path End",
"Jump to end of current path"},
1361 {2,
"FAILEDPREV", 0,
"Previous Failed",
"Jump to previous failed frame"},
1362 {2,
"FAILNEXT", 0,
"Next Failed",
"Jump to next failed frame"},
1367 ot->
name =
"Jump to Frame";
1379 RNA_def_enum(
ot->
srna,
"position", position_items, 0,
"Position",
"Position to jump to");
1392 bool update_stabilization =
false;
1395 if (act_track ==
NULL) {
1403 track = next_track) {
1404 next_track = track->next;
1409 update_stabilization =
true;
1419 update_stabilization =
true;
1430 plane_track = plane_track->next) {
1444 if (update_stabilization) {
1466 ot->
name =
"Join Tracks";
1468 ot->
idname =
"CLIP_OT_join_tracks";
1487 int num_source_tracks;
1489 tracking, &num_source_tracks);
1490 if (num_source_tracks == 0) {
1503 if (!keep_original) {
1504 for (
int i = 0; i < num_source_tracks; i++) {
1539 if (num_selected_tracks == 1) {
1550 ot->
name =
"Average Tracks";
1552 ot->
idname =
"CLIP_OT_average_tracks";
1616 ot->
name =
"Lock Tracks";
1618 ot->
idname =
"CLIP_OT_lock_tracks";
1628 RNA_def_enum(
ot->
srna,
"action", actions_items, 0,
"Action",
"Lock action to execute");
1648 object->keyframe1 = framenr;
1651 object->keyframe2 = framenr;
1668 ot->
name =
"Set Solver Keyframe";
1670 ot->
idname =
"CLIP_OT_set_solver_keyframe";
1680 RNA_def_enum(
ot->
srna,
"keyframe", keyframe_items, 0,
"Keyframe",
"Keyframe to set");
1693 if (act_track ==
NULL) {
1718 ot->
idname =
"CLIP_OT_track_copy_color";
1733 int prev = -1,
count = 0;
1735 int start_disabled = 0;
1742 for (
int a = 0;
a < markersnr;
a++) {
1755 end =
a == markersnr - 1;
1756 end |= (
a < markersnr - 1) && (
markers[
a].framenr !=
markers[
a + 1].framenr - 1 ||
1761 int segok = 1,
len = 0;
1793 if (start_disabled) {
1795 new_markers[
count].framenr--;
1818 if (del &&
count == 0) {
1855 track = next_track) {
1856 next_track = track->next;
1869 if (track == act_track) {
1878 if (track && track->markersnr == 0) {
1879 if (track == act_track) {
1926 "Delete unclean segments of tracks"},
1931 ot->
name =
"Clean Tracks";
1932 ot->
description =
"Clean tracks with high error values or few frames";
1933 ot->
idname =
"CLIP_OT_clean_tracks";
1950 "Effect on tracks which are tracked less than "
1951 "specified amount of frames",
1959 "Reprojection Error",
1960 "Effect on tracks which have got larger reprojection error",
1963 RNA_def_enum(
ot->
srna,
"action", actions_items, 0,
"Action",
"Cleanup action to execute");
1985 ot->
name =
"Add Tracking Object";
1987 ot->
idname =
"CLIP_OT_tracking_object_new";
2024 ot->
name =
"Remove Tracking Object";
2026 ot->
idname =
"CLIP_OT_tracking_object_remove";
2055 ot->
name =
"Copy Tracks";
2057 ot->
idname =
"CLIP_OT_copy_tracks";
2097 ot->
name =
"Paste Tracks";
2099 ot->
idname =
"CLIP_OT_paste_tracks";
2127 if (marker !=
NULL) {
2136 plane_track = plane_track->next) {
2172 ot->
name =
"Insert Keyframe";
2173 ot->
description =
"Insert a keyframe to selected tracks at current frame";
2174 ot->
idname =
"CLIP_OT_keyframe_insert";
2195 ot->
name =
"Delete Keyframe";
2196 ot->
description =
"Delete a keyframe from selected tracks at current frame";
2197 ot->
idname =
"CLIP_OT_keyframe_delete";
typedef float(TangentPoint)[2]
struct Scene * CTX_data_scene(const bContext *C)
struct SpaceClip * CTX_wm_space_clip(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
float BKE_movieclip_remap_scene_to_clip_frame(const struct MovieClip *clip, float framenr)
void BKE_movieclip_get_size(struct MovieClip *clip, struct MovieClipUser *user, int *width, int *height)
float BKE_movieclip_remap_clip_to_scene_frame(const struct MovieClip *clip, float framenr)
void BKE_report(ReportList *reports, ReportType type, const char *message)
void BKE_tracking_plane_track_free(struct MovieTrackingPlaneTrack *plane_track)
void BKE_tracking_plane_track_replace_point_track(struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingTrack *old_track, struct MovieTrackingTrack *new_track)
struct MovieTrackingPlaneTrack * BKE_tracking_plane_track_get_active(struct MovieTracking *tracking)
struct MovieTrackingPlaneMarker * BKE_tracking_plane_marker_ensure(struct MovieTrackingPlaneTrack *plane_track, int framenr)
void BKE_tracking_tracks_average(struct MovieTrackingTrack *dst_track, struct MovieTrackingTrack **src_tracks, const int num_src_tracks)
void BKE_tracking_plane_marker_delete(struct MovieTrackingPlaneTrack *plane_track, int framenr)
void BKE_tracking_clipboard_paste_tracks(struct MovieTracking *tracking, struct MovieTrackingObject *object)
bool BKE_tracking_object_delete(struct MovieTracking *tracking, struct MovieTrackingObject *object)
struct ListBase * BKE_tracking_get_active_tracks(struct MovieTracking *tracking)
void BKE_tracking_retrack_plane_from_existing_motion_at_segment(struct MovieTrackingPlaneTrack *plane_track, int start_frame)
#define PLANE_TRACK_VIEW_SELECTED(plane_track)
struct MovieTrackingObject * BKE_tracking_object_add(struct MovieTracking *tracking, const char *name)
void BKE_tracking_plane_tracks_deselect_all(struct ListBase *plane_tracks_base)
struct MovieReconstructedCamera * BKE_tracking_camera_get_reconstructed(struct MovieTracking *tracking, struct MovieTrackingObject *object, int framenr)
void BKE_tracking_track_flag_set(struct MovieTrackingTrack *track, int area, int flag)
struct MovieTrackingMarker * BKE_tracking_marker_ensure(struct MovieTrackingTrack *track, int framenr)
void BKE_tracking_tracks_join(struct MovieTracking *tracking, struct MovieTrackingTrack *dst_track, struct MovieTrackingTrack *src_track)
struct MovieTrackingTrack * BKE_tracking_track_get_active(struct MovieTracking *tracking)
void BKE_tracking_dopesheet_tag_update(struct MovieTracking *tracking)
struct MovieTrackingMarker * BKE_tracking_marker_get_exact(struct MovieTrackingTrack *track, int framenr)
void BKE_tracking_track_free(struct MovieTrackingTrack *track)
void BKE_tracking_track_plane_from_existing_motion(struct MovieTrackingPlaneTrack *plane_track, int start_frame)
void BKE_tracking_tracks_deselect_all(struct ListBase *tracksbase)
void BKE_tracking_track_select(struct ListBase *tracksbase, struct MovieTrackingTrack *track, int area, bool extend)
struct ListBase * BKE_tracking_get_active_plane_tracks(struct MovieTracking *tracking)
#define TRACK_AREA_SEARCH
void BKE_tracking_track_path_clear(struct MovieTrackingTrack *track, int ref_frame, int action)
struct MovieTrackingTrack * BKE_tracking_track_add_empty(struct MovieTracking *tracking, struct ListBase *tracks_list)
struct MovieTrackingPlaneMarker * BKE_tracking_plane_marker_get_exact(struct MovieTrackingPlaneTrack *plane_track, int framenr)
void BKE_tracking_clipboard_copy_tracks(struct MovieTracking *tracking, struct MovieTrackingObject *object)
#define TRACK_CLEAR_REMAINED
#define TRACK_VIEW_SELECTED(sc, track)
int BKE_tracking_count_selected_tracks_in_active_object(struct MovieTracking *tracking)
struct ListBase * BKE_tracking_object_get_tracks(struct MovieTracking *tracking, struct MovieTrackingObject *object)
bool BKE_tracking_clipboard_has_tracks(void)
bool BKE_tracking_plane_track_has_point_track(struct MovieTrackingPlaneTrack *plane_track, struct MovieTrackingTrack *track)
struct MovieTrackingTrack * BKE_tracking_track_add(struct MovieTracking *tracking, struct ListBase *tracksbase, float x, float y, int framenr, int width, int height)
struct MovieTrackingMarker * BKE_tracking_marker_get(struct MovieTrackingTrack *track, int framenr)
struct MovieTrackingTrack ** BKE_tracking_selected_tracks_in_active_object(struct MovieTracking *tracking, int *r_num_tracks)
void BKE_tracking_marker_clamp(struct MovieTrackingMarker *marker, int event)
struct MovieTrackingObject * BKE_tracking_object_get_active(struct MovieTracking *tracking)
GSet * BLI_gset_ptr_new(const char *info)
void BLI_gset_insert(GSet *gs, void *key)
#define GSET_ITER(gs_iter_, gset_)
void BLI_gset_free(GSet *gs, GSetKeyFreeFP keyfreefp)
BLI_INLINE void * BLI_gsetIterator_getKey(GSetIterator *gsi)
void BLI_freelinkN(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
MINLINE float square_f(float a)
int isect_point_quad_v2(const float p[2], const float v1[2], const float v2[2], const float v3[2], const float v4[2])
MINLINE float len_squared_v2(const float v[2]) ATTR_WARN_UNUSED_RESULT
MINLINE void sub_v2_v2(float r[2], const float a[2])
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void copy_v3_v3(float r[3], const float a[3])
MINLINE void add_v2_v2(float r[2], const float a[2])
float angle_signed_v2v2(const float v1[2], const float v2[2]) ATTR_WARN_UNUSED_RESULT
MINLINE float cross_v2v2(const float a[2], const float b[2]) ATTR_WARN_UNUSED_RESULT
MINLINE void add_v2_v2v2(float r[2], const float a[2], const float b[2])
MINLINE void sub_v2_v2v2(float r[2], const float a[2], const float b[2])
MINLINE float len_v2(const float a[2]) ATTR_WARN_UNUSED_RESULT
MINLINE void mul_v2_v2fl(float r[2], const float a[2], float f)
void DEG_id_tag_update(struct ID *id, int flag)
@ ID_RECALC_COPY_ON_WRITE
@ TRACKING_CLEAN_DELETE_SEGMENT
@ TRACKING_CLEAN_DELETE_TRACK
int ED_space_clip_get_clip_frame_number(struct SpaceClip *sc)
void ED_clip_view_lock_state_restore_no_jump(const struct bContext *C, const ClipViewLockState *state)
void ED_space_clip_get_size(struct SpaceClip *sc, int *width, int *height)
void ED_clip_mouse_pos(struct SpaceClip *sc, struct ARegion *region, const int mval[2], float co[2])
bool ED_space_clip_tracking_poll(struct bContext *C)
void ED_clip_point_stable_pos(struct SpaceClip *sc, struct ARegion *region, float x, float y, float *xr, float *yr)
struct MovieClip * ED_space_clip_get_clip(struct SpaceClip *sc)
void ED_clip_view_lock_state_store(const struct bContext *C, ClipViewLockState *state)
void ED_workspace_status_text(struct bContext *C, const char *str)
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei width
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei height
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint y
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble u2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLdouble GLdouble v2 _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLdouble GLdouble nz _GL_VOID_RET _GL_VOID GLfloat GLfloat nz _GL_VOID_RET _GL_VOID GLint GLint nz _GL_VOID_RET _GL_VOID GLshort GLshort nz _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const GLfloat *values _GL_VOID_RET _GL_VOID GLsizei const GLushort *values _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID const GLuint const GLclampf *priorities _GL_VOID_RET _GL_VOID GLdouble y _GL_VOID_RET _GL_VOID GLfloat y _GL_VOID_RET _GL_VOID GLint y _GL_VOID_RET _GL_VOID GLshort y _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLfloat GLfloat z _GL_VOID_RET _GL_VOID GLint GLint z _GL_VOID_RET _GL_VOID GLshort GLshort z _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble w _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat w _GL_VOID_RET _GL_VOID GLint GLint GLint w _GL_VOID_RET _GL_VOID GLshort GLshort GLshort w _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble y2 _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat y2 _GL_VOID_RET _GL_VOID GLint GLint GLint y2 _GL_VOID_RET _GL_VOID GLshort GLshort GLshort y2 _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLdouble GLdouble z _GL_VOID_RET _GL_VOID GLuint *buffer _GL_VOID_RET _GL_VOID GLdouble t _GL_VOID_RET _GL_VOID GLfloat t _GL_VOID_RET _GL_VOID GLint t _GL_VOID_RET _GL_VOID GLshort t _GL_VOID_RET _GL_VOID GLdouble t
_GL_VOID GLfloat value _GL_VOID_RET _GL_VOID const GLuint GLboolean *residences _GL_BOOL_RET _GL_VOID GLsizei GLfloat GLfloat GLfloat GLfloat const GLubyte *bitmap _GL_VOID_RET _GL_VOID GLenum const void *lists _GL_VOID_RET _GL_VOID const GLdouble *equation _GL_VOID_RET _GL_VOID GLdouble GLdouble blue _GL_VOID_RET _GL_VOID GLfloat GLfloat blue _GL_VOID_RET _GL_VOID GLint GLint blue _GL_VOID_RET _GL_VOID GLshort GLshort blue _GL_VOID_RET _GL_VOID GLubyte GLubyte blue _GL_VOID_RET _GL_VOID GLuint GLuint blue _GL_VOID_RET _GL_VOID GLushort GLushort blue _GL_VOID_RET _GL_VOID GLbyte GLbyte GLbyte alpha _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble alpha _GL_VOID_RET _GL_VOID GLfloat GLfloat GLfloat alpha _GL_VOID_RET _GL_VOID GLint GLint GLint alpha _GL_VOID_RET _GL_VOID GLshort GLshort GLshort alpha _GL_VOID_RET _GL_VOID GLubyte GLubyte GLubyte alpha _GL_VOID_RET _GL_VOID GLuint GLuint GLuint alpha _GL_VOID_RET _GL_VOID GLushort GLushort GLushort alpha _GL_VOID_RET _GL_VOID GLenum mode _GL_VOID_RET _GL_VOID GLint GLsizei GLsizei GLenum type _GL_VOID_RET _GL_VOID GLsizei GLenum GLenum const void *pixels _GL_VOID_RET _GL_VOID const void *pointer _GL_VOID_RET _GL_VOID GLdouble v _GL_VOID_RET _GL_VOID GLfloat v _GL_VOID_RET _GL_VOID GLint GLint i2 _GL_VOID_RET _GL_VOID GLint j _GL_VOID_RET _GL_VOID GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLdouble GLdouble GLdouble GLdouble GLdouble zFar _GL_VOID_RET _GL_UINT GLdouble *equation _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLenum GLfloat *v _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLfloat *values _GL_VOID_RET _GL_VOID GLushort *values _GL_VOID_RET _GL_VOID GLenum GLfloat *params _GL_VOID_RET _GL_VOID GLenum GLdouble *params _GL_VOID_RET _GL_VOID GLenum GLint *params _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_VOID GLsizei const void *pointer _GL_VOID_RET _GL_BOOL GLfloat param _GL_VOID_RET _GL_VOID GLint param _GL_VOID_RET _GL_VOID GLenum GLfloat param _GL_VOID_RET _GL_VOID GLenum GLint param _GL_VOID_RET _GL_VOID GLushort pattern _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint const GLdouble *points _GL_VOID_RET _GL_VOID GLdouble GLdouble GLint GLint GLdouble v1
Read Guarded memory(de)allocation.
ATTR_WARN_UNUSED_RESULT const BMVert * v2
SIMD_FORCE_INLINE btScalar angle(const btVector3 &v) const
Return the angle between this and another vector.
void clip_delete_marker(struct bContext *C, struct MovieClip *clip, struct MovieTrackingTrack *track, struct MovieTrackingMarker *marker)
void clip_delete_track(struct bContext *C, struct MovieClip *clip, struct MovieTrackingTrack *track)
void clip_delete_plane_track(struct bContext *C, struct MovieClip *clip, struct MovieTrackingPlaneTrack *plane_track)
const vector< Marker > & markers
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static void error(const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
bool RNA_property_is_set(PointerRNA *ptr, PropertyRNA *prop)
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
void RNA_float_get_array(PointerRNA *ptr, const char *name, float *values)
int RNA_int_get(PointerRNA *ptr, const char *name)
void RNA_property_boolean_set(PointerRNA *ptr, PropertyRNA *prop, bool value)
float RNA_float_get(PointerRNA *ptr, const char *name)
void RNA_float_set(PointerRNA *ptr, const char *name, float value)
bool RNA_struct_property_is_set(PointerRNA *ptr, const char *identifier)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
void RNA_enum_set(PointerRNA *ptr, const char *name, int value)
void RNA_float_set_array(PointerRNA *ptr, const char *name, const float *values)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, float default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_float_vector(StructOrFunctionRNA *cont_, const char *identifier, int len, const float *default_value, float hardmin, float hardmax, const char *ui_name, const char *ui_description, float softmin, float softmax)
void RNA_def_property_flag(PropertyRNA *prop, PropertyFlag flag)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, int default_value, int hardmin, int hardmax, const char *ui_name, const char *ui_description, int softmin, int softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
struct MovieTracking tracking
float pattern_corners[4][2]
MovieTrackingMarker * markers
struct MovieTrackingTrack * next
MovieTrackingReconstruction reconstruction
MovieTrackingPlaneTrack * act_plane_track
MovieTrackingTrack * act_track
MovieTrackingStabilization stabilization
MovieTrackingCamera camera
MovieTrackingSettings settings
MovieTrackingTrack * track
MovieTrackingMarker * marker
struct MovieClipUser user
int(* invoke)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
int(* modal)(struct bContext *, struct wmOperator *, const struct wmEvent *) ATTR_WARN_UNUSED_RESULT
bool(* poll)(struct bContext *) ATTR_WARN_UNUSED_RESULT
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
void CLIP_OT_paste_tracks(wmOperatorType *ot)
static int disable_markers_exec(bContext *C, wmOperator *op)
void CLIP_OT_delete_marker(wmOperatorType *ot)
static float mouse_to_offset_distance_squared(const MovieTrackingTrack *track, const MovieTrackingMarker *marker, const float co[2], int width, int height)
static int frame_jump_exec(bContext *C, wmOperator *op)
static int tracking_object_remove_exec(bContext *C, wmOperator *op)
static bool add_marker(const bContext *C, float x, float y)
static bool slide_check_corners(float(*corners)[2])
static int hide_tracks_exec(bContext *C, wmOperator *op)
static SlideMarkerData * create_slide_marker_data(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, const wmEvent *event, int area, int corner, int action, int width, int height)
void CLIP_OT_track_copy_color(wmOperatorType *ot)
static float mouse_to_slide_zone_distance_squared(const float co[2], const float slide_zone[2], int width, int height)
void CLIP_OT_hide_tracks_clear(wmOperatorType *ot)
void CLIP_OT_keyframe_delete(wmOperatorType *ot)
void CLIP_OT_set_center_principal(wmOperatorType *ot)
static int add_marker_at_click_modal(bContext *C, wmOperator *UNUSED(op), const wmEvent *event)
static float mouse_to_closest_pattern_corner_distance_squared(const MovieTrackingMarker *marker, const float co[2], int width, int height, int *r_corner)
static int join_tracks_exec(bContext *C, wmOperator *op)
static void slide_marker_tilt_slider(const MovieTrackingMarker *marker, float r_slider[2])
static int keyframe_delete_exec(bContext *C, wmOperator *UNUSED(op))
static bool frame_jump_poll(bContext *C)
static int slide_marker_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void CLIP_OT_hide_tracks(wmOperatorType *ot)
static void free_slide_data(SlideMarkerData *data)
static float mouse_to_search_corner_distance_squared(const MovieTrackingMarker *marker, const float co[2], int corner, int width, int height)
void CLIP_OT_set_solver_keyframe(wmOperatorType *ot)
void CLIP_OT_lock_tracks(wmOperatorType *ot)
static void * slide_marker_customdata(bContext *C, const wmEvent *event)
static void keyframe_set_flag(bContext *C, bool set)
void CLIP_OT_average_tracks(wmOperatorType *ot)
static int mouse_to_tilt_distance_squared(const MovieTrackingMarker *marker, const float co[2], int width, int height)
MovieTrackingTrack * tracking_marker_check_slide(bContext *C, const wmEvent *event, int *r_area, int *r_action, int *r_corner)
static int track_copy_color_exec(bContext *C, wmOperator *UNUSED(op))
void CLIP_OT_tracking_object_new(wmOperatorType *ot)
void CLIP_OT_keyframe_insert(wmOperatorType *ot)
static int clean_tracks_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void CLIP_OT_copy_tracks(wmOperatorType *ot)
static void apply_mouse_slide(bContext *C, SlideMarkerData *data)
static int average_tracks_exec(bContext *C, wmOperator *op)
static void cancel_mouse_slide(SlideMarkerData *data)
void CLIP_OT_slide_marker(wmOperatorType *ot)
static int add_marker_exec(bContext *C, wmOperator *op)
void CLIP_OT_add_marker_at_click(wmOperatorType *ot)
static int clear_track_path_exec(bContext *C, wmOperator *op)
void CLIP_OT_clean_tracks(wmOperatorType *ot)
static int add_marker_at_click_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
void CLIP_OT_join_tracks(wmOperatorType *ot)
static int slide_marker_modal(bContext *C, wmOperator *op, const wmEvent *event)
static int lock_tracks_exec(bContext *C, wmOperator *op)
static int set_center_principal_exec(bContext *C, wmOperator *UNUSED(op))
void CLIP_OT_delete_track(wmOperatorType *ot)
void CLIP_OT_add_marker(wmOperatorType *ot)
static int set_solver_keyframe_exec(bContext *C, wmOperator *op)
static bool paste_tracks_poll(bContext *C)
static int tracking_object_new_exec(bContext *C, wmOperator *UNUSED(op))
static int delete_track_exec(bContext *C, wmOperator *UNUSED(op))
static int add_marker_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static int paste_tracks_exec(bContext *C, wmOperator *UNUSED(op))
static int average_tracks_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
static int clean_tracks_exec(bContext *C, wmOperator *op)
static int delete_marker_exec(bContext *C, wmOperator *UNUSED(op))
void CLIP_OT_tracking_object_remove(wmOperatorType *ot)
void CLIP_OT_disable_markers(wmOperatorType *ot)
static int copy_tracks_exec(bContext *C, wmOperator *UNUSED(op))
static int keyframe_insert_exec(bContext *C, wmOperator *UNUSED(op))
static int hide_tracks_clear_exec(bContext *C, wmOperator *UNUSED(op))
static bool is_track_clean(MovieTrackingTrack *track, int frames, int del)
void CLIP_OT_clear_track_path(wmOperatorType *ot)
void CLIP_OT_frame_jump(wmOperatorType *ot)
void clip_tracking_hide_cursor(struct bContext *C)
void clip_tracking_show_cursor(struct bContext *C)
void clip_tracking_clear_invisible_track_selection(struct SpaceClip *sc, struct MovieClip *clip)
__forceinline avxf cross(const avxf &a, const avxf &b)
wmEventHandler_Op * WM_event_add_modal_handler(bContext *C, wmOperator *op)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)
int WM_operator_confirm(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))