56 int height = (frame == cfra) ? 22 : 10;
57 int x = (frame - sfra) * framelen;
92 BLI_assert(marker_index < plane_track->markersnr);
123 BLI_assert(marker_index < plane_track->markersnr);
133 int *points, totseg, i,
a;
155 if (act_track || act_plane_track) {
156 for (i = sfra - clip->
start_frame + 1,
a = 0; i <= efra - clip->start_frame + 1; i++) {
160 while (
a < markersnr) {
163 if (marker_framenr >= i) {
167 if (
a < markersnr - 1 &&
206 for (i = sfra,
a = 0; i <= efra; i++) {
210 if (cameras[
a].framenr == i) {
214 if (cameras[
a].framenr > i) {
266 bool full_redraw =
false;
268 if (tracking->
stats) {
274 strcpy(
str,
"Locked");
279 float fill_color[4] = {0.0f, 0.0f, 0.0f, 0.6f};
310 bool use_filter =
true;
339 x,
y, ibuf, &frame, zoomx *
width / ibuf->
x, zoomy *
height / ibuf->
y);
369 float viewport_size[4];
426 for (
int i = 0; i <
count; ++i) {
431 current_frame += direction;
442 uint position_attribute,
443 const int start_point,
444 const int num_points)
446 if (num_points == 0) {
450 for (
int i = 0; i < num_points; i++) {
458 uint position_attribute,
459 const int start_point,
460 const int num_points)
463 for (
int i = 0; i < num_points; i++) {
473 uint position_attribute,
474 const int start_point,
475 const int num_points)
477 if (num_points < 2) {
481 for (
int i = 0; i < num_points; i++) {
490 #define MAX_STATIC_PATH 64
509 if (num_points_before == 0 && num_points_after == 0) {
513 int num_all_points = num_points_before + num_points_after;
515 if (num_points_before != 0 && num_points_after != 0) {
519 const int path_start_index =
count - num_points_before + 1;
520 const int path_center_index =
count;
561 if (path != path_static) {
567 #undef MAX_STATIC_PATH
573 const float marker_pos[2],
579 bool show_search =
false;
683 const bool is_track_active,
684 const bool is_area_selected,
685 const float color[3],
686 const float selected_color[3])
689 if (is_track_active) {
692 else if (is_area_selected) {
700 if (is_track_active) {
703 else if (is_area_selected) {
718 const float marker_pos[2],
726 bool show_search =
false;
727 float col[3], scol[3];
743 float viewport_size[4];
873 float len_sq = FLT_MAX;
875 for (
int i = 0; i < 4; i++) {
876 int next = (i + 1) % 4;
878 len_sq =
min_ff(cur_len, len_sq);
881 return sqrtf(len_sq);
885 float x,
float y,
float dx,
float dy,
int outline,
const float px[2],
uint pos)
901 float x,
float y,
float dx,
float dy,
int outline,
const float px[2],
uint pos)
923 const float marker_pos[2],
931 float dx, dy, patdx, patdy, searchdx, searchdy;
933 float col[3], scol[3], px[2], side;
980 float pat_min[2], pat_max[2];
989 for (
int i = 0; i < 4; i++) {
1021 const float marker_pos[2],
1028 char str[128] = {0},
state[64] = {0};
1029 float dx = 0.0f, dy = 0.0f, fontsize,
pos[3];
1037 BLF_size(fontid, 11.0f *
U.pixelsize,
U.dpi);
1060 float pat_min[2], pat_max[2];
1067 pos[0] = (marker_pos[0] + dx) *
width;
1074 pos[1] =
pos[1] * zoomy - fontsize;
1077 strcpy(
state,
"disabled");
1080 strcpy(
state,
"estimated");
1083 strcpy(
state,
"tracked");
1086 strcpy(
state,
"keyframed");
1123 const float start_corner[2],
1124 const float end_corner[2],
1132 direction[0] *=
width;
1136 direction[0] /=
width;
1144 gl_matrix[0][0] = matrix[0][0];
1145 gl_matrix[0][1] = matrix[0][1];
1146 gl_matrix[0][2] = 0.0f;
1147 gl_matrix[0][3] = matrix[0][2];
1149 gl_matrix[1][0] = matrix[1][0];
1150 gl_matrix[1][1] = matrix[1][1];
1151 gl_matrix[1][2] = 0.0f;
1152 gl_matrix[1][3] = matrix[1][2];
1154 gl_matrix[2][0] = 0.0f;
1155 gl_matrix[2][1] = 0.0f;
1156 gl_matrix[2][2] = 1.0f;
1157 gl_matrix[2][3] = 0.0f;
1159 gl_matrix[3][0] = matrix[2][0];
1160 gl_matrix[3][1] = matrix[2][1];
1161 gl_matrix[3][2] = 0.0f;
1162 gl_matrix[3][3] = matrix[2][2];
1184 if (display_buffer) {
1185 float frame_corners[4][2] = {{0.0f, 0.0f}, {1.0f, 0.0f}, {1.0f, 1.0f}, {0.0f, 1.0f}};
1186 float perspective_matrix[3][3];
1187 float gl_matrix[4][4];
1188 bool transparent =
false;
1190 frame_corners, plane_marker->
corners, perspective_matrix);
1256 bool is_active_track,
1262 bool is_selected_track = (plane_track->
flag &
SELECT) != 0;
1263 const bool has_image = plane_track->
image !=
NULL &&
1265 const bool draw_plane_quad = !has_image || plane_track->
image_opacity == 0.0f;
1267 float color[3], selected_color[3];
1273 if (draw_outline ==
false) {
1277 if (draw_plane_quad || is_selected_track) {
1283 float viewport_size[4];
1289 if (is_selected_track) {
1293 if (draw_plane_quad) {
1294 const bool stipple = !draw_outline && tiny;
1295 const bool thick = draw_outline && !tiny;
1323 if (!draw_outline) {
1360 if (is_selected_track) {
1370 for (
int i = 0; i < 4; i++) {
1398 bool is_active_track,
1403 sc,
scene, plane_track, plane_marker, is_active_track,
false,
width,
height);
1410 bool is_active_track,
1441 float *marker_pos =
NULL, *fp, *active_pos =
NULL, cur_pos[2];
1464 for (plane_track = plane_tracks_base->
first; plane_track; plane_track = plane_track->
next) {
1467 sc,
scene, plane_track, framenr, plane_track == active_plane_track,
width,
height);
1475 track = tracksbase->
first;
1485 track = track->
next;
1490 marker_pos =
MEM_callocN(
sizeof(
float[2]) *
count,
"draw_tracking_tracks marker_pos");
1492 track = tracksbase->
first;
1501 if (track == act_track) {
1509 track = track->
next;
1515 track = tracksbase->
first;
1521 track = track->
next;
1531 track = tracksbase->
first;
1551 track = track->
next;
1556 track = tracksbase->
first;
1560 int act = track == act_track;
1577 track = track->
next;
1596 float pos[4], vec[4], mat[4][4], aspy;
1603 track = tracksbase->
first;
1620 if (npos[0] >= 0.0f && npos[1] >= 0.0f && npos[0] <=
width && npos[1] <=
height * aspy) {
1647 track = track->
next;
1657 track = tracksbase->
first;
1664 int act = track == act_track;
1676 track = track->
next;
1697 float tpos[2], grid[11][11][2];
1702 float offsx = 0.0f, offsy = 0.0f;
1727 float val[4][2], idx[4][2];
1730 for (
int a = 0;
a < 4;
a++) {
1732 val[
a][
a % 2] = FLT_MAX;
1735 val[
a][
a % 2] = -FLT_MAX;
1739 for (
int i = 0; i <= n; i++) {
1740 for (
int j = 0; j <= n; j++) {
1741 if (i == 0 || j == 0 || i == n || j == n) {
1742 const float pos[2] = {dx * j, dy * i};
1745 for (
int a = 0;
a < 4;
a++) {
1749 ok = tpos[
a % 2] < val[
a][
a % 2];
1752 ok = tpos[
a % 2] > val[
a][
a % 2];
1767 for (
int a = 0;
a < 4;
a++) {
1768 const float pos[2] = {idx[
a][0] * dx, idx[
a][1] * dy};
1775 dx = (
max[0] -
min[0]) / n;
1776 dy = (
max[1] -
min[1]) / n;
1778 for (
int i = 0; i <= n; i++) {
1779 for (
int j = 0; j <= n; j++) {
1780 const float pos[2] = {
min[0] + dx * j,
min[1] + dy * i};
1784 grid[i][j][0] /=
width;
1785 grid[i][j][1] /=
height * aspy;
1791 for (
int i = 0; i <= n; i++) {
1794 for (
int j = 0; j <= n; j++) {
1801 for (
int j = 0; j <= n; j++) {
1804 for (
int i = 0; i <= n; i++) {
1823 layer = layer->
next;
1838 for (
int i = 0; i < stroke->
totpoints - 1; i++) {
1839 float pos[2], npos[2], dpos[2],
len;
1846 npos[1] = (stroke->
points[i + 1].
y + offsy) *
height * aspy;
1862 for (
int j = 0; j <=
steps; j++) {
1879 stroke = stroke->
next;
1882 frame = frame->
next;
1885 layer = layer->
next;
1912 float translation[2];
1914 float smat[4][4], ismat[4][4];
1931 smat[0][0] = 1.0f /
width;
1932 smat[1][1] = 1.0f /
height;
1992 if (is_track_source) {
typedef float(TangentPoint)[2]
void ED_draw_imbuf_ctx(const struct bContext *C, struct ImBuf *ibuf, float x, float y, bool use_filter, float zoom_x, float zoom_y)
struct Scene * CTX_data_scene(const bContext *C)
struct SpaceClip * CTX_wm_space_clip(const bContext *C)
void BKE_image_release_ibuf(struct Image *ima, struct ImBuf *ibuf, void *lock)
bool BKE_image_has_ibuf(struct Image *ima, struct ImageUser *iuser)
struct ImBuf * BKE_image_acquire_ibuf(struct Image *ima, struct ImageUser *iuser, void **r_lock)
void BKE_movieclip_get_cache_segments(struct MovieClip *clip, struct MovieClipUser *user, int *r_totseg, int **r_points)
struct MovieTrackingPlaneTrack * BKE_tracking_plane_track_get_active(struct MovieTracking *tracking)
void BKE_tracking_stabilization_data_to_mat4(int width, int height, float aspect, float translation[2], float scale, float angle, float mat[4][4])
struct ListBase * BKE_tracking_get_active_tracks(struct MovieTracking *tracking)
#define MARKER_VISIBLE(sc, track, marker)
struct MovieTrackingPlaneMarker * BKE_tracking_plane_marker_get(struct MovieTrackingPlaneTrack *plane_track, int framenr)
struct MovieTrackingTrack * BKE_tracking_track_get_active(struct MovieTracking *tracking)
struct MovieTrackingReconstruction * BKE_tracking_get_active_reconstruction(struct MovieTracking *tracking)
struct MovieTrackingMarker * BKE_tracking_marker_get_exact(struct MovieTrackingTrack *track, int framenr)
struct ListBase * BKE_tracking_get_active_plane_tracks(struct MovieTracking *tracking)
void BKE_tracking_distort_v2(struct MovieTracking *tracking, int image_width, int image_height, const float co[2], float r_co[2])
#define TRACK_VIEW_SELECTED(sc, track)
void BKE_tracking_marker_pattern_minmax(const struct MovieTrackingMarker *marker, float min[2], float max[2])
void BKE_tracking_get_projection_matrix(struct MovieTracking *tracking, struct MovieTrackingObject *object, int framenr, int winx, int winy, float mat[4][4])
struct MovieTrackingMarker * BKE_tracking_marker_get(struct MovieTrackingTrack *track, int framenr)
void BKE_tracking_undistort_v2(struct MovieTracking *tracking, int image_width, int image_height, const float co[2], float r_co[2])
void BKE_tracking_homography_between_two_quads(float reference_corners[4][2], float corners[4][2], float H[3][3])
struct MovieTrackingObject * BKE_tracking_object_get_active(struct MovieTracking *tracking)
void BLF_draw(int fontid, const char *str, size_t str_len) ATTR_NONNULL(2)
int BLF_height_max(int fontid) ATTR_WARN_UNUSED_RESULT
void BLF_color4ubv(int fontid, const unsigned char rgba[4])
void BLF_size(int fontid, float size, int dpi)
void BLF_position(int fontid, float x, float y, float z)
MINLINE int min_ii(int a, int b)
MINLINE float min_ff(float a, float b)
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])
void mul_v4_m4v4(float r[4], const float M[4][4], const float v[4])
void unit_m4(float m[4][4])
bool invert_m4_m4(float R[4][4], const float A[4][4])
void mul_m4_v3(const float M[4][4], float r[3])
#define mul_m4_series(...)
MINLINE float len_squared_v2(const float v[2]) ATTR_WARN_UNUSED_RESULT
MINLINE float len_squared_v2v2(const float a[2], const float b[2]) ATTR_WARN_UNUSED_RESULT
MINLINE void sub_v2_v2(float r[2], const float a[2])
MINLINE void mul_v2_fl(float r[2], float f)
MINLINE void copy_v2_v2(float r[2], const float a[2])
MINLINE void copy_v3_v3(float r[3], const float a[3])
void minmax_v2v2_v2(float min[2], float max[2], const float vec[2])
MINLINE void add_v2_v2(float r[2], const float a[2])
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 void zero_v2(float r[2])
MINLINE float len_v2v2(const float a[2], const float b[2]) ATTR_WARN_UNUSED_RESULT
MINLINE void mul_v3_v3fl(float r[3], const float a[3], float f)
MINLINE float normalize_v2(float r[2])
MINLINE void mul_v2_v2fl(float r[2], const float a[2], float f)
void BLI_rctf_init(struct rctf *rect, float xmin, float xmax, float ymin, float ymax)
char * BLI_strncpy(char *__restrict dst, const char *__restrict src, size_t maxncpy) ATTR_NONNULL()
size_t BLI_snprintf(char *__restrict dst, size_t maxncpy, const char *__restrict format,...) ATTR_NONNULL(1
#define INIT_MINMAX2(min, max)
#define UNUSED_VARS_NDEBUG(...)
@ MCLIP_PROXY_RENDER_UNDISTORT
@ MCLIP_PROXY_RENDER_SIZE_100
@ MCLIP_PROXY_RENDER_SIZE_FULL
@ TRACKING_2D_STABILIZATION
int ED_space_clip_get_clip_frame_number(struct SpaceClip *sc)
void ED_clip_point_undistorted_pos(struct SpaceClip *sc, const float co[2], float r_co[2])
struct ImBuf * ED_space_clip_get_buffer(struct SpaceClip *sc)
void ED_space_clip_get_zoom(struct SpaceClip *sc, struct ARegion *region, float *zoomx, float *zoomy)
void ED_space_clip_get_size(struct SpaceClip *sc, int *width, int *height)
struct ImBuf * ED_space_clip_get_stable_buffer(struct SpaceClip *sc, float loc[2], float *scale, float *angle)
struct MovieClip * ED_space_clip_get_clip(struct SpaceClip *sc)
void ED_mask_draw_frames(struct Mask *mask, struct ARegion *region, int cfra, int sfra, int efra)
void ED_region_info_draw(struct ARegion *region, const char *text, float fill_color[4], bool full_redraw)
void ED_region_grid_draw(struct ARegion *region, float zoomx, float zoomy, float x0, float y0)
void ED_region_cache_draw_curfra_label(int framenr, float x, float y)
void ED_region_cache_draw_background(struct ARegion *region)
void ED_region_cache_draw_cached_segments(struct ARegion *region, int num_segments, const int *points, int sfra, int efra)
void ED_region_image_metadata_draw(int x, int y, struct ImBuf *ibuf, const rctf *frame, float zoomx, float zoomy)
_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 width
void GPU_matrix_pop(void)
void GPU_matrix_translate_2fv(const float vec[2])
void GPU_matrix_scale_2f(float x, float y)
#define GPU_matrix_mul(x)
void GPU_matrix_push(void)
void GPU_matrix_translate_2f(float x, float y)
@ GPU_SHADER_2D_LINE_DASHED_UNIFORM_COLOR
@ GPU_SHADER_3D_IMAGE_MODULATE_ALPHA
@ GPU_SHADER_2D_UNIFORM_COLOR
void GPU_blend(eGPUBlend blend)
void GPU_line_width(float width)
void GPU_logic_op_xor_set(bool enable)
void GPU_point_size(float size)
void GPU_viewport_size_get_f(float coords[4])
struct GPUTexture GPUTexture
void GPU_texture_update(GPUTexture *tex, eGPUDataFormat data_format, const void *data)
void GPU_texture_free(GPUTexture *tex)
void GPU_texture_filter_mode(GPUTexture *tex, bool use_filter)
void GPU_texture_unbind(GPUTexture *tex)
GPUTexture * GPU_texture_create_2d(const char *name, int w, int h, int mip_len, eGPUTextureFormat format, const float *data)
void IMB_display_buffer_release(void *cache_handle)
unsigned char * IMB_display_buffer_acquire(struct ImBuf *ibuf, const struct ColorManagedViewSettings *view_settings, const struct ColorManagedDisplaySettings *display_settings, void **cache_handle)
Contains defines and structs used throughout the imbuf module.
Read Guarded memory(de)allocation.
in reality light always falls off quadratically Particle Retrieve the data of the particle that spawned the object for example to give variation to multiple instances of an object Point Retrieve information about points in a point cloud Retrieve the edges of an object as it appears to Cycles topology will always appear triangulated Convert a blackbody temperature to an RGB value Normal Generate a perturbed normal from an RGB normal map image Typically used for faking highly detailed surfaces Generate an OSL shader from a file or text data block Image Sample an image file as a texture Sky Generate a procedural sky texture Noise Generate fractal Perlin noise Wave Generate procedural bands or rings with noise Voronoi Generate Worley noise based on the distance to random points Typically used to generate textures such as or biological cells Brick Generate a procedural texture producing bricks Texture Retrieve multiple types of texture coordinates nTypically used as inputs for texture nodes Vector Convert a point
Group Output data from inside of a node group A color picker Mix two input colors RGB to Convert a color s luminance to a grayscale value Generate a normal vector and a dot product Bright Control the brightness and contrast of the input color Vector Map an input vectors to used to fine tune the interpolation of the input Camera Retrieve information about the camera and how it relates to the current shading point s position Clamp a value between a minimum and a maximum Vector Perform vector math operation Invert a color
void UI_GetThemeColor3fv(int colorid, float col[3])
@ TH_PATH_KEYFRAME_BEFORE
void UI_GetThemeColorShade4ubv(int colorid, int offset, unsigned char col[4])
void UI_FontThemeColor(int fontid, int colorid)
void UI_view2d_view_to_region_fl(const struct View2D *v2d, float x, float y, float *r_region_x, float *r_region_y) ATTR_NONNULL()
void UI_view2d_view_to_region(const struct View2D *v2d, float x, float y, int *r_region_x, int *r_region_y) ATTR_NONNULL()
void ED_annotation_draw_2dimage(const bContext *C)
void ED_annotation_draw_view2d(const bContext *C, bool onlyv2d)
static void draw_marker_areas(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, const float marker_pos[2], int width, int height, int act, int sel, const uint shdr_pos)
void clip_draw_cache_and_notes(const bContext *C, SpaceClip *sc, ARegion *region)
static void draw_movieclip_notes(SpaceClip *sc, ARegion *region)
static void draw_movieclip_cache(SpaceClip *sc, ARegion *region, MovieClip *clip, Scene *scene)
static void track_colors(MovieTrackingTrack *track, int act, float col[3], float scol[3])
static void draw_movieclip_muted(ARegion *region, int width, int height, float zoomx, float zoomy)
static void draw_marker_outline(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, const float marker_pos[2], int width, int height, uint position)
static void draw_track_path_points(const TrackPathPoint *path, uint position_attribute, const int start_point, const int num_points)
static void draw_plane_marker(SpaceClip *sc, Scene *scene, MovieTrackingPlaneTrack *plane_track, MovieTrackingPlaneMarker *plane_marker, bool is_active_track, int width, int height)
static void getArrowEndPoint(const int width, const int height, const float zoom, const float start_corner[2], const float end_corner[2], float end_point[2])
struct TrachPathPoint TrackPathPoint
static void draw_marker_slide_triangle(float x, float y, float dx, float dy, int outline, const float px[2], uint pos)
static void draw_track_path_keyframe_points(const TrackPathPoint *path, uint position_attribute, const int start_point, const int num_points)
void clip_draw_main(const bContext *C, SpaceClip *sc, ARegion *region)
static void draw_marker_texts(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, const float marker_pos[2], int act, int width, int height, float zoomx, float zoomy)
static int track_to_path_segment(SpaceClip *sc, MovieTrackingTrack *track, int direction, TrackPathPoint *path)
static void set_draw_marker_area_color(const MovieTrackingTrack *track, const MovieTrackingMarker *marker, const bool is_track_active, const bool is_area_selected, const float color[3], const float selected_color[3])
static void draw_plane_marker_ex(SpaceClip *sc, Scene *scene, MovieTrackingPlaneTrack *plane_track, MovieTrackingPlaneMarker *plane_marker, bool is_active_track, bool draw_outline, int width, int height)
static void draw_plane_track(SpaceClip *sc, Scene *scene, MovieTrackingPlaneTrack *plane_track, int framenr, bool is_active_track, int width, int height)
static void marker_to_path_point(SpaceClip *sc, const MovieTrackingTrack *track, const MovieTrackingMarker *marker, TrackPathPoint *point)
static void draw_distortion(SpaceClip *sc, ARegion *region, MovieClip *clip, int width, int height, float zoomx, float zoomy)
static float get_shortest_pattern_side(MovieTrackingMarker *marker)
static void plane_track_colors(bool is_active, float color[3], float selected_color[3])
@ PATH_POINT_FLAG_KEYFRAME
static bool generic_track_is_marker_enabled(MovieTrackingTrack *track, MovieTrackingPlaneTrack *plane_track, int marker_index)
static void draw_tracking_tracks(SpaceClip *sc, Scene *scene, ARegion *region, MovieClip *clip, int width, int height, float zoomx, float zoomy)
static void draw_track_path(SpaceClip *sc, MovieClip *UNUSED(clip), MovieTrackingTrack *track)
static int generic_track_get_marker_framenr(MovieTrackingTrack *track, MovieTrackingPlaneTrack *plane_track, int marker_index)
static void draw_keyframe(int frame, int cfra, int sfra, float framelen, int width, uint pos)
static void draw_movieclip_buffer(const bContext *C, SpaceClip *sc, ARegion *region, ImBuf *ibuf, int width, int height, float zoomx, float zoomy)
void clip_draw_grease_pencil(bContext *C, int onlyv2d)
static void draw_stabilization_border(SpaceClip *sc, ARegion *region, int width, int height, float zoomx, float zoomy)
static void draw_marker_slide_square(float x, float y, float dx, float dy, int outline, const float px[2], uint pos)
static void draw_track_path_lines(const TrackPathPoint *path, uint position_attribute, const int start_point, const int num_points)
static int generic_track_get_markersnr(MovieTrackingTrack *track, MovieTrackingPlaneTrack *plane_track)
static void homogeneous_2d_to_gl_matrix(float matrix[3][3], float gl_matrix[4][4])
static void draw_plane_marker_image(Scene *scene, MovieTrackingPlaneTrack *plane_track, MovieTrackingPlaneMarker *plane_marker)
static bool generic_track_is_marker_keyframed(MovieTrackingTrack *track, MovieTrackingPlaneTrack *plane_track, int marker_index)
static void draw_marker_slide_zones(SpaceClip *sc, MovieTrackingTrack *track, MovieTrackingMarker *marker, const float marker_pos[2], int outline, int sel, int act, int width, int height, uint pos)
static void draw_plane_marker_outline(SpaceClip *sc, Scene *scene, MovieTrackingPlaneTrack *plane_track, MovieTrackingPlaneMarker *plane_marker, int width, int height)
depth_tx normal_tx diffuse_light_tx specular_light_tx volume_light_tx environment_tx ambient_occlusion_tx aov_value_tx in_weight_img image(1, GPU_R32F, Qualifier::WRITE, ImageType::FLOAT_2D_ARRAY, "out_weight_img") .image(3
void IMB_freeImBuf(ImBuf *UNUSED(ibuf))
const ProjectiveReconstruction & reconstruction
void(* MEM_freeN)(void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
void *(* MEM_mallocN)(size_t len, const char *str)
ccl_device_inline float3 ceil(const float3 &a)
struct MovieTracking tracking
float pattern_corners[4][2]
struct MovieTrackingPlaneTrack * next
MovieTrackingPlaneMarker * markers
MovieTrackingMarker * markers
struct MovieTrackingTrack * next
MovieTrackingStats * stats
MovieTrackingStabilization stabilization
MovieTrackingCamera camera
ColorManagedViewSettings view_settings
ColorManagedDisplaySettings display_settings
struct MovieClipUser user