36 if (clip->gpd ==
nullptr) {
62 int place_outside_layer = 0;
71 place_outside_layer = placement == 2;
83 threshold / 100000.0f,
99 {0,
"FRAME", 0,
"Whole Frame",
"Place markers across the whole frame"},
103 "Inside Annotated Area",
104 "Place markers only inside areas outlined with the Annotation tool"},
108 "Outside Annotated Area",
109 "Place markers only outside areas outlined with the Annotation tool"},
110 {0,
nullptr, 0,
nullptr,
nullptr},
114 ot->
name =
"Detect Features";
115 ot->
description =
"Automatically detect features and place markers to track";
116 ot->
idname =
"CLIP_OT_detect_features";
127 ot->
srna,
"placement", placement_items, 0,
"Placement",
"Placement for detected features");
134 "Only features further than margin pixels from the image "
135 "edges are considered",
144 "Threshold level to consider feature good enough for tracking",
153 "Minimal distance accepted between two features",
SpaceClip * CTX_wm_space_clip(const bContext *C)
#define MOVIECLIP_CACHE_SKIP
struct ImBuf * BKE_movieclip_get_ibuf_flag(struct MovieClip *clip, const struct MovieClipUser *user, int flag, int cache_flag)
void BKE_report(ReportList *reports, eReportType type, const char *message)
void BKE_tracking_detect_harris(struct MovieTracking *tracking, struct ListBase *tracksbase, struct ImBuf *ibuf, int framenr, int margin, float threshold, int min_distance, struct bGPDlayer *layer, bool place_outside_layer)
struct MovieTrackingObject * BKE_tracking_object_get_active(const struct MovieTracking *tracking)
void BKE_tracking_dopesheet_tag_update(struct MovieTracking *tracking)
#define LISTBASE_FOREACH(type, var, list)
MovieClip * ED_space_clip_get_clip(const SpaceClip *sc)
int ED_space_clip_get_clip_frame_number(const SpaceClip *sc)
bool ED_space_clip_tracking_poll(bContext *C)
Contains defines and structs used throughout the imbuf module.
void IMB_freeImBuf(ImBuf *)
int RNA_int_get(PointerRNA *ptr, const char *name)
float RNA_float_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_float(StructOrFunctionRNA *cont_, const char *identifier, const float default_value, const float hardmin, const float hardmax, const char *ui_name, const char *ui_description, const float softmin, const float softmax)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, const int default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_int(StructOrFunctionRNA *cont_, const char *identifier, const int default_value, const int hardmin, const int hardmax, const char *ui_name, const char *ui_description, const int softmin, const int softmax)
struct MovieClipUser user
bool(* poll)(bContext *C) ATTR_WARN_UNUSED_RESULT
int(* exec)(bContext *C, wmOperator *op) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
static bGPDlayer * detect_get_layer(MovieClip *clip)
void CLIP_OT_detect_features(wmOperatorType *ot)
static int detect_features_exec(bContext *C, wmOperator *op)
void ed_tracking_deselect_all_tracks(ListBase *tracks_base)
void WM_event_add_notifier(const bContext *C, uint type, void *reference)