38 if ((points[i].y < y && points[prev].y >= y) || (points[prev].y < y && points[i].y >=
y)) {
39 float fac = (y - points[i].y) / (points[prev].y - points[i].y);
41 if (points[i].x + fac * (points[prev].x - points[i].x) <
x) {
63 stroke = stroke->
next;
79 bool place_outside_layer)
94 xu = (x + 0.5) / width;
95 yu = (y + 0.5) / height;
103 tracking, tracksbase, xu, yu, framenr, width, height);
116 bool place_outside_layer,
128 if (features !=
nullptr) {
130 tracking, tracksbase, features, framenr, ibuf->
x, ibuf->
y, layer, place_outside_layer);
144 bool place_outside_layer)
150 options.min_distance = min_distance;
151 options.fast_min_trackness = min_trackness;
154 tracking, tracksbase, ibuf, framenr, layer, place_outside_layer, &
options);
165 bool place_outside_layer)
171 options.min_distance = min_distance;
172 options.harris_threshold = threshold;
175 tracking, tracksbase, ibuf, framenr, layer, place_outside_layer, &
options);
struct MovieTrackingTrack * BKE_tracking_track_add(struct MovieTracking *tracking, struct ListBase *tracksbase, float x, float y, int framenr, int width, int height)
Object is a sort of wrapper for general info.
Contains defines and structs used throughout the imbuf module.
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
CCL_NAMESPACE_BEGIN struct Options options
void libmv_getFeature(const libmv_Features *libmv_features, int number, double *x, double *y, double *score, double *size)
libmv_Features * libmv_detectFeaturesByte(const unsigned char *image_buffer, int width, int height, int channels, libmv_DetectOptions *options)
void libmv_featuresDestroy(libmv_Features *libmv_features)
libmv_Features * libmv_detectFeaturesFloat(const float *image_buffer, int width, int height, int channels, libmv_DetectOptions *options)
int libmv_countFeatures(const libmv_Features *libmv_features)
ImBufFloatBuffer float_buffer
ImBufByteBuffer byte_buffer
static bool check_point_in_stroke(bGPDstroke *stroke, float x, float y)
static void run_configured_detector(MovieTracking *tracking, ListBase *tracksbase, ImBuf *ibuf, int framenr, bGPDlayer *layer, bool place_outside_layer, libmv_DetectOptions *options)
void BKE_tracking_detect_fast(MovieTracking *tracking, ListBase *tracksbase, ImBuf *ibuf, int framenr, int margin, int min_trackness, int min_distance, bGPDlayer *layer, bool place_outside_layer)
static bool check_point_in_layer(bGPDlayer *layer, float x, float y)
void BKE_tracking_detect_harris(MovieTracking *tracking, ListBase *tracksbase, ImBuf *ibuf, int framenr, int margin, float threshold, int min_distance, bGPDlayer *layer, bool place_outside_layer)
static void detect_retrieve_libmv_features(MovieTracking *tracking, ListBase *tracksbase, libmv_Features *features, int framenr, int width, int height, bGPDlayer *layer, bool place_outside_layer)