116 for (marker =
markers->first; marker; marker = marker->
next) {
122 if ((side ==
'B') || (side ==
'L' && marker->
frame < cfra) ||
123 (side ==
'R' && marker->
frame >= cfra)) {
147 float dist, min_dist = 1000000;
150 for (marker =
markers->first; marker; marker = marker->
next) {
153 if (dist < min_dist) {
184 for (marker =
markers->first; marker; marker = marker->
next) {
211 switch (
area->spacetype) {
253 fabsf(nearest_marker->
frame - frame_at_position);
266 if ((only_sel) && ((marker->
flag &
SELECT) == 0)) {
271 for (ce = lb->
first; ce; ce = ce->
next) {
315 for (marker =
markers->first; marker; marker = marker->
next) {
349 for (marker =
markers->first; marker; marker = marker->
next) {
369 printf(
"No markers list to print debug for\n");
373 printf(
"List of markers follows: -----\n");
375 for (marker =
markers->first; marker; marker = marker->
next) {
377 "\t'%s' on %d at %p with %u\n", marker->
name, marker->
frame, (
void *)marker, marker->
flag);
380 printf(
"End of list ------------------\n");
407 const char *name = marker->
name;
408 uchar final_text_color[4];
412 #ifdef DURIAN_CAMERA_SWITCH
415 name =
camera->id.name + 2;
417 final_text_color[3] = 100;
433 float viewport_size[4];
453 return (marker->
flag &
ACTIVE) ? ICON_PMARKER_ACT :
457 #ifdef DURIAN_CAMERA_SWITCH
459 return (marker->
flag &
SELECT) ? ICON_OUTLINER_OB_CAMERA : ICON_CAMERA_DATA;
462 return (marker->
flag &
SELECT) ? ICON_MARKER_HLT : ICON_MARKER;
468 uchar line_color[4], text_color[4];
511 if (marker->
frame < frame_range[0]) {
514 if (marker->
frame > frame_range[1]) {
530 float font_width_max = (10 *
UI_DPI_FAC) / xscale;
532 r_range[1] = v2d->
cur.
xmax + font_width_max;
548 rctf markers_region_rect;
559 int clip_frame_range[2];
566 if ((marker->flag &
SELECT) == 0) {
568 draw_marker(fstyle, marker, cfra, marker->frame * xscale, flag, region->
winy);
573 if (marker->flag &
SELECT) {
575 draw_marker(fstyle, marker, cfra, marker->frame * xscale, flag, region->
winy);
654 for (marker =
markers->first; marker; marker = marker->
next) {
655 if (marker->
frame == frame) {
661 for (marker =
markers->first; marker; marker = marker->
next) {
667 marker->
frame = frame;
680 ot->
name =
"Add Time Marker";
753 for (totmark = 0, marker = mm->
markers->
first; marker; marker = marker->
next) {
770 if (totmark == 1 && selmarker) {
801 for (totmark = 0, marker =
markers->first; marker; marker = marker->
next) {
823 for (
a = 0, marker =
markers->first; marker; marker = marker->
next) {
864 mm->
evtx =
event->xy[0];
865 mm->
firstx =
event->xy[0];
886 #ifdef DURIAN_CAMERA_SWITCH
906 #ifdef DURIAN_CAMERA_SWITCH
947 bool handled =
false;
948 switch (event->
type) {
978 if (event->
xy[0] != mm->
evtx) {
981 mm->
evtx =
event->xy[0];
1030 ot->
name =
"Move Time Marker";
1045 RNA_def_int(
ot->
srna,
"frames", 0, INT_MIN, INT_MAX,
"Frames",
"", INT_MIN, INT_MAX);
1047 ot->
srna,
"tweak", 0,
"Tweak",
"Operator has been activated using a click-drag event");
1086 for (marker =
markers->first; marker; marker = marker->
next) {
1097 #ifdef DURIAN_CAMERA_SWITCH
1129 ot->
name =
"Duplicate Time Marker";
1131 ot->
idname =
"MARKER_OT_duplicate";
1144 RNA_def_int(
ot->
srna,
"frames", 0, INT_MIN, INT_MAX,
"Frames",
"", INT_MIN, INT_MAX);
1165 bool wait_to_deselect_others)
1171 wait_to_deselect_others =
false;
1175 for (marker =
markers->first; marker; marker = marker->
next) {
1176 if (marker->
frame == frame) {
1184 if (wait_to_deselect_others && marker_cycle_selected) {
1189 if (extend ==
false) {
1195 if (marker->
frame == frame) {
1209 #ifdef DURIAN_CAMERA_SWITCH
1222 for (marker =
markers->first; marker; marker = marker->
next) {
1223 if (marker->
frame == cfra) {
1229 for (marker =
markers->first; marker; marker = marker->
next) {
1231 if (marker->
frame == cfra) {
1252 bContext *
C,
const int mval[2],
bool extend,
bool camera,
bool wait_to_deselect_others)
1279 const bool wait_to_deselect_others =
RNA_boolean_get(op->
ptr,
"wait_to_deselect_others");
1281 #ifdef DURIAN_CAMERA_SWITCH
1305 ot->
name =
"Select Time Marker";
1321 #ifdef DURIAN_CAMERA_SWITCH
1362 if (tweak && over_marker) {
1403 ot->
name =
"Marker Box Select";
1404 ot->
description =
"Select all time markers using box selection";
1405 ot->
idname =
"MARKER_OT_select_box";
1423 ot->
srna,
"tweak", 0,
"Tweak",
"Operator has been activated using a click-drag event");
1452 ot->
name =
"(De)select all Markers";
1454 ot->
idname =
"MARKER_OT_select_all";
1527 ot->
name =
"Select Markers Before/After Current Frame";
1528 ot->
description =
"Select markers on and left/right of the current frame";
1529 ot->
idname =
"MARKER_OT_select_leftright";
1557 bool changed =
false;
1563 for (marker =
markers->first; marker; marker = nmarker) {
1564 nmarker = marker->
next;
1586 ot->
name =
"Delete Markers";
1638 ot->
name =
"Rename Marker";
1656 "New name for marker");
1662 "Ensure that new name is unique within collection of markers");
1679 if (scene_to ==
NULL) {
1695 for (marker =
markers->first; marker; marker = marker->
next) {
1712 ot->
name =
"Make Links to Scene";
1714 ot->
idname =
"MARKER_OT_make_links_scene";
1737 #ifdef DURIAN_CAMERA_SWITCH
1790 ot->
name =
"Bind Camera to Markers";
1791 ot->
description =
"Bind the selected camera to a marker on the current frame";
1792 ot->
idname =
"MARKER_OT_camera_bind";
1795 ot->
exec = ed_marker_camera_bind_exec;
1822 #ifdef DURIAN_CAMERA_SWITCH
typedef float(TangentPoint)[2]
struct ScrArea * CTX_wm_area(const bContext *C)
struct Scene * CTX_data_scene(const bContext *C)
struct ViewLayer * CTX_data_view_layer(const bContext *C)
struct Object * CTX_data_active_object(const bContext *C)
struct bScreen * CTX_wm_screen(const bContext *C)
struct SpaceLink * CTX_wm_space_data(const bContext *C)
struct ARegion * CTX_wm_region(const bContext *C)
struct Main * CTX_data_main(const bContext *C)
struct ToolSettings * CTX_data_tool_settings(const bContext *C)
enum eContextObjectMode CTX_data_mode_enum(const bContext *C)
void IDP_FreePropertyContent(struct IDProperty *prop)
struct IDProperty * IDP_CopyProperty(const struct IDProperty *prop) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL()
void BKE_view_layer_base_deselect_all(struct ViewLayer *view_layer)
struct Base * BKE_view_layer_base_find(struct ViewLayer *view_layer, struct Object *ob)
void BKE_report(ReportList *reports, eReportType type, const char *message)
bool BKE_scene_camera_switch_update(struct Scene *scene)
void BKE_screen_view3d_scene_sync(struct bScreen *screen, struct Scene *scene)
BLI_INLINE bool BLI_listbase_is_empty(const struct ListBase *lb)
void BLI_addhead(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define LISTBASE_FOREACH(type, var, list)
void BLI_freelinkN(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
#define LISTBASE_CIRCULAR_FORWARD_BEGIN(lb, lb_iter, lb_init)
#define LISTBASE_CIRCULAR_FORWARD_END(lb, lb_iter, lb_init)
void BLI_addtail(struct ListBase *listbase, void *vlink) ATTR_NONNULL(1)
void BLI_insertlinkbefore(struct ListBase *listbase, void *vnextlink, void *vnewlink) ATTR_NONNULL(1)
void * BLI_findlink(const struct ListBase *listbase, int number) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1)
MINLINE int round_fl_to_int(float a)
MINLINE void copy_v4_v4_uchar(unsigned char r[4], const unsigned char a[4])
bool BLI_rctf_isect_x(const rctf *rect, float x)
BLI_INLINE int BLI_rcti_size_x(const struct rcti *rct)
BLI_INLINE float BLI_rctf_size_x(const struct rctf *rct)
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 SET_FLAG_FROM_TEST(value, test, flag)
void DEG_id_tag_update(struct ID *id, int flag)
@ SACTION_POSEMARKERS_SHOW
Object is a sort of wrapper for general info.
void ED_object_base_select(struct Base *base, eObjectSelect_Mode mode)
void ED_object_base_activate(struct bContext *C, struct Base *base)
void ED_area_status_text(ScrArea *area, const char *str)
#define SEL_OP_USE_PRE_DESELECT(sel_op)
void apply_keyb_grid(bool shift, bool ctrl, float *val, float fac1, float fac2, float fac3, int invert)
void GPU_matrix_pop(void)
void GPU_matrix_scale_2f(float x, float y)
void GPU_matrix_push(void)
@ GPU_SHADER_2D_LINE_DASHED_UNIFORM_COLOR
@ GPU_SHADER_2D_UNIFORM_COLOR
void GPU_blend(eGPUBlend blend)
void GPU_line_width(float width)
void GPU_viewport_size_get_f(float coords[4])
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 or normal between camera
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
const EnumPropertyItem * RNA_scene_itemf(struct bContext *C, struct PointerRNA *ptr, struct PropertyRNA *prop, bool *r_free)
void UI_fontstyle_draw_simple(const struct uiFontStyle *fs, float x, float y, const char *str, const uchar col[4])
void UI_icon_draw(float x, float y, int icon_id)
@ TH_TIME_SCRUB_BACKGROUND
@ TH_TIME_MARKER_LINE_SELECTED
void UI_GetThemeColor4ubv(int colorid, unsigned char col[4])
void UI_view2d_scale_get(const struct View2D *v2d, float *r_x, float *r_y)
#define UI_MARKER_MARGIN_Y
struct View2D * UI_view2d_fromcontext(const struct bContext *C)
void UI_view2d_region_to_view_rctf(const struct View2D *v2d, const struct rctf *rect_src, struct rctf *rect_dst) ATTR_NONNULL()
float UI_view2d_region_to_view_x(const struct View2D *v2d, float x)
float UI_view2d_scale_get_x(const struct View2D *v2d)
bool ANIM_animdata_get_context(const bContext *C, bAnimContext *ac)
static int ed_marker_box_select_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static ListBase * context_get_markers(Scene *scene, ScrArea *area)
static void ed_marker_duplicate_apply(bContext *C)
void ED_markers_make_cfra_list(ListBase *markers, ListBase *lb, short only_sel)
void ED_keymap_marker(wmKeyConfig *keyconf)
static void ed_marker_move_update_header(bContext *C, wmOperator *op)
static void ed_marker_move_exit(bContext *C, wmOperator *op)
static int ed_marker_move_modal(bContext *C, wmOperator *op, const wmEvent *event)
static void marker_color_get(const TimeMarker *marker, uchar *r_text_color, uchar *r_line_color)
static void add_marker_to_cfra_elem(ListBase *lb, TimeMarker *marker, short only_sel)
static int ed_marker_rename_invoke(bContext *C, wmOperator *op, const wmEvent *event)
eMarkers_LeftRightSelect_Mode
static bool ED_operator_markers_region_active(bContext *C)
static int ed_marker_select_exec(bContext *C, wmOperator *op)
int ED_markers_post_apply_transform(ListBase *markers, Scene *scene, int mode, float value, char side)
static void MARKER_OT_move(wmOperatorType *ot)
static int ed_marker_make_links_scene_exec(bContext *C, wmOperator *op)
static void select_marker_camera_switch(bContext *C, bool camera, bool extend, ListBase *markers, int cfra)
static void MARKER_OT_select_leftright(wmOperatorType *ot)
static void draw_markers_background(rctf *rect)
static void MARKER_OT_add(wmOperatorType *ot)
static int ed_marker_delete_exec(bContext *C, wmOperator *UNUSED(op))
static void draw_marker_line(const uchar *color, int xpos, int ymin, int ymax)
static int ed_marker_select_leftright_exec(bContext *C, wmOperator *op)
void ED_markers_get_minmax(ListBase *markers, short sel, float *r_first, float *r_last)
static const EnumPropertyItem prop_markers_select_leftright_modes[]
static int ed_marker_add_exec(bContext *C, wmOperator *UNUSED(op))
static bool ed_markers_poll_selected_no_locked_markers(bContext *C)
static int ed_marker_duplicate_exec(bContext *C, wmOperator *op)
TimeMarker * ED_markers_get_first_selected(ListBase *markers)
static int ed_marker_rename_exec(bContext *C, wmOperator *op)
int ED_markers_find_nearest_marker_time(ListBase *markers, float x)
static void get_marker_region_rect(View2D *v2d, rctf *rect)
ListBase * ED_context_get_markers(const bContext *C)
static void deselect_markers(ListBase *markers)
static bool ed_markers_poll_selected_markers(bContext *C)
static bool ed_marker_move_init(bContext *C, wmOperator *op)
TimeMarker * ED_markers_find_nearest_marker(ListBase *markers, float x)
static void MARKER_OT_duplicate(wmOperatorType *ot)
static void ed_marker_move_apply(bContext *C, wmOperator *op)
struct MarkerMove MarkerMove
static void ED_markers_select_leftright(bAnimContext *ac, const eMarkers_LeftRightSelect_Mode mode, const bool extend)
static void draw_marker(const uiFontStyle *fstyle, TimeMarker *marker, int cfra, int xpos, int flag, int region_height)
void ED_operatortypes_marker(void)
static void MARKER_OT_delete(wmOperatorType *ot)
static bool region_position_is_over_marker(View2D *v2d, ListBase *markers, float region_x)
static void MARKER_OT_select_all(wmOperatorType *ot)
static void MARKER_OT_rename(wmOperatorType *ot)
static int ed_marker_move_invoke(bContext *C, wmOperator *op, const wmEvent *event)
static void MARKER_OT_make_links_scene(wmOperatorType *ot)
static void MARKER_OT_select(wmOperatorType *ot)
static void draw_marker_name(const uchar *text_color, const uiFontStyle *fstyle, TimeMarker *marker, float marker_x, float text_y)
static bool marker_is_in_frame_range(TimeMarker *marker, const int frame_range[2])
static bool ed_markers_poll_markers_exist(bContext *C)
static int ed_marker_box_select_exec(bContext *C, wmOperator *op)
static void MARKER_OT_select_box(wmOperatorType *ot)
static int ed_marker_move_exec(bContext *C, wmOperator *op)
static int ed_marker_select(bContext *C, const int mval[2], bool extend, bool camera, bool wait_to_deselect_others)
static bool ed_marker_move_use_time(MarkerMove *mm)
void ED_markers_deselect_all(ListBase *markers, int action)
ListBase * ED_animcontext_get_markers(const bAnimContext *ac)
static int ed_marker_duplicate_invoke(bContext *C, wmOperator *op, const wmEvent *event)
void debug_markers_print_list(ListBase *markers)
static int select_timeline_marker_frame(ListBase *markers, int frame, bool extend, bool wait_to_deselect_others)
static int marker_get_icon_id(TimeMarker *marker, int flag)
static void ed_marker_move_cancel(bContext *C, wmOperator *op)
static void get_marker_clip_frame_range(View2D *v2d, float xscale, int r_range[2])
static int ed_marker_select_all_exec(bContext *C, wmOperator *op)
void ED_markers_draw(const bContext *C, int flag)
__forceinline const avxb select(const avxb &m, const avxb &t, const avxb &f)
SyclQueue void void size_t num_bytes void
const vector< Marker > & markers
void(* MEM_freeN)(void *vmemh)
void *(* MEM_dupallocN)(const void *vmemh)
void *(* MEM_callocN)(size_t len, const char *str)
static void area(int d1, int d2, int e1, int e2, float weights[2])
void RNA_string_set(PointerRNA *ptr, const char *name, const char *value)
void RNA_int_set(PointerRNA *ptr, const char *name, int value)
PropertyRNA * RNA_struct_find_property(PointerRNA *ptr, const char *identifier)
void RNA_string_get(PointerRNA *ptr, const char *name, char *value)
int RNA_int_get(PointerRNA *ptr, const char *name)
bool RNA_boolean_get(PointerRNA *ptr, const char *name)
int RNA_enum_get(PointerRNA *ptr, const char *name)
PropertyRNA * RNA_def_boolean(StructOrFunctionRNA *cont_, const char *identifier, bool default_value, const char *ui_name, const char *ui_description)
PropertyRNA * RNA_def_string(StructOrFunctionRNA *cont_, const char *identifier, const char *default_value, int maxlen, const char *ui_name, const char *ui_description)
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)
void RNA_def_enum_funcs(PropertyRNA *prop, EnumPropertyItemFunc itemfunc)
PropertyRNA * RNA_def_enum(StructOrFunctionRNA *cont_, const char *identifier, const EnumPropertyItem *items, int default_value, const char *ui_name, const char *ui_description)
const EnumPropertyItem DummyRNA_NULL_items[]
struct ToolSettings * toolsettings
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
void(* cancel)(struct bContext *, struct wmOperator *)
int(* exec)(struct bContext *, struct wmOperator *) ATTR_WARN_UNUSED_RESULT
struct ReportList * reports
bool WM_event_is_modal_drag_exit(const wmEvent *event, const short init_event_type, const short init_event_val)
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_gesture_box_cancel(bContext *C, wmOperator *op)
int WM_gesture_box_invoke(bContext *C, wmOperator *op, const wmEvent *event)
int WM_gesture_box_modal(bContext *C, wmOperator *op, const wmEvent *event)
wmKeyMap * WM_keymap_ensure(wmKeyConfig *keyconf, const char *idname, int spaceid, int regionid)
void WM_operator_properties_gesture_box(wmOperatorType *ot)
void WM_operator_properties_confirm_or_exec(wmOperatorType *ot)
void WM_operator_properties_select_operation_simple(wmOperatorType *ot)
void WM_operator_properties_generic_select(wmOperatorType *ot)
void WM_operator_properties_select_all(wmOperatorType *ot)
void WM_operator_properties_border_to_rctf(struct wmOperator *op, rctf *rect)
void WM_operatortype_append(void(*opfunc)(wmOperatorType *))
int WM_operator_confirm_or_exec(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
int WM_operator_props_popup_confirm(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
int WM_generic_select_invoke(bContext *C, wmOperator *op, const wmEvent *event)
int WM_menu_invoke(bContext *C, wmOperator *op, const wmEvent *UNUSED(event))
int WM_generic_select_modal(bContext *C, wmOperator *op, const wmEvent *event)