From 88de2f25ed4fbadc1a8745403bc1bb6f9a6ecc9d Mon Sep 17 00:00:00 2001 From: Hans Goudey Date: Fri, 4 Aug 2023 22:15:25 -0400 Subject: [PATCH] Cleanup: Remove unnecessary struct keyword from editors includes --- source/blender/editors/include/BIF_glutil.hh | 36 +- source/blender/editors/include/ED_anim_api.hh | 208 ++- source/blender/editors/include/ED_armature.hh | 226 ++-- source/blender/editors/include/ED_asset.hh | 2 +- source/blender/editors/include/ED_buttons.hh | 20 +- source/blender/editors/include/ED_clip.hh | 99 +- source/blender/editors/include/ED_curve.hh | 74 +- .../editors/include/ED_curves_sculpt.hh | 2 +- .../editors/include/ED_file_indexer.hh | 44 +- .../blender/editors/include/ED_fileselect.hh | 154 +-- source/blender/editors/include/ED_geometry.hh | 4 +- .../blender/editors/include/ED_gizmo_utils.hh | 11 +- .../editors/include/ED_gpencil_legacy.hh | 337 +++-- .../editors/include/ED_grease_pencil.hh | 21 +- source/blender/editors/include/ED_image.hh | 137 +- source/blender/editors/include/ED_info.hh | 24 +- .../editors/include/ED_keyframes_draw.hh | 62 +- .../editors/include/ED_keyframes_edit.hh | 151 +-- .../editors/include/ED_keyframes_keylist.hh | 109 +- .../blender/editors/include/ED_keyframing.hh | 222 ++- source/blender/editors/include/ED_lattice.hh | 24 +- source/blender/editors/include/ED_markers.hh | 18 +- source/blender/editors/include/ED_mask.hh | 85 +- source/blender/editors/include/ED_mball.hh | 40 +- source/blender/editors/include/ED_mesh.hh | 543 ++++---- source/blender/editors/include/ED_node_c.hh | 95 +- source/blender/editors/include/ED_numinput.hh | 13 +- source/blender/editors/include/ED_object.hh | 606 ++++----- source/blender/editors/include/ED_outliner.hh | 23 +- source/blender/editors/include/ED_paint.hh | 78 +- source/blender/editors/include/ED_particle.hh | 53 +- source/blender/editors/include/ED_physics.hh | 28 +- source/blender/editors/include/ED_render.hh | 67 +- source/blender/editors/include/ED_scene.hh | 35 +- .../editors/include/ED_screen_types.hh | 20 +- source/blender/editors/include/ED_sculpt.hh | 37 +- .../editors/include/ED_select_utils.hh | 24 +- .../blender/editors/include/ED_sequencer.hh | 27 +- source/blender/editors/include/ED_sound.hh | 2 +- .../blender/editors/include/ED_space_api.hh | 62 +- .../blender/editors/include/ED_spreadsheet.hh | 2 +- source/blender/editors/include/ED_text.hh | 18 +- .../editors/include/ED_time_scrub_ui.hh | 16 +- .../blender/editors/include/ED_transform.hh | 103 +- .../ED_transform_snap_object_context.hh | 52 +- .../blender/editors/include/ED_transverts.hh | 18 +- source/blender/editors/include/ED_undo.hh | 76 +- source/blender/editors/include/ED_userpref.hh | 2 +- .../blender/editors/include/ED_util_imbuf.hh | 12 +- source/blender/editors/include/ED_uvedit.hh | 255 ++-- source/blender/editors/include/ED_view3d.hh | 641 ++++----- .../editors/include/ED_view3d_offscreen.hh | 74 +- .../blender/editors/include/UI_interface_c.hh | 1202 ++++++++--------- .../editors/include/UI_interface_icons.hh | 56 +- .../blender/editors/include/UI_resources.hh | 22 +- source/blender/editors/include/UI_view2d.hh | 221 ++- .../blender/editors/space_node/node_select.cc | 1 - 57 files changed, 2936 insertions(+), 3658 deletions(-) diff --git a/source/blender/editors/include/BIF_glutil.hh b/source/blender/editors/include/BIF_glutil.hh index d72d9e94490..10c66315a14 100644 --- a/source/blender/editors/include/BIF_glutil.hh +++ b/source/blender/editors/include/BIF_glutil.hh @@ -16,13 +16,14 @@ struct ColorManagedDisplaySettings; struct ColorManagedViewSettings; struct ImBuf; struct bContext; +struct GPUShader; -typedef struct IMMDrawPixelsTexState { - struct GPUShader *shader; +struct IMMDrawPixelsTexState { + GPUShader *shader; unsigned int pos; unsigned int texco; bool do_shader_unbind; -} IMMDrawPixelsTexState; +}; /* To be used before calling immDrawPixelsTex * Default shader is GPU_SHADER_2D_IMAGE_COLOR @@ -158,23 +159,23 @@ void immDrawPixelsTexTiled_scaling_clipping(IMMDrawPixelsTexState *state, * For better performance clipping coordinates can be specified so parts of the * image outside the view are skipped. */ -void ED_draw_imbuf(struct ImBuf *ibuf, +void ED_draw_imbuf(ImBuf *ibuf, float x, float y, bool use_filter, - const struct ColorManagedViewSettings *view_settings, - const struct ColorManagedDisplaySettings *display_settings, + const ColorManagedViewSettings *view_settings, + const ColorManagedDisplaySettings *display_settings, float zoom_x, float zoom_y); /** * Draw given image buffer on a screen using GLSL for display transform. */ -void ED_draw_imbuf_clipping(struct ImBuf *ibuf, +void ED_draw_imbuf_clipping(ImBuf *ibuf, float x, float y, bool use_filter, - const struct ColorManagedViewSettings *view_settings, - const struct ColorManagedDisplaySettings *display_settings, + const ColorManagedViewSettings *view_settings, + const ColorManagedDisplaySettings *display_settings, float clip_min_x, float clip_min_y, float clip_max_x, @@ -182,15 +183,10 @@ void ED_draw_imbuf_clipping(struct ImBuf *ibuf, float zoom_x, float zoom_y); -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); -void ED_draw_imbuf_ctx_clipping(const struct bContext *C, - struct ImBuf *ibuf, +void ED_draw_imbuf_ctx( + const bContext *C, ImBuf *ibuf, float x, float y, bool use_filter, float zoom_x, float zoom_y); +void ED_draw_imbuf_ctx_clipping(const bContext *C, + ImBuf *ibuf, float x, float y, bool use_filter, @@ -201,9 +197,9 @@ void ED_draw_imbuf_ctx_clipping(const struct bContext *C, float zoom_x, float zoom_y); -int ED_draw_imbuf_method(const struct ImBuf *ibuf); +int ED_draw_imbuf_method(const ImBuf *ibuf); /** * Don't move to `GPU_immediate_util.h` because this uses user-prefs and isn't very low level. */ -void immDrawBorderCorners(unsigned int pos, const struct rcti *border, float zoomx, float zoomy); +void immDrawBorderCorners(unsigned int pos, const rcti *border, float zoomx, float zoomy); diff --git a/source/blender/editors/include/ED_anim_api.hh b/source/blender/editors/include/ED_anim_api.hh index dc46f17d4ce..0e146baec48 100644 --- a/source/blender/editors/include/ED_anim_api.hh +++ b/source/blender/editors/include/ED_anim_api.hh @@ -21,11 +21,13 @@ struct ARegionType; struct FModifier; struct Main; struct NlaStrip; +struct NlaTrack; struct PanelType; struct ReportList; struct ScrArea; struct SpaceLink; struct View2D; +struct ViewLayer; struct rctf; struct bContext; struct wmKeyConfig; @@ -56,7 +58,7 @@ struct PropertyRNA; * This struct defines a structure used for animation-specific * 'context' information. */ -typedef struct bAnimContext { +struct bAnimContext { /** data to be filtered for use in animation editor */ void *data; /** type of data eAnimCont_Types */ @@ -70,35 +72,34 @@ typedef struct bAnimContext { short regiontype; /** editor host */ - struct ScrArea *area; + ScrArea *area; /** editor data */ - struct SpaceLink *sl; + SpaceLink *sl; /** region within editor */ - struct ARegion *region; + ARegion *region; /** dopesheet data for editor (or which is being used) */ - struct bDopeSheet *ads; + bDopeSheet *ads; /** Current Main */ - struct Main *bmain; + Main *bmain; /** active scene */ - struct Scene *scene; + Scene *scene; /** active scene layer */ - struct ViewLayer *view_layer; + ViewLayer *view_layer; /** active dependency graph */ - struct Depsgraph *depsgraph; + Depsgraph *depsgraph; /** active object */ - struct Object *obact; + Object *obact; /** active set of markers */ ListBase *markers; /** pointer to current reports list */ - struct ReportList *reports; - -} bAnimContext; + ReportList *reports; +}; /* Main Data container types */ -typedef enum eAnimCont_Types { +enum eAnimCont_Types { ANIMCONT_NONE = 0, /* invalid or no data */ ANIMCONT_ACTION = 1, /* action (#bAction) */ ANIMCONT_SHAPEKEY = 2, /* shape-key (#Key) */ @@ -110,7 +111,7 @@ typedef enum eAnimCont_Types { ANIMCONT_CHANNEL = 8, /* animation channel (#bAnimListElem) */ ANIMCONT_MASK = 9, /* mask dope-sheet */ ANIMCONT_TIMELINE = 10, /* "timeline" editor (#bDopeSheet) */ -} eAnimCont_Types; +}; /** \} */ @@ -122,8 +123,8 @@ typedef enum eAnimCont_Types { * This struct defines a structure used for quick and uniform access for * channels of animation data. */ -typedef struct bAnimListElem { - struct bAnimListElem *next, *prev; +struct bAnimListElem { + bAnimListElem *next, *prev; /** source data this elem represents */ void *data; @@ -156,9 +157,9 @@ typedef struct bAnimListElem { * it's impossible to go the other way (i.e. one action may be used in multiple places). */ /** ID block that channel is attached to */ - struct ID *id; + ID *id; /** source of the animation data attached to ID block (for convenience) */ - struct AnimData *adt; + AnimData *adt; /** * For list element which corresponds to a f-curve, this is an ID which @@ -171,13 +172,13 @@ typedef struct bAnimListElem { * NOTE: this is different from id above. The id above will be set to * an object if the f-curve is coming from action associated with that object. */ - struct ID *fcurve_owner_id; + ID *fcurve_owner_id; /** * for per-element F-Curves * (e.g. NLA Control Curves), the element that this represents (e.g. NlaStrip) */ void *owner; -} bAnimListElem; +}; /** * Some types for easier type-testing @@ -185,7 +186,7 @@ typedef struct bAnimListElem { * \note need to keep the order of these synchronized with the channels define code * which is used for drawing and handling channel lists for. */ -typedef enum eAnim_ChannelType { +enum eAnim_ChannelType { ANIMTYPE_NONE = 0, ANIMTYPE_ANIMDATA, ANIMTYPE_SPECIALDATA__UNUSED, @@ -243,10 +244,10 @@ typedef enum eAnim_ChannelType { /* always as last item, the total number of channel types... */ ANIMTYPE_NUM_TYPES, -} eAnim_ChannelType; +}; /* types of keyframe data in bAnimListElem */ -typedef enum eAnim_KeyType { +enum eAnim_KeyType { ALE_NONE = 0, /* no keyframe data */ ALE_FCURVE, /* F-Curve */ ALE_GPFRAME, /* Grease Pencil Frames (Legacy) */ @@ -259,18 +260,18 @@ typedef enum eAnim_KeyType { ALE_OB, /* Object summary */ ALE_ACT, /* Action summary */ ALE_GROUP, /* Action Group summary */ -} eAnim_KeyType; +}; /** * Flags for specifying the types of updates (i.e. recalculation/refreshing) that * needs to be performed to the data contained in a channel following editing. * For use with ANIM_animdata_update() */ -typedef enum eAnim_Update_Flags { +enum eAnim_Update_Flags { ANIM_UPDATE_DEPS = (1 << 0), /* referenced data and dependencies get refreshed */ ANIM_UPDATE_ORDER = (1 << 1), /* keyframes need to be sorted */ ANIM_UPDATE_HANDLES = (1 << 2), /* recalculate handles */ -} eAnim_Update_Flags; +}; /* used for most tools which change keyframes (flushed by ANIM_animdata_update) */ #define ANIM_UPDATE_DEFAULT (ANIM_UPDATE_DEPS | ANIM_UPDATE_ORDER | ANIM_UPDATE_HANDLES) @@ -479,7 +480,7 @@ size_t ANIM_animdata_filter(bAnimContext *ac, * - Clears data and sets the information from Blender Context which is useful * \return whether the operation was successful. */ -bool ANIM_animdata_get_context(const struct bContext *C, bAnimContext *ac); +bool ANIM_animdata_get_context(const bContext *C, bAnimContext *ac); /** * Obtain current anim-data context, @@ -513,17 +514,17 @@ bool ANIM_animdata_can_have_greasepencil(const eAnimCont_Types type); * \{ */ /** Role or level of anim-channel in the hierarchy. */ -typedef enum eAnimChannel_Role { +enum eAnimChannel_Role { /** datablock expander - a "composite" channel type */ ACHANNEL_ROLE_EXPANDER = -1, /** special purposes - not generally for hierarchy processing */ /* ACHANNEL_ROLE_SPECIAL = 0, */ /* UNUSED */ /** data channel - a channel representing one of the actual building blocks of channels */ ACHANNEL_ROLE_CHANNEL = 1, -} eAnimChannel_Role; +}; /* flag-setting behavior */ -typedef enum eAnimChannels_SetFlag { +enum eAnimChannels_SetFlag { /** turn off */ ACHANNEL_SETFLAG_CLEAR = 0, /** turn on */ @@ -534,10 +535,10 @@ typedef enum eAnimChannels_SetFlag { ACHANNEL_SETFLAG_TOGGLE = 3, /** turn off, keep active flag **/ ACHANNEL_SETFLAG_EXTEND_RANGE = 4, -} eAnimChannels_SetFlag; +}; /* types of settings for AnimChannels */ -typedef enum eAnimChannel_Settings { +enum eAnimChannel_Settings { ACHANNEL_SETTING_SELECT = 0, /** WARNING: for drawing UI's, need to check if this is off (maybe inverse this later). */ ACHANNEL_SETTING_PROTECT = 1, @@ -552,10 +553,10 @@ typedef enum eAnimChannel_Settings { ACHANNEL_SETTING_MOD_OFF = 7, /** channel is pinned and always visible */ ACHANNEL_SETTING_ALWAYS_VISIBLE = 8, -} eAnimChannel_Settings; +}; /** Drawing, mouse handling, and flag setting behavior. */ -typedef struct bAnimChannelType { +struct bAnimChannelType { /* -- Type data -- */ /* name of the channel type, for debugging */ const char *channel_type_name; @@ -575,7 +576,7 @@ typedef struct bAnimChannelType { /** Get name (for channel lists). */ void (*name)(bAnimListElem *ale, char *name); /** Get RNA property+pointer for editing the name. */ - bool (*name_prop)(bAnimListElem *ale, struct PointerRNA *r_ptr, struct PropertyRNA **r_prop); + bool (*name_prop)(bAnimListElem *ale, PointerRNA *r_ptr, PropertyRNA **r_prop); /** Get icon (for channel lists). */ int (*icon)(bAnimListElem *ale); @@ -590,21 +591,21 @@ typedef struct bAnimChannelType { * - assume that setting has been checked to be valid for current context. */ void *(*setting_ptr)(bAnimListElem *ale, eAnimChannel_Settings setting, short *r_type); -} bAnimChannelType; +}; /** \} */ /* -------------------------------------------------------------------- */ /** \name Channel dimensions API * \{ */ -float ANIM_UI_get_keyframe_scale_factor(void); -float ANIM_UI_get_channel_height(void); -float ANIM_UI_get_channel_skip(void); +float ANIM_UI_get_keyframe_scale_factor(); +float ANIM_UI_get_channel_height(); +float ANIM_UI_get_channel_skip(); float ANIM_UI_get_first_channel_top(View2D *v2d); -float ANIM_UI_get_channel_step(void); +float ANIM_UI_get_channel_step(); float ANIM_UI_get_channels_total_height(View2D *v2d, int item_count); -float ANIM_UI_get_channel_name_width(void); -float ANIM_UI_get_channel_button_width(void); +float ANIM_UI_get_channel_name_width(); +float ANIM_UI_get_channel_button_width(); /** \} */ @@ -635,10 +636,10 @@ void ANIM_channel_draw( /** * Draw UI widgets the given channel. */ -void ANIM_channel_draw_widgets(const struct bContext *C, +void ANIM_channel_draw_widgets(const bContext *C, bAnimContext *ac, bAnimListElem *ale, - struct uiBlock *block, + uiBlock *block, rctf *rect, size_t channel_index); @@ -680,7 +681,7 @@ void ANIM_flush_setting_anim_channels(bAnimContext *ac, eAnimChannel_Settings setting, eAnimChannels_SetFlag mode); -void ANIM_frame_channel_y_extents(struct bContext *C, bAnimContext *ac); +void ANIM_frame_channel_y_extents(bContext *C, bAnimContext *ac); /** * Set selection state of all animation channels in the context. @@ -711,7 +712,7 @@ bool ANIM_is_active_channel(bAnimListElem *ale); * Delete the F-Curve from the given AnimData block (if possible), * as appropriate according to animation context. */ -void ANIM_fcurve_delete_from_animdata(bAnimContext *ac, struct AnimData *adt, struct FCurve *fcu); +void ANIM_fcurve_delete_from_animdata(bAnimContext *ac, AnimData *adt, FCurve *fcu); /** * Unlink the action from animdata if it's empty. @@ -719,7 +720,7 @@ void ANIM_fcurve_delete_from_animdata(bAnimContext *ac, struct AnimData *adt, st * If the action has no F-Curves, unlink it from AnimData if it did not * come from a NLA Strip being tweaked. */ -bool ANIM_remove_empty_action_from_animdata(struct AnimData *adt); +bool ANIM_remove_empty_action_from_animdata(AnimData *adt); /* ************************************************ */ /* DRAWING API */ @@ -746,7 +747,7 @@ typedef enum eAnimEditDraw_CurrentFrame { /** * General call for drawing current frame indicator in animation editor. */ -void ANIM_draw_cfra(const struct bContext *C, struct View2D *v2d, short flag); +void ANIM_draw_cfra(const bContext *C, View2D *v2d, short flag); /** \} */ @@ -759,7 +760,7 @@ void ANIM_draw_cfra(const struct bContext *C, struct View2D *v2d, short flag); /** * Draw preview range 'curtains' for highlighting where the animation data is. */ -void ANIM_draw_previewrange(const struct bContext *C, struct View2D *v2d, int end_frame_width); +void ANIM_draw_previewrange(const bContext *C, View2D *v2d, int end_frame_width); /** \} */ @@ -774,14 +775,14 @@ void ANIM_draw_previewrange(const struct bContext *C, struct View2D *v2d, int en * * TODO: Should we still show these when preview range is enabled? */ -void ANIM_draw_framerange(struct Scene *scene, struct View2D *v2d); +void ANIM_draw_framerange(Scene *scene, View2D *v2d); /** * Draw manually set intended playback frame range guides for the action in the background. * Allows specifying a subset of the Y range of the view. */ void ANIM_draw_action_framerange( - struct AnimData *adt, struct bAction *action, struct View2D *v2d, float ymin, float ymax); + AnimData *adt, bAction *action, View2D *v2d, float ymin, float ymax); /* ************************************************* */ /* F-MODIFIER TOOLS */ @@ -792,30 +793,30 @@ void ANIM_draw_action_framerange( /** \name UI Panel Drawing * \{ */ -bool ANIM_nla_context_track_ptr(const struct bContext *C, struct PointerRNA *r_ptr); -bool ANIM_nla_context_strip_ptr(const struct bContext *C, struct PointerRNA *r_ptr); +bool ANIM_nla_context_track_ptr(const bContext *C, PointerRNA *r_ptr); +bool ANIM_nla_context_strip_ptr(const bContext *C, PointerRNA *r_ptr); -struct NlaTrack *ANIM_nla_context_track(const struct bContext *C); -struct NlaStrip *ANIM_nla_context_strip(const struct bContext *C); -struct FCurve *ANIM_graph_context_fcurve(const struct bContext *C); +NlaTrack *ANIM_nla_context_track(const bContext *C); +NlaStrip *ANIM_nla_context_strip(const bContext *C); +FCurve *ANIM_graph_context_fcurve(const bContext *C); /** Needed for abstraction between the graph editor and the NLA editor. */ -typedef bool (*PanelTypePollFn)(const struct bContext *C, struct PanelType *pt); +using PanelTypePollFn = bool (*)(const bContext *C, PanelType *pt); /** Avoid including `UI_interface.hh` here. */ -typedef void (*uiListPanelIDFromDataFunc)(void *data_link, char *r_idname); +using uiListPanelIDFromDataFunc = void (*)(void *data_link, char *r_idname); /** * Checks if the panels match the active strip / curve, rebuilds them if they don't. */ -void ANIM_fmodifier_panels(const struct bContext *C, - struct ID *owner_id, - struct ListBase *fmodifiers, +void ANIM_fmodifier_panels(const bContext *C, + ID *owner_id, + ListBase *fmodifiers, uiListPanelIDFromDataFunc panel_id_fn); -void ANIM_modifier_panels_register_graph_and_NLA(struct ARegionType *region_type, +void ANIM_modifier_panels_register_graph_and_NLA(ARegionType *region_type, const char *modifier_panel_prefix, PanelTypePollFn poll_function); -void ANIM_modifier_panels_register_graph_only(struct ARegionType *region_type, +void ANIM_modifier_panels_register_graph_only(ARegionType *region_type, const char *modifier_panel_prefix, PanelTypePollFn poll_function); @@ -828,7 +829,7 @@ void ANIM_modifier_panels_register_graph_only(struct ARegionType *region_type, /** * Free the copy/paste buffer. */ -void ANIM_fmodifiers_copybuf_free(void); +void ANIM_fmodifiers_copybuf_free(); /** * Copy the given F-Modifiers to the buffer, returning whether anything was copied or not @@ -841,7 +842,7 @@ bool ANIM_fmodifiers_copy_to_buf(ListBase *modifiers, bool active); * 'Paste' the F-Modifier(s) from the buffer to the specified list * \param replace: Free all the existing modifiers to leave only the pasted ones. */ -bool ANIM_fmodifiers_paste_from_buf(ListBase *modifiers, bool replace, struct FCurve *curve); +bool ANIM_fmodifiers_paste_from_buf(ListBase *modifiers, bool replace, FCurve *curve); /* ************************************************* */ /* ASSORTED TOOLS */ @@ -864,7 +865,7 @@ bool ANIM_fmodifiers_paste_from_buf(ListBase *modifiers, bool replace, struct FC * \warning name buffer we're writing to cannot exceed 256 chars * (check anim_channels_defines.cc for details). */ -int getname_anim_fcurve(char *name, struct ID *id, struct FCurve *fcu); +int getname_anim_fcurve(char *name, ID *id, FCurve *fcu); /** * Automatically determine a color for the nth F-Curve. @@ -884,7 +885,7 @@ void getcolor_fcurve_rainbow(int cur, int tot, float out[3]); * Get color to use for NLA Action channel's background. * \note color returned includes fine-tuned alpha! */ -void nla_action_get_color(struct AnimData *adt, struct bAction *act, float color[4]); +void nla_action_get_color(AnimData *adt, bAction *act, float color[4]); /** \} */ @@ -899,17 +900,14 @@ void nla_action_get_color(struct AnimData *adt, struct bAction *act, float color * * TODO: do not supply return this if the animdata tells us that there is no mapping to perform. */ -struct AnimData *ANIM_nla_mapping_get(bAnimContext *ac, bAnimListElem *ale); +AnimData *ANIM_nla_mapping_get(bAnimContext *ac, bAnimListElem *ale); /** * Apply/Unapply NLA mapping to all keyframes in the nominated F-Curve * \param restore: Whether to map points back to non-mapped time. * \param only_keys: Whether to only adjust the location of the center point of beztriples. */ -void ANIM_nla_mapping_apply_fcurve(struct AnimData *adt, - struct FCurve *fcu, - bool restore, - bool only_keys); +void ANIM_nla_mapping_apply_fcurve(AnimData *adt, FCurve *fcu, bool restore, bool only_keys); /* ..... */ @@ -928,7 +926,7 @@ void ED_nla_postop_refresh(bAnimContext *ac); /* `anim_draw.cc` */ /** Flags for conversion mapping. */ -typedef enum eAnimUnitConv_Flags { +enum eAnimUnitConv_Flags { /** Restore to original internal values. */ ANIM_UNITCONV_RESTORE = (1 << 0), /** Ignore handles (i.e. only touch main keyframes). */ @@ -945,7 +943,7 @@ typedef enum eAnimUnitConv_Flags { * prevents curves from jumping all over the place when tweaking them. */ ANIM_UNITCONV_NORMALIZE_FREEZE = (1 << 6), -} eAnimUnitConv_Flags; +}; /** * Get flags used for normalization in ANIM_unit_mapping_get_factor. @@ -954,8 +952,7 @@ short ANIM_get_normalization_flags(bAnimContext *ac); /** * Get unit conversion factor for given ID + F-Curve. */ -float ANIM_unit_mapping_get_factor( - struct Scene *scene, struct ID *id, struct FCurve *fcu, short flag, float *r_offset); +float ANIM_unit_mapping_get_factor(Scene *scene, ID *id, FCurve *fcu, short flag, float *r_offset); /** \} */ @@ -1020,20 +1017,20 @@ float ANIM_unit_mapping_get_factor( /** * Tags the given ID block for refreshes (if applicable) due to Animation Editor editing. */ -void ANIM_id_update(struct Main *bmain, struct ID *id); +void ANIM_id_update(Main *bmain, ID *id); /** * Tags the given anim list element for refreshes (if applicable) due to Animation Editor editing. */ -void ANIM_list_elem_update(struct Main *bmain, struct Scene *scene, bAnimListElem *ale); +void ANIM_list_elem_update(Main *bmain, Scene *scene, bAnimListElem *ale); /* data -> channels syncing */ /** * Main call to be exported to animation editors. */ -void ANIM_sync_animchannels_to_data(const struct bContext *C); +void ANIM_sync_animchannels_to_data(const bContext *C); -void ANIM_center_frame(struct bContext *C, int smooth_viewtx); +void ANIM_center_frame(bContext *C, int smooth_viewtx); /** \} */ @@ -1042,19 +1039,19 @@ void ANIM_center_frame(struct bContext *C, int smooth_viewtx); * \{ */ /* generic animation channels */ -void ED_operatortypes_animchannels(void); -void ED_keymap_animchannels(struct wmKeyConfig *keyconf); +void ED_operatortypes_animchannels(); +void ED_keymap_animchannels(wmKeyConfig *keyconf); /* generic time editing */ -void ED_operatortypes_anim(void); -void ED_keymap_anim(struct wmKeyConfig *keyconf); +void ED_operatortypes_anim(); +void ED_keymap_anim(wmKeyConfig *keyconf); /* space_graph */ -void ED_operatormacros_graph(void); +void ED_operatormacros_graph(); /* space_action */ -void ED_operatormacros_action(void); +void ED_operatormacros_action(); /* space_nla */ -void ED_operatormacros_nla(void); +void ED_operatormacros_nla(); /** \} */ @@ -1068,25 +1065,20 @@ void ED_operatormacros_nla(void); * Action Editor - Action Management. * Helper function to find the active AnimData block from the Action Editor context. */ -struct AnimData *ED_actedit_animdata_from_context(const struct bContext *C, - struct ID **r_adt_id_owner); -void ED_animedit_unlink_action(struct bContext *C, - struct ID *id, - struct AnimData *adt, - struct bAction *act, - struct ReportList *reports, - bool force_delete); +AnimData *ED_actedit_animdata_from_context(const bContext *C, ID **r_adt_id_owner); +void ED_animedit_unlink_action( + bContext *C, ID *id, AnimData *adt, bAction *act, ReportList *reports, bool force_delete); /** * Set up UI configuration for Drivers Editor * (drivers editor window) and RNA (mode switching). * \note Currently called from window-manager. */ -void ED_drivers_editor_init(struct bContext *C, struct ScrArea *area); +void ED_drivers_editor_init(bContext *C, ScrArea *area); /* ************************************************ */ -typedef enum eAnimvizCalcRange { +enum eAnimvizCalcRange { /** Update motion paths at the current frame only. */ ANIMVIZ_CALC_RANGE_CURRENT_FRAME, @@ -1095,16 +1087,16 @@ typedef enum eAnimvizCalcRange { /** Update an entire range of the motion paths. */ ANIMVIZ_CALC_RANGE_FULL, -} eAnimvizCalcRange; +}; -struct Depsgraph *animviz_depsgraph_build(struct Main *bmain, - struct Scene *scene, - struct ViewLayer *view_layer, - struct ListBase *targets); +Depsgraph *animviz_depsgraph_build(Main *bmain, + Scene *scene, + ViewLayer *view_layer, + ListBase *targets); -void animviz_calc_motionpaths(struct Depsgraph *depsgraph, - struct Main *bmain, - struct Scene *scene, +void animviz_calc_motionpaths(Depsgraph *depsgraph, + Main *bmain, + Scene *scene, ListBase *targets, eAnimvizCalcRange range, bool restore); @@ -1116,12 +1108,12 @@ void animviz_calc_motionpaths(struct Depsgraph *depsgraph, * \param ob: Object to compute range for (must be provided) * \param scene: Used when scene range is chosen. */ -void animviz_motionpath_compute_range(struct Object *ob, struct Scene *scene); +void animviz_motionpath_compute_range(Object *ob, Scene *scene); /** * Get list of motion paths to be baked for the given object. * - assumes the given list is ready to be used. */ -void animviz_get_object_motionpaths(struct Object *ob, ListBase *targets); +void animviz_get_object_motionpaths(Object *ob, ListBase *targets); /** \} */ diff --git a/source/blender/editors/include/ED_armature.hh b/source/blender/editors/include/ED_armature.hh index c7ab6ea7969..f5710f7657d 100644 --- a/source/blender/editors/include/ED_armature.hh +++ b/source/blender/editors/include/ED_armature.hh @@ -64,17 +64,15 @@ struct wmOperator; * * \note should be used everywhere, now it allocates bones still locally in functions. */ -struct EditBone *ED_armature_ebone_add(struct bArmature *arm, const char *name); -struct EditBone *ED_armature_ebone_add_primitive(struct Object *obedit_arm, - float length, - bool view_aligned); +EditBone *ED_armature_ebone_add(bArmature *arm, const char *name); +EditBone *ED_armature_ebone_add_primitive(Object *obedit_arm, float length, bool view_aligned); /* `armature_edit.cc` */ /** * Adjust bone roll to align Z axis with vector `align_axis` is in local space and is normalized. */ -float ED_armature_ebone_roll_to_vector(const struct EditBone *bone, +float ED_armature_ebone_roll_to_vector(const EditBone *bone, const float align_axis[3], bool axis_only); /** @@ -83,12 +81,12 @@ float ED_armature_ebone_roll_to_vector(const struct EditBone *bone, * \note Exported for use in `editors/object/`. */ void ED_armature_origin_set( - struct Main *bmain, struct Object *ob, const float cursor[3], int centermode, int around); + Main *bmain, Object *ob, const float cursor[3], int centermode, int around); /** * See #BKE_armature_transform for object-mode transform. */ -void ED_armature_edit_transform(struct bArmature *arm, const float mat[4][4], bool do_props); -void ED_armature_transform(struct bArmature *arm, const float mat[4][4], bool do_props); +void ED_armature_edit_transform(bArmature *arm, const float mat[4][4], bool do_props); +void ED_armature_transform(bArmature *arm, const float mat[4][4], bool do_props); /* `armature_naming.cc` */ @@ -96,15 +94,15 @@ void ED_armature_transform(struct bArmature *arm, const float mat[4][4], bool do * Ensure the bone name is unique. * If bone is already in list, pass it as argument to ignore it. */ -void ED_armature_ebone_unique_name(struct ListBase *ebones, char *name, struct EditBone *bone); +void ED_armature_ebone_unique_name(ListBase *ebones, char *name, EditBone *bone); /** * Bone Rename (called by UI for renaming a bone). * Seems messy, but that's what you get with not using pointers but channel names :). * \warning make sure the original bone was not renamed yet! */ -void ED_armature_bone_rename(struct Main *bmain, - struct bArmature *arm, +void ED_armature_bone_rename(Main *bmain, + bArmature *arm, const char *oldnamep, const char *newnamep); /** @@ -117,64 +115,59 @@ void ED_armature_bone_rename(struct Main *bmain, * \param bones_names: List of bone conflict elements (#LinkData pointing to names). * \param do_strip_numbers: if set, try to get rid of dot-numbers at end of bone names. */ -void ED_armature_bones_flip_names(struct Main *bmain, - struct bArmature *arm, - struct ListBase *bones_names, +void ED_armature_bones_flip_names(Main *bmain, + bArmature *arm, + ListBase *bones_names, bool do_strip_numbers); /* `armature_ops.cc` */ void ED_operatortypes_armature(void); void ED_operatormacros_armature(void); -void ED_keymap_armature(struct wmKeyConfig *keyconf); +void ED_keymap_armature(wmKeyConfig *keyconf); /* `armature_relations.cc` */ /** * Join armature exec is exported for use in object->join objects operator. */ -int ED_armature_join_objects_exec(struct bContext *C, struct wmOperator *op); +int ED_armature_join_objects_exec(bContext *C, wmOperator *op); /* `armature_select.cc` */ -struct Base *ED_armature_base_and_ebone_from_select_buffer(struct Base **bases, - uint bases_len, - unsigned int select_id, - struct EditBone **r_ebone); -struct Object *ED_armature_object_and_ebone_from_select_buffer(struct Object **objects, - uint objects_len, - unsigned int select_id, - struct EditBone **r_ebone); -struct Base *ED_armature_base_and_pchan_from_select_buffer(struct Base **bases, - uint bases_len, - unsigned int select_id, - struct bPoseChannel **r_pchan); +Base *ED_armature_base_and_ebone_from_select_buffer(Base **bases, + uint bases_len, + unsigned int select_id, + EditBone **r_ebone); +Object *ED_armature_object_and_ebone_from_select_buffer(Object **objects, + uint objects_len, + unsigned int select_id, + EditBone **r_ebone); +Base *ED_armature_base_and_pchan_from_select_buffer(Base **bases, + uint bases_len, + unsigned int select_id, + bPoseChannel **r_pchan); /** * For callers that don't need the pose channel. */ -struct Base *ED_armature_base_and_bone_from_select_buffer(struct Base **bases, - uint bases_len, - unsigned int select_id, - struct Bone **r_bone); -bool ED_armature_edit_deselect_all(struct Object *obedit); -bool ED_armature_edit_deselect_all_visible(struct Object *obedit); -bool ED_armature_edit_deselect_all_multi_ex(struct Base **bases, uint bases_len); -bool ED_armature_edit_deselect_all_visible_multi_ex(struct Base **bases, uint bases_len); -bool ED_armature_edit_deselect_all_visible_multi(struct bContext *C); +Base *ED_armature_base_and_bone_from_select_buffer(Base **bases, + uint bases_len, + unsigned int select_id, + Bone **r_bone); +bool ED_armature_edit_deselect_all(Object *obedit); +bool ED_armature_edit_deselect_all_visible(Object *obedit); +bool ED_armature_edit_deselect_all_multi_ex(Base **bases, uint bases_len); +bool ED_armature_edit_deselect_all_visible_multi_ex(Base **bases, uint bases_len); +bool ED_armature_edit_deselect_all_visible_multi(bContext *C); /** * \return True when pick finds an element or the selection changed. */ -bool ED_armature_edit_select_pick_bone(struct bContext *C, - struct Base *basact, - struct EditBone *ebone, - int selmask, - const struct SelectPick_Params *params); +bool ED_armature_edit_select_pick_bone( + bContext *C, Base *basact, EditBone *ebone, int selmask, const SelectPick_Params *params); /** * Bone selection picking for armature edit-mode in the view3d. */ -bool ED_armature_edit_select_pick(struct bContext *C, - const int mval[2], - const struct SelectPick_Params *params); +bool ED_armature_edit_select_pick(bContext *C, const int mval[2], const SelectPick_Params *params); /** * Perform a selection operation on elements which have been 'touched', * use for lasso & border select but can be used elsewhere too. @@ -187,46 +180,43 @@ bool ED_armature_edit_select_pick(struct bContext *C, * * \note Visibility checks must be done by the caller. */ -bool ED_armature_edit_select_op_from_tagged(struct bArmature *arm, int sel_op); +bool ED_armature_edit_select_op_from_tagged(bArmature *arm, int sel_op); /* `armature_skinning.cc` */ #define ARM_GROUPS_NAME 1 #define ARM_GROUPS_ENVELOPE 2 #define ARM_GROUPS_AUTO 3 -void ED_object_vgroup_calc_from_armature(struct ReportList *reports, - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *ob, - struct Object *par, +void ED_object_vgroup_calc_from_armature(ReportList *reports, + Depsgraph *depsgraph, + Scene *scene, + Object *ob, + Object *par, int mode, bool mirror); /* editarmature_undo.cc */ /** Export for ED_undo_sys. */ -void ED_armature_undosys_type(struct UndoType *ut); +void ED_armature_undosys_type(UndoType *ut); /* `armature_utils.cc` */ /** Sync selection to parent for connected children. */ -void ED_armature_edit_sync_selection(struct ListBase *edbo); -void ED_armature_edit_validate_active(struct bArmature *arm); +void ED_armature_edit_sync_selection(ListBase *edbo); +void ED_armature_edit_validate_active(bArmature *arm); /** * Update the layers_used variable after bones are moved between layer * \note Used to be done in drawing code in 2.7, but that won't work with * Copy-on-Write, as drawing uses evaluated copies. */ -void ED_armature_edit_refresh_layer_used(struct bArmature *arm); +void ED_armature_edit_refresh_layer_used(bArmature *arm); /** * \param clear_connected: When false caller is responsible for keeping the flag in a valid state. */ -void ED_armature_ebone_remove_ex(struct bArmature *arm, - struct EditBone *exBone, - bool clear_connected); -void ED_armature_ebone_remove(struct bArmature *arm, struct EditBone *exBone); -bool ED_armature_ebone_is_child_recursive(struct EditBone *ebone_parent, - struct EditBone *ebone_child); +void ED_armature_ebone_remove_ex(bArmature *arm, EditBone *exBone, bool clear_connected); +void ED_armature_ebone_remove(bArmature *arm, EditBone *exBone); +bool ED_armature_ebone_is_child_recursive(EditBone *ebone_parent, EditBone *ebone_child); /** * Finds the first parent shared by \a ebone_child * @@ -234,99 +224,92 @@ bool ED_armature_ebone_is_child_recursive(struct EditBone *ebone_parent, * \param ebone_child_tot: Size of the ebone_child array * \return The shared parent or NULL. */ -struct EditBone *ED_armature_ebone_find_shared_parent(struct EditBone *ebone_child[], - unsigned int ebone_child_tot); -void ED_armature_ebone_to_mat3(struct EditBone *ebone, float r_mat[3][3]); -void ED_armature_ebone_to_mat4(struct EditBone *ebone, float r_mat[4][4]); -void ED_armature_ebone_from_mat3(struct EditBone *ebone, const float mat[3][3]); -void ED_armature_ebone_from_mat4(struct EditBone *ebone, const float mat[4][4]); +EditBone *ED_armature_ebone_find_shared_parent(EditBone *ebone_child[], + unsigned int ebone_child_tot); +void ED_armature_ebone_to_mat3(EditBone *ebone, float r_mat[3][3]); +void ED_armature_ebone_to_mat4(EditBone *ebone, float r_mat[4][4]); +void ED_armature_ebone_from_mat3(EditBone *ebone, const float mat[3][3]); +void ED_armature_ebone_from_mat4(EditBone *ebone, const float mat[4][4]); /** * Return a pointer to the bone of the given name */ -struct EditBone *ED_armature_ebone_find_name(const struct ListBase *edbo, const char *name); +EditBone *ED_armature_ebone_find_name(const ListBase *edbo, const char *name); /** * \see #BKE_pose_channel_get_mirrored (pose-mode, matching function) */ -struct EditBone *ED_armature_ebone_get_mirrored(const struct ListBase *edbo, struct EditBone *ebo); -void ED_armature_ebone_transform_mirror_update(struct bArmature *arm, - struct EditBone *ebo, - bool check_select); +EditBone *ED_armature_ebone_get_mirrored(const ListBase *edbo, EditBone *ebo); +void ED_armature_ebone_transform_mirror_update(bArmature *arm, EditBone *ebo, bool check_select); /** * If edit-bone (partial) selected, copy data. * context; edit-mode armature, with mirror editing enabled. */ -void ED_armature_edit_transform_mirror_update(struct Object *obedit); +void ED_armature_edit_transform_mirror_update(Object *obedit); /** Put edit-mode back in Object. */ -void ED_armature_from_edit(struct Main *bmain, struct bArmature *arm); +void ED_armature_from_edit(Main *bmain, bArmature *arm); /** Put armature in edit-mode. */ -void ED_armature_to_edit(struct bArmature *arm); -void ED_armature_edit_free(struct bArmature *arm); -void ED_armature_ebone_listbase_temp_clear(struct ListBase *lb); +void ED_armature_to_edit(bArmature *arm); +void ED_armature_edit_free(bArmature *arm); +void ED_armature_ebone_listbase_temp_clear(ListBase *lb); /** * Free's bones and their properties. */ -void ED_armature_ebone_listbase_free(struct ListBase *lb, bool do_id_user); -void ED_armature_ebone_listbase_copy(struct ListBase *lb_dst, - struct ListBase *lb_src, - bool do_id_user); +void ED_armature_ebone_listbase_free(ListBase *lb, bool do_id_user); +void ED_armature_ebone_listbase_copy(ListBase *lb_dst, ListBase *lb_src, bool do_id_user); -int ED_armature_ebone_selectflag_get(const struct EditBone *ebone); -void ED_armature_ebone_selectflag_set(struct EditBone *ebone, int flag); -void ED_armature_ebone_select_set(struct EditBone *ebone, bool select); -void ED_armature_ebone_selectflag_enable(struct EditBone *ebone, int flag); -void ED_armature_ebone_selectflag_disable(struct EditBone *ebone, int flag); +int ED_armature_ebone_selectflag_get(const EditBone *ebone); +void ED_armature_ebone_selectflag_set(EditBone *ebone, int flag); +void ED_armature_ebone_select_set(EditBone *ebone, bool select); +void ED_armature_ebone_selectflag_enable(EditBone *ebone, int flag); +void ED_armature_ebone_selectflag_disable(EditBone *ebone, int flag); /* `pose_edit.cc` */ -struct Object *ED_pose_object_from_context(struct bContext *C); -bool ED_object_posemode_exit_ex(struct Main *bmain, struct Object *ob); -bool ED_object_posemode_exit(struct bContext *C, struct Object *ob); +Object *ED_pose_object_from_context(bContext *C); +bool ED_object_posemode_exit_ex(Main *bmain, Object *ob); +bool ED_object_posemode_exit(bContext *C, Object *ob); /** This function is used to process the necessary updates for. */ -bool ED_object_posemode_enter_ex(struct Main *bmain, struct Object *ob); -bool ED_object_posemode_enter(struct bContext *C, struct Object *ob); +bool ED_object_posemode_enter_ex(Main *bmain, Object *ob); +bool ED_object_posemode_enter(bContext *C, Object *ob); /** Corresponds to #eAnimvizCalcRange. */ -typedef enum ePosePathCalcRange { +enum ePosePathCalcRange { POSE_PATH_CALC_RANGE_CURRENT_FRAME, POSE_PATH_CALC_RANGE_CHANGED, POSE_PATH_CALC_RANGE_FULL, -} ePosePathCalcRange; +}; /** * For the object with pose/action: update paths for those that have got them * This should selectively update paths that exist... * * To be called from various tools that do incremental updates. */ -void ED_pose_recalculate_paths(struct bContext *C, - struct Scene *scene, - struct Object *ob, - ePosePathCalcRange range); +void ED_pose_recalculate_paths(bContext *C, Scene *scene, Object *ob, ePosePathCalcRange range); /* `pose_select.cc` */ /** * \return True when pick finds an element or the selection changed. */ -bool ED_armature_pose_select_pick_bone(const struct Scene *scene, - struct ViewLayer *view_layer, - struct View3D *v3d, - struct Object *ob, - struct Bone *bone, - const struct SelectPick_Params *params); +bool ED_armature_pose_select_pick_bone(const Scene *scene, + ViewLayer *view_layer, + View3D *v3d, + Object *ob, + Bone *bone, + const SelectPick_Params *params); /** * Called for mode-less pose selection. * assumes the active object is still on old situation. * * \return True when pick finds an element or the selection changed. */ -bool ED_armature_pose_select_pick_with_buffer(const struct Scene *scene, - struct ViewLayer *view_layer, - struct View3D *v3d, - struct Base *base, - const struct GPUSelectResult *buffer, +bool ED_armature_pose_select_pick_with_buffer(const Scene *scene, + ViewLayer *view_layer, + View3D *v3d, + Base *base, + const GPUSelectResult *buffer, short hits, - const struct SelectPick_Params *params, + const SelectPick_Params *params, bool do_nearest); /** * While in weight-paint mode, a single pose may be active as well. @@ -336,36 +319,33 @@ bool ED_armature_pose_select_pick_with_buffer(const struct Scene *scene, * It can't be set to the active object because we need * to keep this set to the weight paint object. */ -void ED_armature_pose_select_in_wpaint_mode(const struct Scene *scene, - struct ViewLayer *view_layer, - struct Base *base_select); -bool ED_pose_deselect_all_multi_ex(struct Base **bases, +void ED_armature_pose_select_in_wpaint_mode(const Scene *scene, + ViewLayer *view_layer, + Base *base_select); +bool ED_pose_deselect_all_multi_ex(Base **bases, uint bases_len, int select_mode, bool ignore_visibility); -bool ED_pose_deselect_all_multi(struct bContext *C, int select_mode, bool ignore_visibility); +bool ED_pose_deselect_all_multi(bContext *C, int select_mode, bool ignore_visibility); /** * 'select_mode' is usual SEL_SELECT/SEL_DESELECT/SEL_TOGGLE/SEL_INVERT. * When true, 'ignore_visibility' makes this func also affect invisible bones * (hidden or on hidden layers). */ -bool ED_pose_deselect_all(struct Object *ob, int select_mode, bool ignore_visibility); -void ED_pose_bone_select_tag_update(struct Object *ob); +bool ED_pose_deselect_all(Object *ob, int select_mode, bool ignore_visibility); +void ED_pose_bone_select_tag_update(Object *ob); /** * Utility method for changing the selection status of a bone. * change_active determines whether to change the active bone of the armature when selecting pose * channels. It is false during range selection otherwise true. */ -void ED_pose_bone_select(struct Object *ob, - struct bPoseChannel *pchan, - bool select, - bool change_active); +void ED_pose_bone_select(Object *ob, bPoseChannel *pchan, bool select, bool change_active); /* meshlaplacian.cc */ -void ED_mesh_deform_bind_callback(struct Object *object, - struct MeshDeformModifierData *mmd, - struct Mesh *cagemesh, +void ED_mesh_deform_bind_callback(Object *object, + MeshDeformModifierData *mmd, + Mesh *cagemesh, float *vertexcos, int verts_num, float cagemat[4][4]); diff --git a/source/blender/editors/include/ED_asset.hh b/source/blender/editors/include/ED_asset.hh index fb3af07a47e..32457ffc707 100644 --- a/source/blender/editors/include/ED_asset.hh +++ b/source/blender/editors/include/ED_asset.hh @@ -14,7 +14,7 @@ /* Barely anything here. Just general editor level functions. Actual asset level code is in * dedicated headers. */ -void ED_operatortypes_asset(void); +void ED_operatortypes_asset(); #include "../asset/ED_asset_catalog.h" #include "../asset/ED_asset_handle.h" diff --git a/source/blender/editors/include/ED_buttons.hh b/source/blender/editors/include/ED_buttons.hh index b645ccfa689..4301ff590e5 100644 --- a/source/blender/editors/include/ED_buttons.hh +++ b/source/blender/editors/include/ED_buttons.hh @@ -18,17 +18,17 @@ struct PointerRNA; * * \return The total number of items in the array returned. */ -int ED_buttons_tabs_list(struct SpaceProperties *sbuts, short *context_tabs_array); -bool ED_buttons_tab_has_search_result(struct SpaceProperties *sbuts, int index); +int ED_buttons_tabs_list(SpaceProperties *sbuts, short *context_tabs_array); +bool ED_buttons_tab_has_search_result(SpaceProperties *sbuts, int index); -void ED_buttons_search_string_set(struct SpaceProperties *sbuts, const char *value); -int ED_buttons_search_string_length(struct SpaceProperties *sbuts); -const char *ED_buttons_search_string_get(struct SpaceProperties *sbuts); +void ED_buttons_search_string_set(SpaceProperties *sbuts, const char *value); +int ED_buttons_search_string_length(SpaceProperties *sbuts); +const char *ED_buttons_search_string_get(SpaceProperties *sbuts); -bool ED_buttons_should_sync_with_outliner(const struct bContext *C, - const struct SpaceProperties *sbuts, - struct ScrArea *area); -void ED_buttons_set_context(const struct bContext *C, - struct SpaceProperties *sbuts, +bool ED_buttons_should_sync_with_outliner(const bContext *C, + const SpaceProperties *sbuts, + ScrArea *area); +void ED_buttons_set_context(const bContext *C, + SpaceProperties *sbuts, PointerRNA *ptr, int context); diff --git a/source/blender/editors/include/ED_clip.hh b/source/blender/editors/include/ED_clip.hh index 2e855b94b7a..e56febc898d 100644 --- a/source/blender/editors/include/ED_clip.hh +++ b/source/blender/editors/include/ED_clip.hh @@ -22,28 +22,28 @@ struct bScreen; /* Returns true when the following conditions are met: * - Current space is Space Clip. * - There is a movie clip opened in it. */ -bool ED_space_clip_poll(struct bContext *C); +bool ED_space_clip_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space is Space Clip. * - It is set to Clip view. * * It is not required to have movie clip opened for editing. */ -bool ED_space_clip_view_clip_poll(struct bContext *C); +bool ED_space_clip_view_clip_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space is Space Clip. * - It is set to Tracking mode. * * It is not required to have movie clip opened for editing. */ -bool ED_space_clip_tracking_poll(struct bContext *C); +bool ED_space_clip_tracking_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space is Space Clip. * - It is set to Mask mode. * * It is not required to have mask opened for editing. */ -bool ED_space_clip_maskedit_poll(struct bContext *C); +bool ED_space_clip_maskedit_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space is Space Clip. @@ -51,95 +51,83 @@ bool ED_space_clip_maskedit_poll(struct bContext *C); * - Mask has visible and editable splines. * * It is not required to have mask opened for editing. */ -bool ED_space_clip_maskedit_visible_splines_poll(struct bContext *C); +bool ED_space_clip_maskedit_visible_splines_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space is Space Clip. * - It is set to Mask mode. * - The space has mask opened. */ -bool ED_space_clip_maskedit_mask_poll(struct bContext *C); +bool ED_space_clip_maskedit_mask_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space is Space Clip. * - It is set to Mask mode. * - The space has mask opened. * - Mask has visible and editable splines. */ -bool ED_space_clip_maskedit_mask_visible_splines_poll(struct bContext *C); +bool ED_space_clip_maskedit_mask_visible_splines_poll(bContext *C); -void ED_space_clip_get_size(const struct SpaceClip *sc, int *width, int *height); -void ED_space_clip_get_size_fl(const struct SpaceClip *sc, float size[2]); -void ED_space_clip_get_zoom(const struct SpaceClip *sc, - const struct ARegion *region, +void ED_space_clip_get_size(const SpaceClip *sc, int *width, int *height); +void ED_space_clip_get_size_fl(const SpaceClip *sc, float size[2]); +void ED_space_clip_get_zoom(const SpaceClip *sc, + const ARegion *region, float *zoomx, float *zoomy); -void ED_space_clip_get_aspect(const struct SpaceClip *sc, float *aspx, float *aspy); -void ED_space_clip_get_aspect_dimension_aware(const struct SpaceClip *sc, - float *aspx, - float *aspy); +void ED_space_clip_get_aspect(const SpaceClip *sc, float *aspx, float *aspy); +void ED_space_clip_get_aspect_dimension_aware(const SpaceClip *sc, float *aspx, float *aspy); /** * Return current frame number in clip space. */ -int ED_space_clip_get_clip_frame_number(const struct SpaceClip *sc); +int ED_space_clip_get_clip_frame_number(const SpaceClip *sc); -struct ImBuf *ED_space_clip_get_buffer(const struct SpaceClip *sc); -struct ImBuf *ED_space_clip_get_stable_buffer(const struct SpaceClip *sc, - float loc[2], - float *scale, - float *angle); +ImBuf *ED_space_clip_get_buffer(const SpaceClip *sc); +ImBuf *ED_space_clip_get_stable_buffer(const SpaceClip *sc, + float loc[2], + float *scale, + float *angle); -bool ED_space_clip_get_position(const struct SpaceClip *sc, - const struct ARegion *region, +bool ED_space_clip_get_position(const SpaceClip *sc, + const ARegion *region, int mval[2], float fpos[2]); /** * Returns color in linear space, matching #ED_space_image_color_sample(). */ -bool ED_space_clip_color_sample(const struct SpaceClip *sc, - const struct ARegion *region, +bool ED_space_clip_color_sample(const SpaceClip *sc, + const ARegion *region, const int mval[2], float r_col[3]); -void ED_clip_update_frame(const struct Main *mainp, int cfra); -bool ED_clip_view_selection(const struct bContext *C, const struct ARegion *region, bool fit); +void ED_clip_update_frame(const Main *mainp, int cfra); +bool ED_clip_view_selection(const bContext *C, const ARegion *region, bool fit); -void ED_clip_select_all(const struct SpaceClip *sc, int action, bool *r_has_selection); -bool ED_clip_can_select(struct bContext *C); +void ED_clip_select_all(const SpaceClip *sc, int action, bool *r_has_selection); +bool ED_clip_can_select(bContext *C); -void ED_clip_point_undistorted_pos(const struct SpaceClip *sc, const float co[2], float r_co[2]); -void ED_clip_point_stable_pos(const struct SpaceClip *sc, - const struct ARegion *region, - float x, - float y, - float *xr, - float *yr); +void ED_clip_point_undistorted_pos(const SpaceClip *sc, const float co[2], float r_co[2]); +void ED_clip_point_stable_pos( + const SpaceClip *sc, const ARegion *region, float x, float y, float *xr, float *yr); /** * \brief the reverse of #ED_clip_point_stable_pos(), gets the marker region coords. * better name here? view_to_track / track_to_view or so? */ -void ED_clip_point_stable_pos__reverse(const struct SpaceClip *sc, - const struct ARegion *region, +void ED_clip_point_stable_pos__reverse(const SpaceClip *sc, + const ARegion *region, const float co[2], float r_co[2]); /** * Takes `event->mval`. */ -void ED_clip_mouse_pos(const struct SpaceClip *sc, - const struct ARegion *region, - const int mval[2], - float co[2]); +void ED_clip_mouse_pos(const SpaceClip *sc, const ARegion *region, const int mval[2], float co[2]); -bool ED_space_clip_check_show_trackedit(const struct SpaceClip *sc); -bool ED_space_clip_check_show_maskedit(const struct SpaceClip *sc); +bool ED_space_clip_check_show_trackedit(const SpaceClip *sc); +bool ED_space_clip_check_show_maskedit(const SpaceClip *sc); -struct MovieClip *ED_space_clip_get_clip(const struct SpaceClip *sc); -void ED_space_clip_set_clip(struct bContext *C, - struct bScreen *screen, - struct SpaceClip *sc, - struct MovieClip *clip); +MovieClip *ED_space_clip_get_clip(const SpaceClip *sc); +void ED_space_clip_set_clip(bContext *C, bScreen *screen, SpaceClip *sc, MovieClip *clip); -struct Mask *ED_space_clip_get_mask(const struct SpaceClip *sc); -void ED_space_clip_set_mask(struct bContext *C, struct SpaceClip *sc, struct Mask *mask); +Mask *ED_space_clip_get_mask(const SpaceClip *sc); +void ED_space_clip_set_mask(bContext *C, SpaceClip *sc, Mask *mask); /* Locked state is used to preserve current clip editor viewport upon changes. Example usage: * @@ -155,15 +143,14 @@ void ED_space_clip_set_mask(struct bContext *C, struct SpaceClip *sc, struct Mas * These function are to be used from space clip editor context only. Otherwise debug builds will * assert, release builds will crash. */ -typedef struct ClipViewLockState { +struct ClipViewLockState { float offset_x, offset_y; float lock_offset_x, lock_offset_y; float zoom; -} ClipViewLockState; +}; -void ED_clip_view_lock_state_store(const struct bContext *C, ClipViewLockState *state); -void ED_clip_view_lock_state_restore_no_jump(const struct bContext *C, - const ClipViewLockState *state); +void ED_clip_view_lock_state_store(const bContext *C, ClipViewLockState *state); +void ED_clip_view_lock_state_restore_no_jump(const bContext *C, const ClipViewLockState *state); /* `clip_ops.cc` */ void ED_operatormacros_clip(void); diff --git a/source/blender/editors/include/ED_curve.hh b/source/blender/editors/include/ED_curve.hh index 83ec32b27a3..67b4e65e088 100644 --- a/source/blender/editors/include/ED_curve.hh +++ b/source/blender/editors/include/ED_curve.hh @@ -13,6 +13,7 @@ struct Base; struct BezTriple; struct Curve; struct EditNurb; +struct ListBase; struct Main; struct Nurb; struct Object; @@ -26,97 +27,94 @@ struct wmOperator; /* `curve_ops.cc` */ -void ED_operatortypes_curve(void); -void ED_operatormacros_curve(void); -void ED_keymap_curve(struct wmKeyConfig *keyconf); +void ED_operatortypes_curve(); +void ED_operatormacros_curve(); +void ED_keymap_curve(wmKeyConfig *keyconf); /* `editcurve.cc` */ -struct ListBase *object_editcurve_get(struct Object *ob); +ListBase *object_editcurve_get(Object *ob); /** * Load editNurb in object. */ -void ED_curve_editnurb_load(struct Main *bmain, struct Object *obedit); +void ED_curve_editnurb_load(Main *bmain, Object *obedit); /** * Make copy in `cu->editnurb`. */ -void ED_curve_editnurb_make(struct Object *obedit); -void ED_curve_editnurb_free(struct Object *obedit); +void ED_curve_editnurb_make(Object *obedit); +void ED_curve_editnurb_free(Object *obedit); /** * \param dist_px: Maximum distance to pick (in pixels). * \param vert_without_handles: When true, selecting the knot doesn't select the handles. */ -bool ED_curve_editnurb_select_pick(struct bContext *C, +bool ED_curve_editnurb_select_pick(bContext *C, const int mval[2], int dist_px, bool vert_without_handles, - const struct SelectPick_Params *params); + const SelectPick_Params *params); -struct Nurb *ED_curve_add_nurbs_primitive( - struct bContext *C, struct Object *obedit, float mat[4][4], int type, int newob); +Nurb *ED_curve_add_nurbs_primitive( + bContext *C, Object *obedit, float mat[4][4], int type, int newob); -bool ED_curve_nurb_select_check(const struct View3D *v3d, const struct Nurb *nu); -int ED_curve_nurb_select_count(const struct View3D *v3d, const struct Nurb *nu); -bool ED_curve_nurb_select_all(const struct Nurb *nu); -bool ED_curve_nurb_deselect_all(const struct Nurb *nu); +bool ED_curve_nurb_select_check(const View3D *v3d, const Nurb *nu); +int ED_curve_nurb_select_count(const View3D *v3d, const Nurb *nu); +bool ED_curve_nurb_select_all(const Nurb *nu); +bool ED_curve_nurb_deselect_all(const Nurb *nu); /** * This is used externally, by #OBJECT_OT_join. * TODO: shape keys - as with meshes. */ -int ED_curve_join_objects_exec(struct bContext *C, struct wmOperator *op); +int ED_curve_join_objects_exec(bContext *C, wmOperator *op); /* `editcurve_select.cc` */ -bool ED_curve_select_check(const struct View3D *v3d, const struct EditNurb *editnurb); -bool ED_curve_deselect_all(struct EditNurb *editnurb); -bool ED_curve_deselect_all_multi_ex(struct Base **bases, int bases_len); -bool ED_curve_deselect_all_multi(struct bContext *C); -bool ED_curve_select_all(struct EditNurb *editnurb); -bool ED_curve_select_swap(struct EditNurb *editnurb, bool hide_handles); -int ED_curve_select_count(const struct View3D *v3d, const struct EditNurb *editnurb); +bool ED_curve_select_check(const View3D *v3d, const EditNurb *editnurb); +bool ED_curve_deselect_all(EditNurb *editnurb); +bool ED_curve_deselect_all_multi_ex(Base **bases, int bases_len); +bool ED_curve_deselect_all_multi(bContext *C); +bool ED_curve_select_all(EditNurb *editnurb); +bool ED_curve_select_swap(EditNurb *editnurb, bool hide_handles); +int ED_curve_select_count(const View3D *v3d, const EditNurb *editnurb); /* editcurve_undo.cc */ /** Export for ED_undo_sys */ -void ED_curve_undosys_type(struct UndoType *ut); +void ED_curve_undosys_type(UndoType *ut); /* `editfont.cc` */ -void ED_curve_editfont_load(struct Object *obedit); -void ED_curve_editfont_make(struct Object *obedit); -void ED_curve_editfont_free(struct Object *obedit); +void ED_curve_editfont_load(Object *obedit); +void ED_curve_editfont_make(Object *obedit); +void ED_curve_editfont_free(Object *obedit); -void ED_text_to_object(struct bContext *C, const struct Text *text, bool split_lines); +void ED_text_to_object(bContext *C, const Text *text, bool split_lines); -void ED_curve_beztcpy(struct EditNurb *editnurb, - struct BezTriple *dst, - struct BezTriple *src, - int count); -void ED_curve_bpcpy(struct EditNurb *editnurb, struct BPoint *dst, struct BPoint *src, int count); +void ED_curve_beztcpy(EditNurb *editnurb, BezTriple *dst, BezTriple *src, int count); +void ED_curve_bpcpy(EditNurb *editnurb, BPoint *dst, BPoint *src, int count); /** * Return 0 if animation data wasn't changed, 1 otherwise. */ -int ED_curve_updateAnimPaths(struct Main *bmain, struct Curve *cu); +int ED_curve_updateAnimPaths(Main *bmain, Curve *cu); -bool ED_curve_active_center(struct Curve *cu, float center[3]); +bool ED_curve_active_center(Curve *cu, float center[3]); /** * Text box selection. * * \return True when pick finds an element or the selection changed. */ -bool ED_curve_editfont_select_pick(struct bContext *C, +bool ED_curve_editfont_select_pick(bContext *C, const int mval[2], - const struct SelectPick_Params *params); + const SelectPick_Params *params); /* `editfont_undo.cc` */ /** Export for ED_undo_sys. */ -void ED_font_undosys_type(struct UndoType *ut); +void ED_font_undosys_type(UndoType *ut); #if 0 /* debug only */ diff --git a/source/blender/editors/include/ED_curves_sculpt.hh b/source/blender/editors/include/ED_curves_sculpt.hh index f2743d11312..9526fc76f85 100644 --- a/source/blender/editors/include/ED_curves_sculpt.hh +++ b/source/blender/editors/include/ED_curves_sculpt.hh @@ -8,4 +8,4 @@ #pragma once -void ED_operatortypes_sculpt_curves(void); +void ED_operatortypes_sculpt_curves(); diff --git a/source/blender/editors/include/ED_file_indexer.hh b/source/blender/editors/include/ED_file_indexer.hh index c1db19f2805..d89ec7498e1 100644 --- a/source/blender/editors/include/ED_file_indexer.hh +++ b/source/blender/editors/include/ED_file_indexer.hh @@ -25,7 +25,7 @@ struct LinkNode; /** * Result code of the `read_index` callback. */ -typedef enum eFileIndexerResult { +enum eFileIndexerResult { /** * File listing entries are loaded from the index. Reading entries from the blend file itself * should be skipped. @@ -37,36 +37,36 @@ typedef enum eFileIndexerResult { * `update_index` must be called to update the index. */ FILE_INDEXER_NEEDS_UPDATE, -} eFileIndexerResult; +}; /** * FileIndexerEntry contains all data that is required to create a file listing entry. */ -typedef struct FileIndexerEntry { - struct BLODataBlockInfo datablock_info; +struct FileIndexerEntry { + BLODataBlockInfo datablock_info; short idcode; -} FileIndexerEntry; +}; /** * Contains all entries of a blend file. */ -typedef struct FileIndexerEntries { - struct LinkNode /* FileIndexerEntry */ *entries; -} FileIndexerEntries; +struct FileIndexerEntries { + LinkNode /* FileIndexerEntry */ *entries; +}; -typedef void *(*FileIndexerInitUserDataFunc)(const char *root_directory, - size_t root_directory_maxlen); -typedef void (*FileIndexerFreeUserDataFunc)(void *); -typedef void (*FileIndexerFinishedFunc)(void *); -typedef eFileIndexerResult (*FileIndexerReadIndexFunc)(const char *file_name, - FileIndexerEntries *entries, - int *r_read_entries_len, - void *user_data); -typedef void (*FileIndexerUpdateIndexFunc)(const char *file_name, - FileIndexerEntries *entries, - void *user_data); +using FileIndexerInitUserDataFunc = void *(*)(const char *root_directory, + size_t root_directory_maxlen); +using FileIndexerFreeUserDataFunc = void (*)(void *); +using FileIndexerFinishedFunc = void (*)(void *); +using FileIndexerReadIndexFunc = eFileIndexerResult (*)(const char *file_name, + FileIndexerEntries *entries, + int *r_read_entries_len, + void *user_data); +using FileIndexerUpdateIndexFunc = void (*)(const char *file_name, + FileIndexerEntries *entries, + void *user_data); -typedef struct FileIndexerType { +struct FileIndexerType { /** * Is called at the beginning of the file listing process. An indexer can * setup needed data. The result of this function will be passed around as `user_data` parameter. @@ -115,7 +115,7 @@ typedef struct FileIndexerType { * next time that read_index is called it will read the entries from the index. */ FileIndexerUpdateIndexFunc update_index; -} FileIndexerType; +}; /* file_indexer.cc */ @@ -132,5 +132,5 @@ void ED_file_indexer_entries_clear(FileIndexerEntries *indexer_entries); */ void ED_file_indexer_entries_extend_from_datablock_infos( FileIndexerEntries *indexer_entries, - struct LinkNode * /*BLODataBlockInfo*/ datablock_infos, + LinkNode * /*BLODataBlockInfo*/ datablock_infos, int idcode); diff --git a/source/blender/editors/include/ED_fileselect.hh b/source/blender/editors/include/ED_fileselect.hh index 77c7b441547..d12f3b1af12 100644 --- a/source/blender/editors/include/ED_fileselect.hh +++ b/source/blender/editors/include/ED_fileselect.hh @@ -11,9 +11,13 @@ #include "DNA_uuid_types.h" struct ARegion; +struct AssetLibrary; struct FileAssetSelectParams; struct FileDirEntry; struct FileSelectParams; +struct FSMenu; +struct FSMenuEntry; +struct ID; struct ScrArea; struct SpaceFile; struct bContext; @@ -22,20 +26,22 @@ struct uiBlock; struct wmOperator; struct wmWindow; struct wmWindowManager; +struct View2D; +struct rcti; #define FILE_LAYOUT_HOR 1 #define FILE_LAYOUT_VER 2 -typedef enum FileAttributeColumnType { +enum FileAttributeColumnType { COLUMN_NONE = -1, COLUMN_NAME = 0, COLUMN_DATETIME, COLUMN_SIZE, ATTRIBUTE_COLUMN_MAX -} FileAttributeColumnType; +}; -typedef struct FileAttributeColumn { +struct FileAttributeColumn { /** UI name for this column */ const char *name; @@ -45,9 +51,9 @@ typedef struct FileAttributeColumn { /* Alignment of column texts, header text is always left aligned */ int text_align; /* eFontStyle_Align */ -} FileAttributeColumn; +}; -typedef struct FileLayout { +struct FileLayout { /* view settings - XXX: move into own struct. */ int offset_top; /* Height of the header for the different FileAttributeColumn's. */ @@ -75,29 +81,26 @@ typedef struct FileLayout { /* When we change display size, we may have to update static strings like size of files... */ short curr_size; -} FileLayout; +}; -typedef struct FileSelection { +struct FileSelection { int first; int last; -} FileSelection; - -struct View2D; -struct rcti; +}; /** * If needed, create and return the file select parameters for the active browse mode. */ -struct FileSelectParams *ED_fileselect_ensure_active_params(struct SpaceFile *sfile); +FileSelectParams *ED_fileselect_ensure_active_params(SpaceFile *sfile); /** * Get the file select parameters for the active browse mode. */ -struct FileSelectParams *ED_fileselect_get_active_params(const struct SpaceFile *sfile); -struct FileSelectParams *ED_fileselect_get_file_params(const struct SpaceFile *sfile); -struct FileAssetSelectParams *ED_fileselect_get_asset_params(const struct SpaceFile *sfile); -bool ED_fileselect_is_local_asset_library(const struct SpaceFile *sfile); +FileSelectParams *ED_fileselect_get_active_params(const SpaceFile *sfile); +FileSelectParams *ED_fileselect_get_file_params(const SpaceFile *sfile); +FileAssetSelectParams *ED_fileselect_get_asset_params(const SpaceFile *sfile); +bool ED_fileselect_is_local_asset_library(const SpaceFile *sfile); -void ED_fileselect_set_params_from_userdef(struct SpaceFile *sfile); +void ED_fileselect_set_params_from_userdef(SpaceFile *sfile); /** * Update the user-preference data for the file space. In fact, this also contains some * non-FileSelectParams data, but we can safely ignore this. @@ -105,47 +108,42 @@ void ED_fileselect_set_params_from_userdef(struct SpaceFile *sfile); * \param temp_win_size: If the browser was opened in a temporary window, * pass its size here so we can store that in the preferences. Otherwise NULL. */ -void ED_fileselect_params_to_userdef(struct SpaceFile *sfile, +void ED_fileselect_params_to_userdef(SpaceFile *sfile, const int temp_win_size[2], bool is_maximized); -void ED_fileselect_init_layout(struct SpaceFile *sfile, struct ARegion *region); +void ED_fileselect_init_layout(SpaceFile *sfile, ARegion *region); -FileLayout *ED_fileselect_get_layout(struct SpaceFile *sfile, struct ARegion *region); +FileLayout *ED_fileselect_get_layout(SpaceFile *sfile, ARegion *region); -int ED_fileselect_layout_numfiles(FileLayout *layout, struct ARegion *region); +int ED_fileselect_layout_numfiles(FileLayout *layout, ARegion *region); int ED_fileselect_layout_offset(FileLayout *layout, int x, int y); -FileSelection ED_fileselect_layout_offset_rect(FileLayout *layout, const struct rcti *rect); +FileSelection ED_fileselect_layout_offset_rect(FileLayout *layout, const rcti *rect); /** * Get the currently visible bounds of the layout in screen space. Matches View2D.mask minus the * top column-header row. */ -void ED_fileselect_layout_maskrect(const FileLayout *layout, - const struct View2D *v2d, - struct rcti *r_rect); -bool ED_fileselect_layout_is_inside_pt(const FileLayout *layout, - const struct View2D *v2d, - int x, - int y); +void ED_fileselect_layout_maskrect(const FileLayout *layout, const View2D *v2d, rcti *r_rect); +bool ED_fileselect_layout_is_inside_pt(const FileLayout *layout, const View2D *v2d, int x, int y); bool ED_fileselect_layout_isect_rect(const FileLayout *layout, - const struct View2D *v2d, - const struct rcti *rect, - struct rcti *r_dst); + const View2D *v2d, + const rcti *rect, + rcti *r_dst); void ED_fileselect_layout_tilepos(const FileLayout *layout, int tile, int *x, int *y); void ED_operatormacros_file(void); -void ED_fileselect_clear(struct wmWindowManager *wm, struct SpaceFile *sfile); +void ED_fileselect_clear(wmWindowManager *wm, SpaceFile *sfile); -void ED_fileselect_exit(struct wmWindowManager *wm, struct SpaceFile *sfile); +void ED_fileselect_exit(wmWindowManager *wm, SpaceFile *sfile); -bool ED_fileselect_is_file_browser(const struct SpaceFile *sfile); -bool ED_fileselect_is_asset_browser(const struct SpaceFile *sfile); -struct AssetLibrary *ED_fileselect_active_asset_library_get(const struct SpaceFile *sfile); -struct ID *ED_fileselect_active_asset_get(const struct SpaceFile *sfile); +bool ED_fileselect_is_file_browser(const SpaceFile *sfile); +bool ED_fileselect_is_asset_browser(const SpaceFile *sfile); +AssetLibrary *ED_fileselect_active_asset_library_get(const SpaceFile *sfile); +ID *ED_fileselect_active_asset_get(const SpaceFile *sfile); -void ED_fileselect_activate_asset_catalog(const struct SpaceFile *sfile, bUUID catalog_id); +void ED_fileselect_activate_asset_catalog(const SpaceFile *sfile, bUUID catalog_id); /** * Resolve this space's #eFileAssetImportMethod to the #eAssetImportMethod (note the different @@ -160,65 +158,60 @@ void ED_fileselect_activate_asset_catalog(const struct SpaceFile *sfile, bUUID c * \return -1 on error, for example when #FILE_ASSET_IMPORT_FOLLOW_PREFS was requested but the * active asset library reference couldn't be found in the preferences. */ -int /* #eAssetImportMethod */ ED_fileselect_asset_import_method_get( - const struct SpaceFile *sfile, const struct FileDirEntry *file); +int /* #eAssetImportMethod */ ED_fileselect_asset_import_method_get(const SpaceFile *sfile, + const FileDirEntry *file); /** * Activate and select the file that corresponds to the given ID. * Pass deferred=true to wait for the next refresh before activating. */ -void ED_fileselect_activate_by_id(struct SpaceFile *sfile, struct ID *asset_id, bool deferred); +void ED_fileselect_activate_by_id(SpaceFile *sfile, ID *asset_id, bool deferred); -void ED_fileselect_deselect_all(struct SpaceFile *sfile); -void ED_fileselect_activate_by_relpath(struct SpaceFile *sfile, const char *relative_path); +void ED_fileselect_deselect_all(SpaceFile *sfile); +void ED_fileselect_activate_by_relpath(SpaceFile *sfile, const char *relative_path); -void ED_fileselect_window_params_get(const struct wmWindow *win, - int win_size[2], - bool *is_maximized); +void ED_fileselect_window_params_get(const wmWindow *win, int win_size[2], bool *is_maximized); /** * Return the File Browser area in which \a file_operator is active. */ -struct ScrArea *ED_fileselect_handler_area_find(const struct wmWindow *win, - const struct wmOperator *file_operator); +ScrArea *ED_fileselect_handler_area_find(const wmWindow *win, const wmOperator *file_operator); /** * Check if there is any area in \a win that acts as a modal File Browser (#SpaceFile.op is set) * and return it. */ -struct ScrArea *ED_fileselect_handler_area_find_any_with_op(const struct wmWindow *win); +ScrArea *ED_fileselect_handler_area_find_any_with_op(const wmWindow *win); /** * If filepath property is not set on the operator, sets it to * the blend file path (or untitled if file is not saved yet) with the given extension. */ -void ED_fileselect_ensure_default_filepath(struct bContext *C, - struct wmOperator *op, - const char *extension); +void ED_fileselect_ensure_default_filepath(bContext *C, wmOperator *op, const char *extension); /* TODO: Maybe we should move this to BLI? * On the other hand, it's using defines from space-file area, so not sure... */ int ED_path_extension_type(const char *path); int ED_file_extension_icon(const char *path); -int ED_file_icon(const struct FileDirEntry *file); +int ED_file_icon(const FileDirEntry *file); -void ED_file_read_bookmarks(void); +void ED_file_read_bookmarks(); /** * Support updating the directory even when this isn't the active space * needed so RNA properties update function isn't context sensitive, see #70255. */ -void ED_file_change_dir_ex(struct bContext *C, struct ScrArea *area); -void ED_file_change_dir(struct bContext *C); +void ED_file_change_dir_ex(bContext *C, ScrArea *area); +void ED_file_change_dir(bContext *C); -void ED_file_path_button(struct bScreen *screen, - const struct SpaceFile *sfile, - struct FileSelectParams *params, - struct uiBlock *block); +void ED_file_path_button(bScreen *screen, + const SpaceFile *sfile, + FileSelectParams *params, + uiBlock *block); /* File menu stuff */ /* FSMenuEntry's without paths indicate separators */ -typedef struct FSMenuEntry { +struct FSMenuEntry { struct FSMenuEntry *next; char *path; @@ -226,18 +219,18 @@ typedef struct FSMenuEntry { short save; short valid; int icon; -} FSMenuEntry; +}; -typedef enum FSMenuCategory { +enum FSMenuCategory { FS_CATEGORY_SYSTEM, FS_CATEGORY_SYSTEM_BOOKMARKS, FS_CATEGORY_BOOKMARKS, FS_CATEGORY_RECENT, /* For internal use, a list of known paths that are used to match paths to icons and names. */ FS_CATEGORY_OTHER, -} FSMenuCategory; +}; -typedef enum FSMenuInsert { +enum FSMenuInsert { FS_INSERT_SORTED = (1 << 0), FS_INSERT_SAVE = (1 << 1), /** moves the item to the front of the list when its not already there */ @@ -246,26 +239,21 @@ typedef enum FSMenuInsert { FS_INSERT_LAST = (1 << 3), /** Do not validate the link when inserted. */ FS_INSERT_NO_VALIDATE = (1 << 4), -} FSMenuInsert; +}; -struct FSMenu; -struct FSMenuEntry; +FSMenu *ED_fsmenu_get(void); +FSMenuEntry *ED_fsmenu_get_category(FSMenu *fsmenu, FSMenuCategory category); +void ED_fsmenu_set_category(FSMenu *fsmenu, FSMenuCategory category, FSMenuEntry *fsm_head); -struct FSMenu *ED_fsmenu_get(void); -struct FSMenuEntry *ED_fsmenu_get_category(struct FSMenu *fsmenu, FSMenuCategory category); -void ED_fsmenu_set_category(struct FSMenu *fsmenu, - FSMenuCategory category, - struct FSMenuEntry *fsm_head); +int ED_fsmenu_get_nentries(FSMenu *fsmenu, FSMenuCategory category); -int ED_fsmenu_get_nentries(struct FSMenu *fsmenu, FSMenuCategory category); +FSMenuEntry *ED_fsmenu_get_entry(FSMenu *fsmenu, FSMenuCategory category, int idx); -struct FSMenuEntry *ED_fsmenu_get_entry(struct FSMenu *fsmenu, FSMenuCategory category, int idx); +char *ED_fsmenu_entry_get_path(FSMenuEntry *fsentry); +void ED_fsmenu_entry_set_path(FSMenuEntry *fsentry, const char *path); -char *ED_fsmenu_entry_get_path(struct FSMenuEntry *fsentry); -void ED_fsmenu_entry_set_path(struct FSMenuEntry *fsentry, const char *path); +char *ED_fsmenu_entry_get_name(FSMenuEntry *fsentry); +void ED_fsmenu_entry_set_name(FSMenuEntry *fsentry, const char *name); -char *ED_fsmenu_entry_get_name(struct FSMenuEntry *fsentry); -void ED_fsmenu_entry_set_name(struct FSMenuEntry *fsentry, const char *name); - -int ED_fsmenu_entry_get_icon(struct FSMenuEntry *fsentry); -void ED_fsmenu_entry_set_icon(struct FSMenuEntry *fsentry, int icon); +int ED_fsmenu_entry_get_icon(FSMenuEntry *fsentry); +void ED_fsmenu_entry_set_icon(FSMenuEntry *fsentry, int icon); diff --git a/source/blender/editors/include/ED_geometry.hh b/source/blender/editors/include/ED_geometry.hh index 4634537f778..d927d839511 100644 --- a/source/blender/editors/include/ED_geometry.hh +++ b/source/blender/editors/include/ED_geometry.hh @@ -18,7 +18,7 @@ struct Mesh; struct ReportList; -void ED_operatortypes_geometry(void); +void ED_operatortypes_geometry(); /** * Convert an attribute with the given name to a new type and domain. @@ -26,7 +26,7 @@ void ED_operatortypes_geometry(void); * * \note Does not support meshes in edit mode. */ -bool ED_geometry_attribute_convert(struct Mesh *mesh, +bool ED_geometry_attribute_convert(Mesh *mesh, const char *name, eCustomDataType dst_type, eAttrDomain dst_domain, diff --git a/source/blender/editors/include/ED_gizmo_utils.hh b/source/blender/editors/include/ED_gizmo_utils.hh index 90fa0302a04..1ddfa59cc07 100644 --- a/source/blender/editors/include/ED_gizmo_utils.hh +++ b/source/blender/editors/include/ED_gizmo_utils.hh @@ -14,14 +14,13 @@ struct bContext; struct wmGizmoGroupType; /** Wrapper function (operator name can't be guessed). */ -bool ED_gizmo_poll_or_unlink_delayed_from_operator(const struct bContext *C, - struct wmGizmoGroupType *gzgt, +bool ED_gizmo_poll_or_unlink_delayed_from_operator(const bContext *C, + wmGizmoGroupType *gzgt, const char *idname); -bool ED_gizmo_poll_or_unlink_delayed_from_tool_ex(const struct bContext *C, - struct wmGizmoGroupType *gzgt, +bool ED_gizmo_poll_or_unlink_delayed_from_tool_ex(const bContext *C, + wmGizmoGroupType *gzgt, const char *gzgt_idname); /** Use this as poll function directly for: #wmGizmoGroupType.poll */ -bool ED_gizmo_poll_or_unlink_delayed_from_tool(const struct bContext *C, - struct wmGizmoGroupType *gzgt); +bool ED_gizmo_poll_or_unlink_delayed_from_tool(const bContext *C, wmGizmoGroupType *gzgt); diff --git a/source/blender/editors/include/ED_gpencil_legacy.hh b/source/blender/editors/include/ED_gpencil_legacy.hh index 1a2eadb114d..c9eb24ae6c9 100644 --- a/source/blender/editors/include/ED_gpencil_legacy.hh +++ b/source/blender/editors/include/ED_gpencil_legacy.hh @@ -46,7 +46,7 @@ struct wmOperator; #define GPENCIL_MINIMUM_JOIN_DIST 20.0f /* Reproject stroke modes. */ -typedef enum eGP_ReprojectModes { +enum eGP_ReprojectModes { /* Axis */ GP_REPROJECT_FRONT = 0, GP_REPROJECT_SIDE, @@ -59,13 +59,13 @@ typedef enum eGP_ReprojectModes { GP_REPROJECT_CURSOR, /* Keep equals (used in some operators) */ GP_REPROJECT_KEEP, -} eGP_ReprojectModes; +}; /* Target object modes. */ -typedef enum eGP_TargetObjectMode { +enum eGP_TargetObjectMode { GP_TARGET_OB_NEW = 0, GP_TARGET_OB_SELECTED = 1, -} eGP_TargetObjectMode; +}; /* ------------- Grease-Pencil Runtime Data ---------------- */ @@ -73,7 +73,7 @@ typedef enum eGP_TargetObjectMode { * * Used as part of the 'stroke cache' used during drawing of new strokes */ -typedef struct tGPspoint { +struct tGPspoint { /** Coordinates x and y of cursor (in relative to area). */ float m_xy[2]; /** Pressure of tablet at this point. */ @@ -92,7 +92,7 @@ typedef struct tGPspoint { bool rnd_dirty; /** Point vertex color. */ float vert_color[4]; -} tGPspoint; +}; /* ----------- Grease Pencil Tools/Context ------------- */ @@ -102,12 +102,12 @@ typedef struct tGPspoint { * Get pointer to active Grease Pencil data-block, * and an RNA-pointer to trace back to whatever owns it. */ -struct bGPdata **ED_gpencil_data_get_pointers(const struct bContext *C, struct PointerRNA *r_ptr); +bGPdata **ED_gpencil_data_get_pointers(const bContext *C, PointerRNA *r_ptr); /** * Get the active Grease Pencil data-block */ -struct bGPdata *ED_gpencil_data_get_active(const struct bContext *C); +bGPdata *ED_gpencil_data_get_active(const bContext *C); /** * Get the evaluated copy of the active Grease Pencil data-block (where applicable) * - For the 3D View (i.e. "GP Objects"), this gives the evaluated copy of the GP data-block @@ -116,7 +116,7 @@ struct bGPdata *ED_gpencil_data_get_active(const struct bContext *C); * - For all other editors (i.e. "GP Annotations"), this just gives the active data-block * like for #ED_gpencil_data_get_active() */ -struct bGPdata *ED_gpencil_data_get_active_evaluated(const struct bContext *C); +bGPdata *ED_gpencil_data_get_active_evaluated(const bContext *C); /** * Context independent (i.e. each required part is passed in instead). @@ -125,77 +125,70 @@ struct bGPdata *ED_gpencil_data_get_active_evaluated(const struct bContext *C); * and an RNA-pointer to trace back to whatever owns it, * when context info is not available. */ -struct bGPdata **ED_gpencil_data_get_pointers_direct(struct ScrArea *area, - struct Object *ob, - struct PointerRNA *r_ptr); +bGPdata **ED_gpencil_data_get_pointers_direct(ScrArea *area, Object *ob, PointerRNA *r_ptr); /* Get the active Grease Pencil data-block, when context is not available */ -struct bGPdata *ED_gpencil_data_get_active_direct(struct ScrArea *area, struct Object *ob); +bGPdata *ED_gpencil_data_get_active_direct(ScrArea *area, Object *ob); /** * Get the active Grease Pencil data-block * \note This is the original (#G.main) copy of the data-block, stored in files. * Do not use for reading evaluated copies of GP Objects data. */ -struct bGPdata *ED_annotation_data_get_active(const struct bContext *C); +bGPdata *ED_annotation_data_get_active(const bContext *C); /** * Get pointer to active Grease Pencil data-block, * and an RNA-pointer to trace back to whatever owns it. */ -struct bGPdata **ED_annotation_data_get_pointers(const struct bContext *C, - struct PointerRNA *r_ptr); +bGPdata **ED_annotation_data_get_pointers(const bContext *C, PointerRNA *r_ptr); /** * Get pointer to active Grease Pencil data-block for annotations, * and an RNA-pointer to trace back to whatever owns it, * when context info is not available. */ -struct bGPdata **ED_annotation_data_get_pointers_direct(struct ID *screen_id, - struct ScrArea *area, - struct Scene *scene, - struct PointerRNA *r_ptr); +bGPdata **ED_annotation_data_get_pointers_direct(ID *screen_id, + ScrArea *area, + Scene *scene, + PointerRNA *r_ptr); /** * Get the active Grease Pencil data-block, when context is not available. */ -struct bGPdata *ED_annotation_data_get_active_direct(struct ID *screen_id, - struct ScrArea *area, - struct Scene *scene); +bGPdata *ED_annotation_data_get_active_direct(ID *screen_id, ScrArea *area, Scene *scene); /** * Utility to check whether the r_ptr output of ED_gpencil_data_get_pointers() * is for annotation usage. */ -bool ED_gpencil_data_owner_is_annotation(struct PointerRNA *owner_ptr); +bool ED_gpencil_data_owner_is_annotation(PointerRNA *owner_ptr); /* 3D View */ /** * Check whether there's an active GP keyframe on the current frame. */ -bool ED_gpencil_has_keyframe_v3d(struct Scene *scene, struct Object *ob, int cfra); +bool ED_gpencil_has_keyframe_v3d(Scene *scene, Object *ob, int cfra); /* ----------- Stroke Editing Utilities ---------------- */ -bool ED_gpencil_frame_has_selected_stroke(const struct bGPDframe *gpf); -bool ED_gpencil_layer_has_selected_stroke(const struct bGPDlayer *gpl, bool is_multiedit); +bool ED_gpencil_frame_has_selected_stroke(const bGPDframe *gpf); +bool ED_gpencil_layer_has_selected_stroke(const bGPDlayer *gpl, bool is_multiedit); /** * Check whether given stroke can be edited given the supplied context. * TODO: do we need additional flags for screen-space vs data-space?. */ -bool ED_gpencil_stroke_can_use_direct(const struct ScrArea *area, const struct bGPDstroke *gps); +bool ED_gpencil_stroke_can_use_direct(const ScrArea *area, const bGPDstroke *gps); /* Check whether given stroke can be edited in the current context */ -bool ED_gpencil_stroke_can_use(const struct bContext *C, const struct bGPDstroke *gps); +bool ED_gpencil_stroke_can_use(const bContext *C, const bGPDstroke *gps); /* Check whether given stroke can be edited for the current color */ -bool ED_gpencil_stroke_material_editable(struct Object *ob, - const struct bGPDlayer *gpl, - const struct bGPDstroke *gps); +bool ED_gpencil_stroke_material_editable(Object *ob, const bGPDlayer *gpl, const bGPDstroke *gps); /* Check whether given stroke is visible for the current material. */ -bool ED_gpencil_stroke_material_visible(struct Object *ob, const struct bGPDstroke *gps); +bool ED_gpencil_stroke_material_visible(Object *ob, const bGPDstroke *gps); /* ----------- Grease Pencil Operators ----------------- */ -void ED_keymap_gpencil_legacy(struct wmKeyConfig *keyconf); +void ED_keymap_gpencil_legacy(wmKeyConfig *keyconf); -void ED_operatortypes_gpencil_legacy(void); -void ED_operatormacros_gpencil(void); +void ED_operatortypes_gpencil_legacy(); +void ED_operatormacros_gpencil(); /* ------------- Copy-Paste Buffers -------------------- */ @@ -204,7 +197,7 @@ void ED_operatormacros_gpencil(void); /** * Free copy/paste buffer data. */ -void ED_gpencil_strokes_copybuf_free(void); +void ED_gpencil_strokes_copybuf_free(); /* ------------ Grease-Pencil Drawing API ------------------ */ /* `drawgpencil.cc` */ @@ -212,7 +205,7 @@ void ED_gpencil_strokes_copybuf_free(void); /** * Draw grease-pencil sketches to specified 2d-view that uses `ibuf` corrections. */ -void ED_annotation_draw_2dimage(const struct bContext *C); +void ED_annotation_draw_2dimage(const bContext *C); /** * Draw grease-pencil sketches to specified 2d-view * assuming that matrices are already set correctly. @@ -220,144 +213,129 @@ void ED_annotation_draw_2dimage(const struct bContext *C); * \note This gets called twice - first time with onlyv2d=true to draw 'canvas' strokes, * second time with onlyv2d=false for screen-aligned strokes. */ -void ED_annotation_draw_view2d(const struct bContext *C, bool onlyv2d); +void ED_annotation_draw_view2d(const bContext *C, bool onlyv2d); /** * Draw annotations sketches to specified 3d-view assuming that matrices are already set correctly. * NOTE: this gets called twice - first time with only3d=true to draw 3d-strokes, * second time with only3d=false for screen-aligned strokes. */ -void ED_annotation_draw_view3d(struct Scene *scene, - struct Depsgraph *depsgraph, - struct View3D *v3d, - struct ARegion *region, - bool only3d); +void ED_annotation_draw_view3d( + Scene *scene, Depsgraph *depsgraph, View3D *v3d, ARegion *region, bool only3d); void ED_annotation_draw_ex( - struct Scene *scene, struct bGPdata *gpd, int winx, int winy, int cfra, char spacetype); + Scene *scene, bGPdata *gpd, int winx, int winy, int cfra, char spacetype); /* ----------- Grease-Pencil AnimEdit API ------------------ */ /** * Loops over the GP-frames for a GP-layer, and applies the given callback. */ -bool ED_gpencil_layer_frames_looper(struct bGPDlayer *gpl, - struct Scene *scene, - bool (*gpf_cb)(struct bGPDframe *, struct Scene *)); +bool ED_gpencil_layer_frames_looper(bGPDlayer *gpl, + Scene *scene, + bool (*gpf_cb)(bGPDframe *, Scene *)); /** * Make a listing all the gp-frames in a layer as cfraelems. */ -void ED_gpencil_layer_make_cfra_list(struct bGPDlayer *gpl, ListBase *elems, bool onlysel); +void ED_gpencil_layer_make_cfra_list(bGPDlayer *gpl, ListBase *elems, bool onlysel); /** * Check if one of the frames in this layer is selected. */ -bool ED_gpencil_layer_frame_select_check(const struct bGPDlayer *gpl); +bool ED_gpencil_layer_frame_select_check(const bGPDlayer *gpl); /** * Set all/none/invert select. */ -void ED_gpencil_layer_frame_select_set(struct bGPDlayer *gpl, short mode); +void ED_gpencil_layer_frame_select_set(bGPDlayer *gpl, short mode); /** * Select the frames in this layer that occur within the bounds specified. */ -void ED_gpencil_layer_frames_select_box(struct bGPDlayer *gpl, - float min, - float max, - short select_mode); +void ED_gpencil_layer_frames_select_box(bGPDlayer *gpl, float min, float max, short select_mode); /** * Select the frames in this layer that occur within the lasso/circle region specified. */ -void ED_gpencil_layer_frames_select_region(struct KeyframeEditData *ked, - struct bGPDlayer *gpl, +void ED_gpencil_layer_frames_select_region(KeyframeEditData *ked, + bGPDlayer *gpl, short tool, short select_mode); /** * Set all/none/invert select (like above, but with SELECT_* modes). */ -void ED_gpencil_select_frames(struct bGPDlayer *gpl, short select_mode); +void ED_gpencil_select_frames(bGPDlayer *gpl, short select_mode); /** * Select the frame in this layer that occurs on this frame (there should only be one at most). */ -void ED_gpencil_select_frame(struct bGPDlayer *gpl, int selx, short select_mode); +void ED_gpencil_select_frame(bGPDlayer *gpl, int selx, short select_mode); /** * Set the layer's channel as active */ -void ED_gpencil_set_active_channel(struct bGPdata *gpd, struct bGPDlayer *gpl); +void ED_gpencil_set_active_channel(bGPdata *gpd, bGPDlayer *gpl); /** * Delete selected frames. */ -bool ED_gpencil_layer_frames_delete(struct bGPDlayer *gpl); +bool ED_gpencil_layer_frames_delete(bGPDlayer *gpl); /** * Duplicate selected frames from given gp-layer. */ -void ED_gpencil_layer_frames_duplicate(struct bGPDlayer *gpl); +void ED_gpencil_layer_frames_duplicate(bGPDlayer *gpl); /** * Merge two layers. */ -void ED_gpencil_layer_merge(struct bGPdata *gpd, - struct bGPDlayer *gpl_src, - struct bGPDlayer *gpl_dst, - bool reverse); +void ED_gpencil_layer_merge(bGPdata *gpd, bGPDlayer *gpl_src, bGPDlayer *gpl_dst, bool reverse); /** * Set keyframe type for selected frames from given gp-layer * * \param type: The type of keyframe (#eBezTriple_KeyframeType) to set selected frames to. */ -void ED_gpencil_layer_frames_keytype_set(struct bGPDlayer *gpl, short type); +void ED_gpencil_layer_frames_keytype_set(bGPDlayer *gpl, short type); /** * Snap selected frames to .... */ -void ED_gpencil_layer_snap_frames(struct bGPDlayer *gpl, struct Scene *scene, short mode); +void ED_gpencil_layer_snap_frames(bGPDlayer *gpl, Scene *scene, short mode); /** * Mirror selected gp-frames on... * TODO: mirror over a specific time. */ -void ED_gpencil_layer_mirror_frames(struct bGPDlayer *gpl, struct Scene *scene, short mode); +void ED_gpencil_layer_mirror_frames(bGPDlayer *gpl, Scene *scene, short mode); /** * This function frees any MEM_calloc'ed copy/paste buffer data. */ -void ED_gpencil_anim_copybuf_free(void); +void ED_gpencil_anim_copybuf_free(); /** * This function adds data to the copy/paste buffer, freeing existing data first * Only the selected GP-layers get their selected keyframes copied. * * Returns whether the copy operation was successful or not. */ -bool ED_gpencil_anim_copybuf_copy(struct bAnimContext *ac); +bool ED_gpencil_anim_copybuf_copy(bAnimContext *ac); /** * Pastes keyframes from buffer, and reports success. */ -bool ED_gpencil_anim_copybuf_paste(struct bAnimContext *ac, short copy_mode); +bool ED_gpencil_anim_copybuf_paste(bAnimContext *ac, short copy_mode); /* ------------ Grease-Pencil Undo System ------------------ */ -int ED_gpencil_session_active(void); +int ED_gpencil_session_active(); /** * \param step: eUndoStepDir. */ -int ED_undo_gpencil_step(struct bContext *C, int step); /* eUndoStepDir. */ +int ED_undo_gpencil_step(bContext *C, int step); /* eUndoStepDir. */ /* ------------ Grease-Pencil Armature ------------------ */ -bool ED_gpencil_add_armature(const struct bContext *C, - struct ReportList *reports, - struct Object *ob, - struct Object *ob_arm); -bool ED_gpencil_add_armature_weights(const struct bContext *C, - struct ReportList *reports, - struct Object *ob, - struct Object *ob_arm, - int mode); +bool ED_gpencil_add_armature(const bContext *C, ReportList *reports, Object *ob, Object *ob_arm); +bool ED_gpencil_add_armature_weights( + const bContext *C, ReportList *reports, Object *ob, Object *ob_arm, int mode); /** * Add Lattice modifier using Parent operator. * Parent GPencil object to Lattice. */ -bool ED_gpencil_add_lattice_modifier(const struct bContext *C, - struct ReportList *reports, - struct Object *ob, - struct Object *ob_latt); +bool ED_gpencil_add_lattice_modifier(const bContext *C, + ReportList *reports, + Object *ob, + Object *ob_latt); /* keep this aligned with gpencil_armature enum */ #define GP_PAR_ARMATURE_NAME 0 @@ -368,16 +346,14 @@ bool ED_gpencil_add_lattice_modifier(const struct bContext *C, /** * Reset parent matrix for all layers. */ -void ED_gpencil_reset_layers_parent(struct Depsgraph *depsgraph, - struct Object *obact, - struct bGPdata *gpd); +void ED_gpencil_reset_layers_parent(Depsgraph *depsgraph, Object *obact, bGPdata *gpd); /* Cursor utilities. */ /** * Draw eraser cursor. */ -void ED_gpencil_brush_draw_eraser(struct Brush *brush, int x, int y); +void ED_gpencil_brush_draw_eraser(Brush *brush, int x, int y); /* ----------- Add Primitive Utilities -------------- */ @@ -390,7 +366,7 @@ void ED_gpencil_brush_draw_eraser(struct Brush *brush, int x, int y); * \param totpoints: Total of points * \param mat: 4x4 transform matrix to transform points into the right coordinate space. */ -void ED_gpencil_stroke_init_data(struct bGPDstroke *gps, +void ED_gpencil_stroke_init_data(bGPDstroke *gps, const float *array, int totpoints, const float mat[4][4]); @@ -398,79 +374,75 @@ void ED_gpencil_stroke_init_data(struct bGPDstroke *gps, /** * Add a Simple empty object with one layer and one color. */ -void ED_gpencil_create_blank(struct bContext *C, struct Object *ob, float mat[4][4]); +void ED_gpencil_create_blank(bContext *C, Object *ob, float mat[4][4]); /** * Add a 2D Suzanne. */ -void ED_gpencil_create_monkey(struct bContext *C, struct Object *ob, float mat[4][4]); +void ED_gpencil_create_monkey(bContext *C, Object *ob, float mat[4][4]); /** * Add a Simple stroke with colors. */ -void ED_gpencil_create_stroke(struct bContext *C, struct Object *ob, float mat[4][4]); +void ED_gpencil_create_stroke(bContext *C, Object *ob, float mat[4][4]); /** * Add a Simple LineArt setup. */ -void ED_gpencil_create_lineart(struct bContext *C, struct Object *ob); +void ED_gpencil_create_lineart(bContext *C, Object *ob); /* ------------ Object Utilities ------------ */ /** * Helper function to create new #OB_GPENCIL_LEGACY Object. */ -struct Object *ED_gpencil_add_object(struct bContext *C, - const float loc[3], - unsigned short local_view_bits); +Object *ED_gpencil_add_object(bContext *C, const float loc[3], unsigned short local_view_bits); /** * Helper function to create default colors and drawing brushes. */ -void ED_gpencil_add_defaults(struct bContext *C, struct Object *ob); +void ED_gpencil_add_defaults(bContext *C, Object *ob); /** * Set object modes. */ -void ED_gpencil_setup_modes(struct bContext *C, struct bGPdata *gpd, int newmode); -bool ED_object_gpencil_exit(struct Main *bmain, struct Object *ob); +void ED_gpencil_setup_modes(bContext *C, bGPdata *gpd, int newmode); +bool ED_object_gpencil_exit(Main *bmain, Object *ob); /** * Reproject all points of the stroke to a plane locked to axis to avoid stroke offset */ -void ED_gpencil_project_stroke_to_plane(const struct Scene *scene, - const struct Object *ob, - const struct RegionView3D *rv3d, - struct bGPDlayer *gpl, - struct bGPDstroke *gps, +void ED_gpencil_project_stroke_to_plane(const Scene *scene, + const Object *ob, + const RegionView3D *rv3d, + bGPDlayer *gpl, + bGPDstroke *gps, const float origin[3], int axis); /** * Reproject given point to a plane locked to axis to avoid stroke offset * \param pt: Point to affect (used for input & output). */ -void ED_gpencil_project_point_to_plane(const struct Scene *scene, - const struct Object *ob, - struct bGPDlayer *gpl, - const struct RegionView3D *rv3d, +void ED_gpencil_project_point_to_plane(const Scene *scene, + const Object *ob, + bGPDlayer *gpl, + const RegionView3D *rv3d, const float origin[3], int axis, - struct bGPDspoint *pt); + bGPDspoint *pt); /** * Get drawing reference point for conversion or projection of the stroke * \param r_vec: Reference point found */ -void ED_gpencil_drawing_reference_get(const struct Scene *scene, - const struct Object *ob, +void ED_gpencil_drawing_reference_get(const Scene *scene, + const Object *ob, char align_flag, float r_vec[3]); -void ED_gpencil_project_stroke_to_view(struct bContext *C, - struct bGPDlayer *gpl, - struct bGPDstroke *gps); +void ED_gpencil_project_stroke_to_view(bContext *C, bGPDlayer *gpl, bGPDstroke *gps); /** * Reproject selected strokes. */ -void ED_gpencil_stroke_reproject(struct Depsgraph *depsgraph, - const struct GP_SpaceConversion *gsc, - struct SnapObjectContext *sctx, - struct bGPDlayer *gpl, - struct bGPDframe *gpf, - struct bGPDstroke *gps, +void ED_gpencil_stroke_reproject(Depsgraph *depsgraph, + const GP_SpaceConversion *gsc, + SnapObjectContext *sctx, + bGPDlayer *gpl, + bGPDframe *gpf, + bGPDstroke *gps, eGP_ReprojectModes mode, bool keep_original, const float offset); @@ -478,47 +450,47 @@ void ED_gpencil_stroke_reproject(struct Depsgraph *depsgraph, /** * Turn brush cursor in on/off. */ -void ED_gpencil_toggle_brush_cursor(struct bContext *C, bool enable, void *customdata); +void ED_gpencil_toggle_brush_cursor(bContext *C, bool enable, void *customdata); /* vertex groups */ /** * Assign points to vertex group. */ -void ED_gpencil_vgroup_assign(struct bContext *C, struct Object *ob, float weight); +void ED_gpencil_vgroup_assign(bContext *C, Object *ob, float weight); /** * Remove points from vertex group. */ -void ED_gpencil_vgroup_remove(struct bContext *C, struct Object *ob); +void ED_gpencil_vgroup_remove(bContext *C, Object *ob); /** * Select points of vertex group. */ -void ED_gpencil_vgroup_select(struct bContext *C, struct Object *ob); +void ED_gpencil_vgroup_select(bContext *C, Object *ob); /** * Un-select points of vertex group. */ -void ED_gpencil_vgroup_deselect(struct bContext *C, struct Object *ob); +void ED_gpencil_vgroup_deselect(bContext *C, Object *ob); /* join objects */ /** * Join objects called from OBJECT_OT_join. */ -int ED_gpencil_join_objects_exec(struct bContext *C, struct wmOperator *op); +int ED_gpencil_join_objects_exec(bContext *C, wmOperator *op); /* texture coordinate utilities */ /** * Convert 2d #tGPspoint to 3d #bGPDspoint. */ -void ED_gpencil_tpoint_to_point(struct ARegion *region, +void ED_gpencil_tpoint_to_point(ARegion *region, float origin[3], - const struct tGPspoint *tpt, - struct bGPDspoint *pt); + const tGPspoint *tpt, + bGPDspoint *pt); /** * Recalculate UV for any stroke using the material. */ -void ED_gpencil_update_color_uv(struct Main *bmain, struct Material *mat); +void ED_gpencil_update_color_uv(Main *bmain, Material *mat); /** * Extend selection to stroke intersections: @@ -528,59 +500,57 @@ void ED_gpencil_update_color_uv(struct Main *bmain, struct Material *mat); * 2 - Hit in point B * 3 - Hit in point A and B */ -int ED_gpencil_select_stroke_segment(struct bGPdata *gpd, - struct bGPDlayer *gpl, - struct bGPDstroke *gps, - struct bGPDspoint *pt, +int ED_gpencil_select_stroke_segment(bGPdata *gpd, + bGPDlayer *gpl, + bGPDstroke *gps, + bGPDspoint *pt, bool select, bool insert, float scale, float r_hita[3], float r_hitb[3]); -void ED_gpencil_select_toggle_all(struct bContext *C, int action); -void ED_gpencil_select_curve_toggle_all(struct bContext *C, int action); +void ED_gpencil_select_toggle_all(bContext *C, int action); +void ED_gpencil_select_curve_toggle_all(bContext *C, int action); /** * Ensure the #tGPspoint buffer (while drawing stroke) * size is enough to save all points of the stroke. */ -struct tGPspoint *ED_gpencil_sbuffer_ensure(struct tGPspoint *buffer_array, - int *buffer_size, - int *buffer_used, - bool clear); -void ED_gpencil_sbuffer_update_eval(struct bGPdata *gpd, struct Object *ob_eval); +tGPspoint *ED_gpencil_sbuffer_ensure(tGPspoint *buffer_array, + int *buffer_size, + int *buffer_used, + bool clear); +void ED_gpencil_sbuffer_update_eval(bGPdata *gpd, Object *ob_eval); /** * Tag all scene grease pencil object to update. */ -void ED_gpencil_tag_scene_gpencil(struct Scene *scene); +void ED_gpencil_tag_scene_gpencil(Scene *scene); /* Vertex color set. */ -void ED_gpencil_fill_vertex_color_set(struct ToolSettings *ts, - struct Brush *brush, - struct bGPDstroke *gps); -void ED_gpencil_point_vertex_color_set(struct ToolSettings *ts, - struct Brush *brush, - struct bGPDspoint *pt, - struct tGPspoint *tpt); -void ED_gpencil_sbuffer_vertex_color_set(struct Depsgraph *depsgraph, - struct Object *ob, - struct ToolSettings *ts, - struct Brush *brush, - struct Material *material, +void ED_gpencil_fill_vertex_color_set(ToolSettings *ts, Brush *brush, bGPDstroke *gps); +void ED_gpencil_point_vertex_color_set(ToolSettings *ts, + Brush *brush, + bGPDspoint *pt, + tGPspoint *tpt); +void ED_gpencil_sbuffer_vertex_color_set(Depsgraph *depsgraph, + Object *ob, + ToolSettings *ts, + Brush *brush, + Material *material, float random_color[3], float pen_pressure); -void ED_gpencil_init_random_settings(struct Brush *brush, +void ED_gpencil_init_random_settings(Brush *brush, const int mval[2], - struct GpRandomSettings *random_settings); + GpRandomSettings *random_settings); /** * Check if the stroke collides with brush. */ -bool ED_gpencil_stroke_check_collision(const struct GP_SpaceConversion *gsc, - struct bGPDstroke *gps, +bool ED_gpencil_stroke_check_collision(const GP_SpaceConversion *gsc, + bGPDstroke *gps, const float mval[2], int radius, const float diff_mat[4][4]); @@ -593,56 +563,53 @@ bool ED_gpencil_stroke_check_collision(const struct GP_SpaceConversion *gsc, * \param diff_mat: View matrix. * \return True if the point is inside. */ -bool ED_gpencil_stroke_point_is_inside(const struct bGPDstroke *gps, - const struct GP_SpaceConversion *gsc, +bool ED_gpencil_stroke_point_is_inside(const bGPDstroke *gps, + const GP_SpaceConversion *gsc, const int mval[2], const float diff_mat[4][4]); /** * Get the bigger 2D bound box points. */ -void ED_gpencil_projected_2d_bound_box(const struct GP_SpaceConversion *gsc, - const struct bGPDstroke *gps, +void ED_gpencil_projected_2d_bound_box(const GP_SpaceConversion *gsc, + const bGPDstroke *gps, const float diff_mat[4][4], float r_min[2], float r_max[2]); -struct bGPDstroke *ED_gpencil_stroke_nearest_to_ends(struct bContext *C, - const struct GP_SpaceConversion *gsc, - struct bGPDlayer *gpl, - struct bGPDframe *gpf, - struct bGPDstroke *gps, - const float ctrl1[2], - const float ctrl2[2], - float radius, - int *r_index); +bGPDstroke *ED_gpencil_stroke_nearest_to_ends(bContext *C, + const GP_SpaceConversion *gsc, + bGPDlayer *gpl, + bGPDframe *gpf, + bGPDstroke *gps, + const float ctrl1[2], + const float ctrl2[2], + float radius, + int *r_index); /** * Get extremes of stroke in 2D using current view. */ -void ED_gpencil_stroke_extremes_to2d(const struct GP_SpaceConversion *gsc, +void ED_gpencil_stroke_extremes_to2d(const GP_SpaceConversion *gsc, const float diff_mat[4][4], - struct bGPDstroke *gps, + bGPDstroke *gps, float r_ctrl1[2], float r_ctrl2[2]); /** * Join two stroke using a contact point index and trimming the rest. */ -struct bGPDstroke *ED_gpencil_stroke_join_and_trim(struct bGPdata *gpd, - struct bGPDframe *gpf, - struct bGPDstroke *gps, - struct bGPDstroke *gps_dst, - int pt_index); +bGPDstroke *ED_gpencil_stroke_join_and_trim( + bGPdata *gpd, bGPDframe *gpf, bGPDstroke *gps, bGPDstroke *gps_dst, int pt_index); /** * Close if the distance between extremes is below threshold. */ -void ED_gpencil_stroke_close_by_distance(struct bGPDstroke *gps, float threshold); +void ED_gpencil_stroke_close_by_distance(bGPDstroke *gps, float threshold); /** * Calculate the brush cursor size in world space. */ -float ED_gpencil_cursor_radius(struct bContext *C, int x, int y); -float ED_gpencil_radial_control_scale(struct bContext *C, - struct Brush *brush, +float ED_gpencil_cursor_radius(bContext *C, int x, int y); +float ED_gpencil_radial_control_scale(bContext *C, + Brush *brush, float initial_value, const int mval[2]); diff --git a/source/blender/editors/include/ED_grease_pencil.hh b/source/blender/editors/include/ED_grease_pencil.hh index eef76ae44f3..c8cc02b6e0f 100644 --- a/source/blender/editors/include/ED_grease_pencil.hh +++ b/source/blender/editors/include/ED_grease_pencil.hh @@ -17,12 +17,9 @@ #include "ED_keyframes_edit.hh" struct bContext; - struct Main; struct Object; - struct KeyframeEditData; - struct wmKeyConfig; enum { @@ -34,17 +31,17 @@ enum { /** \name C Wrappers * \{ */ -void ED_operatortypes_grease_pencil(void); -void ED_operatortypes_grease_pencil_draw(void); -void ED_operatortypes_grease_pencil_frames(void); -void ED_operatortypes_grease_pencil_layers(void); -void ED_operatortypes_grease_pencil_select(void); -void ED_operatortypes_grease_pencil_edit(void); -void ED_keymap_grease_pencil(struct wmKeyConfig *keyconf); +void ED_operatortypes_grease_pencil(); +void ED_operatortypes_grease_pencil_draw(); +void ED_operatortypes_grease_pencil_frames(); +void ED_operatortypes_grease_pencil_layers(); +void ED_operatortypes_grease_pencil_select(); +void ED_operatortypes_grease_pencil_edit(); +void ED_keymap_grease_pencil(wmKeyConfig *keyconf); /** * Get the selection mode for Grease Pencil selection operators: point, stroke, segment. */ -eAttrDomain ED_grease_pencil_selection_domain_get(struct bContext *C); +eAttrDomain ED_grease_pencil_selection_domain_get(bContext *C); /** \} */ @@ -64,7 +61,7 @@ bool select_frame_at(bke::greasepencil::Layer &layer, void select_all_frames(bke::greasepencil::Layer &layer, const short select_mode); -void select_frames_region(struct KeyframeEditData *ked, +void select_frames_region(KeyframeEditData *ked, bke::greasepencil::Layer &layer, const short tool, const short select_mode); diff --git a/source/blender/editors/include/ED_image.hh b/source/blender/editors/include/ED_image.hh index b960b99501d..a22b1b9921d 100644 --- a/source/blender/editors/include/ED_image.hh +++ b/source/blender/editors/include/ED_image.hh @@ -27,8 +27,8 @@ struct wmWindowManager; /* `image_draw.cc` */ -float ED_space_image_zoom_level(const struct View2D *v2d, int grid_dimension); -void ED_space_image_grid_steps(struct SpaceImage *sima, +float ED_space_image_zoom_level(const View2D *v2d, int grid_dimension); +void ED_space_image_grid_steps(SpaceImage *sima, float grid_steps_x[SI_GRID_STEPS_LEN], float grid_steps_y[SI_GRID_STEPS_LEN], int grid_dimension); @@ -43,51 +43,42 @@ float ED_space_image_increment_snap_value(int grid_dimensions, /* `image_edit.cc`, exported for transform. */ -struct Image *ED_space_image(const struct SpaceImage *sima); -void ED_space_image_set(struct Main *bmain, - struct SpaceImage *sima, - struct Image *ima, - bool automatic); -void ED_space_image_sync(struct Main *bmain, Image *image, bool ignore_render_viewer); -void ED_space_image_auto_set(const struct bContext *C, struct SpaceImage *sima); -struct Mask *ED_space_image_get_mask(const struct SpaceImage *sima); -void ED_space_image_set_mask(struct bContext *C, struct SpaceImage *sima, struct Mask *mask); +Image *ED_space_image(const SpaceImage *sima); +void ED_space_image_set(Main *bmain, SpaceImage *sima, Image *ima, bool automatic); +void ED_space_image_sync(Main *bmain, Image *image, bool ignore_render_viewer); +void ED_space_image_auto_set(const bContext *C, SpaceImage *sima); +Mask *ED_space_image_get_mask(const SpaceImage *sima); +void ED_space_image_set_mask(bContext *C, SpaceImage *sima, Mask *mask); /** * Returns mouse position in image space. */ -bool ED_space_image_get_position(struct SpaceImage *sima, - struct ARegion *region, - int mval[2], - float fpos[2]); +bool ED_space_image_get_position(SpaceImage *sima, ARegion *region, int mval[2], float fpos[2]); /** * Returns color in linear space, matching #ED_space_node_color_sample(). */ -bool ED_space_image_color_sample(struct SpaceImage *sima, - struct ARegion *region, - const int mval[2], - float r_col[3], - bool *r_is_data); -struct ImBuf *ED_space_image_acquire_buffer(struct SpaceImage *sima, void **r_lock, int tile); +bool ED_space_image_color_sample( + SpaceImage *sima, ARegion *region, const int mval[2], float r_col[3], bool *r_is_data); +ImBuf *ED_space_image_acquire_buffer(SpaceImage *sima, void **r_lock, int tile); /** * Get the #SpaceImage flag that is valid for the given ibuf. */ -int ED_space_image_get_display_channel_mask(struct ImBuf *ibuf); -void ED_space_image_release_buffer(struct SpaceImage *sima, struct ImBuf *ibuf, void *lock); -bool ED_space_image_has_buffer(struct SpaceImage *sima); +int ED_space_image_get_display_channel_mask(ImBuf *ibuf); +void ED_space_image_release_buffer(SpaceImage *sima, ImBuf *ibuf, void *lock); +bool ED_space_image_has_buffer(SpaceImage *sima); -void ED_space_image_get_size(struct SpaceImage *sima, int *r_width, int *r_height); -void ED_space_image_get_size_fl(struct SpaceImage *sima, float r_size[2]); -void ED_space_image_get_aspect(struct SpaceImage *sima, float *r_aspx, float *r_aspy); -void ED_space_image_get_zoom(struct SpaceImage *sima, - const struct ARegion *region, +void ED_space_image_get_size(SpaceImage *sima, int *r_width, int *r_height); +void ED_space_image_get_size_fl(SpaceImage *sima, float r_size[2]); +void ED_space_image_get_aspect(SpaceImage *sima, float *r_aspx, float *r_aspy); +void ED_space_image_get_zoom(SpaceImage *sima, + const ARegion *region, float *r_zoomx, float *r_zoomy); -void ED_space_image_get_uv_aspect(struct SpaceImage *sima, float *r_aspx, float *r_aspy); +void ED_space_image_get_uv_aspect(SpaceImage *sima, float *r_aspx, float *r_aspy); -void ED_space_image_scopes_update(const struct bContext *C, - struct SpaceImage *sima, - struct ImBuf *ibuf, +void ED_space_image_scopes_update(const bContext *C, + SpaceImage *sima, + ImBuf *ibuf, bool use_view_settings); /** @@ -96,46 +87,34 @@ void ED_space_image_scopes_update(const struct bContext *C, * purpose is to make sure the paint cursor is shown if paint mode is enabled in the image editor. * The paint poll will ensure that the cursor is hidden when not in paint mode. */ -void ED_space_image_paint_update(struct Main *bmain, - struct wmWindowManager *wm, - struct Scene *scene); +void ED_space_image_paint_update(Main *bmain, wmWindowManager *wm, Scene *scene); -void ED_image_get_uv_aspect(struct Image *ima, - struct ImageUser *iuser, - float *r_aspx, - float *r_aspy); +void ED_image_get_uv_aspect(Image *ima, ImageUser *iuser, float *r_aspx, float *r_aspy); /** Takes `event->mval`. */ -void ED_image_mouse_pos(struct SpaceImage *sima, - const struct ARegion *region, - const int mval[2], - float co[2]); -void ED_image_view_center_to_point(struct SpaceImage *sima, float x, float y); -void ED_image_point_pos(struct SpaceImage *sima, - const struct ARegion *region, - float x, - float y, - float *r_x, - float *r_y); -void ED_image_point_pos__reverse(struct SpaceImage *sima, - const struct ARegion *region, +void ED_image_mouse_pos(SpaceImage *sima, const ARegion *region, const int mval[2], float co[2]); +void ED_image_view_center_to_point(SpaceImage *sima, float x, float y); +void ED_image_point_pos( + SpaceImage *sima, const ARegion *region, float x, float y, float *r_x, float *r_y); +void ED_image_point_pos__reverse(SpaceImage *sima, + const ARegion *region, const float co[2], float r_co[2]); /** * This is more a user-level functionality, for going to `next/prev` used slot, * Stepping onto the last unused slot too. */ -bool ED_image_slot_cycle(struct Image *image, int direction); +bool ED_image_slot_cycle(Image *image, int direction); -bool ED_space_image_show_render(const struct SpaceImage *sima); -bool ED_space_image_show_paint(const struct SpaceImage *sima); -bool ED_space_image_show_uvedit(const struct SpaceImage *sima, struct Object *obedit); +bool ED_space_image_show_render(const SpaceImage *sima); +bool ED_space_image_show_paint(const SpaceImage *sima); +bool ED_space_image_show_uvedit(const SpaceImage *sima, Object *obedit); -bool ED_space_image_paint_curve(const struct bContext *C); +bool ED_space_image_paint_curve(const bContext *C); /** * Matches clip function. */ -bool ED_space_image_check_show_maskedit(struct SpaceImage *sima, struct Object *obedit); +bool ED_space_image_check_show_maskedit(SpaceImage *sima, Object *obedit); /* Returns true when the following conditions are met: * - Current space is Image Editor. @@ -143,7 +122,7 @@ bool ED_space_image_check_show_maskedit(struct SpaceImage *sima, struct Object * * - It is set to Mask mode. * * It is not required to have mask opened for editing. */ -bool ED_space_image_maskedit_poll(struct bContext *C); +bool ED_space_image_maskedit_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space is Image Editor. @@ -152,14 +131,14 @@ bool ED_space_image_maskedit_poll(struct bContext *C); * - Mask has visible and editable splines. * * It is not required to have mask opened for editing. */ -bool ED_space_image_maskedit_visible_splines_poll(struct bContext *C); +bool ED_space_image_maskedit_visible_splines_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space is Image Editor. * - The image editor is not an UV Editor. * - It is set to Mask mode. * - The space has mask opened. */ -bool ED_space_image_maskedit_mask_poll(struct bContext *C); +bool ED_space_image_maskedit_mask_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space is Image Editor. @@ -167,15 +146,15 @@ bool ED_space_image_maskedit_mask_poll(struct bContext *C); * - It is set to Mask mode. * - The space has mask opened. * - Mask has visible and editable splines. */ -bool ED_space_image_maskedit_mask_visible_splines_poll(struct bContext *C); +bool ED_space_image_maskedit_mask_visible_splines_poll(bContext *C); -bool ED_space_image_cursor_poll(struct bContext *C); +bool ED_space_image_cursor_poll(bContext *C); /** * Used by node view too. */ -void ED_image_draw_info(struct Scene *scene, - struct ARegion *region, +void ED_image_draw_info(Scene *scene, + ARegion *region, bool color_manage, bool use_default_view, int channels, @@ -185,19 +164,19 @@ void ED_image_draw_info(struct Scene *scene, const float fp[4], const float linearcol[4]); -bool ED_space_image_show_cache(const struct SpaceImage *sima); -bool ED_space_image_show_cache_and_mval_over(const struct SpaceImage *sima, - struct ARegion *region, +bool ED_space_image_show_cache(const SpaceImage *sima); +bool ED_space_image_show_cache_and_mval_over(const SpaceImage *sima, + ARegion *region, const int mval[2]); -bool ED_image_should_save_modified(const struct Main *bmain); -int ED_image_save_all_modified_info(const struct Main *bmain, struct ReportList *reports); -bool ED_image_save_all_modified(const struct bContext *C, struct ReportList *reports); +bool ED_image_should_save_modified(const Main *bmain); +int ED_image_save_all_modified_info(const Main *bmain, ReportList *reports); +bool ED_image_save_all_modified(const bContext *C, ReportList *reports); /* `image_sequence.cc` */ -typedef struct ImageFrameRange { - struct ImageFrameRange *next, *prev; +struct ImageFrameRange { + ImageFrameRange *next, *prev; /** Absolute file path of the first file in the range. */ char filepath[FILE_MAX]; @@ -210,14 +189,12 @@ typedef struct ImageFrameRange { /* Temporary data. */ ListBase frames; -} ImageFrameRange; +}; /** * Used for both images and volume file loading. */ -ListBase ED_image_filesel_detect_sequences(struct Main *bmain, - struct wmOperator *op, - bool detect_udim); +ListBase ED_image_filesel_detect_sequences(Main *bmain, wmOperator *op, bool detect_udim); -bool ED_image_tools_paint_poll(struct bContext *C); -void ED_paint_cursor_start(struct Paint *p, bool (*poll)(struct bContext *C)); +bool ED_image_tools_paint_poll(bContext *C); +void ED_paint_cursor_start(Paint *p, bool (*poll)(bContext *C)); diff --git a/source/blender/editors/include/ED_info.hh b/source/blender/editors/include/ED_info.hh index 02fbe26d91b..1e045e68db2 100644 --- a/source/blender/editors/include/ED_info.hh +++ b/source/blender/editors/include/ED_info.hh @@ -13,28 +13,24 @@ struct wmWindowManager; /* `info_stats.cc` */ -void ED_info_stats_clear(struct wmWindowManager *wm, struct ViewLayer *view_layer); -const char *ED_info_statusbar_string_ex(struct Main *bmain, - struct Scene *scene, - struct ViewLayer *view_layer, +void ED_info_stats_clear(wmWindowManager *wm, ViewLayer *view_layer); +const char *ED_info_statusbar_string_ex(Main *bmain, + Scene *scene, + ViewLayer *view_layer, const char statusbar_flag); -const char *ED_info_statusbar_string(struct Main *bmain, - struct Scene *scene, - struct ViewLayer *view_layer); +const char *ED_info_statusbar_string(Main *bmain, Scene *scene, ViewLayer *view_layer); -const char *ED_info_statistics_string(struct Main *bmain, - struct Scene *scene, - struct ViewLayer *view_layer); +const char *ED_info_statistics_string(Main *bmain, Scene *scene, ViewLayer *view_layer); /** * \param v3d_local: Pass this argument to calculate view-port local statistics. * Note that this must only be used for local-view, otherwise report specific statistics * will be written into the global scene statistics giving incorrect results. */ -void ED_info_draw_stats(struct Main *bmain, - struct Scene *scene, - struct ViewLayer *view_layer, - struct View3D *v3d_local, +void ED_info_draw_stats(Main *bmain, + Scene *scene, + ViewLayer *view_layer, + View3D *v3d_local, int x, int *y, int height); diff --git a/source/blender/editors/include/ED_keyframes_draw.hh b/source/blender/editors/include/ED_keyframes_draw.hh index b5a9a211f34..1e3ee283915 100644 --- a/source/blender/editors/include/ED_keyframes_draw.hh +++ b/source/blender/editors/include/ED_keyframes_draw.hh @@ -27,13 +27,13 @@ struct GreasePencilLayer; /* draw simple diamond-shape keyframe */ /* caller should set up vertex format, bind GPU_SHADER_KEYFRAME_SHAPE, * immBegin(GPU_PRIM_POINTS, n), then call this n times */ -typedef struct KeyframeShaderBindings { +struct KeyframeShaderBindings { uint pos_id; uint size_id; uint color_id; uint outline_color_id; uint flags_id; -} KeyframeShaderBindings; +}; void draw_keyframe_shape(float x, float y, @@ -50,70 +50,70 @@ void draw_keyframe_shape(float x, /* Channel Drawing ------------------ */ /* F-Curve */ -void draw_fcurve_channel(struct AnimKeylistDrawList *draw_list, - struct AnimData *adt, - struct FCurve *fcu, +void draw_fcurve_channel(AnimKeylistDrawList *draw_list, + AnimData *adt, + FCurve *fcu, float ypos, float yscale_fac, int saction_flag); /* Action Group Summary */ -void draw_agroup_channel(struct AnimKeylistDrawList *draw_list, - struct AnimData *adt, - struct bActionGroup *agrp, +void draw_agroup_channel(AnimKeylistDrawList *draw_list, + AnimData *adt, + bActionGroup *agrp, float ypos, float yscale_fac, int saction_flag); /* Action Summary */ -void draw_action_channel(struct AnimKeylistDrawList *draw_list, - struct AnimData *adt, - struct bAction *act, +void draw_action_channel(AnimKeylistDrawList *draw_list, + AnimData *adt, + bAction *act, float ypos, float yscale_fac, int saction_flag); /* Object Summary */ -void draw_object_channel(struct AnimKeylistDrawList *draw_list, - struct bDopeSheet *ads, - struct Object *ob, +void draw_object_channel(AnimKeylistDrawList *draw_list, + bDopeSheet *ads, + Object *ob, float ypos, float yscale_fac, int saction_flag); /* Scene Summary */ -void draw_scene_channel(struct AnimKeylistDrawList *draw_list, - struct bDopeSheet *ads, - struct Scene *sce, +void draw_scene_channel(AnimKeylistDrawList *draw_list, + bDopeSheet *ads, + Scene *sce, float ypos, float yscale_fac, int saction_flag); /* DopeSheet Summary */ -void draw_summary_channel(struct AnimKeylistDrawList *draw_list, - struct bAnimContext *ac, +void draw_summary_channel(AnimKeylistDrawList *draw_list, + bAnimContext *ac, float ypos, float yscale_fac, int saction_flag); /* Grease Pencil cels channels */ -void draw_grease_pencil_cels_channel(struct AnimKeylistDrawList *draw_list, - struct bDopeSheet *ads, - struct GreasePencilLayer *layer, +void draw_grease_pencil_cels_channel(AnimKeylistDrawList *draw_list, + bDopeSheet *ads, + GreasePencilLayer *layer, float ypos, float yscale_fac, int saction_flag); /* Grease Pencil Layer */ -void draw_gpl_channel(struct AnimKeylistDrawList *draw_list, - struct bDopeSheet *ads, - struct bGPDlayer *gpl, +void draw_gpl_channel(AnimKeylistDrawList *draw_list, + bDopeSheet *ads, + bGPDlayer *gpl, float ypos, float yscale_fac, int saction_flag); /* Mask Layer */ -void draw_masklay_channel(struct AnimKeylistDrawList *draw_list, - struct bDopeSheet *ads, - struct MaskLayer *masklay, +void draw_masklay_channel(AnimKeylistDrawList *draw_list, + bDopeSheet *ads, + MaskLayer *masklay, float ypos, float yscale_fac, int saction_flag); -struct AnimKeylistDrawList *ED_keylist_draw_list_create(void); -void ED_keylist_draw_list_flush(struct AnimKeylistDrawList *draw_list, struct View2D *v2d); -void ED_keylist_draw_list_free(struct AnimKeylistDrawList *draw_list); +AnimKeylistDrawList *ED_keylist_draw_list_create(void); +void ED_keylist_draw_list_flush(AnimKeylistDrawList *draw_list, View2D *v2d); +void ED_keylist_draw_list_free(AnimKeylistDrawList *draw_list); diff --git a/source/blender/editors/include/ED_keyframes_edit.hh b/source/blender/editors/include/ED_keyframes_edit.hh index d67a73a2f6f..523d3263a47 100644 --- a/source/blender/editors/include/ED_keyframes_edit.hh +++ b/source/blender/editors/include/ED_keyframes_edit.hh @@ -26,7 +26,7 @@ struct bDopeSheet; * \{ */ /* bezt validation */ -typedef enum eEditKeyframes_Validate { +enum eEditKeyframes_Validate { /* Frame range */ BEZT_OK_FRAME = 1, BEZT_OK_FRAMERANGE, @@ -42,12 +42,12 @@ typedef enum eEditKeyframes_Validate { /* Only for keyframes a certain Dopesheet channel */ BEZT_OK_CHANNEL_LASSO, BEZT_OK_CHANNEL_CIRCLE, -} eEditKeyframes_Validate; +}; /** \} */ /* select modes */ -typedef enum eEditKeyframes_Select { +enum eEditKeyframes_Select { /* SELECT_SUBTRACT for all, followed by SELECT_ADD for some */ SELECT_REPLACE = (1 << 0), /* add ok keyframes to selection */ @@ -57,16 +57,16 @@ typedef enum eEditKeyframes_Select { /* flip ok status of keyframes based on key status */ SELECT_INVERT = (1 << 3), SELECT_EXTEND_RANGE = (1 << 4), -} eEditKeyframes_Select; +}; /* "selection map" building modes */ -typedef enum eEditKeyframes_SelMap { +enum eEditKeyframes_SelMap { SELMAP_MORE = 0, SELMAP_LESS, -} eEditKeyframes_SelMap; +}; /* snapping tools */ -typedef enum eEditKeyframes_Snap { +enum eEditKeyframes_Snap { SNAP_KEYS_CURFRAME = 1, SNAP_KEYS_NEARFRAME, SNAP_KEYS_NEARSEC, @@ -74,40 +74,40 @@ typedef enum eEditKeyframes_Snap { SNAP_KEYS_HORIZONTAL, SNAP_KEYS_VALUE, SNAP_KEYS_TIME, -} eEditKeyframes_Snap; +}; /* equalizing tools */ -typedef enum eEditKeyframes_Equalize { +enum eEditKeyframes_Equalize { EQUALIZE_HANDLES_LEFT = (1 << 0), EQUALIZE_HANDLES_RIGHT = (1 << 1), EQUALIZE_HANDLES_BOTH = (EQUALIZE_HANDLES_LEFT | EQUALIZE_HANDLES_RIGHT), -} eEditKeyframes_Equalize; +}; /* mirroring tools */ -typedef enum eEditKeyframes_Mirror { +enum eEditKeyframes_Mirror { MIRROR_KEYS_CURFRAME = 1, MIRROR_KEYS_YAXIS, MIRROR_KEYS_XAXIS, MIRROR_KEYS_MARKER, MIRROR_KEYS_VALUE, MIRROR_KEYS_TIME, -} eEditKeyframes_Mirror; +}; /* use with BEZT_OK_REGION_LASSO */ -typedef struct KeyframeEdit_LassoData { +struct KeyframeEdit_LassoData { rctf *rectf_scaled; const rctf *rectf_view; const int (*mcoords)[2]; int mcoords_len; -} KeyframeEdit_LassoData; +}; /* use with BEZT_OK_REGION_CIRCLE */ -typedef struct KeyframeEdit_CircleData { +struct KeyframeEdit_CircleData { rctf *rectf_scaled; const rctf *rectf_view; float mval[2]; float radius_squared; -} KeyframeEdit_CircleData; +}; /* ************************************************ */ /* Non-Destructive Editing API (keyframes_edit.cc) */ @@ -117,7 +117,7 @@ typedef struct KeyframeEdit_CircleData { * \{ */ /* which verts of a keyframe is active (after polling) */ -typedef enum eKeyframeVertOk { +enum eKeyframeVertOk { KEYFRAME_NONE = 0, /* 'key' itself is ok */ KEYFRAME_OK_KEY = (1 << 0), @@ -127,10 +127,10 @@ typedef enum eKeyframeVertOk { KEYFRAME_OK_H2 = (1 << 2), /* all flags */ KEYFRAME_OK_ALL = (KEYFRAME_OK_KEY | KEYFRAME_OK_H1 | KEYFRAME_OK_H2), -} eKeyframeVertOk; +}; /* Flags for use during iteration */ -typedef enum eKeyframeIterFlags { +enum eKeyframeIterFlags { /* consider handles in addition to key itself */ KEYFRAME_ITER_INCL_HANDLES = (1 << 0), @@ -147,7 +147,7 @@ typedef enum eKeyframeIterFlags { * or their control point is selected. The selection state will have to be checked in the * iterator callbacks then. */ KEYFRAME_ITER_HANDLES_DEFAULT_INVISIBLE = (1 << 3), -} eKeyframeIterFlags; +}; ENUM_OPERATORS(eKeyframeIterFlags, KEYFRAME_ITER_HANDLES_DEFAULT_INVISIBLE) /** \} */ @@ -160,13 +160,13 @@ ENUM_OPERATORS(eKeyframeIterFlags, KEYFRAME_ITER_HANDLES_DEFAULT_INVISIBLE) * Temporary struct used to store frame time and selection status. * Used for example by `columnselect_action_keys` to select all keyframes in a column. */ -typedef struct CfraElem { +struct CfraElem { struct CfraElem *next, *prev; float cfra; int sel; -} CfraElem; +}; -typedef struct KeyframeEditData { +struct KeyframeEditData { /* generic properties/data access */ /** temp list for storing custom list of data to check */ ListBase list; @@ -192,7 +192,7 @@ typedef struct KeyframeEditData { eKeyframeVertOk curflags; /** settings for iteration process */ eKeyframeIterFlags iterflags; -} KeyframeEditData; +}; /** \} */ @@ -201,9 +201,9 @@ typedef struct KeyframeEditData { * \{ */ /* callback function that refreshes the F-Curve after use */ -typedef void (*FcuEditFunc)(struct FCurve *fcu); +using FcuEditFunc = void (*)(struct FCurve *fcu); /* callback function that operates on the given BezTriple */ -typedef short (*KeyframeEditFunc)(KeyframeEditData *ked, struct BezTriple *bezt); +using KeyframeEditFunc = short (*)(KeyframeEditData *ked, struct BezTriple *bezt); /** \} */ @@ -212,13 +212,13 @@ typedef short (*KeyframeEditFunc)(KeyframeEditData *ked, struct BezTriple *bezt) * \{ */ /* Custom data for remapping one range to another in a fixed way */ -typedef struct KeyframeEditCD_Remap { +struct KeyframeEditCD_Remap { float oldMin, oldMax; /* old range */ float newMin, newMax; /* new range */ -} KeyframeEditCD_Remap; +}; /* Paste options */ -typedef enum eKeyPasteOffset { +enum eKeyPasteOffset { /* paste keys starting at current frame */ KEYFRAME_PASTE_OFFSET_CFRA_START, /* paste keys ending at current frame */ @@ -227,9 +227,9 @@ typedef enum eKeyPasteOffset { KEYFRAME_PASTE_OFFSET_CFRA_RELATIVE, /* paste keys from original time */ KEYFRAME_PASTE_OFFSET_NONE, -} eKeyPasteOffset; +}; -typedef enum eKeyPasteValueOffset { +enum eKeyPasteValueOffset { /* Paste keys with the first key matching the key left of the cursor. */ KEYFRAME_PASTE_VALUE_OFFSET_LEFT_KEY, /* Paste keys with the last key matching the key right of the cursor. */ @@ -240,9 +240,9 @@ typedef enum eKeyPasteValueOffset { KEYFRAME_PASTE_VALUE_OFFSET_CURSOR, /* Paste keys with the exact copied value. */ KEYFRAME_PASTE_VALUE_OFFSET_NONE, -} eKeyPasteValueOffset; +}; -typedef enum eKeyMergeMode { +enum eKeyMergeMode { /* overlay existing with new keys */ KEYFRAME_PASTE_MERGE_MIX, /* replace entire fcurve */ @@ -251,17 +251,17 @@ typedef enum eKeyMergeMode { KEYFRAME_PASTE_MERGE_OVER_RANGE, /* overwrite keys in pasted range (use all keyframe start & end for range) */ KEYFRAME_PASTE_MERGE_OVER_RANGE_ALL, -} eKeyMergeMode; +}; /* Possible errors occurring while pasting keys. */ -typedef enum eKeyPasteError { +enum eKeyPasteError { /* No errors occurred */ KEYFRAME_PASTE_OK, /* Nothing was copied */ KEYFRAME_PASTE_NOTHING_TO_PASTE, /* No F-curves was selected to paste into. */ KEYFRAME_PASTE_NOWHERE_TO_PASTE -} eKeyPasteError; +}; /** \} */ @@ -279,7 +279,7 @@ typedef enum eKeyPasteError { * (i.e. when filters have been chosen to explicitly use this). */ short ANIM_fcurve_keyframes_loop(KeyframeEditData *ked, - struct FCurve *fcu, + FCurve *fcu, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb); @@ -290,7 +290,7 @@ short ANIM_fcurve_keyframes_loop(KeyframeEditData *ked, * \param flatten: Makes the keyframes' handles the same value as the keyframe, * flattening the curve at that point. */ -void ANIM_fcurve_equalize_keyframes_loop(struct FCurve *fcu, +void ANIM_fcurve_equalize_keyframes_loop(FCurve *fcu, eEditKeyframes_Equalize mode, float handle_length, bool flatten); @@ -299,8 +299,8 @@ void ANIM_fcurve_equalize_keyframes_loop(struct FCurve *fcu, * Function for working with any type (i.e. one of the known types) of animation channel. */ short ANIM_animchannel_keyframes_loop(KeyframeEditData *ked, - struct bDopeSheet *ads, - struct bAnimListElem *ale, + bDopeSheet *ads, + bAnimListElem *ale, KeyframeEditFunc key_ok, KeyframeEditFunc key_cb, FcuEditFunc fcu_cb); @@ -309,7 +309,7 @@ short ANIM_animchannel_keyframes_loop(KeyframeEditData *ked, * \param keytype: is #eAnim_KeyType. */ short ANIM_animchanneldata_keyframes_loop(KeyframeEditData *ked, - struct bDopeSheet *ads, + bDopeSheet *ads, void *data, int keytype, KeyframeEditFunc key_ok, @@ -320,14 +320,14 @@ short ANIM_animchanneldata_keyframes_loop(KeyframeEditData *ked, * Calls callback_fn() for each keyframe in each fcurve in the filtered animation context. * Assumes the callback updates keys. */ -void ANIM_animdata_keyframe_callback(struct bAnimContext *ac, +void ANIM_animdata_keyframe_callback(bAnimContext *ac, eAnimFilter_Flags filter, KeyframeEditFunc callback_fn); /** * Functions for making sure all keyframes are in good order. */ -void ANIM_editkeyframes_refresh(struct bAnimContext *ac); +void ANIM_editkeyframes_refresh(bAnimContext *ac); /** \} */ @@ -372,7 +372,7 @@ KeyframeEditFunc ANIM_editkeyframes_buildselmap(short mode); * Change the selection status of the keyframe based on the map entry for this vert * requires: `ked->custom = char[]` of length `fcurve->totvert`. */ -short bezt_selmap_flush(KeyframeEditData *ked, struct BezTriple *bezt); +short bezt_selmap_flush(KeyframeEditData *ked, BezTriple *bezt); /** \} */ @@ -383,18 +383,18 @@ short bezt_selmap_flush(KeyframeEditData *ked, struct BezTriple *bezt); /** * Used to calculate the average location of all relevant BezTriples by summing their locations. */ -short bezt_calc_average(KeyframeEditData *ked, struct BezTriple *bezt); +short bezt_calc_average(KeyframeEditData *ked, BezTriple *bezt); /** * Used to extract a set of cfra-elems from the keyframes. */ -short bezt_to_cfraelem(KeyframeEditData *ked, struct BezTriple *bezt); +short bezt_to_cfraelem(KeyframeEditData *ked, BezTriple *bezt); /** * Used to remap times from one range to another. * requires: `ked->custom = KeyframeEditCD_Remap`. */ -void bezt_remap_times(KeyframeEditData *ked, struct BezTriple *bezt); +void bezt_remap_times(KeyframeEditData *ked, BezTriple *bezt); /** \} */ @@ -412,13 +412,13 @@ bool keyframe_region_circle_test(const KeyframeEdit_CircleData *data_circle, con /* ************************************************ */ /* Destructive Editing API `keyframes_general.cc`. */ -bool duplicate_fcurve_keys(struct FCurve *fcu); -float get_default_rna_value(struct FCurve *fcu, struct PropertyRNA *prop, struct PointerRNA *ptr); +bool duplicate_fcurve_keys(FCurve *fcu); +float get_default_rna_value(FCurve *fcu, PropertyRNA *prop, PointerRNA *ptr); -typedef struct FCurveSegment { - struct FCurveSegment *next, *prev; +struct FCurveSegment { + FCurveSegment *next, *prev; int start_index, length; -} FCurveSegment; +}; /** * Return a list of #FCurveSegment with a start index and a length. @@ -426,15 +426,10 @@ typedef struct FCurveSegment { * Keys that have BEZT_FLAG_IGNORE_TAG set are treated as unselected. * The caller is responsible for freeing the memory. */ -ListBase find_fcurve_segments(struct FCurve *fcu); -void clean_fcurve(struct bAnimContext *ac, - struct bAnimListElem *ale, - float thresh, - bool cleardefault); -void blend_to_neighbor_fcurve_segment(struct FCurve *fcu, - struct FCurveSegment *segment, - float factor); -void breakdown_fcurve_segment(struct FCurve *fcu, struct FCurveSegment *segment, float factor); +ListBase find_fcurve_segments(FCurve *fcu); +void clean_fcurve(bAnimContext *ac, bAnimListElem *ale, float thresh, bool cleardefault); +void blend_to_neighbor_fcurve_segment(FCurve *fcu, FCurveSegment *segment, float factor); +void breakdown_fcurve_segment(FCurve *fcu, FCurveSegment *segment, float factor); /** * Get a 1D gauss kernel. Since the kernel is symmetrical, only calculates the positive side. @@ -443,48 +438,48 @@ void breakdown_fcurve_segment(struct FCurve *fcu, struct FCurveSegment *segment, */ void ED_ANIM_get_1d_gauss_kernel(const float sigma, int kernel_size, double *r_kernel); -struct ButterworthCoefficients *ED_anim_allocate_butterworth_coefficients(const int filter_order); -void ED_anim_free_butterworth_coefficients(struct ButterworthCoefficients *bw_coeff); +ButterworthCoefficients *ED_anim_allocate_butterworth_coefficients(const int filter_order); +void ED_anim_free_butterworth_coefficients(ButterworthCoefficients *bw_coeff); void ED_anim_calculate_butterworth_coefficients(float cutoff, float sampling_frequency, - struct ButterworthCoefficients *bw_coeff); -void butterworth_smooth_fcurve_segment(struct FCurve *fcu, - struct FCurveSegment *segment, + ButterworthCoefficients *bw_coeff); +void butterworth_smooth_fcurve_segment(FCurve *fcu, + FCurveSegment *segment, float *samples, int sample_count, float factor, int blend_in_out, int sample_rate, - struct ButterworthCoefficients *bw_coeff); -void smooth_fcurve_segment(struct FCurve *fcu, - struct FCurveSegment *segment, + ButterworthCoefficients *bw_coeff); +void smooth_fcurve_segment(FCurve *fcu, + FCurveSegment *segment, float *samples, float factor, int kernel_size, double *kernel); -void ease_fcurve_segment(struct FCurve *fcu, struct FCurveSegment *segment, float factor); -bool decimate_fcurve(struct bAnimListElem *ale, float remove_ratio, float error_sq_max); +void ease_fcurve_segment(FCurve *fcu, FCurveSegment *segment, float factor); +bool decimate_fcurve(bAnimListElem *ale, float remove_ratio, float error_sq_max); /** * Blends the selected keyframes to the default value of the property the F-curve drives. */ -void blend_to_default_fcurve(struct PointerRNA *id_ptr, struct FCurve *fcu, float factor); +void blend_to_default_fcurve(PointerRNA *id_ptr, FCurve *fcu, float factor); /** * Use a weighted moving-means method to reduce intensity of fluctuations. */ -void smooth_fcurve(struct FCurve *fcu); -void sample_fcurve(struct FCurve *fcu); +void smooth_fcurve(FCurve *fcu); +void sample_fcurve(FCurve *fcu); /** * \param sample_rate: indicates how many samples per frame should be generated. */ void sample_fcurve_segment( - struct FCurve *fcu, float start_frame, int sample_rate, float *r_samples, int sample_count); + FCurve *fcu, float start_frame, int sample_rate, float *r_samples, int sample_count); /* ----------- */ -void ANIM_fcurves_copybuf_free(void); -short copy_animedit_keys(struct bAnimContext *ac, ListBase *anim_data); -eKeyPasteError paste_animedit_keys(struct bAnimContext *ac, +void ANIM_fcurves_copybuf_free(); +short copy_animedit_keys(bAnimContext *ac, ListBase *anim_data); +eKeyPasteError paste_animedit_keys(bAnimContext *ac, ListBase *anim_data, eKeyPasteOffset offset_mode, eKeyPasteValueOffset value_offset_mode, diff --git a/source/blender/editors/include/ED_keyframes_keylist.hh b/source/blender/editors/include/ED_keyframes_keylist.hh index da59e1652c0..81af9cff306 100644 --- a/source/blender/editors/include/ED_keyframes_keylist.hh +++ b/source/blender/editors/include/ED_keyframes_keylist.hh @@ -26,7 +26,7 @@ struct GreasePencilLayer; struct AnimKeylist; /* Information about the stretch of time from current to the next column */ -typedef struct ActKeyBlockInfo { +struct ActKeyBlockInfo { /* Combination of flags from all curves. */ short flag; /* Mask of flags that differ between curves. */ @@ -34,18 +34,18 @@ typedef struct ActKeyBlockInfo { /* Selection flag. */ char sel; -} ActKeyBlockInfo; +}; /* Keyframe Column Struct */ -typedef struct ActKeyColumn { +struct ActKeyColumn { /* ListBase linkage */ - struct ActKeyColumn *next, *prev; + ActKeyColumn *next, *prev; /* sorting-tree linkage */ /** 'children' of this node, less than and greater than it (respectively) */ - struct ActKeyColumn *left, *right; + ActKeyColumn *left, *right; /** parent of this node in the tree */ - struct ActKeyColumn *parent; + ActKeyColumn *parent; /** DLRB_BLACK or DLRB_RED */ char tree_col; @@ -64,10 +64,10 @@ typedef struct ActKeyColumn { /* number of curves and keys in this column */ short totcurve, totkey, totblock; -} ActKeyColumn; +}; /* ActKeyBlockInfo - Flag */ -typedef enum eActKeyBlock_Hold { +enum eActKeyBlock_Hold { /* Key block represents a moving hold */ ACTKEYBLOCK_FLAG_MOVING_HOLD = (1 << 0), /* Key block represents a static hold */ @@ -78,22 +78,22 @@ typedef enum eActKeyBlock_Hold { ACTKEYBLOCK_FLAG_NON_BEZIER = (1 << 3), /* The block is grease pencil */ ACTKEYBLOCK_FLAG_GPENCIL = (1 << 4), -} eActKeyBlock_Flag; +}; /* *********************** Keyframe Drawing ****************************** */ /* options for keyframe shape drawing */ -typedef enum eKeyframeShapeDrawOpts { +enum eKeyframeShapeDrawOpts { /* only the border */ KEYFRAME_SHAPE_FRAME = 0, /* only the inside filling */ KEYFRAME_SHAPE_INSIDE, /* the whole thing */ KEYFRAME_SHAPE_BOTH, -} eKeyframeShapeDrawOpts; +}; /* Handle type. */ -typedef enum eKeyframeHandleDrawOpts { +enum eKeyframeHandleDrawOpts { /* Don't draw */ KEYFRAME_HANDLE_NONE = 0, /* Various marks in order of increasing display priority. */ @@ -102,10 +102,10 @@ typedef enum eKeyframeHandleDrawOpts { KEYFRAME_HANDLE_VECTOR, KEYFRAME_HANDLE_ALIGNED, KEYFRAME_HANDLE_FREE, -} eKeyframeHandleDrawOpts; +}; /* Extreme type. */ -typedef enum eKeyframeExtremeDrawOpts { +enum eKeyframeExtremeDrawOpts { KEYFRAME_EXTREME_NONE = 0, /* Minimum/maximum present. */ KEYFRAME_EXTREME_MIN = (1 << 0), @@ -114,80 +114,59 @@ typedef enum eKeyframeExtremeDrawOpts { KEYFRAME_EXTREME_MIXED = (1 << 2), /* Both neighbors are equal to this key. */ KEYFRAME_EXTREME_FLAT = (1 << 3), -} eKeyframeExtremeDrawOpts; +}; /* ******************************* Methods ****************************** */ -struct AnimKeylist *ED_keylist_create(void); -void ED_keylist_free(struct AnimKeylist *keylist); -void ED_keylist_prepare_for_direct_access(struct AnimKeylist *keylist); -const struct ActKeyColumn *ED_keylist_find_exact(const struct AnimKeylist *keylist, float cfra); -const struct ActKeyColumn *ED_keylist_find_next(const struct AnimKeylist *keylist, float cfra); -const struct ActKeyColumn *ED_keylist_find_prev(const struct AnimKeylist *keylist, float cfra); -const struct ActKeyColumn *ED_keylist_find_any_between(const struct AnimKeylist *keylist, - const Range2f frame_range); -bool ED_keylist_is_empty(const struct AnimKeylist *keylist); -const struct ListBase /* ActKeyColumn */ *ED_keylist_listbase(const struct AnimKeylist *keylist); -bool ED_keylist_all_keys_frame_range(const struct AnimKeylist *keylist, Range2f *r_frame_range); +AnimKeylist *ED_keylist_create(); +void ED_keylist_free(AnimKeylist *keylist); +void ED_keylist_prepare_for_direct_access(AnimKeylist *keylist); +const ActKeyColumn *ED_keylist_find_exact(const AnimKeylist *keylist, float cfra); +const ActKeyColumn *ED_keylist_find_next(const AnimKeylist *keylist, float cfra); +const ActKeyColumn *ED_keylist_find_prev(const AnimKeylist *keylist, float cfra); +const ActKeyColumn *ED_keylist_find_any_between(const AnimKeylist *keylist, + const Range2f frame_range); +bool ED_keylist_is_empty(const AnimKeylist *keylist); +const ListBase /* ActKeyColumn */ *ED_keylist_listbase(const AnimKeylist *keylist); +bool ED_keylist_all_keys_frame_range(const AnimKeylist *keylist, Range2f *r_frame_range); /* Return the selected keyframe's range. If none are selected, return False and * do not affect the frame range. */ -bool ED_keylist_selected_keys_frame_range(const struct AnimKeylist *keylist, - Range2f *r_frame_range); -const ActKeyColumn *ED_keylist_array(const struct AnimKeylist *keylist); -int64_t ED_keylist_array_len(const struct AnimKeylist *keylist); +bool ED_keylist_selected_keys_frame_range(const AnimKeylist *keylist, Range2f *r_frame_range); +const ActKeyColumn *ED_keylist_array(const AnimKeylist *keylist); +int64_t ED_keylist_array_len(const AnimKeylist *keylist); /* Key-data Generation --------------- */ /* F-Curve */ -void fcurve_to_keylist(struct AnimData *adt, - struct FCurve *fcu, - struct AnimKeylist *keylist, - int saction_flag); +void fcurve_to_keylist(AnimData *adt, FCurve *fcu, AnimKeylist *keylist, int saction_flag); /* Action Group */ -void agroup_to_keylist(struct AnimData *adt, - struct bActionGroup *agrp, - struct AnimKeylist *keylist, - int saction_flag); +void agroup_to_keylist(AnimData *adt, bActionGroup *agrp, AnimKeylist *keylist, int saction_flag); /* Action */ -void action_to_keylist(struct AnimData *adt, - struct bAction *act, - struct AnimKeylist *keylist, - int saction_flag); +void action_to_keylist(AnimData *adt, bAction *act, AnimKeylist *keylist, int saction_flag); /* Object */ -void ob_to_keylist(struct bDopeSheet *ads, - struct Object *ob, - struct AnimKeylist *keylist, - int saction_flag); +void ob_to_keylist(bDopeSheet *ads, Object *ob, AnimKeylist *keylist, int saction_flag); /* Cache File */ -void cachefile_to_keylist(struct bDopeSheet *ads, - struct CacheFile *cache_file, - struct AnimKeylist *keylist, +void cachefile_to_keylist(bDopeSheet *ads, + CacheFile *cache_file, + AnimKeylist *keylist, int saction_flag); /* Scene */ -void scene_to_keylist(struct bDopeSheet *ads, - struct Scene *sce, - struct AnimKeylist *keylist, - int saction_flag); +void scene_to_keylist(bDopeSheet *ads, Scene *sce, AnimKeylist *keylist, int saction_flag); /* DopeSheet Summary */ -void summary_to_keylist(struct bAnimContext *ac, struct AnimKeylist *keylist, int saction_flag); +void summary_to_keylist(bAnimContext *ac, AnimKeylist *keylist, int saction_flag); /* Grease Pencil datablock summary */ -void gpencil_to_keylist(struct bDopeSheet *ads, - struct bGPdata *gpd, - struct AnimKeylist *keylist, - bool active); +void gpencil_to_keylist(bDopeSheet *ads, bGPdata *gpd, AnimKeylist *keylist, bool active); /* Grease Pencil Cels */ -void grease_pencil_cels_to_keylist(struct AnimData *adt, - struct GreasePencilLayer *layer, - struct AnimKeylist *keylist, +void grease_pencil_cels_to_keylist(AnimData *adt, + GreasePencilLayer *layer, + AnimKeylist *keylist, int saction_flag); /* Grease Pencil Layer */ -void gpl_to_keylist(struct bDopeSheet *ads, struct bGPDlayer *gpl, struct AnimKeylist *keylist); +void gpl_to_keylist(bDopeSheet *ads, bGPDlayer *gpl, AnimKeylist *keylist); /* Mask */ -void mask_to_keylist(struct bDopeSheet *ads, - struct MaskLayer *masklay, - struct AnimKeylist *keylist); +void mask_to_keylist(bDopeSheet *ads, MaskLayer *masklay, AnimKeylist *keylist); /* ActKeyColumn API ---------------- */ diff --git a/source/blender/editors/include/ED_keyframing.hh b/source/blender/editors/include/ED_keyframing.hh index f01816c4c4b..63d423ca4bf 100644 --- a/source/blender/editors/include/ED_keyframing.hh +++ b/source/blender/editors/include/ED_keyframing.hh @@ -43,7 +43,7 @@ struct NlaKeyframingContext; * \param use_autokey_mode: include settings from key-framing mode in the result * (i.e. replace only). */ -eInsertKeyFlags ANIM_get_keyframing_flags(struct Scene *scene, bool use_autokey_mode); +eInsertKeyFlags ANIM_get_keyframing_flags(Scene *scene, bool use_autokey_mode); /* -------- */ @@ -51,24 +51,24 @@ eInsertKeyFlags ANIM_get_keyframing_flags(struct Scene *scene, bool use_autokey_ * Get (or add relevant data to be able to do so) the Active Action for the given * Animation Data block, given an ID block where the Animation Data should reside. */ -struct bAction *ED_id_action_ensure(struct Main *bmain, struct ID *id); +bAction *ED_id_action_ensure(Main *bmain, ID *id); /** * Get (or add relevant data to be able to do so) F-Curve from the Active Action, * for the given Animation Data block. This assumes that all the destinations are valid. */ -struct FCurve *ED_action_fcurve_ensure(struct Main *bmain, - struct bAction *act, - const char group[], - struct PointerRNA *ptr, - const char rna_path[], - int array_index); +FCurve *ED_action_fcurve_ensure(Main *bmain, + bAction *act, + const char group[], + PointerRNA *ptr, + const char rna_path[], + int array_index); /** * Find the F-Curve from the Active Action, * for the given Animation Data block. This assumes that all the destinations are valid. */ -struct FCurve *ED_action_fcurve_find(struct bAction *act, const char rna_path[], int array_index); +FCurve *ED_action_fcurve_find(bAction *act, const char rna_path[], int array_index); /* -------- */ @@ -78,10 +78,7 @@ struct FCurve *ED_action_fcurve_find(struct bAction *act, const char rna_path[], * Update integer/discrete flags of the FCurve (used when creating/inserting keyframes, * but also through RNA when editing an ID prop, see #37103). */ -void update_autoflags_fcurve(struct FCurve *fcu, - struct bContext *C, - struct ReportList *reports, - struct PointerRNA *ptr); +void update_autoflags_fcurve(FCurve *fcu, bContext *C, ReportList *reports, PointerRNA *ptr); /* -------- */ @@ -97,7 +94,7 @@ void update_autoflags_fcurve(struct FCurve *fcu, * * \note any recalculate of the F-Curve that needs to be done will need to be done by the caller. */ -int insert_bezt_fcurve(struct FCurve *fcu, const struct BezTriple *bezt, eInsertKeyFlags flag); +int insert_bezt_fcurve(FCurve *fcu, const BezTriple *bezt, eInsertKeyFlags flag); /** * \brief Main Key-framing API call. @@ -114,11 +111,8 @@ int insert_bezt_fcurve(struct FCurve *fcu, const struct BezTriple *bezt, eInsert * \param flag: Optional flags (#eInsertKeyFlags) for controlling how keys get added * and/or whether updates get done. */ -int insert_vert_fcurve(struct FCurve *fcu, - float x, - float y, - eBezTriple_KeyframeType keyframe_type, - eInsertKeyFlags flag); +int insert_vert_fcurve( + FCurve *fcu, float x, float y, eBezTriple_KeyframeType keyframe_type, eInsertKeyFlags flag); /** * Add the given number of keyframes to the FCurve. Their coordinates are @@ -129,7 +123,7 @@ int insert_vert_fcurve(struct FCurve *fcu, * This can be used to allocate all the keys at once, and then update them * afterwards. */ -void ED_keyframes_add(struct FCurve *fcu, int num_keys_to_add); +void ED_keyframes_add(FCurve *fcu, int num_keys_to_add); /* -------- */ @@ -149,13 +143,13 @@ void ED_keyframes_add(struct FCurve *fcu, int num_keys_to_add); * and extra keyframe filtering. * \return Success. */ -bool insert_keyframe_direct(struct ReportList *reports, - struct PointerRNA ptr, - struct PropertyRNA *prop, - struct FCurve *fcu, - const struct AnimationEvalContext *anim_eval_context, +bool insert_keyframe_direct(ReportList *reports, + PointerRNA ptr, + PropertyRNA *prop, + FCurve *fcu, + const AnimationEvalContext *anim_eval_context, eBezTriple_KeyframeType keytype, - struct NlaKeyframingContext *nla, + NlaKeyframingContext *nla, eInsertKeyFlags flag); /* -------- */ @@ -172,16 +166,16 @@ bool insert_keyframe_direct(struct ReportList *reports, * \param array_index: The index to key or -1 keys all array indices. * \return The number of key-frames inserted. */ -int insert_keyframe(struct Main *bmain, - struct ReportList *reports, - struct ID *id, - struct bAction *act, +int insert_keyframe(Main *bmain, + ReportList *reports, + ID *id, + bAction *act, const char group[], const char rna_path[], int array_index, - const struct AnimationEvalContext *anim_eval_context, + const AnimationEvalContext *anim_eval_context, eBezTriple_KeyframeType keytype, - struct ListBase *nla_cache, + ListBase *nla_cache, eInsertKeyFlags flag); /** @@ -191,10 +185,10 @@ int insert_keyframe(struct Main *bmain, * Will perform checks just in case. * \return The number of key-frames deleted. */ -int delete_keyframe(struct Main *bmain, - struct ReportList *reports, - struct ID *id, - struct bAction *act, +int delete_keyframe(Main *bmain, + ReportList *reports, + ID *id, + bAction *act, const char rna_path[], int array_index, float cfra); @@ -210,20 +204,18 @@ struct ExtensionRNA; struct KeyingSetInfo; /* Polling Callback for KeyingSets */ -typedef bool (*cbKeyingSet_Poll)(struct KeyingSetInfo *ksi, struct bContext *C); +using cbKeyingSet_Poll = bool (*)(KeyingSetInfo *ksi, bContext *C); /* Context Iterator Callback for KeyingSets */ -typedef void (*cbKeyingSet_Iterator)(struct KeyingSetInfo *ksi, - struct bContext *C, - struct KeyingSet *ks); +using cbKeyingSet_Iterator = void (*)(KeyingSetInfo *ksi, bContext *C, KeyingSet *ks); /* Property Specifier Callback for KeyingSets (called from iterators) */ -typedef void (*cbKeyingSet_Generate)(struct KeyingSetInfo *ksi, - struct bContext *C, - struct KeyingSet *ks, - struct PointerRNA *ptr); +using cbKeyingSet_Generate = void (*)(KeyingSetInfo *ksi, + bContext *C, + KeyingSet *ks, + PointerRNA *ptr); /* Callback info for 'Procedural' KeyingSets to use */ -typedef struct KeyingSetInfo { - struct KeyingSetInfo *next, *prev; +struct KeyingSetInfo { + KeyingSetInfo *next, *prev; /* info */ /* identifier used for class name, which KeyingSet instances reference as "Typeinfo Name" */ @@ -249,18 +241,15 @@ typedef struct KeyingSetInfo { cbKeyingSet_Generate generate; /* RNA integration */ - struct ExtensionRNA rna_ext; -} KeyingSetInfo; + ExtensionRNA rna_ext; +}; /* -------- */ /** * Add another data source for Relative Keying Sets to be evaluated with. */ -void ANIM_relative_keyingset_add_source(ListBase *dsources, - struct ID *id, - struct StructRNA *srna, - void *data); +void ANIM_relative_keyingset_add_source(ListBase *dsources, ID *id, StructRNA *srna, void *data); /* mode for modify_keyframes */ typedef enum eModifyKey_Modes { @@ -284,9 +273,7 @@ typedef enum eModifyKey_Returns { * * \return 0 if succeeded, otherwise an error code: #eModifyKey_Returns. */ -eModifyKey_Returns ANIM_validate_keyingset(struct bContext *C, - ListBase *dsources, - struct KeyingSet *ks); +eModifyKey_Returns ANIM_validate_keyingset(bContext *C, ListBase *dsources, KeyingSet *ks); /** * Use the specified #KeyingSet and context info (if required) @@ -298,12 +285,8 @@ eModifyKey_Returns ANIM_validate_keyingset(struct bContext *C, * \returns the number of channels that key-frames were added or * an #eModifyKey_Returns value (always a negative number). */ -int ANIM_apply_keyingset(struct bContext *C, - ListBase *dsources, - struct bAction *act, - struct KeyingSet *ks, - short mode, - float cfra); +int ANIM_apply_keyingset( + bContext *C, ListBase *dsources, bAction *act, KeyingSet *ks, short mode, float cfra); /* -------- */ @@ -313,7 +296,7 @@ int ANIM_apply_keyingset(struct bContext *C, * \return The first builtin #KeyingSet with the given name, which occurs after the given one * (or start of list if none given). */ -struct KeyingSet *ANIM_builtin_keyingset_get_named(struct KeyingSet *prevKS, const char name[]); +KeyingSet *ANIM_builtin_keyingset_get_named(KeyingSet *prevKS, const char name[]); /** * Find KeyingSet type info given a name. @@ -323,7 +306,7 @@ KeyingSetInfo *ANIM_keyingset_info_find_name(const char name[]); /** * Check if the ID appears in the paths specified by the #KeyingSet. */ -bool ANIM_keyingset_find_id(struct KeyingSet *ks, ID *id); +bool ANIM_keyingset_find_id(KeyingSet *ks, ID *id); /** * Add the given KeyingSetInfo to the list of type infos, @@ -334,7 +317,7 @@ void ANIM_keyingset_info_register(KeyingSetInfo *ksi); * Remove the given #KeyingSetInfo from the list of type infos, * and also remove the builtin set if appropriate. */ -void ANIM_keyingset_info_unregister(struct Main *bmain, KeyingSetInfo *ksi); +void ANIM_keyingset_info_unregister(Main *bmain, KeyingSetInfo *ksi); /* cleanup on exit */ /* --------------- */ @@ -346,39 +329,38 @@ void ANIM_keyingset_infos_exit(void); /** * Get the active Keying Set for the given scene. */ -struct KeyingSet *ANIM_scene_get_active_keyingset(const struct Scene *scene); +KeyingSet *ANIM_scene_get_active_keyingset(const Scene *scene); /** * Get the index of the Keying Set provided, for the given Scene. */ -int ANIM_scene_get_keyingset_index(struct Scene *scene, struct KeyingSet *ks); +int ANIM_scene_get_keyingset_index(Scene *scene, KeyingSet *ks); /** * Get Keying Set to use for Auto-Key-Framing some transforms. */ -struct KeyingSet *ANIM_get_keyingset_for_autokeying(const struct Scene *scene, - const char *transformKSName); +KeyingSet *ANIM_get_keyingset_for_autokeying(const Scene *scene, const char *transformKSName); -void ANIM_keyingset_visit_for_search(const struct bContext *C, - struct PointerRNA *ptr, - struct PropertyRNA *prop, +void ANIM_keyingset_visit_for_search(const bContext *C, + PointerRNA *ptr, + PropertyRNA *prop, const char *edit_text, StringPropertySearchVisitFunc visit_fn, void *visit_user_data); -void ANIM_keyingset_visit_for_search_no_poll(const struct bContext *C, - struct PointerRNA *ptr, - struct PropertyRNA *prop, +void ANIM_keyingset_visit_for_search_no_poll(const bContext *C, + PointerRNA *ptr, + PropertyRNA *prop, const char *edit_text, StringPropertySearchVisitFunc visit_fn, void *visit_user_data); /** * Dynamically populate an enum of Keying Sets. */ -const struct EnumPropertyItem *ANIM_keying_sets_enum_itemf(struct bContext *C, - struct PointerRNA *ptr, - struct PropertyRNA *prop, - bool *r_free); +const EnumPropertyItem *ANIM_keying_sets_enum_itemf(bContext *C, + PointerRNA *ptr, + PropertyRNA *prop, + bool *r_free); /** * Get the keying set from enum values generated in #ANIM_keying_sets_enum_itemf. @@ -389,13 +371,13 @@ const struct EnumPropertyItem *ANIM_keying_sets_enum_itemf(struct bContext *C, * - > 0: use a user-defined Keying Set from the active scene. * - < 0: use a builtin Keying Set. */ -KeyingSet *ANIM_keyingset_get_from_enum_type(struct Scene *scene, int type); -KeyingSet *ANIM_keyingset_get_from_idname(struct Scene *scene, const char *idname); +KeyingSet *ANIM_keyingset_get_from_enum_type(Scene *scene, int type); +KeyingSet *ANIM_keyingset_get_from_idname(Scene *scene, const char *idname); /** * Check if #KeyingSet can be used in the current context. */ -bool ANIM_keyingset_context_ok_poll(struct bContext *C, struct KeyingSet *ks); +bool ANIM_keyingset_context_ok_poll(bContext *C, KeyingSet *ks); /** \} */ @@ -404,15 +386,15 @@ bool ANIM_keyingset_context_ok_poll(struct bContext *C, struct KeyingSet *ks); * \{ */ /* Flags for use by driver creation calls */ -typedef enum eCreateDriverFlags { +enum eCreateDriverFlags { /** create drivers with a default variable for nicer UI */ CREATEDRIVER_WITH_DEFAULT_DVAR = (1 << 0), /** create drivers with Generator FModifier (for backwards compat) */ CREATEDRIVER_WITH_FMODIFIER = (1 << 1), -} eCreateDriverFlags; +}; /* Heuristic to use for connecting target properties to driven ones */ -typedef enum eCreateDriver_MappingTypes { +enum eCreateDriver_MappingTypes { /** 1 to Many - Use the specified index, and drive all elements with it */ CREATEDRIVER_MAPPING_1_N = 0, /** 1 to 1 - Only for the specified index on each side */ @@ -426,7 +408,7 @@ typedef enum eCreateDriver_MappingTypes { /** None (All Properties): * Do not create driver with any targets; these will get added later instead */ CREATEDRIVER_MAPPING_NONE_ALL = 4, -} eCreateDriver_MappingTypes; +}; /** * Mapping Types enum for operators. @@ -450,14 +432,14 @@ typedef enum eDriverFCurveCreationMode { * \note This low-level function shouldn't be used directly for most tools, * although there are special cases where this approach is preferable. */ -struct FCurve *verify_driver_fcurve(struct ID *id, - const char rna_path[], - int array_index, - eDriverFCurveCreationMode creation_mode); +FCurve *verify_driver_fcurve(ID *id, + const char rna_path[], + int array_index, + eDriverFCurveCreationMode creation_mode); -struct FCurve *alloc_driver_fcurve(const char rna_path[], - int array_index, - eDriverFCurveCreationMode creation_mode); +FCurve *alloc_driver_fcurve(const char rna_path[], + int array_index, + eDriverFCurveCreationMode creation_mode); /* -------- */ @@ -474,11 +456,11 @@ struct FCurve *alloc_driver_fcurve(const char rna_path[], * \param driver_type: eDriver_Types * \param mapping_type: eCreateDriver_MappingTypes */ -int ANIM_add_driver_with_target(struct ReportList *reports, - struct ID *dst_id, +int ANIM_add_driver_with_target(ReportList *reports, + ID *dst_id, const char dst_path[], int dst_index, - struct ID *src_id, + ID *src_id, const char src_path[], int src_index, short flag, @@ -492,12 +474,8 @@ int ANIM_add_driver_with_target(struct ReportList *reports, * * Add a new driver for the specified property on the given ID block */ -int ANIM_add_driver(struct ReportList *reports, - struct ID *id, - const char rna_path[], - int array_index, - short flag, - int type); +int ANIM_add_driver( + ReportList *reports, ID *id, const char rna_path[], int array_index, short flag, int type); /** * \brief Main Driver Management API calls. @@ -505,7 +483,7 @@ int ANIM_add_driver(struct ReportList *reports, * Remove the driver for the specified property on the given ID block (if available). */ bool ANIM_remove_driver( - struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag); + ReportList *reports, ID *id, const char rna_path[], int array_index, short flag); /* -------- */ @@ -534,7 +512,7 @@ bool ANIM_driver_can_paste(void); * Make a copy of the driver for the specified property on the given ID block. */ bool ANIM_copy_driver( - struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag); + ReportList *reports, ID *id, const char rna_path[], int array_index, short flag); /** * \brief Main Driver Management API calls. @@ -543,7 +521,7 @@ bool ANIM_copy_driver( * with the driver + driver-curve data from the buffer. */ bool ANIM_paste_driver( - struct ReportList *reports, struct ID *id, const char rna_path[], int array_index, short flag); + ReportList *reports, ID *id, const char rna_path[], int array_index, short flag); /* -------- */ @@ -555,12 +533,12 @@ bool ANIM_driver_vars_can_paste(void); /** * Copy the given driver's variables to the buffer. */ -bool ANIM_driver_vars_copy(struct ReportList *reports, struct FCurve *fcu); +bool ANIM_driver_vars_copy(ReportList *reports, FCurve *fcu); /** * Paste the variables in the buffer to the given FCurve. */ -bool ANIM_driver_vars_paste(struct ReportList *reports, struct FCurve *fcu, bool replace); +bool ANIM_driver_vars_paste(ReportList *reports, FCurve *fcu, bool replace); /* -------- */ @@ -568,7 +546,7 @@ bool ANIM_driver_vars_paste(struct ReportList *reports, struct FCurve *fcu, bool * Create a driver & variable that reads the specified property, * and store it in the buffers for Paste Driver and Paste Variables. */ -void ANIM_copy_as_driver(struct ID *target_id, const char *target_path, const char *var_name); +void ANIM_copy_as_driver(ID *target_id, const char *target_path, const char *var_name); /** \} */ @@ -601,7 +579,7 @@ void ANIM_copy_as_driver(struct ID *target_id, const char *target_path, const ch /** * Auto-keyframing feature - checks for whether anything should be done for the current frame. */ -bool autokeyframe_cfra_can_key(const struct Scene *scene, struct ID *id); +bool autokeyframe_cfra_can_key(const Scene *scene, ID *id); /** \} */ @@ -615,7 +593,7 @@ bool autokeyframe_cfra_can_key(const struct Scene *scene, struct ID *id); * Checks if some F-Curve has a keyframe for a given frame. * \note Used for the buttons to check for keyframes. */ -bool fcurve_frame_has_keyframe(const struct FCurve *fcu, float frame); +bool fcurve_frame_has_keyframe(const FCurve *fcu, float frame); /** * \brief Lesser Keyframe Checking API call. @@ -623,10 +601,10 @@ bool fcurve_frame_has_keyframe(const struct FCurve *fcu, float frame); * - Returns whether the current value of a given property differs from the interpolated value. * - Used for button drawing. */ -bool fcurve_is_changed(struct PointerRNA ptr, - struct PropertyRNA *prop, - struct FCurve *fcu, - const struct AnimationEvalContext *anim_eval_context); +bool fcurve_is_changed(PointerRNA ptr, + PropertyRNA *prop, + FCurve *fcu, + const AnimationEvalContext *anim_eval_context); /** * \brief Main Keyframe Checking API call. @@ -636,19 +614,13 @@ bool fcurve_is_changed(struct PointerRNA ptr, * in case some detail of the implementation changes... * \param frame: The value of this is quite often result of #BKE_scene_ctime_get() */ -bool id_frame_has_keyframe(struct ID *id, float frame); +bool id_frame_has_keyframe(ID *id, float frame); /* Utility functions for auto key-frame. */ -bool ED_autokeyframe_object(struct bContext *C, - struct Scene *scene, - struct Object *ob, - struct KeyingSet *ks); -bool ED_autokeyframe_pchan(struct bContext *C, - struct Scene *scene, - struct Object *ob, - struct bPoseChannel *pchan, - struct KeyingSet *ks); +bool ED_autokeyframe_object(bContext *C, Scene *scene, Object *ob, KeyingSet *ks); +bool ED_autokeyframe_pchan( + bContext *C, Scene *scene, Object *ob, bPoseChannel *pchan, KeyingSet *ks); /** * Use for auto-key-framing @@ -656,8 +628,8 @@ bool ED_autokeyframe_pchan(struct bContext *C, * properties. This is by design when using buttons. For other callers such as gizmos or VSE * preview transform, creating new animation/keyframes also on non-keyed properties is desired. */ -bool ED_autokeyframe_property(struct bContext *C, - struct Scene *scene, +bool ED_autokeyframe_property(bContext *C, + Scene *scene, PointerRNA *ptr, PropertyRNA *prop, int rnaindex, diff --git a/source/blender/editors/include/ED_lattice.hh b/source/blender/editors/include/ED_lattice.hh index c45b067623a..f1c94930b3b 100644 --- a/source/blender/editors/include/ED_lattice.hh +++ b/source/blender/editors/include/ED_lattice.hh @@ -8,10 +8,6 @@ #pragma once -#ifdef __cplusplus -extern "C" { -#endif - struct Base; struct Object; struct SelectPick_Params; @@ -20,27 +16,21 @@ struct wmKeyConfig; /* `lattice_ops.cc` */ -void ED_operatortypes_lattice(void); -void ED_keymap_lattice(struct wmKeyConfig *keyconf); +void ED_operatortypes_lattice(); +void ED_keymap_lattice(wmKeyConfig *keyconf); /* `editlattice_select.cc` */ -bool ED_lattice_flags_set(struct Object *obedit, int flag); +bool ED_lattice_flags_set(Object *obedit, int flag); /** * \return True when pick finds an element or the selection changed. */ -bool ED_lattice_select_pick(struct bContext *C, - const int mval[2], - const struct SelectPick_Params *params); +bool ED_lattice_select_pick(bContext *C, const int mval[2], const SelectPick_Params *params); -bool ED_lattice_deselect_all_multi_ex(struct Base **bases, uint bases_len); -bool ED_lattice_deselect_all_multi(struct bContext *C); +bool ED_lattice_deselect_all_multi_ex(Base **bases, uint bases_len); +bool ED_lattice_deselect_all_multi(bContext *C); /* `editlattice_undo.cc` */ /** Export for ED_undo_sys. */ -void ED_lattice_undosys_type(struct UndoType *ut); - -#ifdef __cplusplus -} -#endif +void ED_lattice_undosys_type(UndoType *ut); diff --git a/source/blender/editors/include/ED_markers.hh b/source/blender/editors/include/ED_markers.hh index 1a602830731..ff1814d8fff 100644 --- a/source/blender/editors/include/ED_markers.hh +++ b/source/blender/editors/include/ED_markers.hh @@ -26,7 +26,7 @@ enum { }; /* Draw Scene-Markers in time window */ -void ED_markers_draw(const struct bContext *C, int flag); +void ED_markers_draw(const bContext *C, int flag); /** \} */ @@ -37,11 +37,11 @@ void ED_markers_draw(const struct bContext *C, int flag); /** * Public API for getting markers from context. */ -ListBase *ED_context_get_markers(const struct bContext *C); +ListBase *ED_context_get_markers(const bContext *C); /** * Public API for getting markers from "animation" context. */ -ListBase *ED_animcontext_get_markers(const struct bAnimContext *ac); +ListBase *ED_animcontext_get_markers(const bAnimContext *ac); /** * Apply some transformation to markers after the fact @@ -55,13 +55,13 @@ ListBase *ED_animcontext_get_markers(const struct bAnimContext *ac); * \param side: (B/L/R) for 'extend' functionality, which side of current frame to use */ int ED_markers_post_apply_transform( - ListBase *markers, struct Scene *scene, int mode, float value, char side); + ListBase *markers, Scene *scene, int mode, float value, char side); /** * Get the marker that is closest to this point. * XXX: for select, the min_dist should be small. */ -struct TimeMarker *ED_markers_find_nearest_marker(ListBase *markers, float x); +TimeMarker *ED_markers_find_nearest_marker(ListBase *markers, float x); /** * Return the time of the marker that occurs on a frame closest to the given time. */ @@ -81,7 +81,7 @@ void ED_markers_deselect_all(ListBase *markers, int action); /** * Get the first selected marker. */ -struct TimeMarker *ED_markers_get_first_selected(ListBase *markers); +TimeMarker *ED_markers_get_first_selected(ListBase *markers); /** \} */ @@ -92,15 +92,15 @@ struct TimeMarker *ED_markers_get_first_selected(ListBase *markers); /** * Called in `screen_ops.cc`, #ED_operatortypes_screen(). */ -void ED_operatortypes_marker(void); +void ED_operatortypes_marker(); /** * Called in `screen_ops.cc`, #ED_keymap_screen(). */ -void ED_keymap_marker(struct wmKeyConfig *keyconf); +void ED_keymap_marker(wmKeyConfig *keyconf); /** * Debugging only: print debugging prints of list of markers. */ -void debug_markers_print_list(struct ListBase *markers); +void debug_markers_print_list(ListBase *markers); /** \} */ diff --git a/source/blender/editors/include/ED_mask.hh b/source/blender/editors/include/ED_mask.hh index e1591ad1ae7..af58de48ac1 100644 --- a/source/blender/editors/include/ED_mask.hh +++ b/source/blender/editors/include/ED_mask.hh @@ -24,7 +24,7 @@ struct wmKeyConfig; * - The space is configured to interact with mask. * * It is not required to have mask opened for editing. */ -bool ED_maskedit_poll(struct bContext *C); +bool ED_maskedit_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space supports mask editing. @@ -32,56 +32,49 @@ bool ED_maskedit_poll(struct bContext *C); * - Mask has visible and editable splines. * * It is not required to have mask opened for editing. */ -bool ED_maskedit_visible_splines_poll(struct bContext *C); +bool ED_maskedit_visible_splines_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space supports mask editing. * - The space is configured to interact with mask. * - The space has mask open for editing. */ -bool ED_maskedit_mask_poll(struct bContext *C); +bool ED_maskedit_mask_poll(bContext *C); /* Returns true when the following conditions are met: * - Current space supports mask editing. * - The space is configured to interact with mask. * - The space has mask opened. * - Mask has visible and editable splines. */ -bool ED_maskedit_mask_visible_splines_poll(struct bContext *C); +bool ED_maskedit_mask_visible_splines_poll(bContext *C); -void ED_mask_deselect_all(const struct bContext *C); +void ED_mask_deselect_all(const bContext *C); void ED_operatortypes_mask(void); -void ED_keymap_mask(struct wmKeyConfig *keyconf); +void ED_keymap_mask(wmKeyConfig *keyconf); void ED_operatormacros_mask(void); /* `mask_query.cc` */ -void ED_mask_get_size(struct ScrArea *area, int *width, int *height); -void ED_mask_zoom(struct ScrArea *area, struct ARegion *region, float *zoomx, float *zoomy); -void ED_mask_get_aspect(struct ScrArea *area, struct ARegion *region, float *aspx, float *aspy); +void ED_mask_get_size(ScrArea *area, int *width, int *height); +void ED_mask_zoom(ScrArea *area, ARegion *region, float *zoomx, float *zoomy); +void ED_mask_get_aspect(ScrArea *area, ARegion *region, float *aspx, float *aspy); -void ED_mask_pixelspace_factor(struct ScrArea *area, - struct ARegion *region, - float *scalex, - float *scaley); +void ED_mask_pixelspace_factor(ScrArea *area, ARegion *region, float *scalex, float *scaley); /** * Takes `event->mval`. */ -void ED_mask_mouse_pos(struct ScrArea *area, - struct ARegion *region, - const int mval[2], - float co[2]); +void ED_mask_mouse_pos(ScrArea *area, ARegion *region, const int mval[2], float co[2]); /** * \param x/y: input, mval space. * \param xr/yr: output, mask point space. */ -void ED_mask_point_pos( - struct ScrArea *area, struct ARegion *region, float x, float y, float *xr, float *yr); +void ED_mask_point_pos(ScrArea *area, ARegion *region, float x, float y, float *xr, float *yr); void ED_mask_point_pos__reverse( - struct ScrArea *area, struct ARegion *region, float x, float y, float *xr, float *yr); + ScrArea *area, ARegion *region, float x, float y, float *xr, float *yr); -void ED_mask_cursor_location_get(struct ScrArea *area, float cursor[2]); -bool ED_mask_selected_minmax(const struct bContext *C, +void ED_mask_cursor_location_get(ScrArea *area, float cursor[2]); +bool ED_mask_selected_minmax(const bContext *C, float min[2], float max[2], bool handles_as_control_point); @@ -92,9 +85,9 @@ bool ED_mask_selected_minmax(const struct bContext *C, * Sets up the opengl context. * width, height are to match the values from #ED_mask_get_size(). */ -void ED_mask_draw_region(struct Depsgraph *depsgraph, - struct Mask *mask, - struct ARegion *region, +void ED_mask_draw_region(Depsgraph *depsgraph, + Mask *mask, + ARegion *region, char draw_flag, char draw_type, eMaskOverlayMode overlay_mode, @@ -106,80 +99,78 @@ void ED_mask_draw_region(struct Depsgraph *depsgraph, bool do_scale_applied, bool do_draw_cb, float stabmat[4][4], - const struct bContext *C); + const bContext *C); -void ED_mask_draw_frames(struct Mask *mask, struct ARegion *region, int cfra, int sfra, int efra); +void ED_mask_draw_frames(Mask *mask, ARegion *region, int cfra, int sfra, int efra); /* `mask_shapekey.cc` */ -void ED_mask_layer_shape_auto_key(struct MaskLayer *mask_layer, int frame); -bool ED_mask_layer_shape_auto_key_all(struct Mask *mask, int frame); -bool ED_mask_layer_shape_auto_key_select(struct Mask *mask, int frame); +void ED_mask_layer_shape_auto_key(MaskLayer *mask_layer, int frame); +bool ED_mask_layer_shape_auto_key_all(Mask *mask, int frame); +bool ED_mask_layer_shape_auto_key_select(Mask *mask, int frame); /* ----------- Mask AnimEdit API ------------------ */ /** * Loops over the mask-frames for a mask-layer, and applies the given callback. */ -bool ED_masklayer_frames_looper(struct MaskLayer *mask_layer, - struct Scene *scene, - bool (*mask_layer_shape_cb)(struct MaskLayerShape *, - struct Scene *)); +bool ED_masklayer_frames_looper(MaskLayer *mask_layer, + Scene *scene, + bool (*mask_layer_shape_cb)(MaskLayerShape *, Scene *)); /** * Make a listing all the mask-frames in a layer as cfraelems. */ -void ED_masklayer_make_cfra_list(struct MaskLayer *mask_layer, ListBase *elems, bool onlysel); +void ED_masklayer_make_cfra_list(MaskLayer *mask_layer, ListBase *elems, bool onlysel); /** * Check if one of the frames in this layer is selected. */ -bool ED_masklayer_frame_select_check(const struct MaskLayer *mask_layer); +bool ED_masklayer_frame_select_check(const MaskLayer *mask_layer); /** * Set all/none/invert select. */ -void ED_masklayer_frame_select_set(struct MaskLayer *mask_layer, short mode); +void ED_masklayer_frame_select_set(MaskLayer *mask_layer, short mode); /** * Select the frames in this layer that occur within the bounds specified. */ -void ED_masklayer_frames_select_box(struct MaskLayer *mask_layer, +void ED_masklayer_frames_select_box(MaskLayer *mask_layer, float min, float max, short select_mode); /** * Select the frames in this layer that occur within the lasso/circle region specified. */ -void ED_masklayer_frames_select_region(struct KeyframeEditData *ked, - struct MaskLayer *mask_layer, +void ED_masklayer_frames_select_region(KeyframeEditData *ked, + MaskLayer *mask_layer, short tool, short select_mode); /** * Set all/none/invert select (like above, but with SELECT_* modes). */ -void ED_mask_select_frames(struct MaskLayer *mask_layer, short select_mode); +void ED_mask_select_frames(MaskLayer *mask_layer, short select_mode); /** * Select the frame in this layer that occurs on this frame (there should only be one at most). */ -void ED_mask_select_frame(struct MaskLayer *mask_layer, int selx, short select_mode); +void ED_mask_select_frame(MaskLayer *mask_layer, int selx, short select_mode); /** * Delete selected frames. */ -bool ED_masklayer_frames_delete(struct MaskLayer *mask_layer); +bool ED_masklayer_frames_delete(MaskLayer *mask_layer); /** * Duplicate selected frames from given mask-layer. */ -void ED_masklayer_frames_duplicate(struct MaskLayer *mask_layer); +void ED_masklayer_frames_duplicate(MaskLayer *mask_layer); /** * Snap selected frames to ... */ -void ED_masklayer_snap_frames(struct MaskLayer *mask_layer, struct Scene *scene, short mode); +void ED_masklayer_snap_frames(MaskLayer *mask_layer, Scene *scene, short mode); #if 0 void free_gpcopybuf(void); void copy_gpdata(void); void paste_gpdata(void); -void mirror_masklayer_frames(struct MaskLayer *mask_layer, short mode); +void mirror_masklayer_frames( MaskLayer *mask_layer, short mode); #endif - diff --git a/source/blender/editors/include/ED_mball.hh b/source/blender/editors/include/ED_mball.hh index 97fa32be500..669a7c0ff83 100644 --- a/source/blender/editors/include/ED_mball.hh +++ b/source/blender/editors/include/ED_mball.hh @@ -8,7 +8,6 @@ #pragma once - struct Base; struct MetaElem; struct Object; @@ -17,57 +16,50 @@ struct UndoType; struct bContext; struct wmKeyConfig; -void ED_operatortypes_metaball(void); -void ED_operatormacros_metaball(void); -void ED_keymap_metaball(struct wmKeyConfig *keyconf); +void ED_operatortypes_metaball(); +void ED_operatormacros_metaball(); +void ED_keymap_metaball(wmKeyConfig *keyconf); /** * Add meta-element primitive to meta-ball object (which is in edit mode). */ -struct MetaElem *ED_mball_add_primitive(struct bContext *C, - struct Object *obedit, - bool obedit_is_new, - float mat[4][4], - float dia, - int type); +MetaElem *ED_mball_add_primitive( + bContext *C, Object *obedit, bool obedit_is_new, float mat[4][4], float dia, int type); -struct Base *ED_mball_base_and_elem_from_select_buffer(struct Base **bases, - uint bases_len, - const uint select_id, - struct MetaElem **r_ml); +Base *ED_mball_base_and_elem_from_select_buffer(Base **bases, + uint bases_len, + const uint select_id, + MetaElem **r_ml); /** * Select meta-element with mouse click (user can select radius circle or stiffness circle). * * \return True when pick finds an element or the selection changed. */ -bool ED_mball_select_pick(struct bContext *C, - const int mval[2], - const struct SelectPick_Params *params); +bool ED_mball_select_pick(bContext *C, const int mval[2], const SelectPick_Params *params); -bool ED_mball_deselect_all_multi_ex(struct Base **bases, uint bases_len); -bool ED_mball_deselect_all_multi(struct bContext *C); +bool ED_mball_deselect_all_multi_ex(Base **bases, uint bases_len); +bool ED_mball_deselect_all_multi(bContext *C); /** * This function is used to free all MetaElems from MetaBall. */ -void ED_mball_editmball_free(struct Object *obedit); +void ED_mball_editmball_free(Object *obedit); /** * This function is called, when MetaBall Object is switched from object mode to edit mode. */ -void ED_mball_editmball_make(struct Object *obedit); +void ED_mball_editmball_make(Object *obedit); /** * This function is called, when MetaBall Object switched from edit mode to object mode. * List of MetaElements is copied from object->data->edit_elems to object->data->elems. */ -void ED_mball_editmball_load(struct Object *obedit); +void ED_mball_editmball_load(Object *obedit); /* `editmball_undo.cc` */ /** Export for ED_undo_sys. */ -void ED_mball_undosys_type(struct UndoType *ut); +void ED_mball_undosys_type(UndoType *ut); #define MBALLSEL_STIFF (1u << 30) #define MBALLSEL_RADIUS (1u << 31) #define MBALLSEL_ANY (MBALLSEL_STIFF | MBALLSEL_RADIUS) - diff --git a/source/blender/editors/include/ED_mesh.hh b/source/blender/editors/include/ED_mesh.hh index 27abeb513b9..b384604de00 100644 --- a/source/blender/editors/include/ED_mesh.hh +++ b/source/blender/editors/include/ED_mesh.hh @@ -8,7 +8,6 @@ #pragma once - #include "BLI_compiler_attrs.h" struct ARegion; @@ -39,6 +38,8 @@ struct bContext; struct bDeformGroup; struct wmKeyConfig; struct wmOperator; +struct UvElement; +struct UvElementMap; /* editmesh_utils.cc */ @@ -52,7 +53,7 @@ struct wmOperator; * \param r_index: Optional array to write into, as an alternative to a custom-data layer * (length of total verts). */ -void EDBM_verts_mirror_cache_begin_ex(struct BMEditMesh *em, +void EDBM_verts_mirror_cache_begin_ex(BMEditMesh *em, int axis, bool use_self, bool use_select, @@ -60,37 +61,32 @@ void EDBM_verts_mirror_cache_begin_ex(struct BMEditMesh *em, bool use_topology, float maxdist, int *r_index); -void EDBM_verts_mirror_cache_begin(struct BMEditMesh *em, - int axis, - bool use_self, - bool use_select, - bool respecthide, - bool use_topology); -void EDBM_verts_mirror_apply(struct BMEditMesh *em, int sel_from, int sel_to); -struct BMVert *EDBM_verts_mirror_get(struct BMEditMesh *em, struct BMVert *v); -struct BMEdge *EDBM_verts_mirror_get_edge(struct BMEditMesh *em, struct BMEdge *e); -struct BMFace *EDBM_verts_mirror_get_face(struct BMEditMesh *em, struct BMFace *f); -void EDBM_verts_mirror_cache_clear(struct BMEditMesh *em, struct BMVert *v); -void EDBM_verts_mirror_cache_end(struct BMEditMesh *em); +void EDBM_verts_mirror_cache_begin( + BMEditMesh *em, int axis, bool use_self, bool use_select, bool respecthide, bool use_topology); +void EDBM_verts_mirror_apply(BMEditMesh *em, int sel_from, int sel_to); +BMVert *EDBM_verts_mirror_get(BMEditMesh *em, BMVert *v); +BMEdge *EDBM_verts_mirror_get_edge(BMEditMesh *em, BMEdge *e); +BMFace *EDBM_verts_mirror_get_face(BMEditMesh *em, BMFace *f); +void EDBM_verts_mirror_cache_clear(BMEditMesh *em, BMVert *v); +void EDBM_verts_mirror_cache_end(BMEditMesh *em); -void EDBM_mesh_normals_update_ex(struct BMEditMesh *em, - const struct BMeshNormalsUpdate_Params *params); -void EDBM_mesh_normals_update(struct BMEditMesh *em); -void EDBM_mesh_clear(struct BMEditMesh *em); +void EDBM_mesh_normals_update_ex(BMEditMesh *em, const BMeshNormalsUpdate_Params *params); +void EDBM_mesh_normals_update(BMEditMesh *em); +void EDBM_mesh_clear(BMEditMesh *em); -void EDBM_selectmode_to_scene(struct bContext *C); -void EDBM_mesh_make(struct Object *ob, int select_mode, bool add_key_index); +void EDBM_selectmode_to_scene(bContext *C); +void EDBM_mesh_make(Object *ob, int select_mode, bool add_key_index); /** * Should only be called on the active edit-mesh, otherwise call #BKE_editmesh_free_data. */ -void EDBM_mesh_free_data(struct BMEditMesh *em); +void EDBM_mesh_free_data(BMEditMesh *em); /** * \warning This can invalidate the #Mesh runtime cache of other objects (for linked duplicates). * Most callers should run #DEG_id_tag_update on `ob->data`, see: #46738, #46913. * This ensures #BKE_object_free_derived_caches runs on all objects that use this mesh. */ -void EDBM_mesh_load_ex(struct Main *bmain, struct Object *ob, bool free_data); -void EDBM_mesh_load(struct Main *bmain, struct Object *ob); +void EDBM_mesh_load_ex(Main *bmain, Object *ob, bool free_data); +void EDBM_mesh_load(Main *bmain, Object *ob); /** * flushes based on the current select mode. If in vertex select mode, @@ -98,22 +94,22 @@ void EDBM_mesh_load(struct Main *bmain, struct Object *ob); * edges select/deselect faces and vertices, and in face select mode faces select/deselect * edges and vertices. */ -void EDBM_select_more(struct BMEditMesh *em, bool use_face_step); -void EDBM_select_less(struct BMEditMesh *em, bool use_face_step); +void EDBM_select_more(BMEditMesh *em, bool use_face_step); +void EDBM_select_less(BMEditMesh *em, bool use_face_step); -void EDBM_selectmode_flush_ex(struct BMEditMesh *em, short selectmode); -void EDBM_selectmode_flush(struct BMEditMesh *em); +void EDBM_selectmode_flush_ex(BMEditMesh *em, short selectmode); +void EDBM_selectmode_flush(BMEditMesh *em); -void EDBM_deselect_flush(struct BMEditMesh *em); -void EDBM_select_flush(struct BMEditMesh *em); +void EDBM_deselect_flush(BMEditMesh *em); +void EDBM_select_flush(BMEditMesh *em); -bool EDBM_vert_color_check(struct BMEditMesh *em); +bool EDBM_vert_color_check(BMEditMesh *em); /** * Swap is 0 or 1, if 1 it hides not selected. */ -bool EDBM_mesh_hide(struct BMEditMesh *em, bool swap); -bool EDBM_mesh_reveal(struct BMEditMesh *em, bool select); +bool EDBM_mesh_hide(BMEditMesh *em, bool swap); +bool EDBM_mesh_reveal(BMEditMesh *em, bool select); struct EDBMUpdate_Params { uint calc_looptri : 1; @@ -124,22 +120,22 @@ struct EDBMUpdate_Params { /** * So many tools call these that we better make it a generic function. */ -void EDBM_update(struct Mesh *me, const struct EDBMUpdate_Params *params); +void EDBM_update(Mesh *me, const EDBMUpdate_Params *params); /** * Bad level call from Python API. */ -void EDBM_update_extern(struct Mesh *me, bool do_tessellation, bool is_destructive); +void EDBM_update_extern(Mesh *me, bool do_tessellation, bool is_destructive); /** * A specialized vert map used by stitch operator. */ -struct UvElementMap *BM_uv_element_map_create(struct BMesh *bm, - const struct Scene *scene, - bool uv_selected, - bool use_winding, - bool use_seams, - bool do_islands); -void BM_uv_element_map_free(struct UvElementMap *element_map); +UvElementMap *BM_uv_element_map_create(BMesh *bm, + const Scene *scene, + bool uv_selected, + bool use_winding, + bool use_seams, + bool do_islands); +void BM_uv_element_map_free(UvElementMap *element_map); /** * Return the #UvElement associated with a given #BMLoop, or NULL if no association exists. @@ -148,71 +144,58 @@ void BM_uv_element_map_free(struct UvElementMap *element_map); * \param l: The loop to search for. * \return The #UvElement associated with #l, or NULL if not found. (e.g. the vertex is hidden.) */ -struct UvElement *BM_uv_element_get(const struct UvElementMap *element_map, - const struct BMLoop *l); -struct UvElement *BM_uv_element_get_head(struct UvElementMap *element_map, - struct UvElement *child); -int BM_uv_element_get_unique_index(struct UvElementMap *element_map, struct UvElement *child); +UvElement *BM_uv_element_get(const UvElementMap *element_map, const BMLoop *l); +UvElement *BM_uv_element_get_head(UvElementMap *element_map, UvElement *child); +int BM_uv_element_get_unique_index(UvElementMap *element_map, UvElement *child); -struct UvElement **BM_uv_element_map_ensure_head_table(struct UvElementMap *element_map); -int *BM_uv_element_map_ensure_unique_index(struct UvElementMap *element_map); +UvElement **BM_uv_element_map_ensure_head_table(UvElementMap *element_map); +int *BM_uv_element_map_ensure_unique_index(UvElementMap *element_map); /** * Can we edit UVs for this mesh? */ -bool EDBM_uv_check(struct BMEditMesh *em); +bool EDBM_uv_check(BMEditMesh *em); /** * last_sel, use em->act_face otherwise get the last selected face in the editselections * at the moment, last_sel is mainly useful for making sure the space image doesn't flicker. */ -struct BMFace *EDBM_uv_active_face_get(struct BMEditMesh *em, bool sloppy, bool selected); +BMFace *EDBM_uv_active_face_get(BMEditMesh *em, bool sloppy, bool selected); -void BM_uv_vert_map_free(struct UvVertMap *vmap); -struct UvMapVert *BM_uv_vert_map_at_index(struct UvVertMap *vmap, unsigned int v); +void BM_uv_vert_map_free(UvVertMap *vmap); +UvMapVert *BM_uv_vert_map_at_index(UvVertMap *vmap, unsigned int v); /** * Return a new #UvVertMap from the edit-mesh. */ -struct UvVertMap *BM_uv_vert_map_create(struct BMesh *bm, bool use_select); +UvVertMap *BM_uv_vert_map_create(BMesh *bm, bool use_select); -void EDBM_flag_enable_all(struct BMEditMesh *em, char hflag); -void EDBM_flag_disable_all(struct BMEditMesh *em, char hflag); +void EDBM_flag_enable_all(BMEditMesh *em, char hflag); +void EDBM_flag_disable_all(BMEditMesh *em, char hflag); -bool BMBVH_EdgeVisible(struct BMBVHTree *tree, - struct BMEdge *e, - struct Depsgraph *depsgraph, - struct ARegion *region, - struct View3D *v3d, - struct Object *obedit); +bool BMBVH_EdgeVisible(BMBVHTree *tree, + BMEdge *e, + Depsgraph *depsgraph, + ARegion *region, + View3D *v3d, + Object *obedit); -void EDBM_project_snap_verts(struct bContext *C, - struct Depsgraph *depsgraph, - struct ARegion *region, - struct Object *obedit, - struct BMEditMesh *em); +void EDBM_project_snap_verts( + bContext *C, Depsgraph *depsgraph, ARegion *region, Object *obedit, BMEditMesh *em); /* `editmesh_automerge.cc` */ -void EDBM_automerge(struct Object *obedit, bool update, char hflag, float dist); -void EDBM_automerge_and_split(struct Object *obedit, - bool split_edges, - bool split_faces, - bool update, - char hflag, - float dist); +void EDBM_automerge(Object *obedit, bool update, char hflag, float dist); +void EDBM_automerge_and_split( + Object *obedit, bool split_edges, bool split_faces, bool update, char hflag, float dist); /* editmesh_undo.cc */ /** Export for ED_undo_sys. */ -void ED_mesh_undosys_type(struct UndoType *ut); +void ED_mesh_undosys_type(UndoType *ut); /* editmesh_select.cc */ -void EDBM_select_mirrored(struct BMEditMesh *em, - const struct Mesh *me, - int axis, - bool extend, - int *r_totmirr, - int *r_totfail); +void EDBM_select_mirrored( + BMEditMesh *em, const Mesh *me, int axis, bool extend, int *r_totmirr, int *r_totfail); /** * Nearest vertex under the cursor. @@ -225,25 +208,25 @@ void EDBM_select_mirrored(struct BMEditMesh *em, * - When false, unselected vertices are given the bias. * \param use_cycle: Cycle over elements within #FIND_NEAR_CYCLE_THRESHOLD_MIN in order of index. */ -struct BMVert *EDBM_vert_find_nearest_ex(struct ViewContext *vc, - float *dist_px_manhattan_p, - bool use_select_bias, - bool use_cycle, - struct Base **bases, - uint bases_len, - uint *r_base_index); -struct BMVert *EDBM_vert_find_nearest(struct ViewContext *vc, float *dist_px_manhattan_p); +BMVert *EDBM_vert_find_nearest_ex(ViewContext *vc, + float *dist_px_manhattan_p, + bool use_select_bias, + bool use_cycle, + Base **bases, + uint bases_len, + uint *r_base_index); +BMVert *EDBM_vert_find_nearest(ViewContext *vc, float *dist_px_manhattan_p); -struct BMEdge *EDBM_edge_find_nearest_ex(struct ViewContext *vc, - float *dist_px_manhattan, - float *r_dist_center, - bool use_select_bias, - bool use_cycle, - struct BMEdge **r_eed_zbuf, - struct Base **bases, - uint bases_len, - uint *r_base_index); -struct BMEdge *EDBM_edge_find_nearest(struct ViewContext *vc, float *dist_px_manhattan_p); +BMEdge *EDBM_edge_find_nearest_ex(ViewContext *vc, + float *dist_px_manhattan, + float *r_dist_center, + bool use_select_bias, + bool use_cycle, + BMEdge **r_eed_zbuf, + Base **bases, + uint bases_len, + uint *r_base_index); +BMEdge *EDBM_edge_find_nearest(ViewContext *vc, float *dist_px_manhattan_p); /** * \param use_zbuf_single_px: Special case, when using the back-buffer selection, @@ -252,47 +235,45 @@ struct BMEdge *EDBM_edge_find_nearest(struct ViewContext *vc, float *dist_px_man * it's reasonable that some callers might want to expand the region too. So add an argument to do * this, */ -struct BMFace *EDBM_face_find_nearest_ex(struct ViewContext *vc, - float *dist_px_manhattan, - float *r_dist_center, - bool use_zbuf_single_px, - bool use_select_bias, - bool use_cycle, - struct BMFace **r_efa_zbuf, - struct Base **bases, - uint bases_len, - uint *r_base_index); -struct BMFace *EDBM_face_find_nearest(struct ViewContext *vc, float *dist_px_manhattan_p); +BMFace *EDBM_face_find_nearest_ex(ViewContext *vc, + float *dist_px_manhattan, + float *r_dist_center, + bool use_zbuf_single_px, + bool use_select_bias, + bool use_cycle, + BMFace **r_efa_zbuf, + Base **bases, + uint bases_len, + uint *r_base_index); +BMFace *EDBM_face_find_nearest(ViewContext *vc, float *dist_px_manhattan_p); -bool EDBM_unified_findnearest(struct ViewContext *vc, - struct Base **bases, +bool EDBM_unified_findnearest(ViewContext *vc, + Base **bases, uint bases_len, int *r_base_index, - struct BMVert **r_eve, - struct BMEdge **r_eed, - struct BMFace **r_efa); + BMVert **r_eve, + BMEdge **r_eed, + BMFace **r_efa); -bool EDBM_unified_findnearest_from_raycast(struct ViewContext *vc, - struct Base **bases, +bool EDBM_unified_findnearest_from_raycast(ViewContext *vc, + Base **bases, uint bases_len, bool use_boundary_vertices, bool use_boundary_edges, int *r_base_index_vert, int *r_base_index_edge, int *r_base_index_face, - struct BMVert **r_eve, - struct BMEdge **r_eed, - struct BMFace **r_efa); + BMVert **r_eve, + BMEdge **r_eed, + BMFace **r_efa); -bool EDBM_select_pick(struct bContext *C, - const int mval[2], - const struct SelectPick_Params *params); +bool EDBM_select_pick(bContext *C, const int mval[2], const SelectPick_Params *params); /** * When switching select mode, makes sure selection is consistent for editing * also for paranoia checks to make sure edge or face mode works. */ -void EDBM_selectmode_set(struct BMEditMesh *em); +void EDBM_selectmode_set(BMEditMesh *em); /** * Expand & Contract the Selection * (used when changing modes and Ctrl key held) @@ -307,17 +288,17 @@ void EDBM_selectmode_set(struct BMEditMesh *em); * - face -> vert * - edge -> vert */ -void EDBM_selectmode_convert(struct BMEditMesh *em, short selectmode_old, short selectmode_new); +void EDBM_selectmode_convert(BMEditMesh *em, short selectmode_old, short selectmode_new); /** * User access this. */ -bool EDBM_selectmode_set_multi(struct bContext *C, short selectmode); +bool EDBM_selectmode_set_multi(bContext *C, short selectmode); /** * User facing function, does notification. */ bool EDBM_selectmode_toggle_multi( - struct bContext *C, short selectmode_new, int action, bool use_extend, bool use_expand); + bContext *C, short selectmode_new, int action, bool use_extend, bool use_expand); /** * Use to disable a select-mode if its enabled, Using another mode as a fallback @@ -325,79 +306,75 @@ bool EDBM_selectmode_toggle_multi( * * \return true if the mode is changed. */ -bool EDBM_selectmode_disable(struct Scene *scene, - struct BMEditMesh *em, +bool EDBM_selectmode_disable(Scene *scene, + BMEditMesh *em, short selectmode_disable, short selectmode_fallback); -bool EDBM_deselect_by_material(struct BMEditMesh *em, short index, bool select); +bool EDBM_deselect_by_material(BMEditMesh *em, short index, bool select); -void EDBM_select_toggle_all(struct BMEditMesh *em); +void EDBM_select_toggle_all(BMEditMesh *em); -void EDBM_select_swap(struct BMEditMesh *em); /* exported for UV */ -bool EDBM_select_interior_faces(struct BMEditMesh *em); -void em_setup_viewcontext(struct bContext *C, struct ViewContext *vc); /* rename? */ +void EDBM_select_swap(BMEditMesh *em); /* exported for UV */ +bool EDBM_select_interior_faces(BMEditMesh *em); +void em_setup_viewcontext(bContext *C, ViewContext *vc); /* rename? */ -bool EDBM_mesh_deselect_all_multi_ex(struct Base **bases, uint bases_len); -bool EDBM_mesh_deselect_all_multi(struct bContext *C); -bool EDBM_selectmode_disable_multi_ex(struct Scene *scene, - struct Base **bases, +bool EDBM_mesh_deselect_all_multi_ex(Base **bases, uint bases_len); +bool EDBM_mesh_deselect_all_multi(bContext *C); +bool EDBM_selectmode_disable_multi_ex(Scene *scene, + Base **bases, uint bases_len, short selectmode_disable, short selectmode_fallback); -bool EDBM_selectmode_disable_multi(struct bContext *C, +bool EDBM_selectmode_disable_multi(bContext *C, short selectmode_disable, short selectmode_fallback); /* `editmesh_preselect_edgering.cc` */ struct EditMesh_PreSelEdgeRing; -struct EditMesh_PreSelEdgeRing *EDBM_preselect_edgering_create(void); -void EDBM_preselect_edgering_destroy(struct EditMesh_PreSelEdgeRing *psel); -void EDBM_preselect_edgering_clear(struct EditMesh_PreSelEdgeRing *psel); -void EDBM_preselect_edgering_draw(struct EditMesh_PreSelEdgeRing *psel, const float matrix[4][4]); -void EDBM_preselect_edgering_update_from_edge(struct EditMesh_PreSelEdgeRing *psel, - struct BMesh *bm, - struct BMEdge *eed_start, +struct EditMesh_PreSelEdgeRing *EDBM_preselect_edgering_create(); +void EDBM_preselect_edgering_destroy(EditMesh_PreSelEdgeRing *psel); +void EDBM_preselect_edgering_clear(EditMesh_PreSelEdgeRing *psel); +void EDBM_preselect_edgering_draw(EditMesh_PreSelEdgeRing *psel, const float matrix[4][4]); +void EDBM_preselect_edgering_update_from_edge(EditMesh_PreSelEdgeRing *psel, + BMesh *bm, + BMEdge *eed_start, int previewlines, const float (*coords)[3]); /* `editmesh_preselect_elem.cc` */ struct EditMesh_PreSelElem; -typedef enum eEditMesh_PreSelPreviewAction { +enum eEditMesh_PreSelPreviewAction { PRESELECT_ACTION_TRANSFORM = 1, PRESELECT_ACTION_CREATE = 2, PRESELECT_ACTION_DELETE = 3, -} eEditMesh_PreSelPreviewAction; +}; -struct EditMesh_PreSelElem *EDBM_preselect_elem_create(void); -void EDBM_preselect_elem_destroy(struct EditMesh_PreSelElem *psel); -void EDBM_preselect_elem_clear(struct EditMesh_PreSelElem *psel); -void EDBM_preselect_preview_clear(struct EditMesh_PreSelElem *psel); -void EDBM_preselect_elem_draw(struct EditMesh_PreSelElem *psel, const float matrix[4][4]); -void EDBM_preselect_elem_update_from_single(struct EditMesh_PreSelElem *psel, - struct BMesh *bm, - struct BMElem *ele, +EditMesh_PreSelElem *EDBM_preselect_elem_create(); +void EDBM_preselect_elem_destroy(EditMesh_PreSelElem *psel); +void EDBM_preselect_elem_clear(EditMesh_PreSelElem *psel); +void EDBM_preselect_preview_clear(EditMesh_PreSelElem *psel); +void EDBM_preselect_elem_draw(EditMesh_PreSelElem *psel, const float matrix[4][4]); +void EDBM_preselect_elem_update_from_single(EditMesh_PreSelElem *psel, + BMesh *bm, + BMElem *ele, const float (*coords)[3]); -void EDBM_preselect_elem_update_preview(struct EditMesh_PreSelElem *psel, - struct ViewContext *vc, - struct BMesh *bm, - struct BMElem *ele, - const int mval[2]); -void EDBM_preselect_action_set(struct EditMesh_PreSelElem *psel, - eEditMesh_PreSelPreviewAction action); -eEditMesh_PreSelPreviewAction EDBM_preselect_action_get(struct EditMesh_PreSelElem *psel); +void EDBM_preselect_elem_update_preview( + EditMesh_PreSelElem *psel, ViewContext *vc, BMesh *bm, BMElem *ele, const int mval[2]); +void EDBM_preselect_action_set(EditMesh_PreSelElem *psel, eEditMesh_PreSelPreviewAction action); +eEditMesh_PreSelPreviewAction EDBM_preselect_action_get(EditMesh_PreSelElem *psel); /* `mesh_ops.cc` */ -void ED_operatortypes_mesh(void); -void ED_operatormacros_mesh(void); +void ED_operatortypes_mesh(); +void ED_operatormacros_mesh(); /** * Note mesh keymap also for other space? */ -void ED_keymap_mesh(struct wmKeyConfig *keyconf); +void ED_keymap_mesh(wmKeyConfig *keyconf); /* editface.cc */ @@ -405,76 +382,65 @@ void ED_keymap_mesh(struct wmKeyConfig *keyconf); * Copy the face flags, most importantly selection from the mesh to the final derived mesh, * use in object mode when selecting faces (while painting). */ -void paintface_flush_flags(struct bContext *C, - struct Object *ob, - bool flush_selection, - bool flush_hidden); +void paintface_flush_flags(bContext *C, Object *ob, bool flush_selection, bool flush_hidden); /** * \return True when pick finds an element or the selection changed. */ -bool paintface_mouse_select(struct bContext *C, +bool paintface_mouse_select(bContext *C, const int mval[2], - const struct SelectPick_Params *params, - struct Object *ob); -bool paintface_deselect_all_visible(struct bContext *C, - struct Object *ob, - int action, - bool flush_flags); -void paintface_select_linked(struct bContext *C, - struct Object *ob, - const int mval[2], - bool select); + const SelectPick_Params *params, + Object *ob); +bool paintface_deselect_all_visible(bContext *C, Object *ob, int action, bool flush_flags); +void paintface_select_linked(bContext *C, Object *ob, const int mval[2], bool select); -void paintface_select_loop(struct bContext *C, struct Object *ob, const int mval[2], bool select); +void paintface_select_loop(bContext *C, Object *ob, const int mval[2], bool select); /** * Grow the selection of faces. * \param face_step: If true will also select faces that only touch on the corner. */ -void paintface_select_more(struct Mesh *mesh, bool face_step); -void paintface_select_less(struct Mesh *mesh, bool face_step); -bool paintface_minmax(struct Object *ob, float r_min[3], float r_max[3]); +void paintface_select_more(Mesh *mesh, bool face_step); +void paintface_select_less(Mesh *mesh, bool face_step); +bool paintface_minmax(Object *ob, float r_min[3], float r_max[3]); -void paintface_hide(struct bContext *C, struct Object *ob, bool unselected); -void paintface_reveal(struct bContext *C, struct Object *ob, bool select); +void paintface_hide(bContext *C, Object *ob, bool unselected); +void paintface_reveal(bContext *C, Object *ob, bool select); /** * \note if the caller passes false to flush_flags, * then they will need to run #paintvert_flush_flags(ob) themselves. */ -bool paintvert_deselect_all_visible(struct Object *ob, int action, bool flush_flags); -void paintvert_select_ungrouped(struct Object *ob, bool extend, bool flush_flags); +bool paintvert_deselect_all_visible(Object *ob, int action, bool flush_flags); +void paintvert_select_ungrouped(Object *ob, bool extend, bool flush_flags); /** * (similar to void `paintface_flush_flags(Object *ob)`) * copy the vertex flags, most importantly selection from the mesh to the final derived mesh, * use in object mode when selecting vertices (while painting). */ -void paintvert_flush_flags(struct Object *ob); -void paintvert_tag_select_update(struct bContext *C, struct Object *ob); +void paintvert_flush_flags(Object *ob); +void paintvert_tag_select_update(bContext *C, Object *ob); /* Select vertices that are connected to already selected vertices. */ -void paintvert_select_linked(struct bContext *C, struct Object *ob); +void paintvert_select_linked(bContext *C, Object *ob); /* Select vertices that are linked to the vertex under the given region space coordinates. */ -void paintvert_select_linked_pick(struct bContext *C, - struct Object *ob, +void paintvert_select_linked_pick(bContext *C, + Object *ob, const int region_coordinates[2], bool select); -void paintvert_select_more(struct Mesh *mesh, bool face_step); -void paintvert_select_less(struct Mesh *mesh, bool face_step); -void paintvert_hide(struct bContext *C, struct Object *ob, bool unselected); -void paintvert_reveal(struct bContext *C, struct Object *ob, bool select); +void paintvert_select_more(Mesh *mesh, bool face_step); +void paintvert_select_less(Mesh *mesh, bool face_step); +void paintvert_hide(bContext *C, Object *ob, bool unselected); +void paintvert_reveal(bContext *C, Object *ob, bool select); /* mirrtopo */ -typedef struct MirrTopoStore_t { +struct MirrTopoStore_t { intptr_t *index_lookup; int prev_vert_tot; int prev_edge_tot; bool prev_is_editmode; -} MirrTopoStore_t; +}; -bool ED_mesh_mirrtopo_recalc_check(struct BMEditMesh *em, - struct Mesh *me, - MirrTopoStore_t *mesh_topo_store); -void ED_mesh_mirrtopo_init(struct BMEditMesh *em, - struct Mesh *me, +bool ED_mesh_mirrtopo_recalc_check(BMEditMesh *em, Mesh *me, MirrTopoStore_t *mesh_topo_store); +void ED_mesh_mirrtopo_init(BMEditMesh *em, + Mesh *me, MirrTopoStore_t *mesh_topo_store, bool skip_em_vert_array_init); void ED_mesh_mirrtopo_free(MirrTopoStore_t *mesh_topo_store); @@ -485,20 +451,17 @@ void ED_mesh_mirrtopo_free(MirrTopoStore_t *mesh_topo_store); #define WEIGHT_ADD 2 #define WEIGHT_SUBTRACT 3 -bool ED_vgroup_sync_from_pose(struct Object *ob); -void ED_vgroup_select_by_name(struct Object *ob, const char *name); +bool ED_vgroup_sync_from_pose(Object *ob); +void ED_vgroup_select_by_name(Object *ob, const char *name); /** * Removes out of range #MDeformWeights */ -void ED_vgroup_data_clamp_range(struct ID *id, int total); +void ED_vgroup_data_clamp_range(ID *id, int total); /** * Matching index only. */ -bool ED_vgroup_array_copy(struct Object *ob, struct Object *ob_from); -bool ED_vgroup_parray_alloc(struct ID *id, - struct MDeformVert ***dvert_arr, - int *dvert_tot, - bool use_vert_sel); +bool ED_vgroup_array_copy(Object *ob, Object *ob_from); +bool ED_vgroup_parray_alloc(ID *id, MDeformVert ***dvert_arr, int *dvert_tot, bool use_vert_sel); /** * For use with tools that use ED_vgroup_parray_alloc with \a use_vert_sel == true. * This finds the unselected mirror deform verts and copies the weights to them from the selected. @@ -506,8 +469,8 @@ bool ED_vgroup_parray_alloc(struct ID *id, * \note \a dvert_array has mirrored weights filled in, * in case cleanup operations are needed on both. */ -void ED_vgroup_parray_mirror_sync(struct Object *ob, - struct MDeformVert **dvert_array, +void ED_vgroup_parray_mirror_sync(Object *ob, + MDeformVert **dvert_array, int dvert_tot, const bool *vgroup_validmap, int vgroup_tot); @@ -516,25 +479,23 @@ void ED_vgroup_parray_mirror_sync(struct Object *ob, * * similar to #ED_vgroup_parray_mirror_sync but only fill in mirror points. */ -void ED_vgroup_parray_mirror_assign(struct Object *ob, - struct MDeformVert **dvert_array, - int dvert_tot); -void ED_vgroup_parray_remove_zero(struct MDeformVert **dvert_array, +void ED_vgroup_parray_mirror_assign(Object *ob, MDeformVert **dvert_array, int dvert_tot); +void ED_vgroup_parray_remove_zero(MDeformVert **dvert_array, int dvert_tot, const bool *vgroup_validmap, int vgroup_tot, float epsilon, bool keep_single); -void ED_vgroup_parray_to_weight_array(const struct MDeformVert **dvert_array, +void ED_vgroup_parray_to_weight_array(const MDeformVert **dvert_array, int dvert_tot, float *dvert_weights, int def_nr); -void ED_vgroup_parray_from_weight_array(struct MDeformVert **dvert_array, +void ED_vgroup_parray_from_weight_array(MDeformVert **dvert_array, int dvert_tot, const float *dvert_weights, int def_nr, bool remove_zero); -void ED_vgroup_mirror(struct Object *ob, +void ED_vgroup_mirror(Object *ob, bool mirror_weights, bool flip_vgroups, bool all_vgroups, @@ -545,103 +506,98 @@ void ED_vgroup_mirror(struct Object *ob, /** * Called while not in editmode. */ -void ED_vgroup_vert_add( - struct Object *ob, struct bDeformGroup *dg, int vertnum, float weight, int assignmode); +void ED_vgroup_vert_add(Object *ob, bDeformGroup *dg, int vertnum, float weight, int assignmode); /** * Mesh object mode, lattice can be in edit-mode. */ -void ED_vgroup_vert_remove(struct Object *ob, struct bDeformGroup *dg, int vertnum); -float ED_vgroup_vert_weight(struct Object *ob, struct bDeformGroup *dg, int vertnum); +void ED_vgroup_vert_remove(Object *ob, bDeformGroup *dg, int vertnum); +float ED_vgroup_vert_weight(Object *ob, bDeformGroup *dg, int vertnum); /** * Use when adjusting the active vertex weight and apply to mirror vertices. */ -void ED_vgroup_vert_active_mirror(struct Object *ob, int def_nr); +void ED_vgroup_vert_active_mirror(Object *ob, int def_nr); /* mesh_data.cc */ -void ED_mesh_verts_add(struct Mesh *mesh, struct ReportList *reports, int count); -void ED_mesh_edges_add(struct Mesh *mesh, struct ReportList *reports, int count); -void ED_mesh_loops_add(struct Mesh *mesh, struct ReportList *reports, int count); -void ED_mesh_faces_add(struct Mesh *mesh, struct ReportList *reports, int count); +void ED_mesh_verts_add(Mesh *mesh, ReportList *reports, int count); +void ED_mesh_edges_add(Mesh *mesh, ReportList *reports, int count); +void ED_mesh_loops_add(Mesh *mesh, ReportList *reports, int count); +void ED_mesh_faces_add(Mesh *mesh, ReportList *reports, int count); -void ED_mesh_verts_remove(struct Mesh *mesh, struct ReportList *reports, int count); -void ED_mesh_edges_remove(struct Mesh *mesh, struct ReportList *reports, int count); -void ED_mesh_loops_remove(struct Mesh *mesh, struct ReportList *reports, int count); -void ED_mesh_faces_remove(struct Mesh *mesh, struct ReportList *reports, int count); +void ED_mesh_verts_remove(Mesh *mesh, ReportList *reports, int count); +void ED_mesh_edges_remove(Mesh *mesh, ReportList *reports, int count); +void ED_mesh_loops_remove(Mesh *mesh, ReportList *reports, int count); +void ED_mesh_faces_remove(Mesh *mesh, ReportList *reports, int count); -void ED_mesh_geometry_clear(struct Mesh *mesh); +void ED_mesh_geometry_clear(Mesh *mesh); -bool *ED_mesh_uv_map_vert_select_layer_ensure(struct Mesh *mesh, int uv_map_index); -bool *ED_mesh_uv_map_edge_select_layer_ensure(struct Mesh *mesh, int uv_map_index); -bool *ED_mesh_uv_map_pin_layer_ensure(struct Mesh *mesh, int uv_map_index); -const bool *ED_mesh_uv_map_vert_select_layer_get(const struct Mesh *mesh, int uv_map_index); -const bool *ED_mesh_uv_map_edge_select_layer_get(const struct Mesh *mesh, int uv_map_index); -const bool *ED_mesh_uv_map_pin_layer_get(const struct Mesh *mesh, int uv_map_index); +bool *ED_mesh_uv_map_vert_select_layer_ensure(Mesh *mesh, int uv_map_index); +bool *ED_mesh_uv_map_edge_select_layer_ensure(Mesh *mesh, int uv_map_index); +bool *ED_mesh_uv_map_pin_layer_ensure(Mesh *mesh, int uv_map_index); +const bool *ED_mesh_uv_map_vert_select_layer_get(const Mesh *mesh, int uv_map_index); +const bool *ED_mesh_uv_map_edge_select_layer_get(const Mesh *mesh, int uv_map_index); +const bool *ED_mesh_uv_map_pin_layer_get(const Mesh *mesh, int uv_map_index); -void ED_mesh_uv_ensure(struct Mesh *me, const char *name); -int ED_mesh_uv_add( - struct Mesh *me, const char *name, bool active_set, bool do_init, struct ReportList *reports); +void ED_mesh_uv_ensure(Mesh *me, const char *name); +int ED_mesh_uv_add(Mesh *me, const char *name, bool active_set, bool do_init, ReportList *reports); -void ED_mesh_uv_loop_reset(struct bContext *C, struct Mesh *me); +void ED_mesh_uv_loop_reset(bContext *C, Mesh *me); /** * Without a #bContext, called when UV-editing. */ -void ED_mesh_uv_loop_reset_ex(struct Mesh *me, int layernum); -bool ED_mesh_color_ensure(struct Mesh *me, const char *name); +void ED_mesh_uv_loop_reset_ex(Mesh *me, int layernum); +bool ED_mesh_color_ensure(Mesh *me, const char *name); int ED_mesh_color_add( - struct Mesh *me, const char *name, bool active_set, bool do_init, struct ReportList *reports); + Mesh *me, const char *name, bool active_set, bool do_init, ReportList *reports); -void ED_mesh_report_mirror(struct wmOperator *op, int totmirr, int totfail); -void ED_mesh_report_mirror_ex(struct wmOperator *op, int totmirr, int totfail, char selectmode); +void ED_mesh_report_mirror(wmOperator *op, int totmirr, int totfail); +void ED_mesh_report_mirror_ex(wmOperator *op, int totmirr, int totfail, char selectmode); /** * Returns the pinned mesh, the mesh from the pinned object, or the mesh from the active object. */ -struct Mesh *ED_mesh_context(struct bContext *C); +Mesh *ED_mesh_context(bContext *C); /** * Split all edges that would appear sharp based on face and edge sharpness tags and the * auto smooth angle. */ -void ED_mesh_split_faces(struct Mesh *mesh); +void ED_mesh_split_faces(Mesh *mesh); /* mesh backup */ -typedef struct BMBackup { - struct BMesh *bmcopy; -} BMBackup; +struct BMBackup { + BMesh *bmcopy; +}; /** * Save a copy of the #BMesh for restoring later. */ -struct BMBackup EDBM_redo_state_store(struct BMEditMesh *em); +BMBackup EDBM_redo_state_store(BMEditMesh *em); /** * Restore a BMesh from backup. */ -void EDBM_redo_state_restore(struct BMBackup *backup, struct BMEditMesh *em, bool recalc_looptri) +void EDBM_redo_state_restore(BMBackup *backup, BMEditMesh *em, bool recalc_looptri) ATTR_NONNULL(1, 2); /** * Delete the backup, flushing it to an edit-mesh. */ -void EDBM_redo_state_restore_and_free(struct BMBackup *backup, - struct BMEditMesh *em, - bool recalc_looptri) ATTR_NONNULL(1, 2); -void EDBM_redo_state_free(struct BMBackup *backup) ATTR_NONNULL(1); +void EDBM_redo_state_restore_and_free(BMBackup *backup, BMEditMesh *em, bool recalc_looptri) + ATTR_NONNULL(1, 2); +void EDBM_redo_state_free(BMBackup *backup) ATTR_NONNULL(1); /* *** meshtools.cc *** */ -int ED_mesh_join_objects_exec(struct bContext *C, struct wmOperator *op); -int ED_mesh_shapes_join_objects_exec(struct bContext *C, struct wmOperator *op); +int ED_mesh_join_objects_exec(bContext *C, wmOperator *op); +int ED_mesh_shapes_join_objects_exec(bContext *C, wmOperator *op); /* mirror lookup api */ /* Spatial Mirror */ -void ED_mesh_mirror_spatial_table_begin(struct Object *ob, - struct BMEditMesh *em, - struct Mesh *me_eval); -void ED_mesh_mirror_spatial_table_end(struct Object *ob); -int ED_mesh_mirror_spatial_table_lookup(struct Object *ob, - struct BMEditMesh *em, - struct Mesh *me_eval, +void ED_mesh_mirror_spatial_table_begin(Object *ob, BMEditMesh *em, Mesh *me_eval); +void ED_mesh_mirror_spatial_table_end(Object *ob); +int ED_mesh_mirror_spatial_table_lookup(Object *ob, + BMEditMesh *em, + Mesh *me_eval, const float co[3]); /* Topology Mirror */ @@ -651,65 +607,52 @@ int ED_mesh_mirror_spatial_table_lookup(struct Object *ob, * \note This is supposed return -1 on error, * which callers are currently checking for, but is not used so far. */ -void ED_mesh_mirror_topo_table_begin(struct Object *ob, struct Mesh *me_eval); -void ED_mesh_mirror_topo_table_end(struct Object *ob); +void ED_mesh_mirror_topo_table_begin(Object *ob, Mesh *me_eval); +void ED_mesh_mirror_topo_table_end(Object *ob); /** * Retrieves mirrored cache vert, or NULL if there isn't one. * \note calling this without ensuring the mirror cache state is bad. */ -int mesh_get_x_mirror_vert(struct Object *ob, struct Mesh *me_eval, int index, bool use_topology); -struct BMVert *editbmesh_get_x_mirror_vert(struct Object *ob, - struct BMEditMesh *em, - struct BMVert *eve, - const float co[3], - int index, - bool use_topology); +int mesh_get_x_mirror_vert(Object *ob, Mesh *me_eval, int index, bool use_topology); +BMVert *editbmesh_get_x_mirror_vert( + Object *ob, BMEditMesh *em, BMVert *eve, const float co[3], int index, bool use_topology); /** * This is a Mesh-based copy of #mesh_get_x_mirror_faces(). */ -int *mesh_get_x_mirror_faces(struct Object *ob, struct BMEditMesh *em, struct Mesh *me_eval); +int *mesh_get_x_mirror_faces(Object *ob, BMEditMesh *em, Mesh *me_eval); /** * Wrapper for object-mode/edit-mode. * * call #BM_mesh_elem_table_ensure first for edit-mesh. */ -int ED_mesh_mirror_get_vert(struct Object *ob, int index); +int ED_mesh_mirror_get_vert(Object *ob, int index); -bool ED_mesh_pick_vert(struct bContext *C, - struct Object *ob, - const int mval[2], - uint dist_px, - bool use_zbuf, - uint *r_index); +bool ED_mesh_pick_vert( + bContext *C, Object *ob, const int mval[2], uint dist_px, bool use_zbuf, uint *r_index); /** * Face selection in object mode, * currently only weight-paint and vertex-paint use this. * * \return boolean true == Found */ -bool ED_mesh_pick_face( - struct bContext *C, struct Object *ob, const int mval[2], uint dist_px, uint *r_index); +bool ED_mesh_pick_face(bContext *C, Object *ob, const int mval[2], uint dist_px, uint *r_index); /** * Use when the back buffer stores face index values. but we want a vert. * This gets the face then finds the closest vertex to mval. */ bool ED_mesh_pick_face_vert( - struct bContext *C, struct Object *ob, const int mval[2], uint dist_px, uint *r_index); + bContext *C, Object *ob, const int mval[2], uint dist_px, uint *r_index); -struct MDeformVert *ED_mesh_active_dvert_get_em(struct Object *ob, struct BMVert **r_eve); -struct MDeformVert *ED_mesh_active_dvert_get_ob(struct Object *ob, int *r_index); -struct MDeformVert *ED_mesh_active_dvert_get_only(struct Object *ob); +MDeformVert *ED_mesh_active_dvert_get_em(Object *ob, BMVert **r_eve); +MDeformVert *ED_mesh_active_dvert_get_ob(Object *ob, int *r_index); +MDeformVert *ED_mesh_active_dvert_get_only(Object *ob); -void EDBM_mesh_stats_multi(struct Object **objects, - uint objects_len, - int totelem[3], - int totelem_sel[3]); -void EDBM_mesh_elem_index_ensure_multi(struct Object **objects, uint objects_len, char htype); +void EDBM_mesh_stats_multi(Object **objects, uint objects_len, int totelem[3], int totelem_sel[3]); +void EDBM_mesh_elem_index_ensure_multi(Object **objects, uint objects_len, char htype); #define ED_MESH_PICK_DEFAULT_VERT_DIST 25 #define ED_MESH_PICK_DEFAULT_FACE_DIST 1 #define USE_LOOPSLIDE_HACK - diff --git a/source/blender/editors/include/ED_node_c.hh b/source/blender/editors/include/ED_node_c.hh index 68d3d6f5791..89c8d0b0cfa 100644 --- a/source/blender/editors/include/ED_node_c.hh +++ b/source/blender/editors/include/ED_node_c.hh @@ -8,6 +8,7 @@ #pragma once +struct ARegion; struct ID; struct Main; struct Scene; @@ -39,79 +40,73 @@ ENUM_OPERATORS(NodeBorder, NODE_RIGHT) /* clipboard.cc */ -void ED_node_clipboard_free(void); +void ED_node_clipboard_free(); /* space_node.cc */ -void ED_node_cursor_location_get(const struct SpaceNode *snode, float value[2]); -void ED_node_cursor_location_set(struct SpaceNode *snode, const float value[2]); +void ED_node_cursor_location_get(const SpaceNode *snode, float value[2]); +void ED_node_cursor_location_set(SpaceNode *snode, const float value[2]); -int ED_node_tree_path_length(struct SpaceNode *snode); +int ED_node_tree_path_length(SpaceNode *snode); /** * \param value: The path output at least the size of `ED_node_tree_path_length(snode) + 1`. */ -void ED_node_tree_path_get(struct SpaceNode *snode, char *value); +void ED_node_tree_path_get(SpaceNode *snode, char *value); -void ED_node_tree_start(struct SpaceNode *snode, - struct bNodeTree *ntree, - struct ID *id, - struct ID *from); -void ED_node_tree_push(struct SpaceNode *snode, struct bNodeTree *ntree, struct bNode *gnode); -void ED_node_tree_pop(struct SpaceNode *snode); -int ED_node_tree_depth(struct SpaceNode *snode); -struct bNodeTree *ED_node_tree_get(struct SpaceNode *snode, int level); +void ED_node_tree_start(SpaceNode *snode, bNodeTree *ntree, ID *id, ID *from); +void ED_node_tree_push(SpaceNode *snode, bNodeTree *ntree, bNode *gnode); +void ED_node_tree_pop(SpaceNode *snode); +int ED_node_tree_depth(SpaceNode *snode); +bNodeTree *ED_node_tree_get(SpaceNode *snode, int level); -void ED_node_set_active_viewer_key(struct SpaceNode *snode); +void ED_node_set_active_viewer_key(SpaceNode *snode); /* drawnode.cc */ -void ED_node_init_butfuncs(void); -void ED_init_custom_node_type(struct bNodeType *ntype); -void ED_init_custom_node_socket_type(struct bNodeSocketType *stype); -void ED_init_standard_node_socket_type(struct bNodeSocketType *stype); -void ED_init_node_socket_type_virtual(struct bNodeSocketType *stype); +void ED_node_init_butfuncs(); +void ED_init_custom_node_type(bNodeType *ntype); +void ED_init_custom_node_socket_type(bNodeSocketType *stype); +void ED_init_standard_node_socket_type(bNodeSocketType *stype); +void ED_init_node_socket_type_virtual(bNodeSocketType *stype); void ED_node_sample_set(const float col[4]); void ED_node_draw_snap( - struct View2D *v2d, const float cent[2], float size, NodeBorder border, unsigned int pos); + View2D *v2d, const float cent[2], float size, NodeBorder border, unsigned int pos); void ED_node_type_draw_color(const char *idname, float *r_color); /* node_draw.cc */ -void ED_node_tree_update(const struct bContext *C); -void ED_node_tag_update_id(struct ID *id); +void ED_node_tree_update(const bContext *C); +void ED_node_tag_update_id(ID *id); -float ED_node_grid_size(void); +float ED_node_grid_size(); /* node_edit.cc */ -void ED_node_set_tree_type(struct SpaceNode *snode, struct bNodeTreeType *typeinfo); -bool ED_node_is_compositor(struct SpaceNode *snode); -bool ED_node_is_shader(struct SpaceNode *snode); -bool ED_node_is_texture(struct SpaceNode *snode); -bool ED_node_is_geometry(struct SpaceNode *snode); -bool ED_node_supports_preview(struct SpaceNode *snode); +void ED_node_set_tree_type(SpaceNode *snode, bNodeTreeType *typeinfo); +bool ED_node_is_compositor(SpaceNode *snode); +bool ED_node_is_shader(SpaceNode *snode); +bool ED_node_is_texture(SpaceNode *snode); +bool ED_node_is_geometry(SpaceNode *snode); +bool ED_node_supports_preview(SpaceNode *snode); /** * Assumes nothing being done in ntree yet, sets the default in/out node. * Called from shading buttons or header. */ -void ED_node_shader_default(const struct bContext *C, struct ID *id); +void ED_node_shader_default(const bContext *C, ID *id); /** * Assumes nothing being done in ntree yet, sets the default in/out node. * Called from shading buttons or header. */ -void ED_node_composit_default(const struct bContext *C, struct Scene *scene); +void ED_node_composit_default(const bContext *C, Scene *scene); /** * Assumes nothing being done in ntree yet, sets the default in/out node. * Called from shading buttons or header. */ -void ED_node_texture_default(const struct bContext *C, struct Tex *tex); -void ED_node_post_apply_transform(struct bContext *C, struct bNodeTree *ntree); -void ED_node_set_active(struct Main *bmain, - struct SpaceNode *snode, - struct bNodeTree *ntree, - struct bNode *node, - bool *r_active_texture_changed); +void ED_node_texture_default(const bContext *C, Tex *tex); +void ED_node_post_apply_transform(bContext *C, bNodeTree *ntree); +void ED_node_set_active( + Main *bmain, SpaceNode *snode, bNodeTree *ntree, bNode *node, bool *r_active_texture_changed); /** * Call after one or more node trees have been changed and tagged accordingly. @@ -129,9 +124,7 @@ void ED_node_set_active(struct Main *bmain, * for other things that have to be changed. It may still scan #bmain if the interface of the * node tree has changed. */ -void ED_node_tree_propagate_change(const struct bContext *C, - struct Main *bmain, - struct bNodeTree *ntree); +void ED_node_tree_propagate_change(const bContext *C, Main *bmain, bNodeTree *ntree); /** * \param scene_owner: is the owner of the job, @@ -140,30 +133,22 @@ void ED_node_tree_propagate_change(const struct bContext *C, * * \note only call from spaces `refresh` callbacks, not direct! - use with care. */ -void ED_node_composite_job(const struct bContext *C, - struct bNodeTree *nodetree, - struct Scene *scene_owner); +void ED_node_composite_job(const bContext *C, bNodeTree *nodetree, Scene *scene_owner); /* node_ops.cc */ -void ED_operatormacros_node(void); +void ED_operatormacros_node(); /* node_view.cc */ /** * Returns mouse position in image space. */ -bool ED_space_node_get_position(struct Main *bmain, - struct SpaceNode *snode, - struct ARegion *region, - const int mval[2], - float fpos[2]); +bool ED_space_node_get_position( + Main *bmain, SpaceNode *snode, ARegion *region, const int mval[2], float fpos[2]); /** * Returns color in linear space, matching #ED_space_image_color_sample(). * And here we've got recursion in the comments tips... */ -bool ED_space_node_color_sample(struct Main *bmain, - struct SpaceNode *snode, - struct ARegion *region, - const int mval[2], - float r_col[3]); +bool ED_space_node_color_sample( + Main *bmain, SpaceNode *snode, ARegion *region, const int mval[2], float r_col[3]); diff --git a/source/blender/editors/include/ED_numinput.hh b/source/blender/editors/include/ED_numinput.hh index 5f3e211e124..52d5c0854c6 100644 --- a/source/blender/editors/include/ED_numinput.hh +++ b/source/blender/editors/include/ED_numinput.hh @@ -12,8 +12,9 @@ #define NUM_MAX_ELEMENTS 3 struct wmEvent; +struct UnitSettings; -typedef struct NumInput { +struct NumInput { /** idx_max < NUM_MAX_ELEMENTS */ short idx_max; int unit_sys; @@ -39,7 +40,7 @@ typedef struct NumInput { /** Current position of cursor in edited value str * (first byte of "current" letter, so 0 for an empty str) */ int str_cur; -} NumInput; +}; /** #NumInput.flag */ enum { @@ -57,8 +58,6 @@ enum { /* (1 << 9) and above are reserved for internal flags! */ }; -struct UnitSettings; - /* -------------------------------------------------------------------- */ /** \name NumInput * \{ */ @@ -81,13 +80,13 @@ void initNumInput(NumInput *n); /** * \param str: Must be NUM_STR_REP_LEN * (idx_max + 1) length. */ -void outputNumInput(NumInput *n, char *str, struct UnitSettings *unit_settings); +void outputNumInput(NumInput *n, char *str, UnitSettings *unit_settings); bool hasNumInput(const NumInput *n); /** * \warning \a vec must be set beforehand otherwise we risk uninitialized vars. */ bool applyNumInput(NumInput *n, float *vec); -bool handleNumInput(struct bContext *C, NumInput *n, const struct wmEvent *event); +bool handleNumInput(bContext *C, NumInput *n, const wmEvent *event); /** Share with `TFM_MODAL_CANCEL` in `transform.h`. */ #define NUM_MODAL_INCREMENT_UP 18 @@ -95,7 +94,7 @@ bool handleNumInput(struct bContext *C, NumInput *n, const struct wmEvent *event bool user_string_to_number(bContext *C, const char *str, - const struct UnitSettings *unit, + const UnitSettings *unit, int type, double *r_value, bool use_single_line_error, diff --git a/source/blender/editors/include/ED_object.hh b/source/blender/editors/include/ED_object.hh index 02fe223ba19..73bcef459d3 100644 --- a/source/blender/editors/include/ED_object.hh +++ b/source/blender/editors/include/ED_object.hh @@ -17,6 +17,7 @@ struct Base; struct Depsgraph; struct EnumPropertyItem; struct ID; +struct GpencilModifierData; struct Main; struct ModifierData; struct Object; @@ -39,13 +40,13 @@ struct wmOperatorType; /* object_edit.cc */ /** `context.object` */ -struct Object *ED_object_context(const struct bContext *C); +Object *ED_object_context(const bContext *C); /** * Find the correct active object per context (`context.object` or `context.active_object`) * \note context can be NULL when called from a enum with #PROP_ENUM_NO_CONTEXT. */ -struct Object *ED_object_active_context(const struct bContext *C); -void ED_collection_hide_menu_draw(const struct bContext *C, struct uiLayout *layout); +Object *ED_object_active_context(const bContext *C); +void ED_collection_hide_menu_draw(const bContext *C, uiLayout *layout); /** * Return an array of objects: @@ -55,35 +56,31 @@ void ED_collection_hide_menu_draw(const struct bContext *C, struct uiLayout *lay * the callers \a filter_fn needs to check of they are editable * (assuming they need to be modified). */ -Object **ED_object_array_in_mode_or_selected(struct bContext *C, - bool (*filter_fn)(const struct Object *ob, - void *user_data), +Object **ED_object_array_in_mode_or_selected(bContext *C, + bool (*filter_fn)(const Object *ob, void *user_data), void *filter_user_data, uint *r_objects_len); /* `object_utils.cc` */ -bool ED_object_calc_active_center_for_editmode(struct Object *obedit, +bool ED_object_calc_active_center_for_editmode(Object *obedit, bool select_only, float r_center[3]); -bool ED_object_calc_active_center_for_posemode(struct Object *ob, - bool select_only, - float r_center[3]); -bool ED_object_calc_active_center(struct Object *ob, bool select_only, float r_center[3]); +bool ED_object_calc_active_center_for_posemode(Object *ob, bool select_only, float r_center[3]); +bool ED_object_calc_active_center(Object *ob, bool select_only, float r_center[3]); /* Object Data Container helper API. */ struct XFormObjectData_Container; -struct XFormObjectData_Container *ED_object_data_xform_container_create(void); -void ED_object_data_xform_container_destroy(struct XFormObjectData_Container *xds); +XFormObjectData_Container *ED_object_data_xform_container_create(); +void ED_object_data_xform_container_destroy(XFormObjectData_Container *xds); /** * This may be called multiple times with the same data. * Each time, the original transformations are re-applied, instead of accumulating the changes. */ -void ED_object_data_xform_container_update_all(struct XFormObjectData_Container *xds, - struct Main *bmain, - struct Depsgraph *depsgraph); -void ED_object_data_xform_container_item_ensure(struct XFormObjectData_Container *xds, - struct Object *ob); +void ED_object_data_xform_container_update_all(XFormObjectData_Container *xds, + Main *bmain, + Depsgraph *depsgraph); +void ED_object_data_xform_container_item_ensure(XFormObjectData_Container *xds, Object *ob); /* Object Skip-Child Container helper API. */ enum { @@ -105,33 +102,33 @@ enum { XFORM_OB_SKIP_CHILD_PARENT_APPLY = 2, }; struct XFormObjectSkipChild_Container; -struct XFormObjectSkipChild_Container *ED_object_xform_skip_child_container_create(void); +XFormObjectSkipChild_Container *ED_object_xform_skip_child_container_create(); void ED_object_xform_skip_child_container_item_ensure_from_array( - struct XFormObjectSkipChild_Container *xcs, - const struct Scene *scene, - struct ViewLayer *view_layer, - struct Object **objects, + XFormObjectSkipChild_Container *xcs, + const Scene *scene, + ViewLayer *view_layer, + Object **objects, uint objects_len); -void ED_object_xform_skip_child_container_destroy(struct XFormObjectSkipChild_Container *xcs); -void ED_object_xform_skip_child_container_update_all(struct XFormObjectSkipChild_Container *xcs, - struct Main *bmain, - struct Depsgraph *depsgraph); -void ED_object_xform_skip_child_container_item_ensure(struct XFormObjectSkipChild_Container *xcs, - struct Object *ob, - struct Object *ob_parent_recurse, +void ED_object_xform_skip_child_container_destroy(XFormObjectSkipChild_Container *xcs); +void ED_object_xform_skip_child_container_update_all(XFormObjectSkipChild_Container *xcs, + Main *bmain, + Depsgraph *depsgraph); +void ED_object_xform_skip_child_container_item_ensure(XFormObjectSkipChild_Container *xcs, + Object *ob, + Object *ob_parent_recurse, int mode); -void ED_object_xform_array_m4(struct Object **objects, uint objects_len, const float matrix[4][4]); +void ED_object_xform_array_m4(Object **objects, uint objects_len, const float matrix[4][4]); /* `object_ops.cc` */ -void ED_operatortypes_object(void); -void ED_operatormacros_object(void); -void ED_keymap_object(struct wmKeyConfig *keyconf); +void ED_operatortypes_object(); +void ED_operatormacros_object(); +void ED_keymap_object(wmKeyConfig *keyconf); /* `object_relations.cc` */ -typedef enum eParentType { +enum eParentType { PAR_OBJECT, PAR_ARMATURE, PAR_ARMATURE_NAME, @@ -145,40 +142,40 @@ typedef enum eParentType { PAR_LATTICE, PAR_VERTEX, PAR_VERTEX_TRI, -} eParentType; +}; -typedef enum eObjectSelect_Mode { +enum eObjectSelect_Mode { BA_DESELECT = 0, BA_SELECT = 1, BA_INVERT = 2, -} eObjectSelect_Mode; +}; -typedef enum eObClearParentTypes { +enum eObClearParentTypes { CLEAR_PARENT_ALL = 0, CLEAR_PARENT_KEEP_TRANSFORM, CLEAR_PARENT_INVERSE, -} eObClearParentTypes; +}; #ifdef __RNA_TYPES_H__ /** Operator Property: `OBJECT_OT_parent_clear`. */ -extern struct EnumPropertyItem prop_clear_parent_types[]; +extern EnumPropertyItem prop_clear_parent_types[]; /** Operator Property: `OBJECT_OT_parent_set`. */ -extern struct EnumPropertyItem prop_make_parent_types[]; +extern EnumPropertyItem prop_make_parent_types[]; #endif /** * Set the object's parent, return true if successful. */ -bool ED_object_parent_set(struct ReportList *reports, - const struct bContext *C, - struct Scene *scene, - struct Object *const ob, - struct Object *const par, +bool ED_object_parent_set(ReportList *reports, + const bContext *C, + Scene *scene, + Object *const ob, + Object *const par, int partype, bool xmirror, bool keep_transform, const int vert_par[3]); -void ED_object_parent_clear(struct Object *ob, int type); +void ED_object_parent_clear(Object *ob, int type); /** * Simple API for object selection, rather than just using the flag @@ -188,38 +185,31 @@ void ED_object_parent_clear(struct Object *ob, int type); * \note Caller must send a `NC_SCENE | ND_OB_SELECT` notifier * (or a `NC_SCENE | ND_OB_VISIBLE` in case of visibility toggling). */ -void ED_object_base_select(struct Base *base, eObjectSelect_Mode mode); +void ED_object_base_select(Base *base, eObjectSelect_Mode mode); /** * Change active base, it includes the notifier */ -void ED_object_base_activate(struct bContext *C, struct Base *base); -void ED_object_base_activate_with_mode_exit_if_needed(struct bContext *C, struct Base *base); +void ED_object_base_activate(bContext *C, Base *base); +void ED_object_base_activate_with_mode_exit_if_needed(bContext *C, Base *base); /** * Call when the active base has changed. */ -void ED_object_base_active_refresh(struct Main *bmain, - struct Scene *scene, - struct ViewLayer *view_layer); +void ED_object_base_active_refresh(Main *bmain, Scene *scene, ViewLayer *view_layer); /** * Remove base from a specific scene. * \note now unlinks constraints as well. */ -void ED_object_base_free_and_unlink(struct Main *bmain, struct Scene *scene, struct Object *ob); +void ED_object_base_free_and_unlink(Main *bmain, Scene *scene, Object *ob); /** * Remove base from a specific scene. * `ob` must not be indirectly used. */ -void ED_object_base_free_and_unlink_no_indirect_check(struct Main *bmain, - struct Scene *scene, - struct Object *ob); -bool ED_object_base_deselect_all_ex(const struct Scene *scene, - struct ViewLayer *view_layer, - struct View3D *v3d, - int action, - bool *r_any_visible); -bool ED_object_base_deselect_all(const struct Scene *scene, - struct ViewLayer *view_layer, - struct View3D *v3d, +void ED_object_base_free_and_unlink_no_indirect_check(Main *bmain, Scene *scene, Object *ob); +bool ED_object_base_deselect_all_ex( + const Scene *scene, ViewLayer *view_layer, View3D *v3d, int action, bool *r_any_visible); +bool ED_object_base_deselect_all(const Scene *scene, + ViewLayer *view_layer, + View3D *v3d, int action); /** @@ -229,18 +219,13 @@ bool ED_object_base_deselect_all(const struct Scene *scene, * \note caller must do `DAG_relations_tag_update(bmain);` * this is not done automatic since we may duplicate many objects in a batch. */ -struct Base *ED_object_add_duplicate(struct Main *bmain, - struct Scene *scene, - struct ViewLayer *view_layer, - struct Base *base, - eDupli_ID_Flags dupflag); +Base *ED_object_add_duplicate( + Main *bmain, Scene *scene, ViewLayer *view_layer, Base *base, eDupli_ID_Flags dupflag); -void ED_object_parent(struct Object *ob, struct Object *parent, int type, const char *substr); -char *ED_object_ot_drop_named_material_tooltip(struct bContext *C, - const char *name, - const int mval[2]); -char *ED_object_ot_drop_geometry_nodes_tooltip(struct bContext *C, - struct PointerRNA *properties, +void ED_object_parent(Object *ob, Object *parent, int type, const char *substr); +char *ED_object_ot_drop_named_material_tooltip(bContext *C, const char *name, const int mval[2]); +char *ED_object_ot_drop_geometry_nodes_tooltip(bContext *C, + PointerRNA *properties, const int mval[2]); /* bitflags for enter/exit editmode */ @@ -252,93 +237,69 @@ enum { * \param flag: * - If #EM_FREEDATA isn't in the flag, use ED_object_editmode_load directly. */ -bool ED_object_editmode_exit_ex(struct Main *bmain, - struct Scene *scene, - struct Object *obedit, - int flag); -bool ED_object_editmode_exit(struct bContext *C, int flag); +bool ED_object_editmode_exit_ex(Main *bmain, Scene *scene, Object *obedit, int flag); +bool ED_object_editmode_exit(bContext *C, int flag); /** * Support freeing edit-mode data without flushing it back to the object. * * \return true if data was freed. */ -bool ED_object_editmode_free_ex(struct Main *bmain, struct Object *obedit); +bool ED_object_editmode_free_ex(Main *bmain, Object *obedit); -bool ED_object_editmode_exit_multi_ex(struct Main *bmain, - struct Scene *scene, - struct ViewLayer *view_layer, - int flag); -bool ED_object_editmode_exit_multi(struct bContext *C, int flag); +bool ED_object_editmode_exit_multi_ex(Main *bmain, Scene *scene, ViewLayer *view_layer, int flag); +bool ED_object_editmode_exit_multi(bContext *C, int flag); -bool ED_object_editmode_enter_ex(struct Main *bmain, - struct Scene *scene, - struct Object *ob, - int flag); -bool ED_object_editmode_enter(struct bContext *C, int flag); -bool ED_object_editmode_load(struct Main *bmain, struct Object *obedit); +bool ED_object_editmode_enter_ex(Main *bmain, Scene *scene, Object *ob, int flag); +bool ED_object_editmode_enter(bContext *C, int flag); +bool ED_object_editmode_load(Main *bmain, Object *obedit); -void ED_object_vpaintmode_enter_ex(struct Main *bmain, - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *ob); -void ED_object_vpaintmode_enter(struct bContext *C, struct Depsgraph *depsgraph); -void ED_object_wpaintmode_enter_ex(struct Main *bmain, - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *ob); -void ED_object_wpaintmode_enter(struct bContext *C, struct Depsgraph *depsgraph); +void ED_object_vpaintmode_enter_ex(Main *bmain, Depsgraph *depsgraph, Scene *scene, Object *ob); +void ED_object_vpaintmode_enter(bContext *C, Depsgraph *depsgraph); +void ED_object_wpaintmode_enter_ex(Main *bmain, Depsgraph *depsgraph, Scene *scene, Object *ob); +void ED_object_wpaintmode_enter(bContext *C, Depsgraph *depsgraph); -void ED_object_vpaintmode_exit_ex(struct Object *ob); -void ED_object_vpaintmode_exit(struct bContext *C); -void ED_object_wpaintmode_exit_ex(struct Object *ob); -void ED_object_wpaintmode_exit(struct bContext *C); +void ED_object_vpaintmode_exit_ex(Object *ob); +void ED_object_vpaintmode_exit(bContext *C); +void ED_object_wpaintmode_exit_ex(Object *ob); +void ED_object_wpaintmode_exit(bContext *C); -void ED_object_texture_paint_mode_enter_ex(struct Main *bmain, - struct Scene *scene, - struct Depsgraph *depsgraph, +void ED_object_texture_paint_mode_enter_ex(Main *bmain, + Scene *scene, + Depsgraph *depsgraph, Object *ob); -void ED_object_texture_paint_mode_enter(struct bContext *C); +void ED_object_texture_paint_mode_enter(bContext *C); -void ED_object_texture_paint_mode_exit_ex(struct Main *bmain, struct Scene *scene, Object *ob); -void ED_object_texture_paint_mode_exit(struct bContext *C); +void ED_object_texture_paint_mode_exit_ex(Main *bmain, Scene *scene, Object *ob); +void ED_object_texture_paint_mode_exit(bContext *C); bool ED_object_particle_edit_mode_supported(const Object *ob); -void ED_object_particle_edit_mode_enter_ex(struct Depsgraph *depsgraph, - struct Scene *scene, - Object *ob); -void ED_object_particle_edit_mode_enter(struct bContext *C); +void ED_object_particle_edit_mode_enter_ex(Depsgraph *depsgraph, Scene *scene, Object *ob); +void ED_object_particle_edit_mode_enter(bContext *C); -void ED_object_particle_edit_mode_exit_ex(struct Scene *scene, Object *ob); -void ED_object_particle_edit_mode_exit(struct bContext *C); +void ED_object_particle_edit_mode_exit_ex(Scene *scene, Object *ob); +void ED_object_particle_edit_mode_exit(bContext *C); -void ED_object_sculptmode_enter_ex(struct Main *bmain, - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *ob, +void ED_object_sculptmode_enter_ex(Main *bmain, + Depsgraph *depsgraph, + Scene *scene, + Object *ob, bool force_dyntopo, - struct ReportList *reports); -void ED_object_sculptmode_enter(struct bContext *C, - struct Depsgraph *depsgraph, - struct ReportList *reports); -void ED_object_sculptmode_exit_ex(struct Main *bmain, - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *ob); -void ED_object_sculptmode_exit(struct bContext *C, struct Depsgraph *depsgraph); + ReportList *reports); +void ED_object_sculptmode_enter(bContext *C, Depsgraph *depsgraph, ReportList *reports); +void ED_object_sculptmode_exit_ex(Main *bmain, Depsgraph *depsgraph, Scene *scene, Object *ob); +void ED_object_sculptmode_exit(bContext *C, Depsgraph *depsgraph); -void ED_object_location_from_view(struct bContext *C, float loc[3]); +void ED_object_location_from_view(bContext *C, float loc[3]); void ED_object_rotation_from_quat(float rot[3], const float quat[4], char align_axis); -void ED_object_rotation_from_view(struct bContext *C, float rot[3], char align_axis); -void ED_object_base_init_transform_on_add(struct Object *object, - const float loc[3], - const float rot[3]); +void ED_object_rotation_from_view(bContext *C, float rot[3], char align_axis); +void ED_object_base_init_transform_on_add(Object *object, const float loc[3], const float rot[3]); /** * Uses context to figure out transform for primitive. * Returns standard diameter. */ -float ED_object_new_primitive_matrix(struct bContext *C, - struct Object *obedit, +float ED_object_new_primitive_matrix(bContext *C, + Object *obedit, const float loc[3], const float rot[3], const float scale[3], @@ -349,13 +310,13 @@ float ED_object_new_primitive_matrix(struct bContext *C, */ #define OBJECT_ADD_SIZE_MAXF 1.0e12f -void ED_object_add_unit_props_size(struct wmOperatorType *ot); -void ED_object_add_unit_props_radius_ex(struct wmOperatorType *ot, float default_value); -void ED_object_add_unit_props_radius(struct wmOperatorType *ot); -void ED_object_add_generic_props(struct wmOperatorType *ot, bool do_editmode); -void ED_object_add_mesh_props(struct wmOperatorType *ot); -bool ED_object_add_generic_get_opts(struct bContext *C, - struct wmOperator *op, +void ED_object_add_unit_props_size(wmOperatorType *ot); +void ED_object_add_unit_props_radius_ex(wmOperatorType *ot, float default_value); +void ED_object_add_unit_props_radius(wmOperatorType *ot); +void ED_object_add_generic_props(wmOperatorType *ot, bool do_editmode); +void ED_object_add_mesh_props(wmOperatorType *ot); +bool ED_object_add_generic_get_opts(bContext *C, + wmOperator *op, char view_align_axis, float r_loc[3], float r_rot[3], @@ -370,43 +331,42 @@ bool ED_object_add_generic_get_opts(struct bContext *C, * * \note Do not call undo push in this function (users of this function have to). */ -struct Object *ED_object_add_type_with_obdata(struct bContext *C, - int type, - const char *name, - const float loc[3], - const float rot[3], - bool enter_editmode, - ushort local_view_bits, - struct ID *obdata); -struct Object *ED_object_add_type(struct bContext *C, - int type, - const char *name, - const float loc[3], - const float rot[3], - bool enter_editmode, - unsigned short local_view_bits) - ATTR_NONNULL(1) ATTR_RETURNS_NONNULL; +Object *ED_object_add_type_with_obdata(bContext *C, + int type, + const char *name, + const float loc[3], + const float rot[3], + bool enter_editmode, + ushort local_view_bits, + ID *obdata); +Object *ED_object_add_type(bContext *C, + int type, + const char *name, + const float loc[3], + const float rot[3], + bool enter_editmode, + unsigned short local_view_bits) ATTR_NONNULL(1) ATTR_RETURNS_NONNULL; /** * Not an especially efficient function, only added so the single user button can be functional. */ -void ED_object_single_user(struct Main *bmain, struct Scene *scene, struct Object *ob); +void ED_object_single_user(Main *bmain, Scene *scene, Object *ob); -void ED_object_single_obdata_user(struct Main *bmain, struct Scene *scene, struct Object *ob); +void ED_object_single_obdata_user(Main *bmain, Scene *scene, Object *ob); /* object motion paths */ /** * Clear motion paths for all objects. */ -void ED_objects_clear_paths(struct bContext *C, bool only_selected); +void ED_objects_clear_paths(bContext *C, bool only_selected); /* Corresponds to eAnimvizCalcRange. */ -typedef enum eObjectPathCalcRange { +enum eObjectPathCalcRange { OBJECT_PATH_CALC_RANGE_CURRENT_FRAME, OBJECT_PATH_CALC_RANGE_CHANGED, OBJECT_PATH_CALC_RANGE_FULL, -} eObjectPathCalcRange; +}; /** * For the objects with animation: update paths for those that have got them @@ -414,67 +374,54 @@ typedef enum eObjectPathCalcRange { * * To be called from various tools that do incremental updates */ -void ED_objects_recalculate_paths(struct bContext *C, - struct Scene *scene, +void ED_objects_recalculate_paths(bContext *C, + Scene *scene, eObjectPathCalcRange range, - struct ListBase *ld_objects); + ListBase *ld_objects); -void ED_objects_recalculate_paths_selected(struct bContext *C, - struct Scene *scene, - eObjectPathCalcRange range); +void ED_objects_recalculate_paths_selected(bContext *C, Scene *scene, eObjectPathCalcRange range); -void ED_objects_recalculate_paths_visible(struct bContext *C, - struct Scene *scene, - eObjectPathCalcRange range); +void ED_objects_recalculate_paths_visible(bContext *C, Scene *scene, eObjectPathCalcRange range); /* constraints */ /** * If object is in pose-mode, return active bone constraints, else object constraints. * No constraints are returned for a bone on an inactive bone-layer. */ -struct ListBase *ED_object_constraint_active_list(struct Object *ob); +ListBase *ED_object_constraint_active_list(Object *ob); /** * Get the constraints for the active pose bone. Bone may be on an inactive bone-layer * (unlike #ED_object_constraint_active_list, such constraints are not excluded here). */ -struct ListBase *ED_object_pose_constraint_list(const struct bContext *C); +ListBase *ED_object_pose_constraint_list(const bContext *C); /** * Find the list that a given constraint belongs to, * and/or also get the posechannel this is from (if applicable). */ -struct ListBase *ED_object_constraint_list_from_constraint(struct Object *ob, - struct bConstraint *con, - struct bPoseChannel **r_pchan); +ListBase *ED_object_constraint_list_from_constraint(Object *ob, + bConstraint *con, + bPoseChannel **r_pchan); /** * Single constraint. */ -struct bConstraint *ED_object_constraint_active_get(struct Object *ob); +bConstraint *ED_object_constraint_active_get(Object *ob); -void object_test_constraints(struct Main *bmain, struct Object *ob); +void object_test_constraints(Main *bmain, Object *ob); -void ED_object_constraint_active_set(struct Object *ob, struct bConstraint *con); -void ED_object_constraint_update(struct Main *bmain, struct Object *ob); -void ED_object_constraint_dependency_update(struct Main *bmain, struct Object *ob); +void ED_object_constraint_active_set(Object *ob, bConstraint *con); +void ED_object_constraint_update(Main *bmain, Object *ob); +void ED_object_constraint_dependency_update(Main *bmain, Object *ob); -void ED_object_constraint_tag_update(struct Main *bmain, - struct Object *ob, - struct bConstraint *con); -void ED_object_constraint_dependency_tag_update(struct Main *bmain, - struct Object *ob, - struct bConstraint *con); +void ED_object_constraint_tag_update(Main *bmain, Object *ob, bConstraint *con); +void ED_object_constraint_dependency_tag_update(Main *bmain, Object *ob, bConstraint *con); -bool ED_object_constraint_move_to_index(struct Object *ob, struct bConstraint *con, int index); -void ED_object_constraint_link(struct Main *bmain, - struct Object *ob_dst, - struct ListBase *dst, - struct ListBase *src); -void ED_object_constraint_copy_for_object(struct Main *bmain, - struct Object *ob_dst, - struct bConstraint *con); -void ED_object_constraint_copy_for_pose(struct Main *bmain, - struct Object *ob_dst, - struct bPoseChannel *pchan, - struct bConstraint *con); +bool ED_object_constraint_move_to_index(Object *ob, bConstraint *con, int index); +void ED_object_constraint_link(Main *bmain, Object *ob_dst, ListBase *dst, ListBase *src); +void ED_object_constraint_copy_for_object(Main *bmain, Object *ob_dst, bConstraint *con); +void ED_object_constraint_copy_for_pose(Main *bmain, + Object *ob_dst, + bPoseChannel *pchan, + bConstraint *con); /* object_modes.cc */ @@ -482,31 +429,22 @@ void ED_object_constraint_copy_for_pose(struct Main *bmain, * Checks the mode to be set is compatible with the object * should be made into a generic function */ -bool ED_object_mode_compat_test(const struct Object *ob, eObjectMode mode); +bool ED_object_mode_compat_test(const Object *ob, eObjectMode mode); /** * Sets the mode to a compatible state (use before entering the mode). * * This is so each mode's exec function can call */ -bool ED_object_mode_compat_set(struct bContext *C, - struct Object *ob, - eObjectMode mode, - struct ReportList *reports); -bool ED_object_mode_set_ex(struct bContext *C, - eObjectMode mode, - bool use_undo, - struct ReportList *reports); -bool ED_object_mode_set(struct bContext *C, eObjectMode mode); +bool ED_object_mode_compat_set(bContext *C, Object *ob, eObjectMode mode, ReportList *reports); +bool ED_object_mode_set_ex(bContext *C, eObjectMode mode, bool use_undo, ReportList *reports); +bool ED_object_mode_set(bContext *C, eObjectMode mode); -void ED_object_mode_generic_exit(struct Main *bmain, - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *ob); -bool ED_object_mode_generic_has_data(struct Depsgraph *depsgraph, const struct Object *ob); +void ED_object_mode_generic_exit(Main *bmain, Depsgraph *depsgraph, Scene *scene, Object *ob); +bool ED_object_mode_generic_has_data(Depsgraph *depsgraph, const Object *ob); -void ED_object_posemode_set_for_weight_paint(struct bContext *C, - struct Main *bmain, - struct Object *ob, +void ED_object_posemode_set_for_weight_paint(bContext *C, + Main *bmain, + Object *ob, bool is_mode_set); /** @@ -521,16 +459,16 @@ void ED_object_posemode_set_for_weight_paint(struct bContext *C, * * \note The active object is always index 0. */ -int ED_object_in_mode_to_index(const struct Scene *scene, - struct ViewLayer *view_layer, +int ED_object_in_mode_to_index(const Scene *scene, + ViewLayer *view_layer, eObjectMode mode, - const struct Object *ob); + const Object *ob); /** * Access the object from the index returned by #ED_object_in_mode_to_index. */ -Object *ED_object_in_mode_from_index(const struct Scene *scene, - struct ViewLayer *view_layer, +Object *ED_object_in_mode_from_index(const Scene *scene, + ViewLayer *view_layer, eObjectMode mode, int index); @@ -547,58 +485,48 @@ enum { * * \param scene: is only used to set current frame in some cases, and may be NULL. */ -struct ModifierData *ED_object_modifier_add(struct ReportList *reports, - struct Main *bmain, - struct Scene *scene, - struct Object *ob, - const char *name, - int type); -bool ED_object_modifier_remove(struct ReportList *reports, - struct Main *bmain, - struct Scene *scene, - struct Object *ob, - struct ModifierData *md); -void ED_object_modifier_clear(struct Main *bmain, struct Scene *scene, struct Object *ob); -bool ED_object_modifier_move_down(struct ReportList *reports, +ModifierData *ED_object_modifier_add( + ReportList *reports, Main *bmain, Scene *scene, Object *ob, const char *name, int type); +bool ED_object_modifier_remove( + ReportList *reports, Main *bmain, Scene *scene, Object *ob, ModifierData *md); +void ED_object_modifier_clear(Main *bmain, Scene *scene, Object *ob); +bool ED_object_modifier_move_down(ReportList *reports, eReportType error_type, - struct Object *ob, - struct ModifierData *md); -bool ED_object_modifier_move_up(struct ReportList *reports, + Object *ob, + ModifierData *md); +bool ED_object_modifier_move_up(ReportList *reports, eReportType error_type, - struct Object *ob, - struct ModifierData *md); -bool ED_object_modifier_move_to_index(struct ReportList *reports, + Object *ob, + ModifierData *md); +bool ED_object_modifier_move_to_index(ReportList *reports, eReportType error_type, - struct Object *ob, - struct ModifierData *md, + Object *ob, + ModifierData *md, int index, bool allow_partial); -bool ED_object_modifier_convert_psys_to_mesh(struct ReportList *reports, - struct Main *bmain, - struct Depsgraph *depsgraph, - struct Scene *scene, - struct ViewLayer *view_layer, - struct Object *ob, - struct ModifierData *md); -bool ED_object_modifier_apply(struct Main *bmain, - struct ReportList *reports, - struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *ob, - struct ModifierData *md, +bool ED_object_modifier_convert_psys_to_mesh(ReportList *reports, + Main *bmain, + Depsgraph *depsgraph, + Scene *scene, + ViewLayer *view_layer, + Object *ob, + ModifierData *md); +bool ED_object_modifier_apply(Main *bmain, + ReportList *reports, + Depsgraph *depsgraph, + Scene *scene, + Object *ob, + ModifierData *md, int mode, bool keep_modifier); -bool ED_object_modifier_copy(struct ReportList *reports, - struct Main *bmain, - struct Scene *scene, - struct Object *ob, - struct ModifierData *md); -void ED_object_modifier_link(struct bContext *C, struct Object *ob_dst, struct Object *ob_src); -void ED_object_modifier_copy_to_object(struct bContext *C, - struct Object *ob_dst, - struct Object *ob_src, - struct ModifierData *md); +bool ED_object_modifier_copy( + ReportList *reports, Main *bmain, Scene *scene, Object *ob, ModifierData *md); +void ED_object_modifier_link(bContext *C, Object *ob_dst, Object *ob_src); +void ED_object_modifier_copy_to_object(bContext *C, + Object *ob_dst, + Object *ob_src, + ModifierData *md); /** * If the object data of 'orig_ob' has other users, run 'callback' on @@ -609,101 +537,76 @@ void ED_object_modifier_copy_to_object(struct bContext *C, * If the callback ever returns true, iteration will stop and the * function value will be true. Otherwise the function returns false. */ -bool ED_object_iter_other(struct Main *bmain, - struct Object *orig_ob, +bool ED_object_iter_other(Main *bmain, + Object *orig_ob, bool include_orig, - bool (*callback)(struct Object *ob, void *callback_data), + bool (*callback)(Object *ob, void *callback_data), void *callback_data); /** * Use with #ED_object_iter_other(). Sets the total number of levels * for any multi-res modifiers on the object to the int pointed to by callback_data. */ -bool ED_object_multires_update_totlevels_cb(struct Object *ob, void *totlevel_v); +bool ED_object_multires_update_totlevels_cb(Object *ob, void *totlevel_v); /* object_greasepencil_modifier.c */ -struct GpencilModifierData *ED_object_gpencil_modifier_add(struct ReportList *reports, - struct Main *bmain, - struct Scene *scene, - struct Object *ob, - const char *name, - int type); -bool ED_object_gpencil_modifier_remove(struct ReportList *reports, - struct Main *bmain, - struct Object *ob, - struct GpencilModifierData *md); -void ED_object_gpencil_modifier_clear(struct Main *bmain, struct Object *ob); -bool ED_object_gpencil_modifier_move_down(struct ReportList *reports, - struct Object *ob, - struct GpencilModifierData *md); -bool ED_object_gpencil_modifier_move_up(struct ReportList *reports, - struct Object *ob, - struct GpencilModifierData *md); -bool ED_object_gpencil_modifier_move_to_index(struct ReportList *reports, - struct Object *ob, - struct GpencilModifierData *md, +GpencilModifierData *ED_object_gpencil_modifier_add( + ReportList *reports, Main *bmain, Scene *scene, Object *ob, const char *name, int type); +bool ED_object_gpencil_modifier_remove(ReportList *reports, + Main *bmain, + Object *ob, + GpencilModifierData *md); +void ED_object_gpencil_modifier_clear(Main *bmain, Object *ob); +bool ED_object_gpencil_modifier_move_down(ReportList *reports, + Object *ob, + GpencilModifierData *md); +bool ED_object_gpencil_modifier_move_up(ReportList *reports, Object *ob, GpencilModifierData *md); +bool ED_object_gpencil_modifier_move_to_index(ReportList *reports, + Object *ob, + GpencilModifierData *md, int index); -bool ED_object_gpencil_modifier_apply(struct Main *bmain, - struct ReportList *reports, - struct Depsgraph *depsgraph, - struct Object *ob, - struct GpencilModifierData *md, +bool ED_object_gpencil_modifier_apply(Main *bmain, + ReportList *reports, + Depsgraph *depsgraph, + Object *ob, + GpencilModifierData *md, int mode); -bool ED_object_gpencil_modifier_copy(struct ReportList *reports, - struct Object *ob, - struct GpencilModifierData *md); -void ED_object_gpencil_modifier_copy_to_object(struct Object *ob_dst, - struct GpencilModifierData *md); +bool ED_object_gpencil_modifier_copy(ReportList *reports, Object *ob, GpencilModifierData *md); +void ED_object_gpencil_modifier_copy_to_object(Object *ob_dst, GpencilModifierData *md); /* `object_shader_fx.cc` */ -struct ShaderFxData *ED_object_shaderfx_add(struct ReportList *reports, - struct Main *bmain, - struct Scene *scene, - struct Object *ob, - const char *name, - int type); -bool ED_object_shaderfx_remove(struct ReportList *reports, - struct Main *bmain, - struct Object *ob, - struct ShaderFxData *fx); -void ED_object_shaderfx_clear(struct Main *bmain, struct Object *ob); -int ED_object_shaderfx_move_down(struct ReportList *reports, - struct Object *ob, - struct ShaderFxData *fx); -int ED_object_shaderfx_move_up(struct ReportList *reports, - struct Object *ob, - struct ShaderFxData *fx); -bool ED_object_shaderfx_move_to_index(struct ReportList *reports, - struct Object *ob, - struct ShaderFxData *fx, +ShaderFxData *ED_object_shaderfx_add( + ReportList *reports, Main *bmain, Scene *scene, Object *ob, const char *name, int type); +bool ED_object_shaderfx_remove(ReportList *reports, Main *bmain, Object *ob, ShaderFxData *fx); +void ED_object_shaderfx_clear(Main *bmain, Object *ob); +int ED_object_shaderfx_move_down(ReportList *reports, Object *ob, ShaderFxData *fx); +int ED_object_shaderfx_move_up(ReportList *reports, Object *ob, ShaderFxData *fx); +bool ED_object_shaderfx_move_to_index(ReportList *reports, + Object *ob, + ShaderFxData *fx, int index); -void ED_object_shaderfx_link(struct Object *dst, struct Object *src); -void ED_object_shaderfx_copy(struct Object *dst, struct ShaderFxData *fx); +void ED_object_shaderfx_link(Object *dst, Object *src); +void ED_object_shaderfx_copy(Object *dst, ShaderFxData *fx); /* `object_select.cc` */ -void ED_object_select_linked_by_id(struct bContext *C, struct ID *id); +void ED_object_select_linked_by_id(bContext *C, ID *id); -const struct EnumPropertyItem *ED_object_vgroup_selection_itemf_helper( - const struct bContext *C, - struct PointerRNA *ptr, - struct PropertyRNA *prop, - bool *r_free, - unsigned int selection_mask); +const EnumPropertyItem *ED_object_vgroup_selection_itemf_helper(const bContext *C, + PointerRNA *ptr, + PropertyRNA *prop, + bool *r_free, + unsigned int selection_mask); -void ED_object_check_force_modifiers(struct Main *bmain, - struct Scene *scene, - struct Object *object); +void ED_object_check_force_modifiers(Main *bmain, Scene *scene, Object *object); /** * If id is not already an Object, try to find an object that uses it as data. * Prefers active, then selected, then visible/selectable. */ -struct Base *ED_object_find_first_by_data_id(const struct Scene *scene, - struct ViewLayer *view_layer, - struct ID *id); +Base *ED_object_find_first_by_data_id(const Scene *scene, ViewLayer *view_layer, ID *id); /** * Select and make the target object active in the view layer. @@ -711,7 +614,7 @@ struct Base *ED_object_find_first_by_data_id(const struct Scene *scene, * * \returns false if not found in current view layer */ -bool ED_object_jump_to_object(struct bContext *C, struct Object *ob, bool reveal_hidden); +bool ED_object_jump_to_object(bContext *C, Object *ob, bool reveal_hidden); /** * Select and make the target object and bone active. * Switches to Pose mode if in Object mode so the selection is visible. @@ -719,20 +622,17 @@ bool ED_object_jump_to_object(struct bContext *C, struct Object *ob, bool reveal * * \returns false if object not in layer, bone not found, or other error */ -bool ED_object_jump_to_bone(struct bContext *C, - struct Object *ob, - const char *bone_name, - bool reveal_hidden); +bool ED_object_jump_to_bone(bContext *C, Object *ob, const char *bone_name, bool reveal_hidden); /* object_data_transform.cc */ -struct XFormObjectData *ED_object_data_xform_create_ex(struct ID *id, bool is_edit_mode); -struct XFormObjectData *ED_object_data_xform_create(struct ID *id); -struct XFormObjectData *ED_object_data_xform_create_from_edit_mode(ID *id); +XFormObjectData *ED_object_data_xform_create_ex(ID *id, bool is_edit_mode); +XFormObjectData *ED_object_data_xform_create(ID *id); +XFormObjectData *ED_object_data_xform_create_from_edit_mode(ID *id); -void ED_object_data_xform_destroy(struct XFormObjectData *xod_base); +void ED_object_data_xform_destroy(XFormObjectData *xod_base); -void ED_object_data_xform_by_mat4(struct XFormObjectData *xod, const float mat[4][4]); +void ED_object_data_xform_by_mat4(XFormObjectData *xod, const float mat[4][4]); -void ED_object_data_xform_restore(struct XFormObjectData *xod); -void ED_object_data_xform_tag_update(struct XFormObjectData *xod); +void ED_object_data_xform_restore(XFormObjectData *xod); +void ED_object_data_xform_tag_update(XFormObjectData *xod); diff --git a/source/blender/editors/include/ED_outliner.hh b/source/blender/editors/include/ED_outliner.hh index 6be3e68fb6e..0655ff32b42 100644 --- a/source/blender/editors/include/ED_outliner.hh +++ b/source/blender/editors/include/ED_outliner.hh @@ -13,38 +13,37 @@ struct ListBase; struct SpaceOutliner; struct bContext; -bool ED_outliner_collections_editor_poll(struct bContext *C); +bool ED_outliner_collections_editor_poll(bContext *C); /** * Populates the \param objects: ListBase with all the outliner selected objects * We store it as (Object *)LinkData->data * \param objects: expected to be empty */ -void ED_outliner_selected_objects_get(const struct bContext *C, struct ListBase *objects); +void ED_outliner_selected_objects_get(const bContext *C, ListBase *objects); /** * Get base of object under cursor. Used for eyedropper tool. */ -struct Base *ED_outliner_give_base_under_cursor(struct bContext *C, const int mval[2]); +Base *ED_outliner_give_base_under_cursor(bContext *C, const int mval[2]); /** * Functions for tagging outliner selection syncing is dirty from operators. */ -void ED_outliner_select_sync_from_object_tag(struct bContext *C); -void ED_outliner_select_sync_from_edit_bone_tag(struct bContext *C); -void ED_outliner_select_sync_from_pose_bone_tag(struct bContext *C); -void ED_outliner_select_sync_from_sequence_tag(struct bContext *C); -void ED_outliner_select_sync_from_all_tag(struct bContext *C); +void ED_outliner_select_sync_from_object_tag(bContext *C); +void ED_outliner_select_sync_from_edit_bone_tag(bContext *C); +void ED_outliner_select_sync_from_pose_bone_tag(bContext *C); +void ED_outliner_select_sync_from_sequence_tag(bContext *C); +void ED_outliner_select_sync_from_all_tag(bContext *C); -bool ED_outliner_select_sync_is_dirty(const struct bContext *C); +bool ED_outliner_select_sync_is_dirty(const bContext *C); /** * Set clean outliner and mark other outliners for syncing. */ -void ED_outliner_select_sync_from_outliner(struct bContext *C, - struct SpaceOutliner *space_outliner); +void ED_outliner_select_sync_from_outliner(bContext *C, SpaceOutliner *space_outliner); /** * Copy sync select dirty flag from window manager to all outliners to be synced lazily on draw. */ -void ED_outliner_select_sync_flag_outliners(const struct bContext *C); +void ED_outliner_select_sync_flag_outliners(const bContext *C); diff --git a/source/blender/editors/include/ED_paint.hh b/source/blender/editors/include/ED_paint.hh index 18019f15dd4..729a7a89f55 100644 --- a/source/blender/editors/include/ED_paint.hh +++ b/source/blender/editors/include/ED_paint.hh @@ -10,49 +10,41 @@ #include "DNA_view3d_enums.h" +struct bContext; struct bToolRef; struct PaintModeSettings; struct ImBuf; struct Image; struct ImageUser; +struct PaintTileMap; +struct ReportList; struct UndoStep; struct UndoType; -struct bContext; struct wmKeyConfig; struct wmOperator; -typedef struct PaintTileMap PaintTileMap; /* paint_ops.cc */ -void ED_operatortypes_paint(void); -void ED_operatormacros_paint(void); -void ED_keymap_paint(struct wmKeyConfig *keyconf); +void ED_operatortypes_paint(); +void ED_operatormacros_paint(); +void ED_keymap_paint(wmKeyConfig *keyconf); /* `paint_image.cc` */ -void ED_imapaint_clear_partial_redraw(void); -void ED_imapaint_dirty_region(struct Image *ima, - struct ImBuf *ibuf, - struct ImageUser *iuser, - int x, - int y, - int w, - int h, - bool find_old); -void ED_imapaint_bucket_fill(struct bContext *C, - float color[3], - struct wmOperator *op, - const int mouse[2]); +void ED_imapaint_clear_partial_redraw(); +void ED_imapaint_dirty_region( + Image *ima, ImBuf *ibuf, ImageUser *iuser, int x, int y, int w, int h, bool find_old); +void ED_imapaint_bucket_fill(bContext *C, float color[3], wmOperator *op, const int mouse[2]); /* `paint_image_proj.cc` */ -void ED_paint_data_warning(struct ReportList *reports, bool uvs, bool mat, bool tex, bool stencil); +void ED_paint_data_warning(ReportList *reports, bool uvs, bool mat, bool tex, bool stencil); /** * Make sure that active object has a material, * and assign UVs and image layers if they do not exist. */ bool ED_paint_proj_mesh_data_check( - struct Scene *scene, struct Object *ob, bool *uvs, bool *mat, bool *tex, bool *stencil); + Scene *scene, Object *ob, bool *uvs, bool *mat, bool *tex, bool *stencil); /* `image_undo.cc` */ @@ -62,42 +54,42 @@ bool ED_paint_proj_mesh_data_check( */ void ED_image_undo_push_begin(const char *name, int paint_mode); void ED_image_undo_push_begin_with_image(const char *name, - struct Image *image, - struct ImBuf *ibuf, - struct ImageUser *iuser); + Image *image, + ImBuf *ibuf, + ImageUser *iuser); -void ED_image_undo_push_end(void); +void ED_image_undo_push_end(); /** * Restore painting image to previous state. Used for anchored and drag-dot style brushes. */ -void ED_image_undo_restore(struct UndoStep *us); +void ED_image_undo_restore(UndoStep *us); /** Export for ED_undo_sys. */ -void ED_image_undosys_type(struct UndoType *ut); +void ED_image_undosys_type(UndoType *ut); void *ED_image_paint_tile_find(PaintTileMap *paint_tile_map, - struct Image *image, - struct ImBuf *ibuf, - struct ImageUser *iuser, + Image *image, + ImBuf *ibuf, + ImageUser *iuser, int x_tile, int y_tile, unsigned short **r_mask, bool validate); void *ED_image_paint_tile_push(PaintTileMap *paint_tile_map, - struct Image *image, - struct ImBuf *ibuf, - struct ImBuf **tmpibuf, - struct ImageUser *iuser, + Image *image, + ImBuf *ibuf, + ImBuf **tmpibuf, + ImageUser *iuser, int x_tile, int y_tile, unsigned short **r_mask, bool **r_valid, bool use_thread_lock, bool find_prev); -void ED_image_paint_tile_lock_init(void); -void ED_image_paint_tile_lock_end(void); +void ED_image_paint_tile_lock_init(); +void ED_image_paint_tile_lock_end(); -struct PaintTileMap *ED_image_paint_tile_map_get(void); +PaintTileMap *ED_image_paint_tile_map_get(); #define ED_IMAGE_UNDO_TILE_BITS 6 #define ED_IMAGE_UNDO_TILE_SIZE (1 << ED_IMAGE_UNDO_TILE_BITS) @@ -107,16 +99,16 @@ struct PaintTileMap *ED_image_paint_tile_map_get(void); /* `paint_curve_undo.cc` */ void ED_paintcurve_undo_push_begin(const char *name); -void ED_paintcurve_undo_push_end(struct bContext *C); +void ED_paintcurve_undo_push_end(bContext *C); /** Export for ED_undo_sys. */ -void ED_paintcurve_undosys_type(struct UndoType *ut); +void ED_paintcurve_undosys_type(UndoType *ut); /* paint_canvas.cc */ /** Color type of an object can be overridden in sculpt/paint mode. */ -eV3DShadingColorType ED_paint_shading_color_override(struct bContext *C, - const struct PaintModeSettings *settings, - struct Object *ob, +eV3DShadingColorType ED_paint_shading_color_override(bContext *C, + const PaintModeSettings *settings, + Object *ob, eV3DShadingColorType orig_color_type); /** @@ -124,7 +116,7 @@ eV3DShadingColorType ED_paint_shading_color_override(struct bContext *C, * * When #tref isn't given the active tool from the context is used. */ -bool ED_paint_tool_use_canvas(struct bContext *C, struct bToolRef *tref); +bool ED_paint_tool_use_canvas(bContext *C, bToolRef *tref); /* Store the last used tool in the sculpt session. */ -void ED_paint_tool_update_sticky_shading_color(struct bContext *C, struct Object *ob); +void ED_paint_tool_update_sticky_shading_color(bContext *C, Object *ob); diff --git a/source/blender/editors/include/ED_particle.hh b/source/blender/editors/include/ED_particle.hh index 68b90164f62..422d768e70a 100644 --- a/source/blender/editors/include/ED_particle.hh +++ b/source/blender/editors/include/ED_particle.hh @@ -22,50 +22,35 @@ struct wmGenericUserData; /* particle edit mode */ -void PE_free_ptcache_edit(struct PTCacheEdit *edit); -int PE_start_edit(struct PTCacheEdit *edit); +void PE_free_ptcache_edit(PTCacheEdit *edit); +int PE_start_edit(PTCacheEdit *edit); /* access */ -struct PTCacheEdit *PE_get_current_from_psys(struct ParticleSystem *psys); -struct PTCacheEdit *PE_get_current(struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *ob); -struct PTCacheEdit *PE_create_current(struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *ob); -void PE_current_changed(struct Depsgraph *depsgraph, struct Scene *scene, struct Object *ob); -int PE_minmax(struct Depsgraph *depsgraph, - struct Scene *scene, - struct ViewLayer *view_layer, - float min[3], - float max[3]); -struct ParticleEditSettings *PE_settings(struct Scene *scene); +PTCacheEdit *PE_get_current_from_psys(ParticleSystem *psys); +PTCacheEdit *PE_get_current(Depsgraph *depsgraph, Scene *scene, Object *ob); +PTCacheEdit *PE_create_current(Depsgraph *depsgraph, Scene *scene, Object *ob); +void PE_current_changed(Depsgraph *depsgraph, Scene *scene, Object *ob); +int PE_minmax( + Depsgraph *depsgraph, Scene *scene, ViewLayer *view_layer, float min[3], float max[3]); +ParticleEditSettings *PE_settings(Scene *scene); /* update calls */ -void PE_hide_keys_time(struct Scene *scene, struct PTCacheEdit *edit, float cfra); -void PE_update_object(struct Depsgraph *depsgraph, - struct Scene *scene, - struct Object *ob, - int useflag); +void PE_hide_keys_time(Scene *scene, PTCacheEdit *edit, float cfra); +void PE_update_object(Depsgraph *depsgraph, Scene *scene, Object *ob, int useflag); /* selection tools */ -bool PE_mouse_particles(struct bContext *C, - const int mval[2], - const struct SelectPick_Params *params); -bool PE_box_select(struct bContext *C, const struct rcti *rect, int sel_op); -bool PE_circle_select(struct bContext *C, - struct wmGenericUserData *wm_userdata, - int sel_op, - const int mval[2], - float rad); -int PE_lasso_select(struct bContext *C, const int mcoords[][2], int mcoords_len, int sel_op); -bool PE_deselect_all_visible_ex(struct PTCacheEdit *edit); -bool PE_deselect_all_visible(struct bContext *C); +bool PE_mouse_particles(bContext *C, const int mval[2], const SelectPick_Params *params); +bool PE_box_select(bContext *C, const rcti *rect, int sel_op); +bool PE_circle_select( + bContext *C, wmGenericUserData *wm_userdata, int sel_op, const int mval[2], float rad); +int PE_lasso_select(bContext *C, const int mcoords[][2], int mcoords_len, int sel_op); +bool PE_deselect_all_visible_ex(PTCacheEdit *edit); +bool PE_deselect_all_visible(bContext *C); /* `particle_edit_undo.cc` */ /** Export for ED_undo_sys. */ -void ED_particle_undosys_type(struct UndoType *ut); +void ED_particle_undosys_type(UndoType *ut); diff --git a/source/blender/editors/include/ED_physics.hh b/source/blender/editors/include/ED_physics.hh index 0ffa99e582b..5972c42c7c0 100644 --- a/source/blender/editors/include/ED_physics.hh +++ b/source/blender/editors/include/ED_physics.hh @@ -11,34 +11,26 @@ struct ReportList; struct bContext; struct wmKeyConfig; - struct Object; struct Scene; /* `particle_edit.cc` */ -bool PE_poll(struct bContext *C); -bool PE_hair_poll(struct bContext *C); -bool PE_poll_view3d(struct bContext *C); +bool PE_poll(bContext *C); +bool PE_hair_poll(bContext *C); +bool PE_poll_view3d(bContext *C); /* `rigidbody_object.cc` */ -bool ED_rigidbody_object_add(struct Main *bmain, - struct Scene *scene, - struct Object *ob, - int type, - struct ReportList *reports); -void ED_rigidbody_object_remove(struct Main *bmain, struct Scene *scene, struct Object *ob); +bool ED_rigidbody_object_add(Main *bmain, Scene *scene, Object *ob, int type, ReportList *reports); +void ED_rigidbody_object_remove(Main *bmain, Scene *scene, Object *ob); /* `rigidbody_constraint.cc` */ -bool ED_rigidbody_constraint_add(struct Main *bmain, - struct Scene *scene, - struct Object *ob, - int type, - struct ReportList *reports); -void ED_rigidbody_constraint_remove(struct Main *bmain, struct Scene *scene, struct Object *ob); +bool ED_rigidbody_constraint_add( + Main *bmain, Scene *scene, Object *ob, int type, ReportList *reports); +void ED_rigidbody_constraint_remove(Main *bmain, Scene *scene, Object *ob); /* operators */ -void ED_operatortypes_physics(void); -void ED_keymap_physics(struct wmKeyConfig *keyconf); +void ED_operatortypes_physics(); +void ED_keymap_physics(wmKeyConfig *keyconf); diff --git a/source/blender/editors/include/ED_render.hh b/source/blender/editors/include/ED_render.hh index be645229e46..67fbf3a3730 100644 --- a/source/blender/editors/include/ED_render.hh +++ b/source/blender/editors/include/ED_render.hh @@ -27,32 +27,29 @@ struct wmWindowManager; /* `render_ops.cc` */ -void ED_operatortypes_render(void); +void ED_operatortypes_render(); /* `render_update.cc` */ -void ED_render_engine_changed(struct Main *bmain, bool update_scene_data); -void ED_render_engine_area_exit(struct Main *bmain, struct ScrArea *area); -void ED_render_view_layer_changed(struct Main *bmain, struct bScreen *screen); +void ED_render_engine_changed(Main *bmain, bool update_scene_data); +void ED_render_engine_area_exit(Main *bmain, ScrArea *area); +void ED_render_view_layer_changed(Main *bmain, bScreen *screen); /* Callbacks handling data update events coming from depsgraph. */ -void ED_render_id_flush_update(const struct DEGEditorUpdateContext *update_ctx, struct ID *id); +void ED_render_id_flush_update(const DEGEditorUpdateContext *update_ctx, ID *id); /** * Update all 3D viewport render and draw engines on changes to the scene. * This is called by the dependency graph when it detects changes. */ -void ED_render_scene_update(const struct DEGEditorUpdateContext *update_ctx, bool updated); +void ED_render_scene_update(const DEGEditorUpdateContext *update_ctx, bool updated); /** * Update 3D viewport render or draw engine on changes to the scene or view settings. */ -void ED_render_view3d_update(struct Depsgraph *depsgraph, - struct wmWindow *window, - struct ScrArea *area, - bool updated); +void ED_render_view3d_update(Depsgraph *depsgraph, wmWindow *window, ScrArea *area, bool updated); -struct Scene *ED_render_job_get_scene(const struct bContext *C); -struct Scene *ED_render_job_get_current_scene(const struct bContext *C); +Scene *ED_render_job_get_scene(const bContext *C); +Scene *ED_render_job_get_current_scene(const bContext *C); /* Render the preview * @@ -61,47 +58,41 @@ struct Scene *ED_render_job_get_current_scene(const struct bContext *C); * - PR_ICON_RENDER: preview is rendered for icons. hopefully fast enough for at least 32x32 * - PR_ICON_DEFERRED: No render, we just ensure deferred icon data gets generated. */ -typedef enum ePreviewRenderMethod { +enum ePreviewRenderMethod { PR_BUTS_RENDER = 0, PR_ICON_RENDER = 1, PR_ICON_DEFERRED = 2, -} ePreviewRenderMethod; +}; -void ED_preview_ensure_dbase(void); -void ED_preview_free_dbase(void); +void ED_preview_ensure_dbase(); +void ED_preview_free_dbase(); /** * Check if \a id is supported by the automatic preview render. */ -bool ED_preview_id_is_supported(const struct ID *id); +bool ED_preview_id_is_supported(const ID *id); -void ED_preview_shader_job(const struct bContext *C, +void ED_preview_shader_job(const bContext *C, void *owner, - struct ID *id, - struct ID *parent, - struct MTex *slot, + ID *id, + ID *parent, + MTex *slot, int sizex, int sizey, ePreviewRenderMethod method); -void ED_preview_icon_render(const struct bContext *C, - struct Scene *scene, - struct PreviewImage *prv_img, - struct ID *id, - enum eIconSizes icon_size); -void ED_preview_icon_job(const struct bContext *C, - struct PreviewImage *prv_img, - struct ID *id, - enum eIconSizes icon_size, - bool delay); +void ED_preview_icon_render( + const bContext *C, Scene *scene, PreviewImage *prv_img, ID *id, enum eIconSizes icon_size); +void ED_preview_icon_job( + const bContext *C, PreviewImage *prv_img, ID *id, enum eIconSizes icon_size, bool delay); -void ED_preview_restart_queue_free(void); -void ED_preview_restart_queue_add(struct ID *id, enum eIconSizes size); -void ED_preview_restart_queue_work(const struct bContext *C); +void ED_preview_restart_queue_free(); +void ED_preview_restart_queue_add(ID *id, enum eIconSizes size); +void ED_preview_restart_queue_work(const bContext *C); -void ED_preview_kill_jobs(struct wmWindowManager *wm, struct Main *bmain); +void ED_preview_kill_jobs(wmWindowManager *wm, Main *bmain); -void ED_preview_draw(const struct bContext *C, void *idp, void *parentp, void *slot, rcti *rect); +void ED_preview_draw(const bContext *C, void *idp, void *parentp, void *slot, rcti *rect); -void ED_render_clear_mtex_copybuf(void); +void ED_render_clear_mtex_copybuf(); -void ED_render_internal_init(void); +void ED_render_internal_init(); diff --git a/source/blender/editors/include/ED_scene.hh b/source/blender/editors/include/ED_scene.hh index 189f4bf32b4..20f54a7fdee 100644 --- a/source/blender/editors/include/ED_scene.hh +++ b/source/blender/editors/include/ED_scene.hh @@ -12,40 +12,27 @@ #include "BKE_scene.h" -#ifdef __cplusplus -extern "C" { -#endif - -struct Scene *ED_scene_add(struct Main *bmain, - struct bContext *C, - struct wmWindow *win, - eSceneCopyMethod method) ATTR_NONNULL(); +Scene *ED_scene_add(Main *bmain, bContext *C, wmWindow *win, eSceneCopyMethod method) + ATTR_NONNULL(); /** * Add a new scene in the sequence editor. * * Special mode for adding a scene assigned to sequencer strip. */ -struct Scene *ED_scene_sequencer_add(struct Main *bmain, - struct bContext *C, - eSceneCopyMethod method, - bool assign_strip); +Scene *ED_scene_sequencer_add(Main *bmain, + bContext *C, + eSceneCopyMethod method, + bool assign_strip); /** * \note Only call outside of area/region loops. * \return true if successful. */ -bool ED_scene_delete(struct bContext *C, struct Main *bmain, struct Scene *scene) ATTR_NONNULL(); +bool ED_scene_delete(bContext *C, Main *bmain, Scene *scene) ATTR_NONNULL(); /** * Depsgraph updates after scene becomes active in a window. */ -void ED_scene_change_update(struct Main *bmain, struct Scene *scene, struct ViewLayer *layer) - ATTR_NONNULL(); -bool ED_scene_view_layer_delete(struct Main *bmain, - struct Scene *scene, - struct ViewLayer *layer, - struct ReportList *reports) ATTR_NONNULL(1, 2, 3); +void ED_scene_change_update(Main *bmain, Scene *scene, ViewLayer *layer) ATTR_NONNULL(); +bool ED_scene_view_layer_delete(Main *bmain, Scene *scene, ViewLayer *layer, ReportList *reports) + ATTR_NONNULL(1, 2, 3); -void ED_operatortypes_scene(void); - -#ifdef __cplusplus -} -#endif +void ED_operatortypes_scene(); diff --git a/source/blender/editors/include/ED_screen_types.hh b/source/blender/editors/include/ED_screen_types.hh index 58ed70683c0..a73724b2b42 100644 --- a/source/blender/editors/include/ED_screen_types.hh +++ b/source/blender/editors/include/ED_screen_types.hh @@ -17,7 +17,7 @@ struct ARegion; /** * For animation playback operator, stored in #bScreen.animtimer.customdata. */ -typedef struct ScreenAnimData { +struct ScreenAnimData { ARegion *region; /* do not read from this, only for comparing if region exists */ short redraws; short flag; /* flags for playback */ @@ -25,7 +25,7 @@ typedef struct ScreenAnimData { int nextfra; /* next frame to go to (when ANIMPLAY_FLAG_USE_NEXT_FRAME is set) */ double lagging_frame_count; /* used for frame dropping */ bool from_anim_edit; /* playback was invoked from animation editor */ -} ScreenAnimData; +}; /** #ScreenAnimData.flag */ enum { @@ -48,17 +48,17 @@ enum { /** * For playback frame-rate info stored during runtime as `scene->fps_info`. */ -typedef struct ScreenFrameRateInfo { +struct ScreenFrameRateInfo { double redrawtime; double lredrawtime; float redrawtimes_fps[REDRAW_FRAME_AVERAGE]; short redrawtime_index; -} ScreenFrameRateInfo; +}; /* ----------------------------------------------------- */ /* Enum for Action Zone Edges. Which edge of area is action zone. */ -typedef enum { +enum AZEdge { /** Region located on the left, _right_ edge is action zone. * Region minimized to the top left */ AE_RIGHT_TO_TOPLEFT, @@ -71,15 +71,15 @@ typedef enum { /** Region located at the top, _bottom_ edge is action zone. * Region minimized to the top left */ AE_BOTTOM_TO_TOPLEFT, -} AZEdge; +}; -typedef enum { +enum AZScrollDirection { AZ_SCROLL_VERT, AZ_SCROLL_HOR, -} AZScrollDirection; +}; /* for editing areas/regions */ -typedef struct AZone { +struct AZone { struct AZone *next, *prev; ARegion *region; int type; @@ -95,7 +95,7 @@ typedef struct AZone { rcti rect; /* for fade in/out */ float alpha; -} AZone; +}; /** Action-Zone Type: #AZone.type */ enum { diff --git a/source/blender/editors/include/ED_sculpt.hh b/source/blender/editors/include/ED_sculpt.hh index 7b4ba4b8004..2c83b5f1eac 100644 --- a/source/blender/editors/include/ED_sculpt.hh +++ b/source/blender/editors/include/ED_sculpt.hh @@ -19,47 +19,42 @@ struct wmKeyConfig; /* sculpt.cc */ -void ED_operatortypes_sculpt(void); -void ED_sculpt_redraw_planes_get(float planes[4][4], struct ARegion *region, struct Object *ob); -bool ED_sculpt_mask_box_select(struct bContext *C, - struct ViewContext *vc, - const struct rcti *rect, - bool select); +void ED_operatortypes_sculpt(); +void ED_sculpt_redraw_planes_get(float planes[4][4], ARegion *region, Object *ob); +bool ED_sculpt_mask_box_select(bContext *C, ViewContext *vc, const rcti *rect, bool select); void ED_keymap_sculpt(wmKeyConfig *keyconf); /* sculpt_transform.cc */ -void ED_sculpt_update_modal_transform(struct bContext *C, struct Object *ob); -void ED_sculpt_init_transform(struct bContext *C, - struct Object *ob, +void ED_sculpt_update_modal_transform(bContext *C, Object *ob); +void ED_sculpt_init_transform(bContext *C, + Object *ob, const float mval_fl[2], const char *undo_name); -void ED_sculpt_end_transform(struct bContext *C, struct Object *ob); +void ED_sculpt_end_transform(bContext *C, Object *ob); /* sculpt_undo.cc */ /** Export for ED_undo_sys. */ -void ED_sculpt_undosys_type(struct UndoType *ut); +void ED_sculpt_undosys_type(UndoType *ut); /** * Pushes an undo step using the operator name. This is necessary for * redo panels to work; operators that do not support that may use * #ED_sculpt_undo_geometry_begin_ex instead if so desired. */ -void ED_sculpt_undo_geometry_begin(struct Object *ob, const struct wmOperator *op); -void ED_sculpt_undo_geometry_begin_ex(struct Object *ob, const char *name); -void ED_sculpt_undo_geometry_end(struct Object *ob); +void ED_sculpt_undo_geometry_begin(Object *ob, const wmOperator *op); +void ED_sculpt_undo_geometry_begin_ex(Object *ob, const char *name); +void ED_sculpt_undo_geometry_end(Object *ob); /* Face sets. */ -int ED_sculpt_face_sets_find_next_available_id(struct Mesh *mesh); -void ED_sculpt_face_sets_initialize_none_to_id(struct Mesh *mesh, int new_id); +int ED_sculpt_face_sets_find_next_available_id(Mesh *mesh); +void ED_sculpt_face_sets_initialize_none_to_id(Mesh *mesh, int new_id); -int ED_sculpt_face_sets_active_update_and_get(struct bContext *C, - struct Object *ob, - const float mval_fl[2]); +int ED_sculpt_face_sets_active_update_and_get(bContext *C, Object *ob, const float mval_fl[2]); /* Undo for changes happening on a base mesh for multires sculpting. * if there is no multi-res sculpt active regular undo is used. */ -void ED_sculpt_undo_push_multires_mesh_begin(struct bContext *C, const char *str); -void ED_sculpt_undo_push_multires_mesh_end(struct bContext *C, const char *str); +void ED_sculpt_undo_push_multires_mesh_begin(bContext *C, const char *str); +void ED_sculpt_undo_push_multires_mesh_end(bContext *C, const char *str); diff --git a/source/blender/editors/include/ED_select_utils.hh b/source/blender/editors/include/ED_select_utils.hh index d0ef866b4bd..cbf380e736e 100644 --- a/source/blender/editors/include/ED_select_utils.hh +++ b/source/blender/editors/include/ED_select_utils.hh @@ -11,6 +11,7 @@ #include "BLI_compiler_attrs.h" struct KDTree_1d; +struct PointerRNA; struct wmOperatorType; enum { @@ -20,28 +21,28 @@ enum { SEL_INVERT = 3, }; -typedef enum WalkSelectDirection { +enum WalkSelectDirection { UI_SELECT_WALK_UP, UI_SELECT_WALK_DOWN, UI_SELECT_WALK_LEFT, UI_SELECT_WALK_RIGHT, -} WalkSelectDirections; +}; /** See #WM_operator_properties_select_operation */ -typedef enum { +enum eSelectOp { SEL_OP_ADD = 1, SEL_OP_SUB, SEL_OP_SET, SEL_OP_AND, SEL_OP_XOR, -} eSelectOp; +}; /* Select Similar */ -typedef enum { +enum eSimilarCmp { SIM_CMP_EQ = 0, SIM_CMP_GT, SIM_CMP_LT, -} eSimilarCmp; +}; #define SEL_OP_USE_OUTSIDE(sel_op) (ELEM(sel_op, SEL_OP_AND)) #define SEL_OP_USE_PRE_DESELECT(sel_op) (ELEM(sel_op, SEL_OP_SET)) @@ -61,7 +62,7 @@ int ED_select_op_action(eSelectOp sel_op, bool is_select, bool is_inside); int ED_select_op_action_deselected(eSelectOp sel_op, bool is_select, bool is_inside); bool ED_select_similar_compare_float(float delta, float thresh, eSimilarCmp compare); -bool ED_select_similar_compare_float_tree(const struct KDTree_1d *tree, +bool ED_select_similar_compare_float_tree(const KDTree_1d *tree, float length, float thresh, eSimilarCmp compare); @@ -94,19 +95,18 @@ struct SelectPick_Params { /** * Utility to get #eSelectPickMode from booleans for convenience. */ -eSelectOp ED_select_op_from_operator(struct PointerRNA *ptr) - ATTR_NONNULL(1) ATTR_WARN_UNUSED_RESULT; +eSelectOp ED_select_op_from_operator(PointerRNA *ptr) ATTR_NONNULL(1) ATTR_WARN_UNUSED_RESULT; /** * Initialize `params` from `op`, * these properties are defined by #WM_operator_properties_mouse_select. */ -void ED_select_pick_params_from_operator(struct PointerRNA *ptr, struct SelectPick_Params *params) +void ED_select_pick_params_from_operator(PointerRNA *ptr, SelectPick_Params *params) ATTR_NONNULL(1, 2); /** * Get-name callback for #wmOperatorType.get_name, this is mainly useful so the selection * action is shown in the status-bar. */ -const char *ED_select_pick_get_name(struct wmOperatorType *ot, PointerRNA *ptr); -const char *ED_select_circle_get_name(struct wmOperatorType *ot, PointerRNA *ptr); +const char *ED_select_pick_get_name(wmOperatorType *ot, PointerRNA *ptr); +const char *ED_select_circle_get_name(wmOperatorType *ot, PointerRNA *ptr); diff --git a/source/blender/editors/include/ED_sequencer.hh b/source/blender/editors/include/ED_sequencer.hh index 55d191a61d1..2b54da06a2f 100644 --- a/source/blender/editors/include/ED_sequencer.hh +++ b/source/blender/editors/include/ED_sequencer.hh @@ -13,38 +13,35 @@ struct Sequence; struct SpaceSeq; struct bContext; -void ED_sequencer_select_sequence_single(struct Scene *scene, - struct Sequence *seq, - bool deselect_all); +void ED_sequencer_select_sequence_single(Scene *scene, Sequence *seq, bool deselect_all); /** * Iterates over a scene's sequences and deselects all of them. * * \param scene: scene containing sequences to be deselected. * \return true if any sequences were deselected; false otherwise. */ -bool ED_sequencer_deselect_all(struct Scene *scene); +bool ED_sequencer_deselect_all(Scene *scene); -bool ED_space_sequencer_maskedit_mask_poll(struct bContext *C); -bool ED_space_sequencer_check_show_maskedit(struct SpaceSeq *sseq, struct Scene *scene); -bool ED_space_sequencer_maskedit_poll(struct bContext *C); +bool ED_space_sequencer_maskedit_mask_poll(bContext *C); +bool ED_space_sequencer_check_show_maskedit(SpaceSeq *sseq, Scene *scene); +bool ED_space_sequencer_maskedit_poll(bContext *C); /** * Are we displaying the seq output (not channels or histogram). */ -bool ED_space_sequencer_check_show_imbuf(struct SpaceSeq *sseq); +bool ED_space_sequencer_check_show_imbuf(SpaceSeq *sseq); -bool ED_space_sequencer_check_show_strip(struct SpaceSeq *sseq); +bool ED_space_sequencer_check_show_strip(SpaceSeq *sseq); /** * Check if there is animation shown during playback. * * - Colors of color strips are displayed on the strip itself. * - Backdrop is drawn. */ -bool ED_space_sequencer_has_playback_animation(const struct SpaceSeq *sseq, - const struct Scene *scene); +bool ED_space_sequencer_has_playback_animation(const SpaceSeq *sseq, const Scene *scene); -void ED_operatormacros_sequencer(void); +void ED_operatormacros_sequencer(); -Sequence *ED_sequencer_special_preview_get(void); -void ED_sequencer_special_preview_set(struct bContext *C, const int mval[2]); -void ED_sequencer_special_preview_clear(void); +Sequence *ED_sequencer_special_preview_get(); +void ED_sequencer_special_preview_set(bContext *C, const int mval[2]); +void ED_sequencer_special_preview_clear(); diff --git a/source/blender/editors/include/ED_sound.hh b/source/blender/editors/include/ED_sound.hh index 7a51569ad10..c94f29d765a 100644 --- a/source/blender/editors/include/ED_sound.hh +++ b/source/blender/editors/include/ED_sound.hh @@ -8,4 +8,4 @@ #pragma once -void ED_operatortypes_sound(void); +void ED_operatortypes_sound(); diff --git a/source/blender/editors/include/ED_space_api.hh b/source/blender/editors/include/ED_space_api.hh index 20e9aabc9c2..d05b383c765 100644 --- a/source/blender/editors/include/ED_space_api.hh +++ b/source/blender/editors/include/ED_space_api.hh @@ -12,8 +12,8 @@ struct ARegionType; struct bContext; /* Only called once on startup. storage is global in BKE kernel listbase. */ -void ED_spacetypes_init(void); -void ED_spacemacros_init(void); +void ED_spacetypes_init(); +void ED_spacemacros_init(); /* The plugin-able API for export to editors. */ @@ -23,26 +23,26 @@ void ED_spacemacros_init(void); * Calls for registering default spaces, only called once, from #ED_spacetypes_init * \{ */ -void ED_spacetype_outliner(void); -void ED_spacetype_view3d(void); -void ED_spacetype_ipo(void); -void ED_spacetype_image(void); -void ED_spacetype_node(void); -void ED_spacetype_buttons(void); -void ED_spacetype_info(void); -void ED_spacetype_file(void); -void ED_spacetype_action(void); -void ED_spacetype_nla(void); -void ED_spacetype_script(void); -void ED_spacetype_text(void); -void ED_spacetype_sequencer(void); -void ED_spacetype_logic(void); -void ED_spacetype_console(void); -void ED_spacetype_userpref(void); -void ED_spacetype_clip(void); -void ED_spacetype_statusbar(void); -void ED_spacetype_topbar(void); -void ED_spacetype_spreadsheet(void); +void ED_spacetype_outliner(); +void ED_spacetype_view3d(); +void ED_spacetype_ipo(); +void ED_spacetype_image(); +void ED_spacetype_node(); +void ED_spacetype_buttons(); +void ED_spacetype_info(); +void ED_spacetype_file(); +void ED_spacetype_action(); +void ED_spacetype_nla(); +void ED_spacetype_script(); +void ED_spacetype_text(); +void ED_spacetype_sequencer(); +void ED_spacetype_logic(); +void ED_spacetype_console(); +void ED_spacetype_userpref(); +void ED_spacetype_clip(); +void ED_spacetype_statusbar(); +void ED_spacetype_topbar(); +void ED_spacetype_spreadsheet(); /** \} */ @@ -51,8 +51,8 @@ void ED_spacetype_spreadsheet(void); * Calls for instancing and freeing space-type static data called in #WM_init_exit * \{ */ -void ED_file_init(void); -void ED_file_exit(void); +void ED_file_init(); +void ED_file_exit(); /** \} */ @@ -61,13 +61,11 @@ void ED_file_exit(void); #define REGION_DRAW_PRE_VIEW 2 #define REGION_DRAW_BACKDROP 3 -void *ED_region_draw_cb_activate(struct ARegionType *art, - void (*draw)(const struct bContext *, struct ARegion *, void *), +void *ED_region_draw_cb_activate(ARegionType *art, + void (*draw)(const bContext *, ARegion *, void *), void *customdata, int type); -void ED_region_draw_cb_draw(const struct bContext *C, struct ARegion *region, int type); -void ED_region_surface_draw_cb_draw(struct ARegionType *art, int type); -bool ED_region_draw_cb_exit(struct ARegionType *art, void *handle); -void ED_region_draw_cb_remove_by_type(struct ARegionType *art, - void *draw_fn, - void (*free)(void *)); +void ED_region_draw_cb_draw(const bContext *C, ARegion *region, int type); +void ED_region_surface_draw_cb_draw(ARegionType *art, int type); +bool ED_region_draw_cb_exit(ARegionType *art, void *handle); +void ED_region_draw_cb_remove_by_type(ARegionType *art, void *draw_fn, void (*free)(void *)); diff --git a/source/blender/editors/include/ED_spreadsheet.hh b/source/blender/editors/include/ED_spreadsheet.hh index ff0a090e5df..7229ef4e3d6 100644 --- a/source/blender/editors/include/ED_spreadsheet.hh +++ b/source/blender/editors/include/ED_spreadsheet.hh @@ -7,4 +7,4 @@ struct ID; struct SpaceSpreadsheet; -struct ID *ED_spreadsheet_get_current_id(const struct SpaceSpreadsheet *sspreadsheet); +ID *ED_spreadsheet_get_current_id(const SpaceSpreadsheet *sspreadsheet); diff --git a/source/blender/editors/include/ED_text.hh b/source/blender/editors/include/ED_text.hh index 55cada9031c..d0f34635e5a 100644 --- a/source/blender/editors/include/ED_text.hh +++ b/source/blender/editors/include/ED_text.hh @@ -8,7 +8,6 @@ #pragma once - struct ARegion; struct SpaceText; struct Text; @@ -16,32 +15,31 @@ struct UndoStep; struct UndoType; struct bContext; -bool ED_text_activate_in_screen(struct bContext *C, struct Text *text); +bool ED_text_activate_in_screen(bContext *C, Text *text); /** * Moves the view to the cursor location, also used to make sure the view isn't outside the file. */ -void ED_text_scroll_to_cursor(struct SpaceText *st, struct ARegion *region, bool center); +void ED_text_scroll_to_cursor(SpaceText *st, ARegion *region, bool center); /** * Takes a cursor (row, character) and returns x,y pixel coords. */ -bool ED_text_region_location_from_cursor(struct SpaceText *st, - struct ARegion *region, +bool ED_text_region_location_from_cursor(SpaceText *st, + ARegion *region, const int cursor_co[2], int r_pixel_co[2]); /* text_undo.cc */ /** Export for ED_undo_sys. */ -void ED_text_undosys_type(struct UndoType *ut); +void ED_text_undosys_type(UndoType *ut); /** Use operator system to finish the undo step. */ -struct UndoStep *ED_text_undo_push_init(struct bContext *C); +UndoStep *ED_text_undo_push_init(bContext *C); /* `text_format.cc` */ -const char *ED_text_format_comment_line_prefix(struct Text *text); - -bool ED_text_is_syntax_highlight_supported(struct Text *text); +const char *ED_text_format_comment_line_prefix(Text *text); +bool ED_text_is_syntax_highlight_supported(Text *text); diff --git a/source/blender/editors/include/ED_time_scrub_ui.hh b/source/blender/editors/include/ED_time_scrub_ui.hh index af59f4b41db..464e816ecb2 100644 --- a/source/blender/editors/include/ED_time_scrub_ui.hh +++ b/source/blender/editors/include/ED_time_scrub_ui.hh @@ -13,18 +13,16 @@ struct bDopeSheet; struct wmEvent; struct rcti; -void ED_time_scrub_draw_current_frame(const struct ARegion *region, - const struct Scene *scene, +void ED_time_scrub_draw_current_frame(const ARegion *region, + const Scene *scene, bool display_seconds); -void ED_time_scrub_draw(const struct ARegion *region, - const struct Scene *scene, +void ED_time_scrub_draw(const ARegion *region, + const Scene *scene, bool display_seconds, bool discrete_frames); -bool ED_time_scrub_event_in_region(const struct ARegion *region, const struct wmEvent *event); +bool ED_time_scrub_event_in_region(const ARegion *region, const wmEvent *event); -void ED_time_scrub_channel_search_draw(const struct bContext *C, - struct ARegion *region, - struct bDopeSheet *dopesheet); -void ED_time_scrub_region_rect_get(const struct ARegion *region, struct rcti *rect); +void ED_time_scrub_channel_search_draw(const bContext *C, ARegion *region, bDopeSheet *dopesheet); +void ED_time_scrub_region_rect_get(const ARegion *region, rcti *rect); diff --git a/source/blender/editors/include/ED_transform.hh b/source/blender/editors/include/ED_transform.hh index 6a0015411ec..95191a243c0 100644 --- a/source/blender/editors/include/ED_transform.hh +++ b/source/blender/editors/include/ED_transform.hh @@ -12,13 +12,21 @@ /* ******************* Registration Function ********************** */ -struct Object; +struct ARegion; struct bContext; +struct Scene; +struct ReportList; +struct TransformOrientation; +struct Object; +struct RegionView3D; +struct View3D; +struct ViewLayer; +struct wmGizmoGroupType; struct wmKeyConfig; struct wmOperatorType; -void ED_keymap_transform(struct wmKeyConfig *keyconf); -void transform_operatortypes(void); +void ED_keymap_transform(wmKeyConfig *keyconf); +void transform_operatortypes(); /* ******************** Macros & Prototypes *********************** */ @@ -66,42 +74,31 @@ enum eTfmMode { /* Standalone call to get the transformation center corresponding to the current situation * returns 1 if successful, 0 otherwise (usually means there's no selection) * (if false is returns, `cent3d` is unmodified). */ -bool calculateTransformCenter(struct bContext *C, - int centerMode, - float cent3d[3], - float cent2d[2]); - -struct Object; -struct Scene; -struct wmGizmoGroupType; +bool calculateTransformCenter(bContext *C, int centerMode, float cent3d[3], float cent2d[2]); /* UNUSED */ // int BIF_snappingSupported(struct Object *obedit); -struct ReportList; -struct TransformOrientation; -struct bContext; - -void BIF_clearTransformOrientation(struct bContext *C); -void BIF_removeTransformOrientation(struct bContext *C, struct TransformOrientation *target); -void BIF_removeTransformOrientationIndex(struct bContext *C, int index); -bool BIF_createTransformOrientation(struct bContext *C, - struct ReportList *reports, +void BIF_clearTransformOrientation(bContext *C); +void BIF_removeTransformOrientation(bContext *C, TransformOrientation *target); +void BIF_removeTransformOrientationIndex(bContext *C, int index); +bool BIF_createTransformOrientation(bContext *C, + ReportList *reports, const char *name, bool use_view, bool activate, bool overwrite); -void BIF_selectTransformOrientation(struct bContext *C, struct TransformOrientation *target); +void BIF_selectTransformOrientation(bContext *C, TransformOrientation *target); -void ED_getTransformOrientationMatrix(const struct Scene *scene, - struct ViewLayer *view_layer, - const struct View3D *v3d, - struct Object *ob, - struct Object *obedit, +void ED_getTransformOrientationMatrix(const Scene *scene, + ViewLayer *view_layer, + const View3D *v3d, + Object *ob, + Object *obedit, short around, float r_orientation_mat[3][3]); -int BIF_countTransformOrientation(const struct bContext *C); +int BIF_countTransformOrientation(const bContext *C); /* to be able to add operator properties to other operators */ @@ -128,10 +125,10 @@ int BIF_countTransformOrientation(const struct bContext *C); /* For properties performed when confirming the transformation. */ #define P_POST_TRANSFORM (1 << 20) -void Transform_Properties(struct wmOperatorType *ot, int flags); +void Transform_Properties(wmOperatorType *ot, int flags); /* `transform_orientations.cc` */ -void ED_transform_calc_orientation_from_type(const struct bContext *C, float r_mat[3][3]); +void ED_transform_calc_orientation_from_type(const bContext *C, float r_mat[3][3]); /** * \note The resulting matrix may not be orthogonal, * callers that depend on `r_mat` to be orthogonal should use #orthogonalize_m3. @@ -141,38 +138,36 @@ void ED_transform_calc_orientation_from_type(const struct bContext *C, float r_m * - #V3D_ORIENT_LOCAL may contain shear from non-uniform scale in parent/child relationships. * - #V3D_ORIENT_CUSTOM may have been created from #V3D_ORIENT_LOCAL. */ -short ED_transform_calc_orientation_from_type_ex(const struct Scene *scene, - struct ViewLayer *view_layer, - const struct View3D *v3d, - const struct RegionView3D *rv3d, - struct Object *ob, - struct Object *obedit, +short ED_transform_calc_orientation_from_type_ex(const Scene *scene, + ViewLayer *view_layer, + const View3D *v3d, + const RegionView3D *rv3d, + Object *ob, + Object *obedit, short orientation_index, int pivot_point, float r_mat[3][3]); -bool ED_transform_calc_pivot_pos(const struct bContext *C, - const short pivot_type, - float r_pivot_pos[3]); +bool ED_transform_calc_pivot_pos(const bContext *C, const short pivot_type, float r_pivot_pos[3]); /* transform gizmos */ -void VIEW3D_GGT_xform_gizmo(struct wmGizmoGroupType *gzgt); +void VIEW3D_GGT_xform_gizmo(wmGizmoGroupType *gzgt); /** * Only poll, flag & gzmap_params differ. */ -void VIEW3D_GGT_xform_gizmo_context(struct wmGizmoGroupType *gzgt); -void VIEW3D_GGT_xform_cage(struct wmGizmoGroupType *gzgt); -void VIEW3D_GGT_xform_shear(struct wmGizmoGroupType *gzgt); +void VIEW3D_GGT_xform_gizmo_context(wmGizmoGroupType *gzgt); +void VIEW3D_GGT_xform_cage(wmGizmoGroupType *gzgt); +void VIEW3D_GGT_xform_shear(wmGizmoGroupType *gzgt); /* `transform_gizmo_extrude_3d.cc` */ -void VIEW3D_GGT_xform_extrude(struct wmGizmoGroupType *gzgt); +void VIEW3D_GGT_xform_extrude(wmGizmoGroupType *gzgt); /* Generic 2D transform gizmo callback assignment. */ -void ED_widgetgroup_gizmo2d_xform_callbacks_set(struct wmGizmoGroupType *gzgt); -void ED_widgetgroup_gizmo2d_xform_no_cage_callbacks_set(struct wmGizmoGroupType *gzgt); -void ED_widgetgroup_gizmo2d_resize_callbacks_set(struct wmGizmoGroupType *gzgt); -void ED_widgetgroup_gizmo2d_rotate_callbacks_set(struct wmGizmoGroupType *gzgt); +void ED_widgetgroup_gizmo2d_xform_callbacks_set(wmGizmoGroupType *gzgt); +void ED_widgetgroup_gizmo2d_xform_no_cage_callbacks_set(wmGizmoGroupType *gzgt); +void ED_widgetgroup_gizmo2d_resize_callbacks_set(wmGizmoGroupType *gzgt); +void ED_widgetgroup_gizmo2d_rotate_callbacks_set(wmGizmoGroupType *gzgt); #define SNAP_INCREMENTAL_ANGLE DEG2RAD(5.0) @@ -203,10 +198,10 @@ struct TransformCalcParams { * * Returns total items selected. */ -int ED_transform_calc_gizmo_stats(const struct bContext *C, - const struct TransformCalcParams *params, - struct TransformBounds *tbounds, - struct RegionView3D *rv3d); +int ED_transform_calc_gizmo_stats(const bContext *C, + const TransformCalcParams *params, + TransformBounds *tbounds, + RegionView3D *rv3d); /** * Iterates over all the strips and finds the closest snapping candidate of either \a frame_1 or \a @@ -214,11 +209,11 @@ int ED_transform_calc_gizmo_stats(const struct bContext *C, * strip. * \returns True if there was anything to snap to. */ -bool ED_transform_snap_sequencer_to_closest_strip_calc(struct Scene *scene, - struct ARegion *region, +bool ED_transform_snap_sequencer_to_closest_strip_calc(Scene *scene, + ARegion *region, int frame_1, int frame_2, int *r_snap_distance, float *r_snap_frame); -void ED_draw_sequencer_snap_point(struct bContext *C, float snap_point); +void ED_draw_sequencer_snap_point(bContext *C, float snap_point); diff --git a/source/blender/editors/include/ED_transform_snap_object_context.hh b/source/blender/editors/include/ED_transform_snap_object_context.hh index 16b4a29faba..2156a24a2f0 100644 --- a/source/blender/editors/include/ED_transform_snap_object_context.hh +++ b/source/blender/editors/include/ED_transform_snap_object_context.hh @@ -27,11 +27,11 @@ struct View3D; /* ED_transform_snap_object_*** API */ -typedef enum eSnapEditType { +enum eSnapEditType { SNAP_GEOM_FINAL = 0, SNAP_GEOM_CAGE = 1, SNAP_GEOM_EDIT = 2, /* Bmesh for mesh-type. */ -} eSnapEditType; +}; /** used for storing multiple hits */ struct SnapObjectHitDepth { @@ -61,22 +61,22 @@ struct SnapObjectParams { bool keep_on_same_target : 1; }; -typedef struct SnapObjectContext SnapObjectContext; -SnapObjectContext *ED_transform_snap_object_context_create(struct Scene *scene, int flag); +struct SnapObjectContext; +SnapObjectContext *ED_transform_snap_object_context_create(Scene *scene, int flag); void ED_transform_snap_object_context_destroy(SnapObjectContext *sctx); /* callbacks to filter how snap works */ void ED_transform_snap_object_context_set_editmesh_callbacks( SnapObjectContext *sctx, - bool (*test_vert_fn)(struct BMVert *, void *user_data), - bool (*test_edge_fn)(struct BMEdge *, void *user_data), - bool (*test_face_fn)(struct BMFace *, void *user_data), + bool (*test_vert_fn)(BMVert *, void *user_data), + bool (*test_edge_fn)(BMEdge *, void *user_data), + bool (*test_face_fn)(BMFace *, void *user_data), void *user_data); -bool ED_transform_snap_object_project_ray_ex(struct SnapObjectContext *sctx, - struct Depsgraph *depsgraph, +bool ED_transform_snap_object_project_ray_ex(SnapObjectContext *sctx, + Depsgraph *depsgraph, const View3D *v3d, - const struct SnapObjectParams *params, + const SnapObjectParams *params, const float ray_start[3], const float ray_normal[3], float *ray_depth, @@ -84,12 +84,12 @@ bool ED_transform_snap_object_project_ray_ex(struct SnapObjectContext *sctx, float r_loc[3], float r_no[3], int *r_index, - struct Object **r_ob, + Object **r_ob, float r_obmat[4][4]); bool ED_transform_snap_object_project_ray(SnapObjectContext *sctx, - struct Depsgraph *depsgraph, + Depsgraph *depsgraph, const View3D *v3d, - const struct SnapObjectParams *params, + const SnapObjectParams *params, const float ray_origin[3], const float ray_direction[3], float *ray_depth, @@ -104,14 +104,14 @@ bool ED_transform_snap_object_project_ray(SnapObjectContext *sctx, * \param r_hit_list: List of #SnapObjectHitDepth (caller must free). */ bool ED_transform_snap_object_project_ray_all(SnapObjectContext *sctx, - struct Depsgraph *depsgraph, + Depsgraph *depsgraph, const View3D *v3d, - const struct SnapObjectParams *params, + const SnapObjectParams *params, const float ray_start[3], const float ray_normal[3], float ray_depth, bool sort, - struct ListBase *r_hit_list); + ListBase *r_hit_list); /** * Perform snapping. @@ -133,12 +133,12 @@ bool ED_transform_snap_object_project_ray_all(SnapObjectContext *sctx, * \param r_face_nor: World-space normal of snapped-to target face (optional). * \return Snapped-to element, #eSnapMode. */ -eSnapMode ED_transform_snap_object_project_view3d_ex(struct SnapObjectContext *sctx, - struct Depsgraph *depsgraph, +eSnapMode ED_transform_snap_object_project_view3d_ex(SnapObjectContext *sctx, + Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const eSnapMode snap_to, - const struct SnapObjectParams *params, + const SnapObjectParams *params, const float init_co[3], const float mval[2], const float prev_co[3], @@ -146,7 +146,7 @@ eSnapMode ED_transform_snap_object_project_view3d_ex(struct SnapObjectContext *s float r_loc[3], float r_no[3], int *r_index, - struct Object **r_ob, + Object **r_ob, float r_obmat[4][4], float r_face_nor[3]); /** @@ -165,12 +165,12 @@ eSnapMode ED_transform_snap_object_project_view3d_ex(struct SnapObjectContext *s * \param r_no: Snapped world-space normal (optional). * \return Snapped-to element, #eSnapMode. */ -eSnapMode ED_transform_snap_object_project_view3d(struct SnapObjectContext *sctx, - struct Depsgraph *depsgraph, +eSnapMode ED_transform_snap_object_project_view3d(SnapObjectContext *sctx, + Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, const eSnapMode snap_to, - const struct SnapObjectParams *params, + const SnapObjectParams *params, const float init_co[3], const float mval[2], const float prev_co[3], @@ -183,17 +183,17 @@ eSnapMode ED_transform_snap_object_project_view3d(struct SnapObjectContext *sctx * see: #ED_transform_snap_object_project_ray_all */ bool ED_transform_snap_object_project_all_view3d_ex(SnapObjectContext *sctx, - struct Depsgraph *depsgraph, + Depsgraph *depsgraph, const ARegion *region, const View3D *v3d, - const struct SnapObjectParams *params, + const SnapObjectParams *params, const float mval[2], float ray_depth, bool sort, ListBase *r_hit_list); #ifdef DEBUG_SNAP_TIME -void ED_transform_snap_object_time_average_print(void); +void ED_transform_snap_object_time_average_print(); #else # define ED_transform_snap_object_time_average_print() void(0) #endif diff --git a/source/blender/editors/include/ED_transverts.hh b/source/blender/editors/include/ED_transverts.hh index 2471678911e..5480a7fef57 100644 --- a/source/blender/editors/include/ED_transverts.hh +++ b/source/blender/editors/include/ED_transverts.hh @@ -11,28 +11,28 @@ struct Object; struct bContext; -typedef struct TransVert { +struct TransVert { float *loc; float oldloc[3], maploc[3]; float normal[3]; int flag; -} TransVert; +}; -typedef struct TransVertStore { - struct TransVert *transverts; +struct TransVertStore { + TransVert *transverts; int transverts_tot; int mode; -} TransVertStore; +}; /** * \param obedit: When `mode` has the #TM_CALC_MAPLOC flag set, `obedit` must be evaluated, * to access evaluated vertices. */ -void ED_transverts_create_from_obedit(TransVertStore *tvs, const struct Object *obedit, int mode); -void ED_transverts_update_obedit(TransVertStore *tvs, struct Object *obedit); +void ED_transverts_create_from_obedit(TransVertStore *tvs, const Object *obedit, int mode); +void ED_transverts_update_obedit(TransVertStore *tvs, Object *obedit); void ED_transverts_free(TransVertStore *tvs); -bool ED_transverts_check_obedit(const struct Object *obedit); -bool ED_transverts_poll(struct bContext *C); +bool ED_transverts_check_obedit(const Object *obedit); +bool ED_transverts_poll(bContext *C); /* currently only used for bmesh index values */ enum { diff --git a/source/blender/editors/include/ED_undo.hh b/source/blender/editors/include/ED_undo.hh index caf924f430a..8c4887eb011 100644 --- a/source/blender/editors/include/ED_undo.hh +++ b/source/blender/editors/include/ED_undo.hh @@ -15,6 +15,7 @@ struct Base; struct CLG_LogRef; struct Object; struct Scene; +struct MemFile; struct UndoStack; struct ViewLayer; struct bContext; @@ -26,38 +27,38 @@ struct wmOperatorType; /** * Run from the main event loop, basic checks that undo is left in a correct state. */ -bool ED_undo_is_state_valid(struct bContext *C); -void ED_undo_group_begin(struct bContext *C); -void ED_undo_group_end(struct bContext *C); -void ED_undo_push(struct bContext *C, const char *str); -void ED_undo_push_op(struct bContext *C, struct wmOperator *op); -void ED_undo_grouped_push(struct bContext *C, const char *str); -void ED_undo_grouped_push_op(struct bContext *C, struct wmOperator *op); -void ED_undo_pop_op(struct bContext *C, struct wmOperator *op); -void ED_undo_pop(struct bContext *C); -void ED_undo_redo(struct bContext *C); -void ED_OT_undo(struct wmOperatorType *ot); -void ED_OT_undo_push(struct wmOperatorType *ot); -void ED_OT_redo(struct wmOperatorType *ot); -void ED_OT_undo_redo(struct wmOperatorType *ot); -void ED_OT_undo_history(struct wmOperatorType *ot); +bool ED_undo_is_state_valid(bContext *C); +void ED_undo_group_begin(bContext *C); +void ED_undo_group_end(bContext *C); +void ED_undo_push(bContext *C, const char *str); +void ED_undo_push_op(bContext *C, wmOperator *op); +void ED_undo_grouped_push(bContext *C, const char *str); +void ED_undo_grouped_push_op(bContext *C, wmOperator *op); +void ED_undo_pop_op(bContext *C, wmOperator *op); +void ED_undo_pop(bContext *C); +void ED_undo_redo(bContext *C); +void ED_OT_undo(wmOperatorType *ot); +void ED_OT_undo_push(wmOperatorType *ot); +void ED_OT_redo(wmOperatorType *ot); +void ED_OT_undo_redo(wmOperatorType *ot); +void ED_OT_undo_history(wmOperatorType *ot); /** * UI callbacks should call this rather than calling WM_operator_repeat() themselves. */ -int ED_undo_operator_repeat(struct bContext *C, struct wmOperator *op); +int ED_undo_operator_repeat(bContext *C, wmOperator *op); /** * Convenience since UI callbacks use this mostly. */ -void ED_undo_operator_repeat_cb(struct bContext *C, void *arg_op, void *arg_unused); -void ED_undo_operator_repeat_cb_evt(struct bContext *C, void *arg_op, int arg_unused); +void ED_undo_operator_repeat_cb(bContext *C, void *arg_op, void *arg_unused); +void ED_undo_operator_repeat_cb_evt(bContext *C, void *arg_op, int arg_unused); /** * Name optionally, function used to check for operator redo panel. */ -bool ED_undo_is_valid(const struct bContext *C, const char *undoname); +bool ED_undo_is_valid(const bContext *C, const char *undoname); -bool ED_undo_is_memfile_compatible(const struct bContext *C); +bool ED_undo_is_memfile_compatible(const bContext *C); /* Unfortunate workaround for limits mixing undo systems. */ @@ -69,22 +70,22 @@ bool ED_undo_is_memfile_compatible(const struct bContext *C); * For example, changing a brush property isn't stored by sculpt-mode undo steps. * This workaround is needed until the limitation is removed, see: #61948. */ -bool ED_undo_is_legacy_compatible_for_property(struct bContext *C, struct ID *id); +bool ED_undo_is_legacy_compatible_for_property(bContext *C, ID *id); /** * Load all our objects from `object_array` into edit-mode, clear everything else. */ -void ED_undo_object_editmode_restore_helper(struct bContext *C, - struct Object **object_array, +void ED_undo_object_editmode_restore_helper(bContext *C, + Object **object_array, uint object_array_len, uint object_array_stride); -struct Object **ED_undo_editmode_objects_from_view_layer(const struct Scene *scene, - struct ViewLayer *view_layer, - uint *r_len); -struct Base **ED_undo_editmode_bases_from_view_layer(const struct Scene *scene, - struct ViewLayer *view_layer, - uint *r_len); +Object **ED_undo_editmode_objects_from_view_layer(const Scene *scene, + ViewLayer *view_layer, + uint *r_len); +Base **ED_undo_editmode_bases_from_view_layer(const Scene *scene, + ViewLayer *view_layer, + uint *r_len); /** * Ideally we won't access the stack directly, @@ -93,24 +94,21 @@ struct Base **ED_undo_editmode_bases_from_view_layer(const struct Scene *scene, * Using global isn't great, this just avoids doing inline, * causing 'BKE_global.h' & 'BKE_main.h' includes. */ -struct UndoStack *ED_undo_stack_get(void); +UndoStack *ED_undo_stack_get(); /* Helpers. */ -void ED_undo_object_set_active_or_warn(struct Scene *scene, - struct ViewLayer *view_layer, - struct Object *ob, - const char *info, - struct CLG_LogRef *log); +void ED_undo_object_set_active_or_warn( + Scene *scene, ViewLayer *view_layer, Object *ob, const char *info, CLG_LogRef *log); /* `undo_system_types.cc` */ -void ED_undosys_type_init(void); -void ED_undosys_type_free(void); +void ED_undosys_type_init(); +void ED_undosys_type_free(); /* `memfile_undo.cc` */ -struct MemFile *ED_undosys_stack_memfile_get_active(struct UndoStack *ustack); +MemFile *ED_undosys_stack_memfile_get_active(UndoStack *ustack); /** * If the last undo step is a memfile one, find the first #MemFileChunk matching given ID * (using its session UUID), and tag it as "changed in the future". @@ -126,4 +124,4 @@ struct MemFile *ED_undosys_stack_memfile_get_active(struct UndoStack *ustack); * to first #MemFileChunk in #MemFile itself * (currently we only do that in #MemFileWriteData when writing a new step). */ -void ED_undosys_stack_memfile_id_changed_tag(struct UndoStack *ustack, struct ID *id); +void ED_undosys_stack_memfile_id_changed_tag(UndoStack *ustack, ID *id); diff --git a/source/blender/editors/include/ED_userpref.hh b/source/blender/editors/include/ED_userpref.hh index ebc5ad826bc..bff29aadad0 100644 --- a/source/blender/editors/include/ED_userpref.hh +++ b/source/blender/editors/include/ED_userpref.hh @@ -8,4 +8,4 @@ #pragma once -void ED_operatortypes_userpref(void); +void ED_operatortypes_userpref(); diff --git a/source/blender/editors/include/ED_util_imbuf.hh b/source/blender/editors/include/ED_util_imbuf.hh index 33a1096f8d1..de1e223d88c 100644 --- a/source/blender/editors/include/ED_util_imbuf.hh +++ b/source/blender/editors/include/ED_util_imbuf.hh @@ -18,9 +18,9 @@ struct wmOperator; /* `ed_util_imbuf.cc` */ -void ED_imbuf_sample_draw(const struct bContext *C, struct ARegion *region, void *arg_info); -void ED_imbuf_sample_exit(struct bContext *C, struct wmOperator *op); -int ED_imbuf_sample_invoke(struct bContext *C, struct wmOperator *op, const struct wmEvent *event); -int ED_imbuf_sample_modal(struct bContext *C, struct wmOperator *op, const struct wmEvent *event); -void ED_imbuf_sample_cancel(struct bContext *C, struct wmOperator *op); -bool ED_imbuf_sample_poll(struct bContext *C); +void ED_imbuf_sample_draw(const bContext *C, ARegion *region, void *arg_info); +void ED_imbuf_sample_exit(bContext *C, wmOperator *op); +int ED_imbuf_sample_invoke(bContext *C, wmOperator *op, const wmEvent *event); +int ED_imbuf_sample_modal(bContext *C, wmOperator *op, const wmEvent *event); +void ED_imbuf_sample_cancel(bContext *C, wmOperator *op); +bool ED_imbuf_sample_poll(bContext *C); diff --git a/source/blender/editors/include/ED_uvedit.hh b/source/blender/editors/include/ED_uvedit.hh index 4f7637d427e..1e4e4269ee6 100644 --- a/source/blender/editors/include/ED_uvedit.hh +++ b/source/blender/editors/include/ED_uvedit.hh @@ -32,73 +32,52 @@ struct wmKeyConfig; /* `uvedit_ops.cc` */ -void ED_operatortypes_uvedit(void); -void ED_operatormacros_uvedit(void); -void ED_keymap_uvedit(struct wmKeyConfig *keyconf); +void ED_operatortypes_uvedit(); +void ED_operatormacros_uvedit(); +void ED_keymap_uvedit(wmKeyConfig *keyconf); -bool ED_uvedit_minmax(const struct Scene *scene, - struct Object *obedit, - float min[2], - float max[2]); +bool ED_uvedit_minmax(const Scene *scene, Object *obedit, float min[2], float max[2]); /** * Be careful when using this, it bypasses all synchronization options. */ -void ED_uvedit_select_all(struct BMesh *bm); +void ED_uvedit_select_all(BMesh *bm); -bool ED_uvedit_minmax_multi(const struct Scene *scene, - struct Object **objects_edit, - uint objects_len, - float r_min[2], - float r_max[2]); -bool ED_uvedit_center_multi(const struct Scene *scene, - struct Object **objects_edit, - uint objects_len, - float r_cent[2], - char mode); +bool ED_uvedit_minmax_multi( + const Scene *scene, Object **objects_edit, uint objects_len, float r_min[2], float r_max[2]); +bool ED_uvedit_center_multi( + const Scene *scene, Object **objects_edit, uint objects_len, float r_cent[2], char mode); -bool ED_uvedit_center_from_pivot_ex(struct SpaceImage *sima, - struct Scene *scene, - struct ViewLayer *view_layer, +bool ED_uvedit_center_from_pivot_ex(SpaceImage *sima, + Scene *scene, + ViewLayer *view_layer, float r_center[2], char mode, bool *r_has_select); -bool ED_uvedit_center_from_pivot(struct SpaceImage *sima, - struct Scene *scene, - struct ViewLayer *view_layer, - float r_center[2], - char mode); +bool ED_uvedit_center_from_pivot( + SpaceImage *sima, Scene *scene, ViewLayer *view_layer, float r_center[2], char mode); -bool ED_object_get_active_image(struct Object *ob, +bool ED_object_get_active_image(Object *ob, int mat_nr, - struct Image **r_ima, - struct ImageUser **r_iuser, - const struct bNode **r_node, - const struct bNodeTree **r_ntree); -void ED_object_assign_active_image(struct Main *bmain, - struct Object *ob, - int mat_nr, - struct Image *ima); + Image **r_ima, + ImageUser **r_iuser, + const bNode **r_node, + const bNodeTree **r_ntree); +void ED_object_assign_active_image(Main *bmain, Object *ob, int mat_nr, Image *ima); -bool ED_uvedit_test(struct Object *obedit); +bool ED_uvedit_test(Object *obedit); /* Visibility and selection tests. */ -bool uvedit_face_visible_test_ex(const struct ToolSettings *ts, struct BMFace *efa); -bool uvedit_face_select_test_ex(const struct ToolSettings *ts, - struct BMFace *efa, - BMUVOffsets offsets); +bool uvedit_face_visible_test_ex(const ToolSettings *ts, BMFace *efa); +bool uvedit_face_select_test_ex(const ToolSettings *ts, BMFace *efa, BMUVOffsets offsets); -bool uvedit_edge_select_test_ex(const struct ToolSettings *ts, - struct BMLoop *l, - BMUVOffsets offsets); -bool uvedit_uv_select_test_ex(const struct ToolSettings *ts, - struct BMLoop *l, - BMUVOffsets offsets); +bool uvedit_edge_select_test_ex(const ToolSettings *ts, BMLoop *l, BMUVOffsets offsets); +bool uvedit_uv_select_test_ex(const ToolSettings *ts, BMLoop *l, BMUVOffsets offsets); -bool uvedit_face_visible_test(const struct Scene *scene, struct BMFace *efa); -bool uvedit_face_select_test(const struct Scene *scene, struct BMFace *efa, BMUVOffsets offsets); -bool uvedit_edge_select_test(const struct Scene *scene, struct BMLoop *l, BMUVOffsets offsets); -bool uvedit_uv_select_test(const struct Scene *scene, struct BMLoop *l, BMUVOffsets offsets); +bool uvedit_face_visible_test(const Scene *scene, BMFace *efa); +bool uvedit_face_select_test(const Scene *scene, BMFace *efa, BMUVOffsets offsets); +bool uvedit_edge_select_test(const Scene *scene, BMLoop *l, BMUVOffsets offsets); +bool uvedit_uv_select_test(const Scene *scene, BMLoop *l, BMUVOffsets offsets); /* Individual UV element selection functions. */ @@ -107,86 +86,56 @@ bool uvedit_uv_select_test(const struct Scene *scene, struct BMLoop *l, BMUVOffs * * Changes selection state of a single UV Face. */ -void uvedit_face_select_set(const struct Scene *scene, - struct BMesh *bm, - struct BMFace *efa, - bool select, - bool do_history, - BMUVOffsets offsets); +void uvedit_face_select_set( + const Scene *scene, BMesh *bm, BMFace *efa, bool select, bool do_history, BMUVOffsets offsets); /** * \brief Select UV Edge * * Changes selection state of a single UV Edge. */ -void uvedit_edge_select_set(const struct Scene *scene, - struct BMesh *bm, - struct BMLoop *l, - bool select, - bool do_history, - BMUVOffsets offsets); +void uvedit_edge_select_set( + const Scene *scene, BMesh *bm, BMLoop *l, bool select, bool do_history, BMUVOffsets offsets); /** * \brief Select UV Vertex * * Changes selection state of a single UV vertex. */ -void uvedit_uv_select_set(const struct Scene *scene, - struct BMesh *bm, - struct BMLoop *l, - bool select, - bool do_history, - BMUVOffsets offsets); +void uvedit_uv_select_set( + const Scene *scene, BMesh *bm, BMLoop *l, bool select, bool do_history, BMUVOffsets offsets); /* Low level functions for (de)selecting individual UV elements. Ensure UV face visibility before * use. */ -void uvedit_face_select_enable(const struct Scene *scene, - struct BMesh *bm, - struct BMFace *efa, - bool do_history, - BMUVOffsets offsets); -void uvedit_face_select_disable(const struct Scene *scene, - struct BMesh *bm, - struct BMFace *efa, - BMUVOffsets offsets); +void uvedit_face_select_enable( + const Scene *scene, BMesh *bm, BMFace *efa, bool do_history, BMUVOffsets offsets); +void uvedit_face_select_disable(const Scene *scene, BMesh *bm, BMFace *efa, BMUVOffsets offsets); -void uvedit_edge_select_enable(const struct Scene *scene, - struct BMesh *bm, - struct BMLoop *l, - bool do_history, - BMUVOffsets offsets); -void uvedit_edge_select_disable(const struct Scene *scene, - struct BMesh *bm, - struct BMLoop *l, - BMUVOffsets offsets); +void uvedit_edge_select_enable( + const Scene *scene, BMesh *bm, BMLoop *l, bool do_history, BMUVOffsets offsets); +void uvedit_edge_select_disable(const Scene *scene, BMesh *bm, BMLoop *l, BMUVOffsets offsets); -void uvedit_uv_select_enable(const struct Scene *scene, - struct BMesh *bm, - struct BMLoop *l, - bool do_history, - BMUVOffsets offsets); -void uvedit_uv_select_disable(const struct Scene *scene, - struct BMesh *bm, - struct BMLoop *l, - BMUVOffsets offsets); +void uvedit_uv_select_enable( + const Scene *scene, BMesh *bm, BMLoop *l, bool do_history, BMUVOffsets offsets); +void uvedit_uv_select_disable(const Scene *scene, BMesh *bm, BMLoop *l, BMUVOffsets offsets); /* Sticky mode UV element selection functions. */ -void uvedit_face_select_set_with_sticky(const struct Scene *scene, - struct BMEditMesh *em, - struct BMFace *efa, +void uvedit_face_select_set_with_sticky(const Scene *scene, + BMEditMesh *em, + BMFace *efa, bool select, bool do_history, BMUVOffsets offsets); -void uvedit_edge_select_set_with_sticky(const struct Scene *scene, - struct BMEditMesh *em, - struct BMLoop *l, +void uvedit_edge_select_set_with_sticky(const Scene *scene, + BMEditMesh *em, + BMLoop *l, bool select, bool do_history, BMUVOffsets offsets); -void uvedit_uv_select_set_with_sticky(const struct Scene *scene, - struct BMEditMesh *em, - struct BMLoop *l, +void uvedit_uv_select_set_with_sticky(const Scene *scene, + BMEditMesh *em, + BMLoop *l, bool select, bool do_history, BMUVOffsets offsets); @@ -194,9 +143,9 @@ void uvedit_uv_select_set_with_sticky(const struct Scene *scene, /* Low level functions for sticky element selection (sticky mode independent). Type of sticky * selection is specified explicitly (using sticky_flag, except for face selection). */ -void uvedit_face_select_shared_vert(const struct Scene *scene, - struct BMEditMesh *em, - struct BMFace *efa, +void uvedit_face_select_shared_vert(const Scene *scene, + BMEditMesh *em, + BMFace *efa, const bool select, const bool do_history, BMUVOffsets offsets); @@ -207,9 +156,9 @@ void uvedit_face_select_shared_vert(const struct Scene *scene, * - #SI_STICKY_LOC: selects all UV edges that share the same mesh vertices and UV coordinates. * - #SI_STICKY_VERTEX: selects all UV edges sharing the same mesh vertices. */ -void uvedit_edge_select_shared_vert(const struct Scene *scene, - struct BMEditMesh *em, - struct BMLoop *l, +void uvedit_edge_select_shared_vert(const Scene *scene, + BMEditMesh *em, + BMLoop *l, const bool select, const int sticky_flag, const bool do_history, @@ -221,9 +170,9 @@ void uvedit_edge_select_shared_vert(const struct Scene *scene, * - #SI_STICKY_LOC: selects all UVs sharing same mesh vertex and UV coordinates. * - #SI_STICKY_VERTEX: selects all UVs sharing same mesh vertex. */ -void uvedit_uv_select_shared_vert(const struct Scene *scene, - struct BMEditMesh *em, - struct BMLoop *l, +void uvedit_uv_select_shared_vert(const Scene *scene, + BMEditMesh *em, + BMLoop *l, const bool select, const int sticky_flag, const bool do_history, @@ -232,11 +181,8 @@ void uvedit_uv_select_shared_vert(const struct Scene *scene, /** * Sets required UV edge flags as specified by the `sticky_flag`. */ -void uvedit_edge_select_set_noflush(const struct Scene *scene, - struct BMLoop *l, - const bool select, - const int sticky_flag, - BMUVOffsets offsets); +void uvedit_edge_select_set_noflush( + const Scene *scene, BMLoop *l, const bool select, const int sticky_flag, BMUVOffsets offsets); /** * \brief UV Select Mode set @@ -244,98 +190,87 @@ void uvedit_edge_select_set_noflush(const struct Scene *scene, * Updates selection state for UVs based on the select mode and sticky mode. Similar to * #EDBM_selectmode_set. */ -void ED_uvedit_selectmode_clean(const struct Scene *scene, struct Object *obedit); -void ED_uvedit_selectmode_clean_multi(struct bContext *C); +void ED_uvedit_selectmode_clean(const Scene *scene, Object *obedit); +void ED_uvedit_selectmode_clean_multi(bContext *C); /** * \brief UV Select Mode Flush * * Flushes selections upwards as dictated by the UV select mode. */ -void ED_uvedit_selectmode_flush(const struct Scene *scene, struct BMEditMesh *em); +void ED_uvedit_selectmode_flush(const Scene *scene, BMEditMesh *em); /** * Mode independent UV de-selection flush. */ -void uvedit_deselect_flush(const struct Scene *scene, struct BMEditMesh *em); +void uvedit_deselect_flush(const Scene *scene, BMEditMesh *em); /** * Mode independent UV selection flush. */ -void uvedit_select_flush(const struct Scene *scene, struct BMEditMesh *em); +void uvedit_select_flush(const Scene *scene, BMEditMesh *em); -bool ED_uvedit_nearest_uv_multi(const struct View2D *v2d, - const struct Scene *scene, - struct Object **objects, +bool ED_uvedit_nearest_uv_multi(const View2D *v2d, + const Scene *scene, + Object **objects, uint objects_len, const float mval_fl[2], const bool ignore_selected, float *dist_sq, float r_uv[2]); -struct BMFace **ED_uvedit_selected_faces(const struct Scene *scene, - struct BMesh *bm, - int len_max, - int *r_faces_len); -struct BMLoop **ED_uvedit_selected_edges(const struct Scene *scene, - struct BMesh *bm, - int len_max, - int *r_edges_len); -struct BMLoop **ED_uvedit_selected_verts(const struct Scene *scene, - struct BMesh *bm, - int len_max, - int *r_verts_len); +BMFace **ED_uvedit_selected_faces(const Scene *scene, BMesh *bm, int len_max, int *r_faces_len); +BMLoop **ED_uvedit_selected_edges(const Scene *scene, BMesh *bm, int len_max, int *r_edges_len); +BMLoop **ED_uvedit_selected_verts(const Scene *scene, BMesh *bm, int len_max, int *r_verts_len); -void ED_uvedit_get_aspect(struct Object *obedit, float *r_aspx, float *r_aspy); +void ED_uvedit_get_aspect(Object *obedit, float *r_aspx, float *r_aspy); /** * Return the X / Y aspect (wider aspects are over 1, taller are below 1). * Apply this aspect by multiplying with the Y axis (X aspect is always 1 & unchanged). */ -float ED_uvedit_get_aspect_y(struct Object *obedit); +float ED_uvedit_get_aspect_y(Object *obedit); void ED_uvedit_get_aspect_from_material(Object *ob, const int material_index, float *r_aspx, float *r_aspy); -void ED_uvedit_active_vert_loop_set(struct BMesh *bm, struct BMLoop *l); -struct BMLoop *ED_uvedit_active_vert_loop_get(struct BMesh *bm); +void ED_uvedit_active_vert_loop_set(BMesh *bm, BMLoop *l); +BMLoop *ED_uvedit_active_vert_loop_get(BMesh *bm); -void ED_uvedit_active_edge_loop_set(struct BMesh *bm, struct BMLoop *l); -struct BMLoop *ED_uvedit_active_edge_loop_get(struct BMesh *bm); +void ED_uvedit_active_edge_loop_set(BMesh *bm, BMLoop *l); +BMLoop *ED_uvedit_active_edge_loop_get(BMesh *bm); /** * Intentionally don't return #UV_SELECT_ISLAND as it's not an element type. * In this case return #UV_SELECT_VERTEX as a fallback. */ -char ED_uvedit_select_mode_get(const struct Scene *scene); -void ED_uvedit_select_sync_flush(const struct ToolSettings *ts, - struct BMEditMesh *em, - bool select); +char ED_uvedit_select_mode_get(const Scene *scene); +void ED_uvedit_select_sync_flush(const ToolSettings *ts, BMEditMesh *em, bool select); /* `uvedit_unwrap_ops.cc` */ -void ED_uvedit_live_unwrap_begin(struct Scene *scene, struct Object *obedit); -void ED_uvedit_live_unwrap_re_solve(void); +void ED_uvedit_live_unwrap_begin(Scene *scene, Object *obedit); +void ED_uvedit_live_unwrap_re_solve(); void ED_uvedit_live_unwrap_end(short cancel); -void ED_uvedit_live_unwrap(const struct Scene *scene, struct Object **objects, int objects_len); -void ED_uvedit_add_simple_uvs(struct Main *bmain, const struct Scene *scene, struct Object *ob); +void ED_uvedit_live_unwrap(const Scene *scene, Object **objects, int objects_len); +void ED_uvedit_add_simple_uvs(Main *bmain, const Scene *scene, Object *ob); /* `uvedit_draw.cc` */ -void ED_image_draw_cursor(struct ARegion *region, const float cursor[2]); +void ED_image_draw_cursor(ARegion *region, const float cursor[2]); /* `uvedit_buttons.cc` */ -void ED_uvedit_buttons_register(struct ARegionType *art); +void ED_uvedit_buttons_register(ARegionType *art); /* `uvedit_islands.cc` */ struct FaceIsland { - struct FaceIsland *next; - struct FaceIsland *prev; - struct BMFace **faces; + FaceIsland *next; + FaceIsland *prev; + BMFace **faces; int faces_len; /** * \note While this is duplicate information, @@ -349,7 +284,7 @@ struct FaceIsland { * Calculate islands and add them to \a island_list returning the number of items added. */ int bm_mesh_calc_uv_islands(const Scene *scene, - struct BMesh *bm, + BMesh *bm, ListBase *island_list, const bool only_selected_faces, const bool only_selected_uvs, @@ -360,6 +295,4 @@ int bm_mesh_calc_uv_islands(const Scene *scene, /** * Returns true if UV coordinates lie on a valid tile in UDIM grid or tiled image. */ -bool uv_coords_isect_udim(const struct Image *image, - const int udim_grid[2], - const float coords[2]); +bool uv_coords_isect_udim(const Image *image, const int udim_grid[2], const float coords[2]); diff --git a/source/blender/editors/include/ED_view3d.hh b/source/blender/editors/include/ED_view3d.hh index f09743d184b..2d2cb33b865 100644 --- a/source/blender/editors/include/ED_view3d.hh +++ b/source/blender/editors/include/ED_view3d.hh @@ -16,6 +16,7 @@ struct ARegion; struct BMEdge; struct BMElem; +struct BMEditMesh; struct BMFace; struct BMVert; struct BPoint; @@ -53,33 +54,33 @@ struct wmWindow; struct wmWindowManager; /* for derivedmesh drawing callbacks, for view3d_select, .... */ -typedef struct ViewContext { - struct bContext *C; - struct Main *bmain; +struct ViewContext { + bContext *C; + Main *bmain; /* Dependency graph is uses for depth drawing, viewport camera matrix access, and also some areas * are re-using this to access evaluated entities. * * Moral of the story: assign to a fully evaluated state. */ - struct Depsgraph *depsgraph; - struct Scene *scene; - struct ViewLayer *view_layer; - struct Object *obact; - struct Object *obedit; - struct ARegion *region; - struct View3D *v3d; - struct wmWindow *win; - struct RegionView3D *rv3d; - struct BMEditMesh *em; + Depsgraph *depsgraph; + Scene *scene; + ViewLayer *view_layer; + Object *obact; + Object *obedit; + ARegion *region; + View3D *v3d; + wmWindow *win; + RegionView3D *rv3d; + BMEditMesh *em; int mval[2]; -} ViewContext; +}; -typedef struct ViewDepths { +struct ViewDepths { unsigned short w, h; /* only for temp use for sub-rectangles, added to `region->winx/winy`. */ short x, y; float *depths; double depth_range[2]; -} ViewDepths; +}; /* Rotate 3D cursor on placement. */ enum eV3DCursorOrient { @@ -89,33 +90,31 @@ enum eV3DCursorOrient { V3D_CURSOR_ORIENT_GEOM, }; -void ED_view3d_background_color_get(const struct Scene *scene, - const struct View3D *v3d, - float r_color[3]); -bool ED_view3d_has_workbench_in_texture_color(const struct Scene *scene, - const struct Object *ob, - const struct View3D *v3d); +void ED_view3d_background_color_get(const Scene *scene, const View3D *v3d, float r_color[3]); +bool ED_view3d_has_workbench_in_texture_color(const Scene *scene, + const Object *ob, + const View3D *v3d); /** * Cursor position in `r_cursor_co`, result in `r_cursor_co`, `mval` in region coords. * * \note cannot use `event->mval` here, called by #object_add(). */ -void ED_view3d_cursor3d_position(struct bContext *C, +void ED_view3d_cursor3d_position(bContext *C, const int mval[2], bool use_depth, float r_cursor_co[3]); -void ED_view3d_cursor3d_position_rotation(struct bContext *C, +void ED_view3d_cursor3d_position_rotation(bContext *C, const int mval[2], bool use_depth, enum eV3DCursorOrient orientation, float r_cursor_co[3], float r_cursor_quat[4]); -void ED_view3d_cursor3d_update(struct bContext *C, +void ED_view3d_cursor3d_update(bContext *C, const int mval[2], bool use_depth, enum eV3DCursorOrient orientation); -struct Camera *ED_view3d_camera_data_get(struct View3D *v3d, struct RegionView3D *rv3d); +Camera *ED_view3d_camera_data_get(View3D *v3d, RegionView3D *rv3d); /** * Calculate the view transformation matrix from RegionView3D input. @@ -145,7 +144,7 @@ void ED_view3d_from_m4(const float mat[4][4], float ofs[3], float quat[4], const * \param lens: The view lens angle set for cameras and lights, normally from View3D.lens. */ void ED_view3d_from_object( - const struct Object *ob, float ofs[3], float quat[4], float *dist, float *lens); + const Object *ob, float ofs[3], float quat[4], float *dist, float *lens); /** * Set the object transformation from #RegionView3D members. * \param depsgraph: The depsgraph to get the evaluated object parent @@ -155,29 +154,26 @@ void ED_view3d_from_object( * \param quat: The view rotation, quaternion normally from #RegionView3D.viewquat. * \param dist: The view distance from `ofs`, normally from #RegionView3D.dist. */ -void ED_view3d_to_object(const struct Depsgraph *depsgraph, - struct Object *ob, - const float ofs[3], - const float quat[4], - float dist); +void ED_view3d_to_object( + const Depsgraph *depsgraph, Object *ob, const float ofs[3], const float quat[4], float dist); -bool ED_view3d_camera_to_view_selected(struct Main *bmain, - struct Depsgraph *depsgraph, - const struct Scene *scene, - struct Object *camera_ob); +bool ED_view3d_camera_to_view_selected(Main *bmain, + Depsgraph *depsgraph, + const Scene *scene, + Object *camera_ob); -bool ED_view3d_camera_to_view_selected_with_set_clipping(struct Main *bmain, - struct Depsgraph *depsgraph, - const struct Scene *scene, - struct Object *camera_ob); +bool ED_view3d_camera_to_view_selected_with_set_clipping(Main *bmain, + Depsgraph *depsgraph, + const Scene *scene, + Object *camera_ob); /** * Use to store the last view, before entering camera view. */ -void ED_view3d_lastview_store(struct RegionView3D *rv3d); +void ED_view3d_lastview_store(RegionView3D *rv3d); /* Depth buffer */ -typedef enum { +enum eV3DDepthOverrideMode { /** Redraw viewport without Grease Pencil and Annotations. */ V3D_DEPTH_NO_GPENCIL = 0, /** Redraw viewport with Grease Pencil and Annotations only. */ @@ -185,26 +181,26 @@ typedef enum { /** Redraw viewport with active object only. */ V3D_DEPTH_OBJECT_ONLY, -} eV3DDepthOverrideMode; +}; /** * Redraw the viewport depth buffer. */ -void ED_view3d_depth_override(struct Depsgraph *depsgraph, - struct ARegion *region, - struct View3D *v3d, - struct Object *obact, +void ED_view3d_depth_override(Depsgraph *depsgraph, + ARegion *region, + View3D *v3d, + Object *obact, eV3DDepthOverrideMode mode, - struct ViewDepths **r_depths); + ViewDepths **r_depths); void ED_view3d_depths_free(ViewDepths *depths); bool ED_view3d_depth_read_cached(const ViewDepths *vd, const int mval[2], int margin, float *r_depth); -bool ED_view3d_depth_read_cached_normal(const struct ARegion *region, +bool ED_view3d_depth_read_cached_normal(const ARegion *region, const ViewDepths *depths, const int mval[2], float r_normal[3]); -bool ED_view3d_depth_unproject_v3(const struct ARegion *region, +bool ED_view3d_depth_unproject_v3(const ARegion *region, const int mval[2], double depth, float r_location_world[3]); @@ -216,18 +212,18 @@ bool ED_view3d_depth_unproject_v3(const struct ARegion *region, * * \note modal map events can also be used in `ED_view3d_navigation_do`. */ -struct ViewOpsData *ED_view3d_navigation_init(struct bContext *C, const bool use_alt_navigation); -bool ED_view3d_navigation_do(struct bContext *C, - struct ViewOpsData *vod, - const struct wmEvent *event, +ViewOpsData *ED_view3d_navigation_init(bContext *C, const bool use_alt_navigation); +bool ED_view3d_navigation_do(bContext *C, + ViewOpsData *vod, + const wmEvent *event, const float depth_loc_override[3]); -void ED_view3d_navigation_free(struct bContext *C, struct ViewOpsData *vod); +void ED_view3d_navigation_free(bContext *C, ViewOpsData *vod); /* Projection */ #define IS_CLIPPED 12000 /* return values for ED_view3d_project_...() */ -typedef enum { +enum eV3DProjStatus { V3D_PROJ_RET_OK = 0, /** can't avoid this when in perspective mode, (can't avoid) */ V3D_PROJ_RET_CLIP_NEAR = 1, @@ -241,11 +237,11 @@ typedef enum { V3D_PROJ_RET_CLIP_WIN = 5, /** outside range (mainly for short), (can't avoid) */ V3D_PROJ_RET_OVERFLOW = 6, -} eV3DProjStatus; +}; ENUM_OPERATORS(eV3DProjStatus, V3D_PROJ_RET_OVERFLOW); /* some clipping tests are optional */ -typedef enum { +enum eV3DProjTest { V3D_PROJ_TEST_NOP = 0, V3D_PROJ_TEST_CLIP_BB = (1 << 0), V3D_PROJ_TEST_CLIP_WIN = (1 << 1), @@ -273,7 +269,7 @@ typedef enum { * to avoid accidentally enabling near clipping without clipping by window bounds. */ V3D_PROJ_TEST_CLIP_CONTENT = (1 << 5), -} eV3DProjTest; +}; ENUM_OPERATORS(eV3DProjTest, V3D_PROJ_TEST_CLIP_CONTENT); #define V3D_PROJ_TEST_CLIP_DEFAULT \ @@ -288,23 +284,23 @@ ENUM_OPERATORS(eV3DProjTest, V3D_PROJ_TEST_CLIP_CONTENT); /* `view3d_snap.cc` */ -bool ED_view3d_snap_selected_to_location(struct bContext *C, +bool ED_view3d_snap_selected_to_location(bContext *C, const float snap_target_global[3], int pivot_point); /* `view3d_cursor_snap.cc` */ #define USE_SNAP_DETECT_FROM_KEYMAP_HACK -typedef enum { +enum eV3DSnapCursor { V3D_SNAPCURSOR_TOGGLE_ALWAYS_TRUE = 1 << 0, V3D_SNAPCURSOR_OCCLUSION_ALWAYS_TRUE = 1 << 1, V3D_SNAPCURSOR_OCCLUSION_ALWAYS_FALSE = 1 << 2, /* TODO. */ V3D_SNAPCURSOR_SNAP_EDIT_GEOM_FINAL = 1 << 3, V3D_SNAPCURSOR_SNAP_EDIT_GEOM_CAGE = 1 << 4, -} eV3DSnapCursor; +}; ENUM_OPERATORS(eV3DSnapCursor, V3D_SNAPCURSOR_SNAP_EDIT_GEOM_CAGE) -typedef struct V3DSnapCursorData { +struct V3DSnapCursorData { eSnapMode snap_elem; float loc[3]; float nor[3]; @@ -315,9 +311,9 @@ typedef struct V3DSnapCursorData { /** Enabled when snap is activated, even if it didn't find anything. */ bool is_enabled; -} V3DSnapCursorData; +}; -typedef struct V3DSnapCursorState { +struct V3DSnapCursorState { /* Setup. */ eV3DSnapCursor flag; uchar source_color[4]; @@ -329,23 +325,20 @@ typedef struct V3DSnapCursorState { bool draw_plane; bool draw_box; - bool (*poll)(struct ARegion *region, void *custom_poll_data); + bool (*poll)(ARegion *region, void *custom_poll_data); void *poll_data; -} V3DSnapCursorState; +}; void ED_view3d_cursor_snap_state_default_set(V3DSnapCursorState *state); -V3DSnapCursorState *ED_view3d_cursor_snap_state_active_get(void); +V3DSnapCursorState *ED_view3d_cursor_snap_state_active_get(); void ED_view3d_cursor_snap_state_active_set(V3DSnapCursorState *state); -V3DSnapCursorState *ED_view3d_cursor_snap_state_create(void); +V3DSnapCursorState *ED_view3d_cursor_snap_state_create(); void ED_view3d_cursor_snap_state_free(V3DSnapCursorState *state); void ED_view3d_cursor_snap_state_prevpoint_set(V3DSnapCursorState *state, const float prev_point[3]); -void ED_view3d_cursor_snap_data_update(V3DSnapCursorState *state, - const struct bContext *C, - int x, - int y); -V3DSnapCursorData *ED_view3d_cursor_snap_data_get(void); -struct SnapObjectContext *ED_view3d_cursor_snap_context_ensure(struct Scene *scene); +void ED_view3d_cursor_snap_data_update(V3DSnapCursorState *state, const bContext *C, int x, int y); +V3DSnapCursorData *ED_view3d_cursor_snap_data_get(); +SnapObjectContext *ED_view3d_cursor_snap_context_ensure(Scene *scene); void ED_view3d_cursor_snap_draw_util(RegionView3D *rv3d, const float source_loc[3], const float target_loc[3], @@ -358,20 +351,20 @@ void ED_view3d_cursor_snap_draw_util(RegionView3D *rv3d, /* foreach iterators */ -void meshobject_foreachScreenVert(struct ViewContext *vc, +void meshobject_foreachScreenVert(ViewContext *vc, void (*func)(void *user_data, const float screen_co[2], int index), void *user_data, eV3DProjTest clip_flag); void mesh_foreachScreenVert( - struct ViewContext *vc, - void (*func)(void *user_data, struct BMVert *eve, const float screen_co[2], int index), + ViewContext *vc, + void (*func)(void *user_data, BMVert *eve, const float screen_co[2], int index), void *user_data, eV3DProjTest clip_flag); -void mesh_foreachScreenEdge(struct ViewContext *vc, +void mesh_foreachScreenEdge(ViewContext *vc, void (*func)(void *user_data, - struct BMEdge *eed, + BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index), @@ -382,9 +375,9 @@ void mesh_foreachScreenEdge(struct ViewContext *vc, * A version of #mesh_foreachScreenEdge that clips the segment when * there is a clipping bounding box. */ -void mesh_foreachScreenEdge_clip_bb_segment(struct ViewContext *vc, +void mesh_foreachScreenEdge_clip_bb_segment(ViewContext *vc, void (*func)(void *user_data, - struct BMEdge *eed, + BMEdge *eed, const float screen_co_a[2], const float screen_co_b[2], int index), @@ -392,15 +385,15 @@ void mesh_foreachScreenEdge_clip_bb_segment(struct ViewContext *vc, eV3DProjTest clip_flag); void mesh_foreachScreenFace( - struct ViewContext *vc, - void (*func)(void *user_data, struct BMFace *efa, const float screen_co[2], int index), + ViewContext *vc, + void (*func)(void *user_data, BMFace *efa, const float screen_co[2], int index), void *user_data, eV3DProjTest clip_flag); -void nurbs_foreachScreenVert(struct ViewContext *vc, +void nurbs_foreachScreenVert(ViewContext *vc, void (*func)(void *user_data, - struct Nurb *nu, - struct BPoint *bp, - struct BezTriple *bezt, + Nurb *nu, + BPoint *bp, + BezTriple *bezt, int beztindex, bool handle_visible, const float screen_co[2]), @@ -409,24 +402,20 @@ void nurbs_foreachScreenVert(struct ViewContext *vc, /** * #ED_view3d_init_mats_rv3d must be called first. */ -void mball_foreachScreenElem(struct ViewContext *vc, - void (*func)(void *user_data, - struct MetaElem *ml, - const float screen_co[2]), +void mball_foreachScreenElem(ViewContext *vc, + void (*func)(void *user_data, MetaElem *ml, const float screen_co[2]), void *user_data, eV3DProjTest clip_flag); -void lattice_foreachScreenVert(struct ViewContext *vc, - void (*func)(void *user_data, - struct BPoint *bp, - const float screen_co[2]), +void lattice_foreachScreenVert(ViewContext *vc, + void (*func)(void *user_data, BPoint *bp, const float screen_co[2]), void *user_data, eV3DProjTest clip_flag); /** * #ED_view3d_init_mats_rv3d must be called first. */ -void armature_foreachScreenBone(struct ViewContext *vc, +void armature_foreachScreenBone(ViewContext *vc, void (*func)(void *user_data, - struct EditBone *ebone, + EditBone *ebone, const float screen_co_a[2], const float screen_co_b[2]), void *user_data, @@ -435,9 +424,9 @@ void armature_foreachScreenBone(struct ViewContext *vc, /** * ED_view3d_init_mats_rv3d must be called first. */ -void pose_foreachScreenBone(struct ViewContext *vc, +void pose_foreachScreenBone(ViewContext *vc, void (*func)(void *user_data, - struct bPoseChannel *pchan, + bPoseChannel *pchan, const float screen_co_a[2], const float screen_co_b[2]), void *user_data, @@ -449,80 +438,78 @@ void pose_foreachScreenBone(struct ViewContext *vc, /** * \note use #ED_view3d_ob_project_mat_get to get the projection matrix */ -void ED_view3d_project_float_v2_m4(const struct ARegion *region, +void ED_view3d_project_float_v2_m4(const ARegion *region, const float co[3], float r_co[2], const float mat[4][4]); /** * \note use #ED_view3d_ob_project_mat_get to get projecting mat */ -void ED_view3d_project_float_v3_m4(const struct ARegion *region, +void ED_view3d_project_float_v3_m4(const ARegion *region, const float co[3], float r_co[3], const float mat[4][4]); -eV3DProjStatus ED_view3d_project_base(const struct ARegion *region, - struct Base *base, - float r_co[2]); +eV3DProjStatus ED_view3d_project_base(const ARegion *region, Base *base, float r_co[2]); /* *** short *** */ -eV3DProjStatus ED_view3d_project_short_ex(const struct ARegion *region, +eV3DProjStatus ED_view3d_project_short_ex(const ARegion *region, float perspmat[4][4], bool is_local, const float co[3], short r_co[2], eV3DProjTest flag); /* --- short --- */ -eV3DProjStatus ED_view3d_project_short_global(const struct ARegion *region, +eV3DProjStatus ED_view3d_project_short_global(const ARegion *region, const float co[3], short r_co[2], eV3DProjTest flag); /* object space, use ED_view3d_init_mats_rv3d before calling */ -eV3DProjStatus ED_view3d_project_short_object(const struct ARegion *region, +eV3DProjStatus ED_view3d_project_short_object(const ARegion *region, const float co[3], short r_co[2], eV3DProjTest flag); /* *** int *** */ -eV3DProjStatus ED_view3d_project_int_ex(const struct ARegion *region, +eV3DProjStatus ED_view3d_project_int_ex(const ARegion *region, float perspmat[4][4], bool is_local, const float co[3], int r_co[2], eV3DProjTest flag); /* --- int --- */ -eV3DProjStatus ED_view3d_project_int_global(const struct ARegion *region, +eV3DProjStatus ED_view3d_project_int_global(const ARegion *region, const float co[3], int r_co[2], eV3DProjTest flag); /* object space, use ED_view3d_init_mats_rv3d before calling */ -eV3DProjStatus ED_view3d_project_int_object(const struct ARegion *region, +eV3DProjStatus ED_view3d_project_int_object(const ARegion *region, const float co[3], int r_co[2], eV3DProjTest flag); /* *** float *** */ -eV3DProjStatus ED_view3d_project_float_ex(const struct ARegion *region, +eV3DProjStatus ED_view3d_project_float_ex(const ARegion *region, float perspmat[4][4], bool is_local, const float co[3], float r_co[2], eV3DProjTest flag); /* --- float --- */ -eV3DProjStatus ED_view3d_project_float_global(const struct ARegion *region, +eV3DProjStatus ED_view3d_project_float_global(const ARegion *region, const float co[3], float r_co[2], eV3DProjTest flag); /** * Object space, use #ED_view3d_init_mats_rv3d before calling. */ -eV3DProjStatus ED_view3d_project_float_object(const struct ARegion *region, +eV3DProjStatus ED_view3d_project_float_object(const ARegion *region, const float co[3], float r_co[2], eV3DProjTest flag); -float ED_view3d_pixel_size(const struct RegionView3D *rv3d, const float co[3]); -float ED_view3d_pixel_size_no_ui_scale(const struct RegionView3D *rv3d, const float co[3]); +float ED_view3d_pixel_size(const RegionView3D *rv3d, const float co[3]); +float ED_view3d_pixel_size_no_ui_scale(const RegionView3D *rv3d, const float co[3]); /** * Calculate a depth value from \a co, use with #ED_view3d_win_to_delta. @@ -534,15 +521,15 @@ float ED_view3d_pixel_size_no_ui_scale(const struct RegionView3D *rv3d, const fl * with additional sanitation to ensure the result is never negative * as this isn't useful for tool-code. */ -float ED_view3d_calc_zfac_ex(const struct RegionView3D *rv3d, const float co[3], bool *r_flip); +float ED_view3d_calc_zfac_ex(const RegionView3D *rv3d, const float co[3], bool *r_flip); /** See #ED_view3d_calc_zfac_ex doc-string. */ -float ED_view3d_calc_zfac(const struct RegionView3D *rv3d, const float co[3]); +float ED_view3d_calc_zfac(const RegionView3D *rv3d, const float co[3]); /** * Calculate a depth value from `co` (result should only be used for comparison). */ -float ED_view3d_calc_depth_for_comparison(const struct RegionView3D *rv3d, const float co[3]); +float ED_view3d_calc_depth_for_comparison(const RegionView3D *rv3d, const float co[3]); -bool ED_view3d_clip_segment(const struct RegionView3D *rv3d, float ray_start[3], float ray_end[3]); +bool ED_view3d_clip_segment(const RegionView3D *rv3d, float ray_start[3], float ray_end[3]); /** * Calculate a 3d viewpoint and direction vector from 2d window coordinates. * This ray_start is located at the viewpoint, ray_normal is the direction towards mval. @@ -556,9 +543,9 @@ bool ED_view3d_clip_segment(const struct RegionView3D *rv3d, float ray_start[3], * \param do_clip_planes: Optionally clip the start of the ray by the view clipping planes. * \return success, false if the ray is totally clipped. */ -bool ED_view3d_win_to_ray_clipped(struct Depsgraph *depsgraph, - const struct ARegion *region, - const struct View3D *v3d, +bool ED_view3d_win_to_ray_clipped(Depsgraph *depsgraph, + const ARegion *region, + const View3D *v3d, const float mval[2], float r_ray_start[3], float r_ray_normal[3], @@ -579,9 +566,9 @@ bool ED_view3d_win_to_ray_clipped(struct Depsgraph *depsgraph, * \param do_clip_planes: Optionally clip the start of the ray by the view clipping planes. * \return success, false if the ray is totally clipped. */ -bool ED_view3d_win_to_ray_clipped_ex(struct Depsgraph *depsgraph, - const struct ARegion *region, - const struct View3D *v3d, +bool ED_view3d_win_to_ray_clipped_ex(Depsgraph *depsgraph, + const ARegion *region, + const View3D *v3d, const float mval[2], float r_ray_co[3], float r_ray_normal[3], @@ -598,7 +585,7 @@ bool ED_view3d_win_to_ray_clipped_ex(struct Depsgraph *depsgraph, * \note Ignores view near/far clipping, * to take this into account use #ED_view3d_win_to_ray_clipped. */ -void ED_view3d_win_to_ray(const struct ARegion *region, +void ED_view3d_win_to_ray(const ARegion *region, const float mval[2], float r_ray_start[3], float r_ray_normal[3]); @@ -609,9 +596,7 @@ void ED_view3d_win_to_ray(const struct ARegion *region, * \param coord: The world-space location. * \param vec: The resulting normalized vector. */ -void ED_view3d_global_to_vector(const struct RegionView3D *rv3d, - const float coord[3], - float vec[3]); +void ED_view3d_global_to_vector(const RegionView3D *rv3d, const float coord[3], float vec[3]); /** * Calculate a 3d location from 2d window coordinates. * \param region: The region (used for the window width and height). @@ -619,17 +604,17 @@ void ED_view3d_global_to_vector(const struct RegionView3D *rv3d, * \param mval: The area relative location (such as `event->mval` converted to floats). * \param r_out: The resulting world-space location. */ -void ED_view3d_win_to_3d(const struct View3D *v3d, - const struct ARegion *region, +void ED_view3d_win_to_3d(const View3D *v3d, + const ARegion *region, const float depth_pt[3], const float mval[2], float r_out[3]); -void ED_view3d_win_to_3d_int(const struct View3D *v3d, - const struct ARegion *region, +void ED_view3d_win_to_3d_int(const View3D *v3d, + const ARegion *region, const float depth_pt[3], const int mval[2], float r_out[3]); -bool ED_view3d_win_to_3d_on_plane(const struct ARegion *region, +bool ED_view3d_win_to_3d_on_plane(const ARegion *region, const float plane[4], const float mval[2], bool do_clip, @@ -641,17 +626,14 @@ bool ED_view3d_win_to_3d_on_plane(const struct ARegion *region, * This is intended to be used when \a plane is orthogonal to the views Z axis where * projecting the \a mval doesn't work well (or fail completely when exactly aligned). */ -bool ED_view3d_win_to_3d_on_plane_with_fallback(const struct ARegion *region, +bool ED_view3d_win_to_3d_on_plane_with_fallback(const ARegion *region, const float plane[4], const float mval[2], bool do_clip, const float plane_fallback[4], float r_out[3]); -bool ED_view3d_win_to_3d_on_plane_int(const struct ARegion *region, - const float plane[4], - const int mval[2], - bool do_clip, - float r_out[3]); +bool ED_view3d_win_to_3d_on_plane_int( + const ARegion *region, const float plane[4], const int mval[2], bool do_clip, float r_out[3]); /** * Calculate a 3d difference vector from 2d window offset. * @@ -668,7 +650,7 @@ bool ED_view3d_win_to_3d_on_plane_int(const struct ARegion *region, * (see it's doc-string for details). * \param r_out: The resulting world-space delta. */ -void ED_view3d_win_to_delta(const struct ARegion *region, +void ED_view3d_win_to_delta(const ARegion *region, const float xy_delta[2], float zfac, float r_out[3]); @@ -682,7 +664,7 @@ void ED_view3d_win_to_delta(const struct ARegion *region, * \param mval: The area relative 2d location (such as `event->mval` converted to float). * \param r_out: The resulting normalized world-space direction vector. */ -void ED_view3d_win_to_origin(const struct ARegion *region, const float mval[2], float r_out[3]); +void ED_view3d_win_to_origin(const ARegion *region, const float mval[2], float r_out[3]); /** * Calculate a 3d direction vector from 2d window coordinates. * This direction vector starts and the view in the direction of the 2d window coordinates. @@ -696,7 +678,7 @@ void ED_view3d_win_to_origin(const struct ARegion *region, const float mval[2], * \param mval: The area relative 2d location (such as `event->mval` converted to float). * \param r_out: The resulting normalized world-space direction vector. */ -void ED_view3d_win_to_vector(const struct ARegion *region, const float mval[2], float r_out[3]); +void ED_view3d_win_to_vector(const ARegion *region, const float mval[2], float r_out[3]); /** * Calculate a 3d segment from 2d window coordinates. * This ray_start is located at the viewpoint, ray_end is a far point. @@ -711,17 +693,15 @@ void ED_view3d_win_to_vector(const struct ARegion *region, const float mval[2], * \param do_clip_planes: Optionally clip the ray by the view clipping planes. * \return success, false if the segment is totally clipped. */ -bool ED_view3d_win_to_segment_clipped(const struct Depsgraph *depsgraph, - const struct ARegion *region, - const struct View3D *v3d, +bool ED_view3d_win_to_segment_clipped(const Depsgraph *depsgraph, + const ARegion *region, + const View3D *v3d, const float mval[2], float r_ray_start[3], float r_ray_end[3], bool do_clip_planes); -void ED_view3d_ob_project_mat_get(const struct RegionView3D *rv3d, - const struct Object *ob, - float r_pmat[4][4]); -void ED_view3d_ob_project_mat_get_from_obmat(const struct RegionView3D *rv3d, +void ED_view3d_ob_project_mat_get(const RegionView3D *rv3d, const Object *ob, float r_pmat[4][4]); +void ED_view3d_ob_project_mat_get_from_obmat(const RegionView3D *rv3d, const float obmat[4][4], float r_pmat[4][4]); @@ -729,33 +709,29 @@ void ED_view3d_ob_project_mat_get_from_obmat(const struct RegionView3D *rv3d, * Convert between region relative coordinates (x,y) and depth component z and * a point in world space. */ -void ED_view3d_project_v3(const struct ARegion *region, - const float world[3], - float r_region_co[3]); -void ED_view3d_project_v2(const struct ARegion *region, - const float world[3], - float r_region_co[2]); +void ED_view3d_project_v3(const ARegion *region, const float world[3], float r_region_co[3]); +void ED_view3d_project_v2(const ARegion *region, const float world[3], float r_region_co[2]); bool ED_view3d_unproject_v3( - const struct ARegion *region, float regionx, float regiony, float regionz, float world[3]); + const ARegion *region, float regionx, float regiony, float regionz, float world[3]); /* end */ -void ED_view3d_dist_range_get(const struct View3D *v3d, float r_dist_range[2]); +void ED_view3d_dist_range_get(const View3D *v3d, float r_dist_range[2]); /** * \note copies logic of #ED_view3d_viewplane_get(), keep in sync. */ -bool ED_view3d_clip_range_get(const struct Depsgraph *depsgraph, - const struct View3D *v3d, - const struct RegionView3D *rv3d, +bool ED_view3d_clip_range_get(const Depsgraph *depsgraph, + const View3D *v3d, + const RegionView3D *rv3d, float *r_clipsta, float *r_clipend, bool use_ortho_factor); -bool ED_view3d_viewplane_get(struct Depsgraph *depsgraph, - const struct View3D *v3d, - const struct RegionView3D *rv3d, +bool ED_view3d_viewplane_get(Depsgraph *depsgraph, + const View3D *v3d, + const RegionView3D *rv3d, int winxi, int winyi, - struct rctf *r_viewplane, + rctf *r_viewplane, float *r_clipsta, float *r_clipend, float *r_pixsize); @@ -763,35 +739,27 @@ bool ED_view3d_viewplane_get(struct Depsgraph *depsgraph, /** * Use instead of: `GPU_polygon_offset(rv3d->dist, ...)` see bug #37727. */ -void ED_view3d_polygon_offset(const struct RegionView3D *rv3d, float dist); +void ED_view3d_polygon_offset(const RegionView3D *rv3d, float dist); -void ED_view3d_calc_camera_border(const struct Scene *scene, - struct Depsgraph *depsgraph, - const struct ARegion *region, - const struct View3D *v3d, - const struct RegionView3D *rv3d, - struct rctf *r_viewborder, +void ED_view3d_calc_camera_border(const Scene *scene, + Depsgraph *depsgraph, + const ARegion *region, + const View3D *v3d, + const RegionView3D *rv3d, + rctf *r_viewborder, bool no_shift); -void ED_view3d_calc_camera_border_size(const struct Scene *scene, - struct Depsgraph *depsgraph, - const struct ARegion *region, - const struct View3D *v3d, - const struct RegionView3D *rv3d, +void ED_view3d_calc_camera_border_size(const Scene *scene, + Depsgraph *depsgraph, + const ARegion *region, + const View3D *v3d, + const RegionView3D *rv3d, float r_size[2]); -bool ED_view3d_calc_render_border(const struct Scene *scene, - struct Depsgraph *depsgraph, - struct View3D *v3d, - struct ARegion *region, - struct rcti *rect); +bool ED_view3d_calc_render_border( + const Scene *scene, Depsgraph *depsgraph, View3D *v3d, ARegion *region, rcti *rect); -void ED_view3d_clipping_calc_from_boundbox(float clip[4][4], - const struct BoundBox *clipbb, - bool is_flip); -void ED_view3d_clipping_calc(struct BoundBox *bb, - float planes[4][4], - const struct ARegion *region, - const struct Object *ob, - const struct rcti *rect); +void ED_view3d_clipping_calc_from_boundbox(float clip[4][4], const BoundBox *clipbb, bool is_flip); +void ED_view3d_clipping_calc( + BoundBox *bb, float planes[4][4], const ARegion *region, const Object *ob, const rcti *rect); /** * Clamp min/max by the viewport clipping. * @@ -804,9 +772,9 @@ void ED_view3d_clipping_calc(struct BoundBox *bb, * * \return True when the arguments were clamped. */ -bool ED_view3d_clipping_clamp_minmax(const struct RegionView3D *rv3d, float min[3], float max[3]); +bool ED_view3d_clipping_clamp_minmax(const RegionView3D *rv3d, float min[3], float max[3]); -void ED_view3d_clipping_local(struct RegionView3D *rv3d, const float mat[4][4]); +void ED_view3d_clipping_local(RegionView3D *rv3d, const float mat[4][4]); /** * Return true when `co` is hidden by the 3D views clipping planes. * @@ -816,7 +784,7 @@ void ED_view3d_clipping_local(struct RegionView3D *rv3d, const float mat[4][4]); * * \note Callers should check #RV3D_CLIPPING_ENABLED first. */ -bool ED_view3d_clipping_test(const struct RegionView3D *rv3d, const float co[3], bool is_local); +bool ED_view3d_clipping_test(const RegionView3D *rv3d, const float co[3], bool is_local); float ED_view3d_radius_to_dist_persp(float angle, float radius); float ED_view3d_radius_to_dist_ortho(float lens, float radius); @@ -845,9 +813,9 @@ float ED_view3d_radius_to_dist_ortho(float lens, float radius); * \param radius: The radius will be fitted exactly, * typically pre-scaled by a margin (#VIEW3D_MARGIN). */ -float ED_view3d_radius_to_dist(const struct View3D *v3d, - const struct ARegion *region, - const struct Depsgraph *depsgraph, +float ED_view3d_radius_to_dist(const View3D *v3d, + const ARegion *region, + const Depsgraph *depsgraph, char persp, bool use_aspect, float radius); @@ -855,28 +823,28 @@ float ED_view3d_radius_to_dist(const struct View3D *v3d, /** * Back-buffer select and draw support. */ -void ED_view3d_backbuf_depth_validate(struct ViewContext *vc); +void ED_view3d_backbuf_depth_validate(ViewContext *vc); /** * allow for small values [0.5 - 2.5], * and large values, FLT_MAX by clamping by the area size */ -int ED_view3d_backbuf_sample_size_clamp(struct ARegion *region, float dist); +int ED_view3d_backbuf_sample_size_clamp(ARegion *region, float dist); -void ED_view3d_select_id_validate(struct ViewContext *vc); +void ED_view3d_select_id_validate(ViewContext *vc); /** Check if the last auto-dist can be used. */ -bool ED_view3d_autodist_last_check(struct wmWindow *win, const struct wmEvent *event); +bool ED_view3d_autodist_last_check(wmWindow *win, const wmEvent *event); /** * \return true when `r_ofs` is set. * \warning #ED_view3d_autodist_last_check should be called first to ensure the data is available. */ -bool ED_view3d_autodist_last_get(struct wmWindow *win, float r_ofs[3]); -void ED_view3d_autodist_last_set(struct wmWindow *win, - const struct wmEvent *event, +bool ED_view3d_autodist_last_get(wmWindow *win, float r_ofs[3]); +void ED_view3d_autodist_last_set(wmWindow *win, + const wmEvent *event, const float ofs[3], const bool has_depth); /** Clear and free auto-dist data. */ -void ED_view3d_autodist_last_clear(struct wmWindow *win); +void ED_view3d_autodist_last_clear(wmWindow *win); /** * Get the world-space 3d location from a screen-space 2d point. @@ -886,9 +854,9 @@ void ED_view3d_autodist_last_clear(struct wmWindow *win); * \param mouse_worldloc: Output world-space location. * \param fallback_depth_pt: Use this points depth when no depth can be found. */ -bool ED_view3d_autodist(struct Depsgraph *depsgraph, - struct ARegion *region, - struct View3D *v3d, +bool ED_view3d_autodist(Depsgraph *depsgraph, + ARegion *region, + View3D *v3d, const int mval[2], float mouse_worldloc[3], bool alphaoverride, @@ -897,7 +865,7 @@ bool ED_view3d_autodist(struct Depsgraph *depsgraph, /** * No 4x4 sampling, run #ED_view3d_depth_override first. */ -bool ED_view3d_autodist_simple(struct ARegion *region, +bool ED_view3d_autodist_simple(ARegion *region, const int mval[2], float mouse_worldloc[3], int margin, @@ -914,34 +882,33 @@ bool ED_view3d_depth_read_cached_seg( */ #define MAXPICKELEMS 2500 -typedef enum { +enum eV3DSelectMode { /* all elements in the region, ignore depth */ VIEW3D_SELECT_ALL = 0, /* pick also depth sorts (only for small regions!) */ VIEW3D_SELECT_PICK_ALL = 1, /* sorts and only returns visible objects (only for small regions!) */ VIEW3D_SELECT_PICK_NEAREST = 2, -} eV3DSelectMode; +}; -typedef enum { +enum eV3DSelectObjectFilter { /** Don't exclude anything. */ VIEW3D_SELECT_FILTER_NOP = 0, /** Don't select objects outside the current mode. */ VIEW3D_SELECT_FILTER_OBJECT_MODE_LOCK = 1, /** A version of #VIEW3D_SELECT_FILTER_OBJECT_MODE_LOCK that allows pose-bone selection. */ VIEW3D_SELECT_FILTER_WPAINT_POSE_MODE_LOCK = 2, -} eV3DSelectObjectFilter; +}; -eV3DSelectObjectFilter ED_view3d_select_filter_from_mode(const struct Scene *scene, - const struct Object *obact); +eV3DSelectObjectFilter ED_view3d_select_filter_from_mode(const Scene *scene, const Object *obact); /** * Optionally cache data for multiple calls to #view3d_opengl_select * * just avoid GPU_select headers outside this file */ -void view3d_opengl_select_cache_begin(void); -void view3d_opengl_select_cache_end(void); +void view3d_opengl_select_cache_begin(); +void view3d_opengl_select_cache_end(); /** * \warning be sure to account for a negative return value @@ -950,33 +917,31 @@ void view3d_opengl_select_cache_end(void); * * \note (vc->obedit == NULL) can be set to explicitly skip edit-object selection. */ -int view3d_opengl_select_ex(struct ViewContext *vc, - struct GPUSelectResult *buffer, +int view3d_opengl_select_ex(ViewContext *vc, + GPUSelectResult *buffer, unsigned int buffer_len, - const struct rcti *input, + const rcti *input, eV3DSelectMode select_mode, eV3DSelectObjectFilter select_filter, bool do_material_slot_selection); -int view3d_opengl_select(struct ViewContext *vc, - struct GPUSelectResult *buffer, +int view3d_opengl_select(ViewContext *vc, + GPUSelectResult *buffer, unsigned int buffer_len, - const struct rcti *input, + const rcti *input, eV3DSelectMode select_mode, eV3DSelectObjectFilter select_filter); -int view3d_opengl_select_with_id_filter(struct ViewContext *vc, - struct GPUSelectResult *buffer, +int view3d_opengl_select_with_id_filter(ViewContext *vc, + GPUSelectResult *buffer, unsigned int buffer_len, - const struct rcti *input, + const rcti *input, eV3DSelectMode select_mode, eV3DSelectObjectFilter select_filter, uint select_id); /* view3d_select.cc */ -float ED_view3d_select_dist_px(void); -void ED_view3d_viewcontext_init(struct bContext *C, - struct ViewContext *vc, - struct Depsgraph *depsgraph); +float ED_view3d_select_dist_px(); +void ED_view3d_viewcontext_init(bContext *C, ViewContext *vc, Depsgraph *depsgraph); /** * Re-initialize `vc` with `obact` as if it's active object (with some differences). @@ -993,13 +958,13 @@ void ED_view3d_viewcontext_init(struct bContext *C, * disable edit-mode operation (to force object selection in edit-mode for e.g.). * So object-mode specific values should remain cleared when initialized with another object. */ -void ED_view3d_viewcontext_init_object(struct ViewContext *vc, struct Object *obact); +void ED_view3d_viewcontext_init_object(ViewContext *vc, Object *obact); /** * Use this call when executing an operator, * event system doesn't set for each event the OpenGL drawing context. */ -void view3d_operator_needs_opengl(const struct bContext *C); -void view3d_region_operator_needs_opengl(struct wmWindow *win, struct ARegion *region); +void view3d_operator_needs_opengl(const bContext *C); +void view3d_region_operator_needs_opengl(wmWindow *win, ARegion *region); /** XXX: should move to BLI_math */ bool edge_inside_circle(const float cent[2], @@ -1010,22 +975,18 @@ bool edge_inside_circle(const float cent[2], /** * Get 3D region from context, also if mouse is in header or toolbar. */ -struct RegionView3D *ED_view3d_context_rv3d(struct bContext *C); +RegionView3D *ED_view3d_context_rv3d(bContext *C); /** * Ideally would return an rv3d but in some cases the region is needed too * so return that, the caller can then access the `region->regiondata`. */ -bool ED_view3d_context_user_region(struct bContext *C, - struct View3D **r_v3d, - struct ARegion **r_region); +bool ED_view3d_context_user_region(bContext *C, View3D **r_v3d, ARegion **r_region); /** * Similar to #ED_view3d_context_user_region() but does not use context. Always performs a lookup. * Also works if \a v3d is not the active space. */ -bool ED_view3d_area_user_region(const struct ScrArea *area, - const struct View3D *v3d, - struct ARegion **r_region); -bool ED_operator_rv3d_user_region_poll(struct bContext *C); +bool ED_view3d_area_user_region(const ScrArea *area, const View3D *v3d, ARegion **r_region); +bool ED_operator_rv3d_user_region_poll(bContext *C); /** * Most of the time this isn't needed since you could assume the view matrix was @@ -1039,61 +1000,61 @@ bool ED_operator_rv3d_user_region_poll(struct bContext *C); * view3d_project_short_clip and view3d_project_short_noclip in cases where * these functions are not used during draw_object */ -void ED_view3d_init_mats_rv3d(const struct Object *ob, struct RegionView3D *rv3d); -void ED_view3d_init_mats_rv3d_gl(const struct Object *ob, struct RegionView3D *rv3d); +void ED_view3d_init_mats_rv3d(const Object *ob, RegionView3D *rv3d); +void ED_view3d_init_mats_rv3d_gl(const Object *ob, RegionView3D *rv3d); #ifdef DEBUG /** * Ensure we correctly initialize. */ -void ED_view3d_clear_mats_rv3d(struct RegionView3D *rv3d); -void ED_view3d_check_mats_rv3d(struct RegionView3D *rv3d); +void ED_view3d_clear_mats_rv3d(RegionView3D *rv3d); +void ED_view3d_check_mats_rv3d(RegionView3D *rv3d); #else # define ED_view3d_clear_mats_rv3d(rv3d) (void)(rv3d) # define ED_view3d_check_mats_rv3d(rv3d) (void)(rv3d) #endif -struct RV3DMatrixStore *ED_view3d_mats_rv3d_backup(struct RegionView3D *rv3d); -void ED_view3d_mats_rv3d_restore(struct RegionView3D *rv3d, struct RV3DMatrixStore *rv3dmat); +RV3DMatrixStore *ED_view3d_mats_rv3d_backup(RegionView3D *rv3d); +void ED_view3d_mats_rv3d_restore(RegionView3D *rv3d, RV3DMatrixStore *rv3dmat); -struct RenderEngineType *ED_view3d_engine_type(const struct Scene *scene, int drawtype); +RenderEngineType *ED_view3d_engine_type(const Scene *scene, int drawtype); -bool ED_view3d_context_activate(struct bContext *C); +bool ED_view3d_context_activate(bContext *C); /** * Set the correct matrices */ -void ED_view3d_draw_setup_view(const struct wmWindowManager *wm, - struct wmWindow *win, - struct Depsgraph *depsgraph, - struct Scene *scene, - struct ARegion *region, - struct View3D *v3d, +void ED_view3d_draw_setup_view(const wmWindowManager *wm, + wmWindow *win, + Depsgraph *depsgraph, + Scene *scene, + ARegion *region, + View3D *v3d, const float viewmat[4][4], const float winmat[4][4], - const struct rcti *rect); + const rcti *rect); /** * `mval` comes from event->mval, only use within region handlers. */ -struct Base *ED_view3d_give_base_under_cursor(struct bContext *C, const int mval[2]); -struct Object *ED_view3d_give_object_under_cursor(struct bContext *C, const int mval[2]); -struct Object *ED_view3d_give_material_slot_under_cursor(struct bContext *C, - const int mval[2], - int *r_material_slot); -bool ED_view3d_is_object_under_cursor(struct bContext *C, const int mval[2]); +Base *ED_view3d_give_base_under_cursor(bContext *C, const int mval[2]); +Object *ED_view3d_give_object_under_cursor(bContext *C, const int mval[2]); +Object *ED_view3d_give_material_slot_under_cursor(bContext *C, + const int mval[2], + int *r_material_slot); +bool ED_view3d_is_object_under_cursor(bContext *C, const int mval[2]); /** * 'clip' is used to know if our clip setting has changed. */ -void ED_view3d_quadview_update(struct ScrArea *area, struct ARegion *region, bool do_clip); +void ED_view3d_quadview_update(ScrArea *area, ARegion *region, bool do_clip); /** * \note keep this synced with #ED_view3d_mats_rv3d_backup/#ED_view3d_mats_rv3d_restore */ -void ED_view3d_update_viewmat(struct Depsgraph *depsgraph, - const struct Scene *scene, - struct View3D *v3d, - struct ARegion *region, +void ED_view3d_update_viewmat(Depsgraph *depsgraph, + const Scene *scene, + View3D *v3d, + ARegion *region, const float viewmat[4][4], const float winmat[4][4], - const struct rcti *rect, + const rcti *rect, bool offscreen); bool ED_view3d_quat_from_axis_view(char view, char view_axis_roll, float r_quat[4]); bool ED_view3d_quat_to_axis_view(const float viewquat[4], @@ -1113,21 +1074,21 @@ bool ED_view3d_quat_to_axis_view_and_reset_quat(float viewquat[4], char ED_view3d_lock_view_from_index(int index); char ED_view3d_axis_view_opposite(char view); -bool ED_view3d_lock(struct RegionView3D *rv3d); +bool ED_view3d_lock(RegionView3D *rv3d); -void ED_view3d_datamask(const struct Scene *scene, - struct ViewLayer *view_layer, - const struct View3D *v3d, - struct CustomData_MeshMasks *r_cddata_masks); +void ED_view3d_datamask(const Scene *scene, + ViewLayer *view_layer, + const View3D *v3d, + CustomData_MeshMasks *r_cddata_masks); /** * Goes over all modes and view3d settings. */ -void ED_view3d_screen_datamask(const struct Scene *scene, - struct ViewLayer *view_layer, - const struct bScreen *screen, - struct CustomData_MeshMasks *r_cddata_masks); +void ED_view3d_screen_datamask(const Scene *scene, + ViewLayer *view_layer, + const bScreen *screen, + CustomData_MeshMasks *r_cddata_masks); -bool ED_view3d_offset_lock_check(const struct View3D *v3d, const struct RegionView3D *rv3d); +bool ED_view3d_offset_lock_check(const View3D *v3d, const RegionView3D *rv3d); /** * For viewport operators that exit camera perspective. * @@ -1135,9 +1096,9 @@ bool ED_view3d_offset_lock_check(const struct View3D *v3d, const struct RegionVi * sets the `ofs` and `dist` values of the viewport so it matches the camera, * otherwise switching out of camera view may jump to a different part of the scene. */ -void ED_view3d_persp_switch_from_camera(const struct Depsgraph *depsgraph, - struct View3D *v3d, - struct RegionView3D *rv3d, +void ED_view3d_persp_switch_from_camera(const Depsgraph *depsgraph, + View3D *v3d, + RegionView3D *rv3d, char persp); /** * Action to take when rotating the view, @@ -1145,9 +1106,7 @@ void ED_view3d_persp_switch_from_camera(const struct Depsgraph *depsgraph, * * shared with NDOF. */ -bool ED_view3d_persp_ensure(const struct Depsgraph *depsgraph, - struct View3D *v3d, - struct ARegion *region); +bool ED_view3d_persp_ensure(const Depsgraph *depsgraph, View3D *v3d, ARegion *region); /* Camera view functions. */ @@ -1155,33 +1114,31 @@ bool ED_view3d_persp_ensure(const struct Depsgraph *depsgraph, * Utility to scale zoom level when in camera-view #RegionView3D.camzoom and apply limits. * \return true a change was made. */ -bool ED_view3d_camera_view_zoom_scale(struct RegionView3D *rv3d, const float scale); +bool ED_view3d_camera_view_zoom_scale(RegionView3D *rv3d, const float scale); /** * Utility to pan when in camera view. * \param event_ofs: The offset the pan in screen (pixel) coordinates. * \return true when a change was made. */ -bool ED_view3d_camera_view_pan(struct ARegion *region, const float event_ofs[2]); +bool ED_view3d_camera_view_pan(ARegion *region, const float event_ofs[2]); /* Camera lock functions */ /** * \return true when the 3D Viewport is locked to its camera. */ -bool ED_view3d_camera_lock_check(const struct View3D *v3d, const struct RegionView3D *rv3d); +bool ED_view3d_camera_lock_check(const View3D *v3d, const RegionView3D *rv3d); /** * Copy the camera to the view before starting a view transformation. * * Apply the camera object transformation to the 3D Viewport. * (needed so we can use regular 3D Viewport manipulation operators, that sync back to the camera). */ -void ED_view3d_camera_lock_init_ex(const struct Depsgraph *depsgraph, - struct View3D *v3d, - struct RegionView3D *rv3d, +void ED_view3d_camera_lock_init_ex(const Depsgraph *depsgraph, + View3D *v3d, + RegionView3D *rv3d, bool calc_dist); -void ED_view3d_camera_lock_init(const struct Depsgraph *depsgraph, - struct View3D *v3d, - struct RegionView3D *rv3d); +void ED_view3d_camera_lock_init(const Depsgraph *depsgraph, View3D *v3d, RegionView3D *rv3d); /** * Copy the view to the camera, return true if. * @@ -1189,36 +1146,26 @@ void ED_view3d_camera_lock_init(const struct Depsgraph *depsgraph, * * \return true if the camera (or one of it's parents) was moved. */ -bool ED_view3d_camera_lock_sync(const struct Depsgraph *depsgraph, - struct View3D *v3d, - struct RegionView3D *rv3d); +bool ED_view3d_camera_lock_sync(const Depsgraph *depsgraph, View3D *v3d, RegionView3D *rv3d); -bool ED_view3d_camera_autokey(const struct Scene *scene, - struct ID *id_key, - struct bContext *C, - bool do_rotate, - bool do_translate); +bool ED_view3d_camera_autokey( + const Scene *scene, ID *id_key, bContext *C, bool do_rotate, bool do_translate); /** * Call after modifying a locked view. * * \note Not every view edit currently auto-keys (numeric-pad for eg), * this is complicated because of smooth-view. */ -bool ED_view3d_camera_lock_autokey(struct View3D *v3d, - struct RegionView3D *rv3d, - struct bContext *C, - bool do_rotate, - bool do_translate); +bool ED_view3d_camera_lock_autokey( + View3D *v3d, RegionView3D *rv3d, bContext *C, bool do_rotate, bool do_translate); -void ED_view3d_lock_clear(struct View3D *v3d); +void ED_view3d_lock_clear(View3D *v3d); /** * Check if creating an undo step should be performed if the viewport moves. * \return true if #ED_view3d_camera_lock_undo_push would do an undo push. */ -bool ED_view3d_camera_lock_undo_test(const View3D *v3d, - const RegionView3D *rv3d, - struct bContext *C); +bool ED_view3d_camera_lock_undo_test(const View3D *v3d, const RegionView3D *rv3d, bContext *C); /** * Create an undo step when the camera is locked to the view. @@ -1228,8 +1175,8 @@ bool ED_view3d_camera_lock_undo_test(const View3D *v3d, */ bool ED_view3d_camera_lock_undo_push(const char *str, const View3D *v3d, - const struct RegionView3D *rv3d, - struct bContext *C); + const RegionView3D *rv3d, + bContext *C); /** * A version of #ED_view3d_camera_lock_undo_push that performs a grouped undo push. @@ -1239,8 +1186,8 @@ bool ED_view3d_camera_lock_undo_push(const char *str, */ bool ED_view3d_camera_lock_undo_grouped_push(const char *str, const View3D *v3d, - const struct RegionView3D *rv3d, - struct bContext *C); + const RegionView3D *rv3d, + bContext *C); #define VIEW3D_MARGIN 1.4f #define VIEW3D_DIST_FALLBACK 1.0f @@ -1263,7 +1210,7 @@ float ED_view3d_offset_distance(const float mat[4][4], const float ofs[3], float * * \note take care that #RegionView3d.viewinv is up to date, #ED_view3d_update_viewmat first. */ -void ED_view3d_distance_set(struct RegionView3D *rv3d, float dist); +void ED_view3d_distance_set(RegionView3D *rv3d, float dist); /** * Change the distance & offset to match the depth of \a dist_co along the view axis. * @@ -1271,41 +1218,39 @@ void ED_view3d_distance_set(struct RegionView3D *rv3d, float dist); * \param dist_min: Resulting distances below this will be ignored. * \return Success if the distance was set. */ -bool ED_view3d_distance_set_from_location(struct RegionView3D *rv3d, +bool ED_view3d_distance_set_from_location(RegionView3D *rv3d, const float dist_co[3], float dist_min); /** * Could move this elsewhere, but tied into #ED_view3d_grid_scale */ -float ED_scene_grid_scale(const struct Scene *scene, const char **r_grid_unit); -float ED_view3d_grid_scale(const struct Scene *scene, - const struct View3D *v3d, - const char **r_grid_unit); -void ED_view3d_grid_steps(const struct Scene *scene, - const struct View3D *v3d, - const struct RegionView3D *rv3d, +float ED_scene_grid_scale(const Scene *scene, const char **r_grid_unit); +float ED_view3d_grid_scale(const Scene *scene, const View3D *v3d, const char **r_grid_unit); +void ED_view3d_grid_steps(const Scene *scene, + const View3D *v3d, + const RegionView3D *rv3d, float r_grid_steps[8]); /** * Simulates the grid scale that is actually viewed. * The actual code is seen in `object_grid_frag.glsl` (see `grid_res`). * Currently the simulation is only done when RV3D_VIEW_IS_AXIS. */ -float ED_view3d_grid_view_scale(struct Scene *scene, - struct View3D *v3d, - struct ARegion *region, +float ED_view3d_grid_view_scale(Scene *scene, + View3D *v3d, + ARegion *region, const char **r_grid_unit); /** * \note The info that this uses is updated in #ED_refresh_viewport_fps, * which currently gets called during #SCREEN_OT_animation_step. */ -void ED_scene_draw_fps(const struct Scene *scene, int xoffset, int *yoffset); +void ED_scene_draw_fps(const Scene *scene, int xoffset, int *yoffset); /* Render */ -void ED_view3d_stop_render_preview(struct wmWindowManager *wm, struct ARegion *region); -void ED_view3d_shade_update(struct Main *bmain, struct View3D *v3d, struct ScrArea *area); +void ED_view3d_stop_render_preview(wmWindowManager *wm, ARegion *region); +void ED_view3d_shade_update(Main *bmain, View3D *v3d, ScrArea *area); #define SHADING_XRAY_ALPHA(shading) \ (((shading).type == OB_WIRE) ? (shading).xray_alpha_wire : (shading).xray_alpha) @@ -1345,25 +1290,25 @@ void ED_view3d_shade_update(struct Main *bmain, struct View3D *v3d, struct ScrAr /** * Try avoid using these more move out of legacy. */ -void ED_view3d_draw_bgpic_test(const struct Scene *scene, - struct Depsgraph *depsgraph, - struct ARegion *region, - struct View3D *v3d, +void ED_view3d_draw_bgpic_test(const Scene *scene, + Depsgraph *depsgraph, + ARegion *region, + View3D *v3d, bool do_foreground, bool do_camera_frame); /* view3d_gizmo_preselect_type.cc */ -void ED_view3d_gizmo_mesh_preselect_get_active(struct bContext *C, - struct wmGizmo *gz, - struct Base **r_base, - struct BMElem **r_ele); -void ED_view3d_gizmo_mesh_preselect_clear(struct wmGizmo *gz); +void ED_view3d_gizmo_mesh_preselect_get_active(bContext *C, + wmGizmo *gz, + Base **r_base, + BMElem **r_ele); +void ED_view3d_gizmo_mesh_preselect_clear(wmGizmo *gz); /* space_view3d.cc */ -void ED_view3d_buttons_region_layout_ex(const struct bContext *C, - struct ARegion *region, +void ED_view3d_buttons_region_layout_ex(const bContext *C, + ARegion *region, const char *category_override); /* `view3d_view.cc` */ @@ -1372,15 +1317,13 @@ void ED_view3d_buttons_region_layout_ex(const struct bContext *C, * See if current UUID is valid, otherwise set a valid UUID to v3d, * Try to keep the same UUID previously used to allow users to quickly toggle back and forth. */ -bool ED_view3d_local_collections_set(struct Main *bmain, struct View3D *v3d); -void ED_view3d_local_collections_reset(struct bContext *C, bool reset_all); +bool ED_view3d_local_collections_set(Main *bmain, View3D *v3d); +void ED_view3d_local_collections_reset(bContext *C, bool reset_all); #ifdef WITH_XR_OPENXR -void ED_view3d_xr_mirror_update(const struct ScrArea *area, const struct View3D *v3d, bool enable); -void ED_view3d_xr_shading_update(struct wmWindowManager *wm, - const View3D *v3d, - const struct Scene *scene); -bool ED_view3d_is_region_xr_mirror_active(const struct wmWindowManager *wm, - const struct View3D *v3d, - const struct ARegion *region); +void ED_view3d_xr_mirror_update(const ScrArea *area, const View3D *v3d, bool enable); +void ED_view3d_xr_shading_update(wmWindowManager *wm, const View3D *v3d, const Scene *scene); +bool ED_view3d_is_region_xr_mirror_active(const wmWindowManager *wm, + const View3D *v3d, + const ARegion *region); #endif diff --git a/source/blender/editors/include/ED_view3d_offscreen.hh b/source/blender/editors/include/ED_view3d_offscreen.hh index 54fca53ecca..5e67c402679 100644 --- a/source/blender/editors/include/ED_view3d_offscreen.hh +++ b/source/blender/editors/include/ED_view3d_offscreen.hh @@ -22,11 +22,11 @@ struct Scene; struct View3D; struct View3DShading; -void ED_view3d_draw_offscreen(struct Depsgraph *depsgraph, - const struct Scene *scene, +void ED_view3d_draw_offscreen(Depsgraph *depsgraph, + const Scene *scene, eDrawType drawtype, - struct View3D *v3d, - struct ARegion *region, + View3D *v3d, + ARegion *region, int winx, int winy, const float viewmat[4][4], @@ -36,15 +36,15 @@ void ED_view3d_draw_offscreen(struct Depsgraph *depsgraph, const char *viewname, bool do_color_management, bool restore_rv3d_mats, - struct GPUOffScreen *ofs, - struct GPUViewport *viewport); + GPUOffScreen *ofs, + GPUViewport *viewport); /** * Creates own fake 3d views (wrapping #ED_view3d_draw_offscreen). Similar too * #ED_view_draw_offscreen_imbuf_simple, but takes view/projection matrices as arguments. */ -void ED_view3d_draw_offscreen_simple(struct Depsgraph *depsgraph, - struct Scene *scene, - struct View3DShading *shading_override, +void ED_view3d_draw_offscreen_simple(Depsgraph *depsgraph, + Scene *scene, + View3DShading *shading_override, eDrawType drawtype, int object_type_exclude_viewport_override, int object_type_exclude_select_override, @@ -60,8 +60,8 @@ void ED_view3d_draw_offscreen_simple(struct Depsgraph *depsgraph, bool draw_background, const char *viewname, bool do_color_management, - struct GPUOffScreen *ofs, - struct GPUViewport *viewport); + GPUOffScreen *ofs, + GPUViewport *viewport); /** * Utility func for ED_view3d_draw_offscreen @@ -69,19 +69,19 @@ void ED_view3d_draw_offscreen_simple(struct Depsgraph *depsgraph, * \param ofs: Optional off-screen buffer, can be NULL. * (avoids re-creating when doing multiple GL renders). */ -struct ImBuf *ED_view3d_draw_offscreen_imbuf(struct Depsgraph *depsgraph, - struct Scene *scene, - eDrawType drawtype, - struct View3D *v3d, - struct ARegion *region, - int sizex, - int sizey, - eImBufFlags imbuf_flag, - int alpha_mode, - const char *viewname, - bool restore_rv3d_mats, - struct GPUOffScreen *ofs, - char err_out[256]); +ImBuf *ED_view3d_draw_offscreen_imbuf(Depsgraph *depsgraph, + Scene *scene, + eDrawType drawtype, + View3D *v3d, + ARegion *region, + int sizex, + int sizey, + eImBufFlags imbuf_flag, + int alpha_mode, + const char *viewname, + bool restore_rv3d_mats, + GPUOffScreen *ofs, + char err_out[256]); /** * Creates own fake 3d views (wrapping #ED_view3d_draw_offscreen_imbuf) * @@ -90,16 +90,16 @@ struct ImBuf *ED_view3d_draw_offscreen_imbuf(struct Depsgraph *depsgraph, * * \note used by the sequencer */ -struct ImBuf *ED_view3d_draw_offscreen_imbuf_simple(struct Depsgraph *depsgraph, - struct Scene *scene, - struct View3DShading *shading_override, - eDrawType drawtype, - struct Object *camera, - int width, - int height, - eImBufFlags imbuf_flags, - eV3DOffscreenDrawFlag draw_flags, - int alpha_mode, - const char *viewname, - struct GPUOffScreen *ofs, - char err_out[256]); +ImBuf *ED_view3d_draw_offscreen_imbuf_simple(Depsgraph *depsgraph, + Scene *scene, + View3DShading *shading_override, + eDrawType drawtype, + Object *camera, + int width, + int height, + eImBufFlags imbuf_flags, + eV3DOffscreenDrawFlag draw_flags, + int alpha_mode, + const char *viewname, + GPUOffScreen *ofs, + char err_out[256]); diff --git a/source/blender/editors/include/UI_interface_c.hh b/source/blender/editors/include/UI_interface_c.hh index 5e048100c38..00cbee87569 100644 --- a/source/blender/editors/include/UI_interface_c.hh +++ b/source/blender/editors/include/UI_interface_c.hh @@ -8,10 +8,8 @@ #pragma once -#ifdef __cplusplus -# include -# include -#endif +#include +#include #include "BLI_compiler_attrs.h" #include "BLI_string_utf8_symbols.h" @@ -20,10 +18,6 @@ #include "UI_interface_icons.hh" #include "WM_types.hh" -#ifdef __cplusplus -extern "C" { -#endif - /* Struct Declarations */ struct ARegion; @@ -41,6 +35,8 @@ struct ListBase; struct MTex; struct Panel; struct PanelType; +struct PanelCategoryDyn; +struct PanelCategoryStack; struct PointerRNA; struct PropertyRNA; struct ReportList; @@ -51,6 +47,7 @@ struct bNode; struct bNodeSocket; struct bNodeTree; struct bScreen; +struct MenuType; struct rctf; struct rcti; struct uiButSearch; @@ -71,15 +68,15 @@ struct wmOperatorType; struct wmRegionListenerParams; struct wmWindow; -typedef struct uiBlock uiBlock; -typedef struct uiBut uiBut; -typedef struct uiButExtraOpIcon uiButExtraOpIcon; -typedef struct uiLayout uiLayout; -typedef struct uiPopupBlockHandle uiPopupBlockHandle; +struct uiBlock; +struct uiBut; +struct uiButExtraOpIcon; +struct uiLayout; +struct uiPopupBlockHandle; /* C handle for C++ #ui::AbstractView type. */ -typedef struct uiViewHandle uiViewHandle; +struct uiViewHandle; /* C handle for C++ #ui::AbstractViewItem type. */ -typedef struct uiViewItemHandle uiViewItemHandle; +struct uiViewItemHandle; /* Defines */ @@ -119,7 +116,7 @@ typedef struct uiViewItemHandle uiViewItemHandle; #define UI_SCREEN_MARGIN 10 /** #uiBlock.emboss and #uiBut.emboss */ -typedef enum eUIEmbossType { +enum eUIEmbossType { UI_EMBOSS = 0, /* use widget style for drawing */ UI_EMBOSS_NONE = 1, /* Nothing, only icon and/or text */ UI_EMBOSS_PULLDOWN = 2, /* Pull-down menu style */ @@ -131,7 +128,7 @@ typedef enum eUIEmbossType { UI_EMBOSS_NONE_OR_STATUS = 4, UI_EMBOSS_UNDEFINED = 255, /* For layout engine, use emboss from block. */ -} eUIEmbossType; +}; /** #uiBlock::direction */ enum { @@ -359,7 +356,7 @@ enum { * - bit 8: for 'bit' * - bit 9-15: button type (now 6 bits, 64 types) */ -typedef enum { +enum eButPointerType { UI_BUT_POIN_NONE = 0, UI_BUT_POIN_CHAR = 32, @@ -368,7 +365,7 @@ typedef enum { UI_BUT_POIN_FLOAT = 128, // UI_BUT_POIN_FUNCTION = 192, /* UNUSED */ UI_BUT_POIN_BIT = 256, /* OR'd with a bit index. */ -} eButPointerType; +}; /** \note requires `but->poin != NULL`. */ #define UI_BUT_POIN_TYPES (UI_BUT_POIN_FLOAT | UI_BUT_POIN_SHORT | UI_BUT_POIN_CHAR) @@ -377,7 +374,7 @@ typedef enum { * #uiBut::type * OR'd with #eButPointerType when passing as an argument. */ -typedef enum { +enum eButType { UI_BTYPE_BUT = 1 << 9, UI_BTYPE_ROW = 2 << 9, UI_BTYPE_TEXT = 3 << 9, @@ -442,12 +439,12 @@ typedef enum { UI_BTYPE_DECORATOR = 58 << 9, /** An item a view (see #ui::AbstractViewItem). */ UI_BTYPE_VIEW_ITEM = 59 << 9, -} eButType; +}; #define BUTTYPE (63 << 9) /** Gradient types, for color picker #UI_BTYPE_HSVCUBE etc. */ -typedef enum eButGradientType { +enum eButGradientType { UI_GRAD_SV = 0, UI_GRAD_HV = 1, UI_GRAD_HS = 2, @@ -457,7 +454,7 @@ typedef enum eButGradientType { UI_GRAD_V_ALT = 9, UI_GRAD_L_ALT = 10, -} eButGradientType; +}; /* Drawing * @@ -465,16 +462,13 @@ typedef enum eButGradientType { * Used for code that draws its own UI style elements. */ void UI_draw_roundbox_corner_set(int type); -void UI_draw_roundbox_aa(const struct rctf *rect, bool filled, float rad, const float color[4]); -void UI_draw_roundbox_4fv(const struct rctf *rect, bool filled, float rad, const float col[4]); -void UI_draw_roundbox_3ub_alpha(const struct rctf *rect, - bool filled, - float rad, - const unsigned char col[3], - unsigned char alpha); +void UI_draw_roundbox_aa(const rctf *rect, bool filled, float rad, const float color[4]); +void UI_draw_roundbox_4fv(const rctf *rect, bool filled, float rad, const float col[4]); +void UI_draw_roundbox_3ub_alpha( + const rctf *rect, bool filled, float rad, const unsigned char col[3], unsigned char alpha); void UI_draw_roundbox_3fv_alpha( - const struct rctf *rect, bool filled, float rad, const float col[3], float alpha); -void UI_draw_roundbox_4fv_ex(const struct rctf *rect, + const rctf *rect, bool filled, float rad, const float col[3], float alpha); +void UI_draw_roundbox_4fv_ex(const rctf *rect, const float inner1[4], const float inner2[4], float shade_dir, @@ -483,10 +477,10 @@ void UI_draw_roundbox_4fv_ex(const struct rctf *rect, float rad); #if 0 /* unused */ -int UI_draw_roundbox_corner_get(void); +int UI_draw_roundbox_corner_get(); #endif -void UI_draw_box_shadow(const struct rctf *rect, unsigned char alpha); +void UI_draw_box_shadow(const rctf *rect, unsigned char alpha); void UI_draw_text_underline(int pos_x, int pos_y, int len, int height, const float color[4]); /** @@ -498,7 +492,7 @@ void UI_draw_text_underline(int pos_x, int pos_y, int len, int height, const flo * \param rect: The offsets for the view, not the zones. */ void UI_draw_safe_areas(uint pos, - const struct rctf *rect, + const rctf *rect, const float title_aspect[2], const float action_aspect[2]); @@ -510,10 +504,7 @@ enum { /** * Function in use for buttons and for view2d sliders. */ -void UI_draw_widget_scroll(struct uiWidgetColors *wcol, - const struct rcti *rect, - const struct rcti *slider, - int state); +void UI_draw_widget_scroll(uiWidgetColors *wcol, const rcti *rect, const rcti *slider, int state); /** * Shortening string helper. @@ -528,7 +519,7 @@ void UI_draw_widget_scroll(struct uiWidgetColors *wcol, * Useful for strings with shortcuts * (like `A Very Long Foo Bar Label For Menu Entry|Ctrl O' -> 'AVeryLong...MenuEntry|Ctrl O`). */ -float UI_text_clip_middle_ex(const struct uiFontStyle *fstyle, +float UI_text_clip_middle_ex(const uiFontStyle *fstyle, char *str, float okwidth, float minwidth, @@ -551,44 +542,39 @@ float UI_text_clip_middle_ex(const struct uiFontStyle *fstyle, * * - #UI_but_funcN_set will free the argument with MEM_freeN. */ -typedef struct uiSearchItems uiSearchItems; +struct uiSearchItems; -typedef void (*uiButHandleFunc)(struct bContext *C, void *arg1, void *arg2); -typedef void (*uiButHandleRenameFunc)(struct bContext *C, void *arg, char *origstr); -typedef void (*uiButHandleNFunc)(struct bContext *C, void *argN, void *arg2); -typedef void (*uiButHandleHoldFunc)(struct bContext *C, struct ARegion *butregion, uiBut *but); -typedef int (*uiButCompleteFunc)(struct bContext *C, char *str, void *arg); +using uiButHandleFunc = void (*)(bContext *C, void *arg1, void *arg2); +using uiButHandleRenameFunc = void (*)(bContext *C, void *arg, char *origstr); +using uiButHandleNFunc = void (*)(bContext *C, void *argN, void *arg2); +using uiButHandleHoldFunc = void (*)(bContext *C, ARegion *butregion, uiBut *but); +using uiButCompleteFunc = int (*)(bContext *C, char *str, void *arg); /** Function to compare the identity of two buttons over redraws, to check if they represent the * same data, and thus should be considered the same button over redraws. */ -typedef bool (*uiButIdentityCompareFunc)(const uiBut *a, const uiBut *b); +using uiButIdentityCompareFunc = bool (*)(const uiBut *a, const uiBut *b); /* Search types. */ -typedef struct ARegion *(*uiButSearchCreateFn)(struct bContext *C, - struct ARegion *butregion, - struct uiButSearch *search_but); +using uiButSearchCreateFn = ARegion *(*)(bContext *C, ARegion *butregion, uiButSearch *search_but); /** * `is_first` is typically used to ignore search filtering when the menu is first opened in order * to display the full list of options. The value will be false after the button's text is edited * (for every call except the first). */ -typedef void (*uiButSearchUpdateFn)( - const struct bContext *C, void *arg, const char *str, uiSearchItems *items, bool is_first); -typedef bool (*uiButSearchContextMenuFn)(struct bContext *C, - void *arg, - void *active, - const struct wmEvent *event); -typedef struct ARegion *(*uiButSearchTooltipFn)(struct bContext *C, - struct ARegion *region, - const struct rcti *item_rect, - void *arg, - void *active); -typedef void (*uiButSearchListenFn)(const struct wmRegionListenerParams *params, void *arg); +using uiButSearchUpdateFn = + void (*)(const bContext *C, void *arg, const char *str, uiSearchItems *items, bool is_first); +using uiButSearchContextMenuFn = bool (*)(bContext *C, + void *arg, + void *active, + const wmEvent *event); +using uiButSearchTooltipFn = + ARegion *(*)(bContext *C, ARegion *region, const rcti *item_rect, void *arg, void *active); +using uiButSearchListenFn = void (*)(const wmRegionListenerParams *params, void *arg); /** Must return an allocated string. */ -typedef char *(*uiButToolTipFunc)(struct bContext *C, void *argN, const char *tip); +using uiButToolTipFunc = char *(*)(bContext *C, void *argN, const char *tip); -typedef void (*uiBlockHandleFunc)(struct bContext *C, void *arg, int event); +using uiBlockHandleFunc = void (*)(bContext *C, void *arg, int event); /* -------------------------------------------------------------------- */ /** \name Custom Interaction @@ -615,24 +601,24 @@ struct uiBlockInteraction_Params { }; /** Returns 'user_data', freed by #uiBlockInteractionEndFn. */ -typedef void *(*uiBlockInteractionBeginFn)(struct bContext *C, - const struct uiBlockInteraction_Params *params, - void *arg1); -typedef void (*uiBlockInteractionEndFn)(struct bContext *C, - const struct uiBlockInteraction_Params *params, - void *arg1, - void *user_data); -typedef void (*uiBlockInteractionUpdateFn)(struct bContext *C, - const struct uiBlockInteraction_Params *params, - void *arg1, - void *user_data); +using uiBlockInteractionBeginFn = void *(*)(bContext *C, + const uiBlockInteraction_Params *params, + void *arg1); +using uiBlockInteractionEndFn = void (*)(bContext *C, + const uiBlockInteraction_Params *params, + void *arg1, + void *user_data); +using uiBlockInteractionUpdateFn = void (*)(bContext *C, + const uiBlockInteraction_Params *params, + void *arg1, + void *user_data); -typedef struct uiBlockInteraction_CallbackData { +struct uiBlockInteraction_CallbackData { uiBlockInteractionBeginFn begin_fn; uiBlockInteractionEndFn end_fn; uiBlockInteractionUpdateFn update_fn; void *arg1; -} uiBlockInteraction_CallbackData; +}; void UI_block_interaction_set(uiBlock *block, uiBlockInteraction_CallbackData *callbacks); @@ -640,18 +626,18 @@ void UI_block_interaction_set(uiBlock *block, uiBlockInteraction_CallbackData *c /* Menu Callbacks */ -typedef void (*uiMenuCreateFunc)(struct bContext *C, struct uiLayout *layout, void *arg1); -typedef void (*uiMenuHandleFunc)(struct bContext *C, void *arg, int event); +using uiMenuCreateFunc = void (*)(bContext *C, uiLayout *layout, void *arg1); +using uiMenuHandleFunc = void (*)(bContext *C, void *arg, int event); /** * Used for cycling menu values without opening the menu (Ctrl-Wheel). * \param direction: forward or backwards [1 / -1]. * \param arg1: uiBut.poin (as with #uiMenuCreateFunc). * \return true when the button was changed. */ -typedef bool (*uiMenuStepFunc)(struct bContext *C, int direction, void *arg1); +using uiMenuStepFunc = bool (*)(bContext *C, int direction, void *arg1); -typedef void *(*uiCopyArgFunc)(const void *arg); -typedef void (*uiFreeArgFunc)(void *arg); +using uiCopyArgFunc = void *(*)(const void *arg); +using uiFreeArgFunc = void (*)(void *arg); /* `interface_query.cc` */ @@ -665,7 +651,7 @@ bool UI_block_is_empty_ex(const uiBlock *block, bool skip_title); bool UI_block_is_empty(const uiBlock *block); bool UI_block_can_add_separator(const uiBlock *block); -struct uiList *UI_list_find_mouse_over(const struct ARegion *region, const struct wmEvent *event); +uiList *UI_list_find_mouse_over(const ARegion *region, const wmEvent *event); /* `interface_region_menu_popup.cc` */ @@ -677,29 +663,28 @@ struct uiList *UI_list_find_mouse_over(const struct ARegion *region, const struc * the uiItem functions in between. If it is a simple confirmation menu * or similar, popups can be created with a single function call. */ -typedef struct uiPopupMenu uiPopupMenu; +struct uiPopupMenu; -uiPopupMenu *UI_popup_menu_begin(struct bContext *C, const char *title, int icon) ATTR_NONNULL(); +uiPopupMenu *UI_popup_menu_begin(bContext *C, const char *title, int icon) ATTR_NONNULL(); /** * Directly create a popup menu that is not refreshed on redraw. * * Only return handler, and set optional title. * \param block_name: Assigned to uiBlock.name (useful info for debugging). */ -uiPopupMenu *UI_popup_menu_begin_ex(struct bContext *C, +uiPopupMenu *UI_popup_menu_begin_ex(bContext *C, const char *title, const char *block_name, int icon) ATTR_NONNULL(); /** * Set the whole structure to work. */ -void UI_popup_menu_end(struct bContext *C, struct uiPopupMenu *pup); -bool UI_popup_menu_end_or_cancel(struct bContext *C, struct uiPopupMenu *pup); -struct uiLayout *UI_popup_menu_layout(uiPopupMenu *pup); +void UI_popup_menu_end(bContext *C, uiPopupMenu *pup); +bool UI_popup_menu_end_or_cancel(bContext *C, uiPopupMenu *pup); +uiLayout *UI_popup_menu_layout(uiPopupMenu *pup); -void UI_popup_menu_reports(struct bContext *C, struct ReportList *reports) ATTR_NONNULL(); -int UI_popup_menu_invoke(struct bContext *C, const char *idname, struct ReportList *reports) - ATTR_NONNULL(1, 2); +void UI_popup_menu_reports(bContext *C, ReportList *reports) ATTR_NONNULL(); +int UI_popup_menu_invoke(bContext *C, const char *idname, ReportList *reports) ATTR_NONNULL(1, 2); /** * Allow setting menu return value from externals. @@ -709,16 +694,13 @@ void UI_popup_menu_retval_set(const uiBlock *block, int retval, bool enable); /** * Setting the button makes the popup open from the button instead of the cursor. */ -void UI_popup_menu_but_set(uiPopupMenu *pup, struct ARegion *butregion, uiBut *but); +void UI_popup_menu_but_set(uiPopupMenu *pup, ARegion *butregion, uiBut *but); /* `interface_region_popover.cc` */ -typedef struct uiPopover uiPopover; +struct uiPopover; -int UI_popover_panel_invoke(struct bContext *C, - const char *idname, - bool keep_open, - struct ReportList *reports); +int UI_popover_panel_invoke(bContext *C, const char *idname, bool keep_open, ReportList *reports); /** * Only return handler, and set optional title. @@ -726,37 +708,34 @@ int UI_popover_panel_invoke(struct bContext *C, * \param from_active_button: Use the active button for positioning, * use when the popover is activated from an operator instead of directly from the button. */ -uiPopover *UI_popover_begin(struct bContext *C, int menu_width, bool from_active_button) - ATTR_NONNULL(1); +uiPopover *UI_popover_begin(bContext *C, int menu_width, bool from_active_button) ATTR_NONNULL(1); /** * Set the whole structure to work. */ -void UI_popover_end(struct bContext *C, struct uiPopover *pup, struct wmKeyMap *keymap); -struct uiLayout *UI_popover_layout(uiPopover *pup); +void UI_popover_end(bContext *C, uiPopover *pup, wmKeyMap *keymap); +uiLayout *UI_popover_layout(uiPopover *pup); void UI_popover_once_clear(uiPopover *pup); /* `interface_region_menu_pie.cc` */ /* Pie menus */ -typedef struct uiPieMenu uiPieMenu; +struct uiPieMenu; -int UI_pie_menu_invoke(struct bContext *C, const char *idname, const struct wmEvent *event); -int UI_pie_menu_invoke_from_operator_enum(struct bContext *C, +int UI_pie_menu_invoke(bContext *C, const char *idname, const wmEvent *event); +int UI_pie_menu_invoke_from_operator_enum(bContext *C, const char *title, const char *opname, const char *propname, - const struct wmEvent *event); -int UI_pie_menu_invoke_from_rna_enum(struct bContext *C, + const wmEvent *event); +int UI_pie_menu_invoke_from_rna_enum(bContext *C, const char *title, const char *path, - const struct wmEvent *event); + const wmEvent *event); -struct uiPieMenu *UI_pie_menu_begin(struct bContext *C, - const char *title, - int icon, - const struct wmEvent *event) ATTR_NONNULL(); -void UI_pie_menu_end(struct bContext *C, uiPieMenu *pie); -struct uiLayout *UI_pie_menu_layout(struct uiPieMenu *pie); +uiPieMenu *UI_pie_menu_begin(bContext *C, const char *title, int icon, const wmEvent *event) + ATTR_NONNULL(); +void UI_pie_menu_end(bContext *C, uiPieMenu *pie); +uiLayout *UI_pie_menu_layout(uiPieMenu *pie); /* `interface_region_menu_popup.cc` */ @@ -764,34 +743,28 @@ struct uiLayout *UI_pie_menu_layout(struct uiPieMenu *pie); * * Functions used to create popup blocks. These are like popup menus * but allow using all button types and creating an own layout. */ -typedef uiBlock *(*uiBlockCreateFunc)(struct bContext *C, struct ARegion *region, void *arg1); -typedef void (*uiBlockCancelFunc)(struct bContext *C, void *arg1); +using uiBlockCreateFunc = uiBlock *(*)(bContext *C, ARegion *region, void *arg1); +using uiBlockCancelFunc = void (*)(bContext *C, void *arg1); -void UI_popup_block_invoke(struct bContext *C, - uiBlockCreateFunc func, - void *arg, - uiFreeArgFunc arg_free); -void UI_popup_block_invoke_ex(struct bContext *C, - uiBlockCreateFunc func, - void *arg, - uiFreeArgFunc arg_free, - bool can_refresh); -void UI_popup_block_ex(struct bContext *C, +void UI_popup_block_invoke(bContext *C, uiBlockCreateFunc func, void *arg, uiFreeArgFunc arg_free); +void UI_popup_block_invoke_ex( + bContext *C, uiBlockCreateFunc func, void *arg, uiFreeArgFunc arg_free, bool can_refresh); +void UI_popup_block_ex(bContext *C, uiBlockCreateFunc func, uiBlockHandleFunc popup_func, uiBlockCancelFunc cancel_func, void *arg, - struct wmOperator *op); + wmOperator *op); #if 0 /* UNUSED */ -void uiPupBlockOperator(struct bContext *C, +void uiPupBlockOperator( bContext *C, uiBlockCreateFunc func, - struct wmOperator *op, + wmOperator *op, wmOperatorCallContext opcontext); #endif -void UI_popup_block_close(struct bContext *C, struct wmWindow *win, uiBlock *block); +void UI_popup_block_close(bContext *C, wmWindow *win, uiBlock *block); -bool UI_popup_block_name_exists(const struct bScreen *screen, const char *name); +bool UI_popup_block_name_exists(const bScreen *screen, const char *name); /* Blocks * @@ -803,20 +776,20 @@ bool UI_popup_block_name_exists(const struct bScreen *screen, const char *name); * Freeing blocks is done by the screen/ module automatically. */ -uiBlock *UI_block_begin(const struct bContext *C, - struct ARegion *region, +uiBlock *UI_block_begin(const bContext *C, + ARegion *region, const char *name, eUIEmbossType emboss); -void UI_block_end_ex(const struct bContext *C, uiBlock *block, const int xy[2], int r_xy[2]); -void UI_block_end(const struct bContext *C, uiBlock *block); +void UI_block_end_ex(const bContext *C, uiBlock *block, const int xy[2], int r_xy[2]); +void UI_block_end(const bContext *C, uiBlock *block); /** * Uses local copy of style, to scale things down, and allow widgets to change stuff. */ -void UI_block_draw(const struct bContext *C, struct uiBlock *block); -void UI_blocklist_update_window_matrix(const struct bContext *C, const struct ListBase *lb); -void UI_blocklist_update_view_for_buttons(const struct bContext *C, const struct ListBase *lb); -void UI_blocklist_draw(const struct bContext *C, const struct ListBase *lb); -void UI_block_update_from_old(const struct bContext *C, struct uiBlock *block); +void UI_block_draw(const bContext *C, uiBlock *block); +void UI_blocklist_update_window_matrix(const bContext *C, const ListBase *lb); +void UI_blocklist_update_view_for_buttons(const bContext *C, const ListBase *lb); +void UI_blocklist_draw(const bContext *C, const ListBase *lb); +void UI_block_update_from_old(const bContext *C, uiBlock *block); enum { UI_BLOCK_THEME_STYLE_REGULAR = 0, @@ -835,23 +808,23 @@ void UI_block_set_search_only(uiBlock *block, bool search_only); /** * Can be called with C==NULL. */ -void UI_block_free(const struct bContext *C, uiBlock *block); +void UI_block_free(const bContext *C, uiBlock *block); -void UI_block_listen(const uiBlock *block, const struct wmRegionListenerParams *listener_params); +void UI_block_listen(const uiBlock *block, const wmRegionListenerParams *listener_params); /** * Can be called with C==NULL. */ -void UI_blocklist_free(const struct bContext *C, struct ARegion *region); -void UI_blocklist_free_inactive(const struct bContext *C, struct ARegion *region); +void UI_blocklist_free(const bContext *C, ARegion *region); +void UI_blocklist_free_inactive(const bContext *C, ARegion *region); /** * Is called by notifier. */ -void UI_screen_free_active_but_highlight(const struct bContext *C, struct bScreen *screen); -void UI_region_free_active_but_all(struct bContext *context, struct ARegion *region); +void UI_screen_free_active_but_highlight(const bContext *C, bScreen *screen); +void UI_region_free_active_but_all(bContext *context, ARegion *region); -void UI_block_region_set(uiBlock *block, struct ARegion *region); +void UI_block_region_set(uiBlock *block, ARegion *region); void UI_block_lock_set(uiBlock *block, bool val, const char *lockstr); void UI_block_lock_clear(uiBlock *block); @@ -863,7 +836,7 @@ void UI_block_align_begin(uiBlock *block); void UI_block_align_end(uiBlock *block); /** Block bounds/position calculation. */ -typedef enum { +enum eBlockBoundsCalc { UI_BLOCK_BOUNDS_NONE = 0, UI_BLOCK_BOUNDS = 1, UI_BLOCK_BOUNDS_TEXT, @@ -871,12 +844,12 @@ typedef enum { UI_BLOCK_BOUNDS_POPUP_MENU, UI_BLOCK_BOUNDS_POPUP_CENTER, UI_BLOCK_BOUNDS_PIE_CENTER, -} eBlockBoundsCalc; +}; /** * Used for various cases. */ -void UI_block_bounds_set_normal(struct uiBlock *block, int addval); +void UI_block_bounds_set_normal(uiBlock *block, int addval); /** * Used for pull-downs. */ @@ -895,7 +868,7 @@ void UI_block_bounds_set_menu(uiBlock *block, int addval, const int bounds_offse void UI_block_bounds_set_centered(uiBlock *block, int addval); void UI_block_bounds_set_explicit(uiBlock *block, int minx, int miny, int maxx, int maxy); -int UI_blocklist_min_y_get(struct ListBase *lb); +int UI_blocklist_min_y_get(ListBase *lb); void UI_block_direction_set(uiBlock *block, char direction); /** @@ -908,13 +881,13 @@ void UI_block_translate(uiBlock *block, int x, int y); int UI_but_return_value_get(uiBut *but); -uiBut *UI_but_active_drop_name_button(const struct bContext *C); +uiBut *UI_but_active_drop_name_button(const bContext *C); /** * Returns true if highlighted button allows drop of names. * called in region context. */ -bool UI_but_active_drop_name(const struct bContext *C); -bool UI_but_active_drop_color(struct bContext *C); +bool UI_but_active_drop_name(const bContext *C); +bool UI_but_active_drop_color(bContext *C); void UI_but_flag_enable(uiBut *but, int flag); void UI_but_flag_disable(uiBut *but, int flag); @@ -937,32 +910,24 @@ void UI_but_type_set_menu_from_pulldown(uiBut *but); * they should keep calling #uiDefBut to keep them alive. * \return false when button removed. */ -bool UI_but_active_only_ex(const struct bContext *C, - struct ARegion *region, - uiBlock *block, - uiBut *but, - bool remove_on_failure); -bool UI_but_active_only(const struct bContext *C, - struct ARegion *region, - uiBlock *block, - uiBut *but); +bool UI_but_active_only_ex( + const bContext *C, ARegion *region, uiBlock *block, uiBut *but, bool remove_on_failure); +bool UI_but_active_only(const bContext *C, ARegion *region, uiBlock *block, uiBut *but); /** * \warning This must run after other handlers have been added, * otherwise the handler won't be removed, see: #71112. */ -bool UI_block_active_only_flagged_buttons(const struct bContext *C, - struct ARegion *region, - struct uiBlock *block); +bool UI_block_active_only_flagged_buttons(const bContext *C, ARegion *region, uiBlock *block); /** * Simulate button click. */ -void UI_but_execute(const struct bContext *C, struct ARegion *region, uiBut *but); +void UI_but_execute(const bContext *C, ARegion *region, uiBut *but); bool UI_but_online_manual_id(const uiBut *but, char *r_str, size_t str_maxncpy) ATTR_WARN_UNUSED_RESULT; -bool UI_but_online_manual_id_from_active(const struct bContext *C, +bool UI_but_online_manual_id_from_active(const bContext *C, char *r_str, size_t str_maxncpy) ATTR_WARN_UNUSED_RESULT; bool UI_but_is_userdef(const uiBut *but); @@ -1100,7 +1065,7 @@ uiBut *uiDefButR(uiBlock *block, int y, short width, short height, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, int index, float min, @@ -1116,8 +1081,8 @@ uiBut *uiDefButR_prop(uiBlock *block, int y, short width, short height, - struct PointerRNA *ptr, - struct PropertyRNA *prop, + PointerRNA *ptr, + PropertyRNA *prop, int index, float min, float max, @@ -1136,7 +1101,7 @@ uiBut *uiDefButO(uiBlock *block, const char *tip); uiBut *uiDefButO_ptr(uiBlock *block, int type, - struct wmOperatorType *ot, + wmOperatorType *ot, wmOperatorCallContext opcontext, const char *str, int x, @@ -1243,7 +1208,7 @@ uiBut *uiDefIconButR(uiBlock *block, int y, short width, short height, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, int index, float min, @@ -1259,8 +1224,8 @@ uiBut *uiDefIconButR_prop(uiBlock *block, int y, short width, short height, - struct PointerRNA *ptr, - struct PropertyRNA *prop, + PointerRNA *ptr, + PropertyRNA *prop, int index, float min, float max, @@ -1279,7 +1244,7 @@ uiBut *uiDefIconButO(uiBlock *block, const char *tip); uiBut *uiDefIconButO_ptr(uiBlock *block, int type, - struct wmOperatorType *ot, + wmOperatorType *ot, wmOperatorCallContext opcontext, int icon, int x, @@ -1345,7 +1310,7 @@ uiBut *uiDefIconTextButR(uiBlock *block, int y, short width, short height, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, int index, float min, @@ -1362,8 +1327,8 @@ uiBut *uiDefIconTextButR_prop(uiBlock *block, int y, short width, short height, - struct PointerRNA *ptr, - struct PropertyRNA *prop, + PointerRNA *ptr, + PropertyRNA *prop, int index, float min, float max, @@ -1383,7 +1348,7 @@ uiBut *uiDefIconTextButO(uiBlock *block, const char *tip); uiBut *uiDefIconTextButO_ptr(uiBlock *block, int type, - struct wmOperatorType *ot, + wmOperatorType *ot, wmOperatorCallContext opcontext, int icon, const char *str, @@ -1394,21 +1359,18 @@ uiBut *uiDefIconTextButO_ptr(uiBlock *block, const char *tip); /** For passing inputs to ButO buttons. */ -struct PointerRNA *UI_but_operator_ptr_get(uiBut *but); +PointerRNA *UI_but_operator_ptr_get(uiBut *but); -void UI_but_context_ptr_set(uiBlock *block, - uiBut *but, - const char *name, - const struct PointerRNA *ptr); -const struct PointerRNA *UI_but_context_ptr_get(const uiBut *but, - const char *name, - const StructRNA *type CPP_ARG_DEFAULT(nullptr)); -struct bContextStore *UI_but_context_get(const uiBut *but); +void UI_but_context_ptr_set(uiBlock *block, uiBut *but, const char *name, const PointerRNA *ptr); +const PointerRNA *UI_but_context_ptr_get(const uiBut *but, + const char *name, + const StructRNA *type CPP_ARG_DEFAULT(nullptr)); +bContextStore *UI_but_context_get(const uiBut *but); void UI_but_unit_type_set(uiBut *but, int unit_type); int UI_but_unit_type_get(const uiBut *but); -typedef enum uiStringInfoType { +enum uiStringInfoType { BUT_GET_RNAPROP_IDENTIFIER = 1, BUT_GET_RNASTRUCT_IDENTIFIER, BUT_GET_RNAENUM_IDENTIFIER, @@ -1425,20 +1387,20 @@ typedef enum uiStringInfoType { BUT_GET_RNAENUM_TIP, BUT_GET_OP_KEYMAP, BUT_GET_PROP_KEYMAP, -} uiStringInfoType; +}; -typedef struct uiStringInfo { +struct uiStringInfo { uiStringInfoType type; char *strinfo; -} uiStringInfo; +}; /** * \note Expects pointers to #uiStringInfo structs as parameters. * Will fill them with translated strings, when possible. * Strings in #uiStringInfo must be MEM_freeN'ed by caller. */ -void UI_but_string_info_get(struct bContext *C, uiBut *but, ...) ATTR_SENTINEL(0); -void UI_but_extra_icon_string_info_get(struct bContext *C, uiButExtraOpIcon *extra_icon, ...) +void UI_but_string_info_get(bContext *C, uiBut *but, ...) ATTR_SENTINEL(0); +void UI_but_extra_icon_string_info_get(bContext *C, uiButExtraOpIcon *extra_icon, ...) ATTR_SENTINEL(0); /* Edit i18n stuff. */ @@ -1490,14 +1452,14 @@ enum eButProgressType { /***************************** ID Utilities *******************************/ -int UI_icon_from_id(const struct ID *id); +int UI_icon_from_id(const ID *id); /** See: #BKE_report_type_str */ int UI_icon_from_report_type(int type); int UI_icon_colorid_from_report_type(int type); int UI_text_colorid_from_report_type(int type); int UI_icon_from_event_type(short event_type, short event_value); -int UI_icon_from_keymap_item(const struct wmKeyMapItem *kmi, int r_icon_mod[4]); +int UI_icon_from_keymap_item(const wmKeyMapItem *kmi, int r_icon_mod[4]); uiBut *uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, @@ -1604,8 +1566,8 @@ uiBut *uiDefSearchBut(uiBlock *block, * used by callback to call again the right op with the right options (properties values). */ uiBut *uiDefSearchButO_ptr(uiBlock *block, - struct wmOperatorType *ot, - struct IDProperty *properties, + wmOperatorType *ot, + IDProperty *properties, void *arg, int retval, int icon, @@ -1619,28 +1581,28 @@ uiBut *uiDefSearchButO_ptr(uiBlock *block, const char *tip); /** For #uiDefAutoButsRNA. */ -typedef enum { +enum eButLabelAlign { /** Keep current layout for aligning label with property button. */ UI_BUT_LABEL_ALIGN_NONE, /** Align label and property button vertically. */ UI_BUT_LABEL_ALIGN_COLUMN, /** Split layout into a column for the label and one for property button. */ UI_BUT_LABEL_ALIGN_SPLIT_COLUMN, -} eButLabelAlign; +}; /** Return info for uiDefAutoButsRNA. */ -typedef enum eAutoPropButsReturn { +enum eAutoPropButsReturn { /** Returns when no buttons were added */ UI_PROP_BUTS_NONE_ADDED = 1 << 0, /** Returned when any property failed the custom check callback (check_prop) */ UI_PROP_BUTS_ANY_FAILED_CHECK = 1 << 1, -} eAutoPropButsReturn; +}; ENUM_OPERATORS(eAutoPropButsReturn, UI_PROP_BUTS_ANY_FAILED_CHECK); uiBut *uiDefAutoButR(uiBlock *block, - struct PointerRNA *ptr, - struct PropertyRNA *prop, + PointerRNA *ptr, + PropertyRNA *prop, int index, const char *name, int icon, @@ -1663,12 +1625,12 @@ void uiDefAutoButsArrayR(uiBlock *block, * \param prop_activate_init: Property to activate on initial popup (#UI_BUT_ACTIVATE_ON_INIT). */ eAutoPropButsReturn uiDefAutoButsRNA(uiLayout *layout, - struct PointerRNA *ptr, - bool (*check_prop)(struct PointerRNA *ptr, - struct PropertyRNA *prop, + PointerRNA *ptr, + bool (*check_prop)(PointerRNA *ptr, + PropertyRNA *prop, void *user_data), void *user_data, - struct PropertyRNA *prop_activate_init, + PropertyRNA *prop_activate_init, eButLabelAlign label_align, bool compact); @@ -1741,8 +1703,8 @@ void UI_but_func_search_set_results_are_suggestions(uiBut *but, bool value); /** * Height in pixels, it's using hard-coded values still. */ -int UI_searchbox_size_y(void); -int UI_searchbox_size_x(void); +int UI_searchbox_size_y(); +int UI_searchbox_size_x(); /** * Check if a string is in an existing search box. */ @@ -1754,7 +1716,7 @@ int UI_search_items_find_index(uiSearchItems *items, const char *name); void UI_but_hint_drawstr_set(uiBut *but, const char *string); void UI_but_icon_indicator_number_set(uiBut *but, const int indicator_number); -void UI_but_node_link_set(uiBut *but, struct bNodeSocket *socket, const float draw_color[4]); +void UI_but_node_link_set(uiBut *but, bNodeSocket *socket, const float draw_color[4]); void UI_but_number_step_size_set(uiBut *but, float step_size); void UI_but_number_precision_set(uiBut *but, float precision); @@ -1770,48 +1732,45 @@ void UI_but_funcN_set(uiBut *but, uiButHandleNFunc funcN, void *argN, void *arg2 void UI_but_func_complete_set(uiBut *but, uiButCompleteFunc func, void *arg); -void UI_but_func_drawextra_set( - uiBlock *block, - void (*func)(const struct bContext *C, void *, void *, void *, struct rcti *rect), - void *arg1, - void *arg2); +void UI_but_func_drawextra_set(uiBlock *block, + void (*func)(const bContext *C, void *, void *, void *, rcti *rect), + void *arg1, + void *arg2); void UI_but_func_menu_step_set(uiBut *but, uiMenuStepFunc func); void UI_but_func_tooltip_set(uiBut *but, uiButToolTipFunc func, void *arg, uiFreeArgFunc free_arg); -#ifdef __cplusplus void UI_but_func_tooltip_label_set(uiBut *but, std::function func); -#endif /** * Recreate tool-tip (use to update dynamic tips) */ -void UI_but_tooltip_refresh(struct bContext *C, uiBut *but); +void UI_but_tooltip_refresh(bContext *C, uiBut *but); /** * Removes tool-tip timer from active but * (meaning tool-tip is disabled until it's re-enabled again). */ -void UI_but_tooltip_timer_remove(struct bContext *C, uiBut *but); +void UI_but_tooltip_timer_remove(bContext *C, uiBut *but); -bool UI_textbutton_activate_rna(const struct bContext *C, - struct ARegion *region, +bool UI_textbutton_activate_rna(const bContext *C, + ARegion *region, const void *rna_poin_data, const char *rna_prop_id); -bool UI_textbutton_activate_but(const struct bContext *C, uiBut *but); +bool UI_textbutton_activate_but(const bContext *C, uiBut *but); /** * push a new event onto event queue to activate the given button * (usually a text-field) upon entering a popup */ -void UI_but_focus_on_enter_event(struct wmWindow *win, uiBut *but); +void UI_but_focus_on_enter_event(wmWindow *win, uiBut *but); void UI_but_func_hold_set(uiBut *but, uiButHandleHoldFunc func, void *argN); -struct PointerRNA *UI_but_extra_operator_icon_add(uiBut *but, - const char *opname, - wmOperatorCallContext opcontext, - int icon); -struct wmOperatorType *UI_but_extra_operator_icon_optype_get(struct uiButExtraOpIcon *extra_icon); -struct PointerRNA *UI_but_extra_operator_icon_opptr_get(struct uiButExtraOpIcon *extra_icon); +PointerRNA *UI_but_extra_operator_icon_add(uiBut *but, + const char *opname, + wmOperatorCallContext opcontext, + int icon); +wmOperatorType *UI_but_extra_operator_icon_optype_get(uiButExtraOpIcon *extra_icon); +PointerRNA *UI_but_extra_operator_icon_opptr_get(uiButExtraOpIcon *extra_icon); /** * Get the scaled size for a preview button (typically #UI_BTyPE_PREVIEW_TILE) based on \a @@ -1827,7 +1786,7 @@ int UI_preview_tile_size_y_no_label(const int size_px CPP_ARG_DEFAULT(96)); * Call begin once, then multiple times do_name with all possibilities, * and finally end to finish and get the completed name. */ -typedef struct AutoComplete AutoComplete; +struct AutoComplete; #define AUTOCOMPLETE_NO_MATCH 0 #define AUTOCOMPLETE_FULL_MATCH 1 @@ -1842,16 +1801,15 @@ int UI_autocomplete_end(AutoComplete *autocpl, char *autoname); * Functions to set drag data for buttons. This enables dragging support, whereby the drag data is * "dragged", not the button itself. */ -void UI_but_drag_set_id(uiBut *but, struct ID *id); +void UI_but_drag_set_id(uiBut *but, ID *id); /** * Set an image to display while dragging. This works for any drag type (`WM_DRAG_XXX`). * Not to be confused with #UI_but_drag_set_image(), which sets up dragging of an image. * * Sets #UI_BUT_DRAG_FULL_BUT so the full button can be dragged. */ -void UI_but_drag_attach_image(uiBut *but, const struct ImBuf *imb, float scale); +void UI_but_drag_attach_image(uiBut *but, const ImBuf *imb, float scale); -#ifdef __cplusplus /** * Sets #UI_BUT_DRAG_FULL_BUT so the full button can be dragged. * \param asset: May be passed from a temporary variable, drag data only stores a copy of this. @@ -1860,11 +1818,10 @@ void UI_but_drag_set_asset(uiBut *but, const blender::asset_system::AssetRepresentation *asset, int import_type, /* eAssetImportType */ int icon, - const struct ImBuf *imb, + const ImBuf *imb, float scale); -#endif -void UI_but_drag_set_rna(uiBut *but, struct PointerRNA *ptr); +void UI_but_drag_set_rna(uiBut *but, PointerRNA *ptr); /** * Enable dragging a path from this button. * \param path: The path to drag. The passed string may be destructed, button keeps a copy. @@ -1880,8 +1837,7 @@ void UI_but_drag_set_value(uiBut *but); * Sets #UI_BUT_DRAG_FULL_BUT so the full button can be dragged. * \param path: The path to drag. The passed string may be destructed, button keeps a copy. */ -void UI_but_drag_set_image( - uiBut *but, const char *path, int icon, const struct ImBuf *imb, float scale); +void UI_but_drag_set_image(uiBut *but, const char *path, int icon, const ImBuf *imb, float scale); /* Panels * @@ -1889,109 +1845,102 @@ void UI_but_drag_set_image( * could use a good cleanup, though how they will function in 2.5 is * not clear yet so we postpone that. */ -void UI_panels_begin(const struct bContext *C, struct ARegion *region); -void UI_panels_end(const struct bContext *C, struct ARegion *region, int *r_x, int *r_y); +void UI_panels_begin(const bContext *C, ARegion *region); +void UI_panels_end(const bContext *C, ARegion *region, int *r_x, int *r_y); /** * Draw panels, selected (panels currently being dragged) on top. */ -void UI_panels_draw(const struct bContext *C, struct ARegion *region); +void UI_panels_draw(const bContext *C, ARegion *region); -struct Panel *UI_panel_find_by_type(struct ListBase *lb, const struct PanelType *pt); +Panel *UI_panel_find_by_type(ListBase *lb, const PanelType *pt); /** * \note \a panel should be return value from #UI_panel_find_by_type and can be NULL. */ -struct Panel *UI_panel_begin(struct ARegion *region, - struct ListBase *lb, - uiBlock *block, - struct PanelType *pt, - struct Panel *panel, - bool *r_open); +Panel *UI_panel_begin( + ARegion *region, ListBase *lb, uiBlock *block, PanelType *pt, Panel *panel, bool *r_open); /** * Create the panel header button group, used to mark which buttons are part of * panel headers for the panel search process that happens later. This Should be * called before adding buttons for the panel's header layout. */ -void UI_panel_header_buttons_begin(struct Panel *panel); +void UI_panel_header_buttons_begin(Panel *panel); /** * Finish the button group for the panel header to avoid putting panel body buttons in it. */ -void UI_panel_header_buttons_end(struct Panel *panel); -void UI_panel_end(struct Panel *panel, int width, int height); +void UI_panel_header_buttons_end(Panel *panel); +void UI_panel_end(Panel *panel, int width, int height); /** * Set a context for this entire panel and its current layout. This should be used whenever panel * callbacks that are called outside of regular drawing might require context. Currently it affects * the #PanelType.reorder callback only. */ -void UI_panel_context_pointer_set(struct Panel *panel, const char *name, struct PointerRNA *ptr); +void UI_panel_context_pointer_set(Panel *panel, const char *name, PointerRNA *ptr); /** * Get the panel's expansion state, taking into account * expansion set from property search if it applies. */ -bool UI_panel_is_closed(const struct Panel *panel); -bool UI_panel_is_active(const struct Panel *panel); +bool UI_panel_is_closed(const Panel *panel); +bool UI_panel_is_active(const Panel *panel); /** * For button layout next to label. */ -void UI_panel_label_offset(const struct uiBlock *block, int *r_x, int *r_y); -bool UI_panel_should_show_background(const struct ARegion *region, - const struct PanelType *panel_type); -int UI_panel_size_y(const struct Panel *panel); -bool UI_panel_is_dragging(const struct Panel *panel); +void UI_panel_label_offset(const uiBlock *block, int *r_x, int *r_y); +bool UI_panel_should_show_background(const ARegion *region, const PanelType *panel_type); +int UI_panel_size_y(const Panel *panel); +bool UI_panel_is_dragging(const Panel *panel); /** * Find whether a panel or any of its sub-panels contain a property that matches the search filter, * depending on the search process running in #UI_block_apply_search_filter earlier. */ -bool UI_panel_matches_search_filter(const struct Panel *panel); -bool UI_panel_can_be_pinned(const struct Panel *panel); +bool UI_panel_matches_search_filter(const Panel *panel); +bool UI_panel_can_be_pinned(const Panel *panel); -bool UI_panel_category_is_visible(const struct ARegion *region); -void UI_panel_category_add(struct ARegion *region, const char *name); -struct PanelCategoryDyn *UI_panel_category_find(const struct ARegion *region, const char *idname); -struct PanelCategoryStack *UI_panel_category_active_find(struct ARegion *region, - const char *idname); -const char *UI_panel_category_active_get(struct ARegion *region, bool set_fallback); -void UI_panel_category_active_set(struct ARegion *region, const char *idname); -void UI_panel_category_active_set_default(struct ARegion *region, const char *idname); -void UI_panel_category_clear_all(struct ARegion *region); +bool UI_panel_category_is_visible(const ARegion *region); +void UI_panel_category_add(ARegion *region, const char *name); +PanelCategoryDyn *UI_panel_category_find(const ARegion *region, const char *idname); +PanelCategoryStack *UI_panel_category_active_find(ARegion *region, const char *idname); +const char *UI_panel_category_active_get(ARegion *region, bool set_fallback); +void UI_panel_category_active_set(ARegion *region, const char *idname); +void UI_panel_category_active_set_default(ARegion *region, const char *idname); +void UI_panel_category_clear_all(ARegion *region); /** * Draw vertical tabs on the left side of the region, one tab per category. */ -void UI_panel_category_draw_all(struct ARegion *region, const char *category_id_active); +void UI_panel_category_draw_all(ARegion *region, const char *category_id_active); /* Panel custom data. */ -struct PointerRNA *UI_panel_custom_data_get(const struct Panel *panel); -struct PointerRNA *UI_region_panel_custom_data_under_cursor(const struct bContext *C, - const struct wmEvent *event); -void UI_panel_custom_data_set(struct Panel *panel, struct PointerRNA *custom_data); +PointerRNA *UI_panel_custom_data_get(const Panel *panel); +PointerRNA *UI_region_panel_custom_data_under_cursor(const bContext *C, const wmEvent *event); +void UI_panel_custom_data_set(Panel *panel, PointerRNA *custom_data); /* Poly-instantiated panels for representing a list of data. */ /** * Called in situations where panels need to be added dynamically rather than * having only one panel corresponding to each #PanelType. */ -struct Panel *UI_panel_add_instanced(const struct bContext *C, - struct ARegion *region, - struct ListBase *panels, - const char *panel_idname, - struct PointerRNA *custom_data); +Panel *UI_panel_add_instanced(const bContext *C, + ARegion *region, + ListBase *panels, + const char *panel_idname, + PointerRNA *custom_data); /** * Remove instanced panels from the region's panel list. * * \note Can be called with NULL \a C, but it should be avoided because * handlers might not be removed. */ -void UI_panels_free_instanced(const struct bContext *C, struct ARegion *region); +void UI_panels_free_instanced(const bContext *C, ARegion *region); #define INSTANCED_PANEL_UNIQUE_STR_SIZE 16 /** * Find a unique key to append to the #PanelType.idname for the lookup to the panel's #uiBlock. * Needed for instanced panels, where there can be multiple with the same type and identifier. */ -void UI_list_panel_unique_str(struct Panel *panel, char *r_name); +void UI_list_panel_unique_str(Panel *panel, char *r_name); -typedef void (*uiListPanelIDFromDataFunc)(void *data_link, char *r_idname); +using uiListPanelIDFromDataFunc = void (*)(void *data_link, char *r_idname); /** * Check if the instanced panels in the region's panels correspond to the list of data the panels * represent. Returns false if the panels have been reordered or if the types from the list data @@ -2001,8 +1950,8 @@ typedef void (*uiListPanelIDFromDataFunc)(void *data_link, char *r_idname); * \param panel_idname_func: Function to find the #PanelType.idname for each item in the data list. * For a readability and generality, this lookup happens separately for each type of panel list. */ -bool UI_panel_list_matches_data(struct ARegion *region, - struct ListBase *data, +bool UI_panel_list_matches_data(ARegion *region, + ListBase *data, uiListPanelIDFromDataFunc panel_idname_func); /* Handlers @@ -2011,24 +1960,21 @@ bool UI_panel_list_matches_data(struct ARegion *region, * handling WM events. Mostly this is done automatic by modules such * as screen/ if ED_KEYMAP_UI is set, or internally in popup functions. */ -void UI_region_handlers_add(struct ListBase *handlers); -void UI_popup_handlers_add(struct bContext *C, - struct ListBase *handlers, - uiPopupBlockHandle *popup, - char flag); -void UI_popup_handlers_remove(struct ListBase *handlers, uiPopupBlockHandle *popup); -void UI_popup_handlers_remove_all(struct bContext *C, struct ListBase *handlers); +void UI_region_handlers_add(ListBase *handlers); +void UI_popup_handlers_add(bContext *C, ListBase *handlers, uiPopupBlockHandle *popup, char flag); +void UI_popup_handlers_remove(ListBase *handlers, uiPopupBlockHandle *popup); +void UI_popup_handlers_remove_all(bContext *C, ListBase *handlers); /* Module * * init and exit should be called before using this module. init_userdef must * be used to reinitialize some internal state if user preferences change. */ -void UI_init(void); +void UI_init(); /* after reading userdef file */ -void UI_init_userdef(void); -void UI_reinit_font(void); -void UI_exit(void); +void UI_init_userdef(); +void UI_reinit_font(); +void UI_exit(); /* Layout * @@ -2065,7 +2011,7 @@ enum { UI_LAYOUT_ALIGN_RIGHT = 3, }; -typedef enum eUI_Item_Flag { +enum eUI_Item_Flag { /* UI_ITEM_O_RETURN_PROPS = 1 << 0, */ /* UNUSED */ UI_ITEM_R_EXPAND = 1 << 1, UI_ITEM_R_SLIDER = 1 << 2, @@ -2095,7 +2041,7 @@ typedef enum eUI_Item_Flag { UI_ITEM_R_FORCE_BLANK_DECORATE = 1 << 13, /* Even create the property split layout if there's no name to show there. */ UI_ITEM_R_SPLIT_EMPTY_NAME = 1 << 14, -} eUI_Item_Flag; +}; ENUM_OPERATORS(eUI_Item_Flag, UI_ITEM_R_SPLIT_EMPTY_NAME) #define UI_ITEM_NONE eUI_Item_Flag(0) @@ -2140,7 +2086,7 @@ uiLayout *UI_block_layout(uiBlock *block, int size, int em, int padding, - const struct uiStyle *style); + const uiStyle *style); void UI_block_layout_set_current(uiBlock *block, uiLayout *layout); void UI_block_layout_resolve(uiBlock *block, int *r_x, int *r_y); bool UI_block_layout_needs_resolving(const uiBlock *block); @@ -2158,14 +2104,14 @@ void UI_block_layout_free(uiBlock *block); */ bool UI_block_apply_search_filter(uiBlock *block, const char *search_filter); -void UI_region_message_subscribe(struct ARegion *region, struct wmMsgBus *mbus); +void UI_region_message_subscribe(ARegion *region, wmMsgBus *mbus); uiBlock *uiLayoutGetBlock(uiLayout *layout); void uiLayoutSetFunc(uiLayout *layout, uiMenuHandleFunc handlefunc, void *argv); -void uiLayoutSetContextPointer(uiLayout *layout, const char *name, struct PointerRNA *ptr); -struct bContextStore *uiLayoutGetContextStore(uiLayout *layout); -void uiLayoutContextCopy(uiLayout *layout, struct bContextStore *context); +void uiLayoutSetContextPointer(uiLayout *layout, const char *name, PointerRNA *ptr); +bContextStore *uiLayoutGetContextStore(uiLayout *layout); +void uiLayoutContextCopy(uiLayout *layout, bContextStore *context); /** * Set tooltip function for all buttons in the layout. @@ -2187,21 +2133,20 @@ void uiLayoutSetTooltipFunc(uiLayout *layout, /** * This is a bit of a hack but best keep it in one place at least. */ -struct wmOperatorType *UI_but_operatortype_get_from_enum_menu(struct uiBut *but, - struct PropertyRNA **r_prop); +wmOperatorType *UI_but_operatortype_get_from_enum_menu(uiBut *but, PropertyRNA **r_prop); /** * This is a bit of a hack but best keep it in one place at least. */ -struct MenuType *UI_but_menutype_get(uiBut *but); +MenuType *UI_but_menutype_get(uiBut *but); /** * This is a bit of a hack but best keep it in one place at least. */ -struct PanelType *UI_but_paneltype_get(uiBut *but); -void UI_menutype_draw(struct bContext *C, struct MenuType *mt, struct uiLayout *layout); +PanelType *UI_but_paneltype_get(uiBut *but); +void UI_menutype_draw(bContext *C, MenuType *mt, uiLayout *layout); /** * Used for popup panels only. */ -void UI_paneltype_draw(struct bContext *C, struct PanelType *pt, struct uiLayout *layout); +void UI_paneltype_draw(bContext *C, PanelType *pt, uiLayout *layout); /* Only for convenience. */ void uiLayoutSetContextFromBut(uiLayout *layout, uiBut *but); @@ -2266,9 +2211,9 @@ uiLayout *uiLayoutGridFlow(uiLayout *layout, bool align); uiLayout *uiLayoutBox(uiLayout *layout); uiLayout *uiLayoutListBox(uiLayout *layout, - struct uiList *ui_list, - struct PointerRNA *actptr, - struct PropertyRNA *actprop); + uiList *ui_list, + PointerRNA *actptr, + PropertyRNA *actprop); uiLayout *uiLayoutAbsolute(uiLayout *layout, bool align); uiLayout *uiLayoutSplit(uiLayout *layout, float percentage, bool align); uiLayout *uiLayoutOverlap(uiLayout *layout); @@ -2276,10 +2221,10 @@ uiBlock *uiLayoutAbsoluteBlock(uiLayout *layout); uiLayout *uiLayoutRadial(uiLayout *layout); /* templates */ -void uiTemplateHeader(uiLayout *layout, struct bContext *C); +void uiTemplateHeader(uiLayout *layout, bContext *C); void uiTemplateID(uiLayout *layout, - const struct bContext *C, - struct PointerRNA *ptr, + const bContext *C, + PointerRNA *ptr, const char *propname, const char *newop, const char *openop, @@ -2288,8 +2233,8 @@ void uiTemplateID(uiLayout *layout, bool live_icon, const char *text); void uiTemplateIDBrowse(uiLayout *layout, - struct bContext *C, - struct PointerRNA *ptr, + bContext *C, + PointerRNA *ptr, const char *propname, const char *newop, const char *openop, @@ -2297,8 +2242,8 @@ void uiTemplateIDBrowse(uiLayout *layout, int filter, const char *text); void uiTemplateIDPreview(uiLayout *layout, - struct bContext *C, - struct PointerRNA *ptr, + bContext *C, + PointerRNA *ptr, const char *propname, const char *newop, const char *openop, @@ -2311,8 +2256,8 @@ void uiTemplateIDPreview(uiLayout *layout, * Version of #uiTemplateID using tabs. */ void uiTemplateIDTabs(uiLayout *layout, - struct bContext *C, - struct PointerRNA *ptr, + bContext *C, + PointerRNA *ptr, const char *propname, const char *newop, const char *menu, @@ -2326,7 +2271,7 @@ void uiTemplateIDTabs(uiLayout *layout, * used to determine the type of ID-pointer that can be used. */ void uiTemplateAnyID(uiLayout *layout, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, const char *proptypename, const char *text); @@ -2335,18 +2280,18 @@ void uiTemplateAnyID(uiLayout *layout, * A version of uiTemplateID that works for non-ID types. */ void uiTemplateSearch(uiLayout *layout, - struct bContext *C, - struct PointerRNA *ptr, + bContext *C, + PointerRNA *ptr, const char *propname, - struct PointerRNA *searchptr, + PointerRNA *searchptr, const char *searchpropname, const char *newop, const char *unlinkop); void uiTemplateSearchPreview(uiLayout *layout, - struct bContext *C, - struct PointerRNA *ptr, + bContext *C, + PointerRNA *ptr, const char *propname, - struct PointerRNA *searchptr, + PointerRNA *searchptr, const char *searchpropname, const char *newop, const char *unlinkop, @@ -2360,45 +2305,42 @@ void uiTemplateSearchPreview(uiLayout *layout, * - root_ptr: struct that path gets built from */ void uiTemplatePathBuilder(uiLayout *layout, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, - struct PointerRNA *root_ptr, + PointerRNA *root_ptr, const char *text); -void uiTemplateModifiers(uiLayout *layout, struct bContext *C); -void uiTemplateGpencilModifiers(uiLayout *layout, struct bContext *C); +void uiTemplateModifiers(uiLayout *layout, bContext *C); +void uiTemplateGpencilModifiers(uiLayout *layout, bContext *C); /** * Check if the shader effect panels don't match the data and rebuild the panels if so. */ -void uiTemplateShaderFx(uiLayout *layout, struct bContext *C); +void uiTemplateShaderFx(uiLayout *layout, bContext *C); /** * Check if the constraint panels don't match the data and rebuild the panels if so. */ -void uiTemplateConstraints(uiLayout *layout, struct bContext *C, bool use_bone_constraints); +void uiTemplateConstraints(uiLayout *layout, bContext *C, bool use_bone_constraints); -uiLayout *uiTemplateGpencilModifier(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr); +uiLayout *uiTemplateGpencilModifier(uiLayout *layout, bContext *C, PointerRNA *ptr); void uiTemplateGpencilColorPreview(uiLayout *layout, - struct bContext *C, - struct PointerRNA *ptr, + bContext *C, + PointerRNA *ptr, const char *propname, int rows, int cols, float scale, int filter); -void uiTemplateOperatorRedoProperties(uiLayout *layout, const struct bContext *C); +void uiTemplateOperatorRedoProperties(uiLayout *layout, const bContext *C); -void uiTemplateConstraintHeader(uiLayout *layout, struct PointerRNA *ptr); +void uiTemplateConstraintHeader(uiLayout *layout, PointerRNA *ptr); void uiTemplatePreview(uiLayout *layout, - struct bContext *C, - struct ID *id, + bContext *C, + ID *id, bool show_buttons, - struct ID *parent, - struct MTex *slot, + ID *parent, + MTex *slot, const char *preview_id); -void uiTemplateColorRamp(uiLayout *layout, - struct PointerRNA *ptr, - const char *propname, - bool expand); +void uiTemplateColorRamp(uiLayout *layout, PointerRNA *ptr, const char *propname, bool expand); /** * \param icon_scale: Scale of the icon, 1x == button height. */ @@ -2407,16 +2349,16 @@ void uiTemplateIcon(uiLayout *layout, int icon_value, float icon_scale); * \param icon_scale: Scale of the icon, 1x == button height. */ void uiTemplateIconView(uiLayout *layout, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, bool show_labels, float icon_scale, float icon_scale_popup); -void uiTemplateHistogram(uiLayout *layout, struct PointerRNA *ptr, const char *propname); -void uiTemplateWaveform(uiLayout *layout, struct PointerRNA *ptr, const char *propname); -void uiTemplateVectorscope(uiLayout *layout, struct PointerRNA *ptr, const char *propname); +void uiTemplateHistogram(uiLayout *layout, PointerRNA *ptr, const char *propname); +void uiTemplateWaveform(uiLayout *layout, PointerRNA *ptr, const char *propname); +void uiTemplateVectorscope(uiLayout *layout, PointerRNA *ptr, const char *propname); void uiTemplateCurveMapping(uiLayout *layout, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, int type, bool levels, @@ -2427,57 +2369,43 @@ void uiTemplateCurveMapping(uiLayout *layout, * Template for a path creation widget intended for custom bevel profiles. * This section is quite similar to #uiTemplateCurveMapping, but with reduced complexity. */ -void uiTemplateCurveProfile(uiLayout *layout, struct PointerRNA *ptr, const char *propname); +void uiTemplateCurveProfile(uiLayout *layout, PointerRNA *ptr, const char *propname); /** * This template now follows User Preference for type - name is not correct anymore. */ void uiTemplateColorPicker(uiLayout *layout, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, bool value_slider, bool lock, bool lock_luminosity, bool cubic); -void uiTemplatePalette(uiLayout *layout, - struct PointerRNA *ptr, - const char *propname, - bool colors); -void uiTemplateCryptoPicker(uiLayout *layout, - struct PointerRNA *ptr, - const char *propname, - int icon); +void uiTemplatePalette(uiLayout *layout, PointerRNA *ptr, const char *propname, bool colors); +void uiTemplateCryptoPicker(uiLayout *layout, PointerRNA *ptr, const char *propname, int icon); /** * \todo for now, grouping of layers is determined by dividing up the length of * the array of layer bitflags */ void uiTemplateLayers(uiLayout *layout, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, - struct PointerRNA *used_ptr, + PointerRNA *used_ptr, const char *used_propname, int active_layer); void uiTemplateImage(uiLayout *layout, - struct bContext *C, - struct PointerRNA *ptr, + bContext *C, + PointerRNA *ptr, const char *propname, - struct PointerRNA *userptr, + PointerRNA *userptr, bool compact, bool multiview); -void uiTemplateImageSettings(uiLayout *layout, struct PointerRNA *imfptr, bool color_management); -void uiTemplateImageStereo3d(uiLayout *layout, struct PointerRNA *stereo3d_format_ptr); -void uiTemplateImageViews(uiLayout *layout, struct PointerRNA *imaptr); -void uiTemplateImageFormatViews(uiLayout *layout, - struct PointerRNA *imfptr, - struct PointerRNA *ptr); -void uiTemplateImageLayers(uiLayout *layout, - struct bContext *C, - struct Image *ima, - struct ImageUser *iuser); -void uiTemplateImageInfo(uiLayout *layout, - struct bContext *C, - struct Image *ima, - struct ImageUser *iuser); -void uiTemplateRunningJobs(uiLayout *layout, struct bContext *C); +void uiTemplateImageSettings(uiLayout *layout, PointerRNA *imfptr, bool color_management); +void uiTemplateImageStereo3d(uiLayout *layout, PointerRNA *stereo3d_format_ptr); +void uiTemplateImageViews(uiLayout *layout, PointerRNA *imaptr); +void uiTemplateImageFormatViews(uiLayout *layout, PointerRNA *imfptr, PointerRNA *ptr); +void uiTemplateImageLayers(uiLayout *layout, bContext *C, Image *ima, ImageUser *iuser); +void uiTemplateImageInfo(uiLayout *layout, bContext *C, Image *ima, ImageUser *iuser); +void uiTemplateRunningJobs(uiLayout *layout, bContext *C); void UI_but_func_operator_search(uiBut *but); void uiTemplateOperatorSearch(uiLayout *layout); @@ -2489,36 +2417,33 @@ void uiTemplateMenuSearch(uiLayout *layout); * This function does not initialize the layout, * functions can be called on the layout before and after. */ -void uiTemplateOperatorPropertyButs(const struct bContext *C, - uiLayout *layout, - struct wmOperator *op, - eButLabelAlign label_align, - short flag); -void uiTemplateHeader3D_mode(uiLayout *layout, struct bContext *C); -void uiTemplateEditModeSelection(uiLayout *layout, struct bContext *C); -void uiTemplateReportsBanner(uiLayout *layout, struct bContext *C); -void uiTemplateInputStatus(uiLayout *layout, struct bContext *C); -void uiTemplateStatusInfo(uiLayout *layout, struct bContext *C); -void uiTemplateKeymapItemProperties(uiLayout *layout, struct PointerRNA *ptr); +void uiTemplateOperatorPropertyButs( + const bContext *C, uiLayout *layout, wmOperator *op, eButLabelAlign label_align, short flag); +void uiTemplateHeader3D_mode(uiLayout *layout, bContext *C); +void uiTemplateEditModeSelection(uiLayout *layout, bContext *C); +void uiTemplateReportsBanner(uiLayout *layout, bContext *C); +void uiTemplateInputStatus(uiLayout *layout, bContext *C); +void uiTemplateStatusInfo(uiLayout *layout, bContext *C); +void uiTemplateKeymapItemProperties(uiLayout *layout, PointerRNA *ptr); -bool uiTemplateEventFromKeymapItem(struct uiLayout *layout, +bool uiTemplateEventFromKeymapItem(uiLayout *layout, const char *text, - const struct wmKeyMapItem *kmi, + const wmKeyMapItem *kmi, bool text_fallback); void uiTemplateComponentMenu(uiLayout *layout, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, const char *name); -void uiTemplateNodeSocket(uiLayout *layout, struct bContext *C, const float color[4]); +void uiTemplateNodeSocket(uiLayout *layout, bContext *C, const float color[4]); /** * Draw the main CacheFile properties and operators (file path, scale, etc.), that is those which * do not have their own dedicated template functions. */ void uiTemplateCacheFile(uiLayout *layout, - const struct bContext *C, - struct PointerRNA *ptr, + const bContext *C, + PointerRNA *ptr, const char *propname); /** @@ -2526,33 +2451,27 @@ void uiTemplateCacheFile(uiLayout *layout, * Returns true if `ptr` has a RNACacheFile, false otherwise. If false, the output parameter is not * initialized. */ -bool uiTemplateCacheFilePointer(struct PointerRNA *ptr, - const char *propname, - struct PointerRNA *r_file_ptr); +bool uiTemplateCacheFilePointer(PointerRNA *ptr, const char *propname, PointerRNA *r_file_ptr); /** * Draw the velocity related properties of the CacheFile. */ -void uiTemplateCacheFileVelocity(uiLayout *layout, struct PointerRNA *fileptr); +void uiTemplateCacheFileVelocity(uiLayout *layout, PointerRNA *fileptr); /** * Draw the render procedural related properties of the CacheFile. */ -void uiTemplateCacheFileProcedural(uiLayout *layout, - const struct bContext *C, - struct PointerRNA *fileptr); +void uiTemplateCacheFileProcedural(uiLayout *layout, const bContext *C, PointerRNA *fileptr); /** * Draw the time related properties of the CacheFile. */ -void uiTemplateCacheFileTimeSettings(uiLayout *layout, struct PointerRNA *fileptr); +void uiTemplateCacheFileTimeSettings(uiLayout *layout, PointerRNA *fileptr); /** * Draw the override layers related properties of the CacheFile. */ -void uiTemplateCacheFileLayers(uiLayout *layout, - const struct bContext *C, - struct PointerRNA *fileptr); +void uiTemplateCacheFileLayers(uiLayout *layout, const bContext *C, PointerRNA *fileptr); /** Default UIList class name, keep in sync with its declaration in `bl_ui/__init__.py`. */ #define UI_UL_DEFAULT_CLASS_NAME "UI_UL_list" @@ -2573,12 +2492,12 @@ enum uiTemplateListFlags { ENUM_OPERATORS(uiTemplateListFlags, UI_TEMPLATE_LIST_FLAGS_LAST); void uiTemplateList(uiLayout *layout, - const struct bContext *C, + const bContext *C, const char *listtype_name, const char *list_id, - struct PointerRNA *dataptr, + PointerRNA *dataptr, const char *propname, - struct PointerRNA *active_dataptr, + PointerRNA *active_dataptr, const char *active_propname, const char *item_dyntip_propname, int rows, @@ -2586,116 +2505,101 @@ void uiTemplateList(uiLayout *layout, int layout_type, int columns, enum uiTemplateListFlags flags); -struct uiList *uiTemplateList_ex(uiLayout *layout, - const struct bContext *C, - const char *listtype_name, - const char *list_id, - struct PointerRNA *dataptr, - const char *propname, - struct PointerRNA *active_dataptr, - const char *active_propname, - const char *item_dyntip_propname, - int rows, - int maxrows, - int layout_type, - int columns, - enum uiTemplateListFlags flags, - void *customdata); +uiList *uiTemplateList_ex(uiLayout *layout, + const bContext *C, + const char *listtype_name, + const char *list_id, + PointerRNA *dataptr, + const char *propname, + PointerRNA *active_dataptr, + const char *active_propname, + const char *item_dyntip_propname, + int rows, + int maxrows, + int layout_type, + int columns, + enum uiTemplateListFlags flags, + void *customdata); -void uiTemplateNodeLink(uiLayout *layout, - struct bContext *C, - struct bNodeTree *ntree, - struct bNode *node, - struct bNodeSocket *input); -void uiTemplateNodeView(uiLayout *layout, - struct bContext *C, - struct bNodeTree *ntree, - struct bNode *node, - struct bNodeSocket *input); -void uiTemplateNodeAssetMenuItems(uiLayout *layout, struct bContext *C, const char *catalog_path); -void uiTemplateTextureUser(uiLayout *layout, struct bContext *C); +void uiTemplateNodeLink( + uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, bNodeSocket *input); +void uiTemplateNodeView( + uiLayout *layout, bContext *C, bNodeTree *ntree, bNode *node, bNodeSocket *input); +void uiTemplateNodeAssetMenuItems(uiLayout *layout, bContext *C, const char *catalog_path); +void uiTemplateTextureUser(uiLayout *layout, bContext *C); /** * Button to quickly show texture in Properties Editor texture tab. */ void uiTemplateTextureShow(uiLayout *layout, - const struct bContext *C, - struct PointerRNA *ptr, - struct PropertyRNA *prop); + const bContext *C, + PointerRNA *ptr, + PropertyRNA *prop); -void uiTemplateMovieClip(struct uiLayout *layout, - struct bContext *C, - struct PointerRNA *ptr, - const char *propname, - bool compact); -void uiTemplateTrack(struct uiLayout *layout, struct PointerRNA *ptr, const char *propname); -void uiTemplateMarker(struct uiLayout *layout, - struct PointerRNA *ptr, +void uiTemplateMovieClip( + uiLayout *layout, bContext *C, PointerRNA *ptr, const char *propname, bool compact); +void uiTemplateTrack(uiLayout *layout, PointerRNA *ptr, const char *propname); +void uiTemplateMarker(uiLayout *layout, + PointerRNA *ptr, const char *propname, - struct PointerRNA *userptr, - struct PointerRNA *trackptr, + PointerRNA *userptr, + PointerRNA *trackptr, bool compact); -void uiTemplateMovieclipInformation(struct uiLayout *layout, - struct PointerRNA *ptr, +void uiTemplateMovieclipInformation(uiLayout *layout, + PointerRNA *ptr, const char *propname, - struct PointerRNA *userptr); + PointerRNA *userptr); -void uiTemplateColorspaceSettings(struct uiLayout *layout, - struct PointerRNA *ptr, - const char *propname); -void uiTemplateColormanagedViewSettings(struct uiLayout *layout, - struct bContext *C, - struct PointerRNA *ptr, +void uiTemplateColorspaceSettings(uiLayout *layout, PointerRNA *ptr, const char *propname); +void uiTemplateColormanagedViewSettings(uiLayout *layout, + bContext *C, + PointerRNA *ptr, const char *propname); -int uiTemplateRecentFiles(struct uiLayout *layout, int rows); -void uiTemplateFileSelectPath(uiLayout *layout, - struct bContext *C, - struct FileSelectParams *params); +int uiTemplateRecentFiles(uiLayout *layout, int rows); +void uiTemplateFileSelectPath(uiLayout *layout, bContext *C, FileSelectParams *params); enum { UI_TEMPLATE_ASSET_DRAW_NO_NAMES = (1 << 0), UI_TEMPLATE_ASSET_DRAW_NO_FILTER = (1 << 1), UI_TEMPLATE_ASSET_DRAW_NO_LIBRARY = (1 << 2), }; -void uiTemplateAssetView(struct uiLayout *layout, - const struct bContext *C, +void uiTemplateAssetView(uiLayout *layout, + const bContext *C, const char *list_id, - struct PointerRNA *asset_library_dataptr, + PointerRNA *asset_library_dataptr, const char *asset_library_propname, - struct PointerRNA *assets_dataptr, + PointerRNA *assets_dataptr, const char *assets_propname, - struct PointerRNA *active_dataptr, + PointerRNA *active_dataptr, const char *active_propname, - const struct AssetFilterSettings *filter_settings, + const AssetFilterSettings *filter_settings, int display_flags, const char *activate_opname, - struct PointerRNA *r_activate_op_properties, + PointerRNA *r_activate_op_properties, const char *drag_opname, - struct PointerRNA *r_drag_op_properties); + PointerRNA *r_drag_op_properties); -void uiTemplateLightLinkingCollection(struct uiLayout *layout, - struct PointerRNA *ptr, - const char *propname); +void uiTemplateLightLinkingCollection(uiLayout *layout, PointerRNA *ptr, const char *propname); -void uiTemplateGreasePencilLayerTree(uiLayout *layout, struct bContext *C); +void uiTemplateGreasePencilLayerTree(uiLayout *layout, bContext *C); /** * \return: A RNA pointer for the operator properties. */ -struct PointerRNA *UI_list_custom_activate_operator_set(struct uiList *ui_list, - const char *opname, - bool create_properties); +PointerRNA *UI_list_custom_activate_operator_set(uiList *ui_list, + const char *opname, + bool create_properties); /** * \return: A RNA pointer for the operator properties. */ -struct PointerRNA *UI_list_custom_drag_operator_set(struct uiList *ui_list, - const char *opname, - bool create_properties); +PointerRNA *UI_list_custom_drag_operator_set(uiList *ui_list, + const char *opname, + bool create_properties); /* items */ void uiItemO(uiLayout *layout, const char *name, int icon, const char *opname); void uiItemEnumO_ptr(uiLayout *layout, - struct wmOperatorType *ot, + wmOperatorType *ot, const char *name, int icon, const char *propname, @@ -2748,40 +2652,40 @@ void uiItemStringO(uiLayout *layout, const char *value); void uiItemFullO_ptr(uiLayout *layout, - struct wmOperatorType *ot, + wmOperatorType *ot, const char *name, int icon, - struct IDProperty *properties, + IDProperty *properties, wmOperatorCallContext context, eUI_Item_Flag flag, - struct PointerRNA *r_opptr); + PointerRNA *r_opptr); void uiItemFullO(uiLayout *layout, const char *opname, const char *name, int icon, - struct IDProperty *properties, + IDProperty *properties, wmOperatorCallContext context, eUI_Item_Flag flag, - struct PointerRNA *r_opptr); + PointerRNA *r_opptr); void uiItemFullOMenuHold_ptr(uiLayout *layout, - struct wmOperatorType *ot, + wmOperatorType *ot, const char *name, int icon, - struct IDProperty *properties, + IDProperty *properties, wmOperatorCallContext context, eUI_Item_Flag flag, const char *menu_id, /* extra menu arg. */ - struct PointerRNA *r_opptr); + PointerRNA *r_opptr); void uiItemR(uiLayout *layout, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, eUI_Item_Flag flag, const char *name, int icon); void uiItemFullR(uiLayout *layout, - struct PointerRNA *ptr, - struct PropertyRNA *prop, + PointerRNA *ptr, + PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, @@ -2791,8 +2695,8 @@ void uiItemFullR(uiLayout *layout, * Use a wrapper function since re-implementing all the logic in this function would be messy. */ void uiItemFullR_with_popover(uiLayout *layout, - struct PointerRNA *ptr, - struct PropertyRNA *prop, + PointerRNA *ptr, + PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, @@ -2800,58 +2704,54 @@ void uiItemFullR_with_popover(uiLayout *layout, int icon, const char *panel_type); void uiItemFullR_with_menu(uiLayout *layout, - struct PointerRNA *ptr, - struct PropertyRNA *prop, + PointerRNA *ptr, + PropertyRNA *prop, int index, int value, eUI_Item_Flag flag, const char *name, int icon, const char *menu_type); -void uiItemEnumR_prop(uiLayout *layout, - const char *name, - int icon, - struct PointerRNA *ptr, - struct PropertyRNA *prop, - int value); +void uiItemEnumR_prop( + uiLayout *layout, const char *name, int icon, PointerRNA *ptr, PropertyRNA *prop, int value); void uiItemEnumR(uiLayout *layout, const char *name, int icon, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, int value); void uiItemEnumR_string_prop(uiLayout *layout, - struct PointerRNA *ptr, - struct PropertyRNA *prop, + PointerRNA *ptr, + PropertyRNA *prop, const char *value, const char *name, int icon); void uiItemEnumR_string(uiLayout *layout, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, const char *value, const char *name, int icon); -void uiItemsEnumR(uiLayout *layout, struct PointerRNA *ptr, const char *propname); +void uiItemsEnumR(uiLayout *layout, PointerRNA *ptr, const char *propname); void uiItemPointerR_prop(uiLayout *layout, - struct PointerRNA *ptr, - struct PropertyRNA *prop, - struct PointerRNA *searchptr, - struct PropertyRNA *searchprop, + PointerRNA *ptr, + PropertyRNA *prop, + PointerRNA *searchptr, + PropertyRNA *searchprop, const char *name, int icon, bool results_are_suggestions); void uiItemPointerR(uiLayout *layout, - struct PointerRNA *ptr, + PointerRNA *ptr, const char *propname, - struct PointerRNA *searchptr, + PointerRNA *searchptr, const char *searchpropname, const char *name, int icon); void uiItemsFullEnumO(uiLayout *layout, const char *opname, const char *propname, - struct IDProperty *properties, + IDProperty *properties, wmOperatorCallContext context, eUI_Item_Flag flag); /** @@ -2860,20 +2760,20 @@ void uiItemsFullEnumO(uiLayout *layout, * A version of #uiItemsFullEnumO that takes pre-calculated item array. */ void uiItemsFullEnumO_items(uiLayout *layout, - struct wmOperatorType *ot, - struct PointerRNA ptr, - struct PropertyRNA *prop, - struct IDProperty *properties, + wmOperatorType *ot, + PointerRNA ptr, + PropertyRNA *prop, + IDProperty *properties, wmOperatorCallContext context, eUI_Item_Flag flag, - const struct EnumPropertyItem *item_array, + const EnumPropertyItem *item_array, int totitem); -typedef struct uiPropertySplitWrapper { +struct uiPropertySplitWrapper { uiLayout *label_column; uiLayout *property_row; uiLayout *decorate_column; -} uiPropertySplitWrapper; +}; /** * Normally, we handle the split layout in #uiItemFullR(), but there are other cases where the @@ -2883,8 +2783,7 @@ typedef struct uiPropertySplitWrapper { uiPropertySplitWrapper uiItemPropertySplitWrapperCreate(uiLayout *parent_layout); void uiItemL(uiLayout *layout, const char *name, int icon); /* label */ -struct uiBut *uiItemL_ex( - uiLayout *layout, const char *name, int icon, bool highlight, bool redalert); +uiBut *uiItemL_ex(uiLayout *layout, const char *name, int icon, bool highlight, bool redalert); /** * Helper to add a label and creates a property split layout if needed. */ @@ -2892,11 +2791,11 @@ uiLayout *uiItemL_respect_property_split(uiLayout *layout, const char *text, int /** * Label icon for dragging. */ -void uiItemLDrag(uiLayout *layout, struct PointerRNA *ptr, const char *name, int icon); +void uiItemLDrag(uiLayout *layout, PointerRNA *ptr, const char *name, int icon); /** * Menu. */ -void uiItemM_ptr(uiLayout *layout, struct MenuType *mt, const char *name, int icon); +void uiItemM_ptr(uiLayout *layout, MenuType *mt, const char *name, int icon); void uiItemM(uiLayout *layout, const char *menuname, const char *name, int icon); /** * Menu contents. @@ -2909,15 +2808,12 @@ void uiItemMContents(uiLayout *layout, const char *menuname); * Insert a decorator item for a button with the same property as \a prop. * To force inserting a blank dummy element, NULL can be passed for \a ptr and \a prop. */ -void uiItemDecoratorR_prop(uiLayout *layout, - struct PointerRNA *ptr, - struct PropertyRNA *prop, - int index); +void uiItemDecoratorR_prop(uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, int index); /** * Insert a decorator item for a button with the same property as \a prop. * To force inserting a blank dummy element, NULL can be passed for \a ptr and \a propname. */ -void uiItemDecoratorR(uiLayout *layout, struct PointerRNA *ptr, const char *propname, int index); +void uiItemDecoratorR(uiLayout *layout, PointerRNA *ptr, const char *propname, int index); /** Value item */ void uiItemV(uiLayout *layout, const char *name, int icon, int argval); /** Separator item */ @@ -2934,14 +2830,11 @@ void uiItemProgressIndicator(uiLayout *layout, /* popover */ void uiItemPopoverPanel_ptr( - uiLayout *layout, const struct bContext *C, struct PanelType *pt, const char *name, int icon); -void uiItemPopoverPanel(uiLayout *layout, - const struct bContext *C, - const char *panel_type, - const char *name, - int icon); + uiLayout *layout, const bContext *C, PanelType *pt, const char *name, int icon); +void uiItemPopoverPanel( + uiLayout *layout, const bContext *C, const char *panel_type, const char *name, int icon); void uiItemPopoverPanelFromGroup(uiLayout *layout, - struct bContext *C, + bContext *C, int space_id, int region_id, const char *context, @@ -2956,38 +2849,35 @@ void uiItemMenuF(uiLayout *layout, const char *name, int icon, uiMenuCreateFunc */ void uiItemMenuFN(uiLayout *layout, const char *name, int icon, uiMenuCreateFunc func, void *argN); void uiItemMenuEnumFullO_ptr(uiLayout *layout, - const struct bContext *C, - struct wmOperatorType *ot, + const bContext *C, + wmOperatorType *ot, const char *propname, const char *name, int icon, - struct PointerRNA *r_opptr); + PointerRNA *r_opptr); void uiItemMenuEnumFullO(uiLayout *layout, - const struct bContext *C, + const bContext *C, const char *opname, const char *propname, const char *name, int icon, - struct PointerRNA *r_opptr); + PointerRNA *r_opptr); void uiItemMenuEnumO(uiLayout *layout, - const struct bContext *C, + const bContext *C, const char *opname, const char *propname, const char *name, int icon); -void uiItemMenuEnumR_prop(uiLayout *layout, - struct PointerRNA *ptr, - struct PropertyRNA *prop, - const char *name, - int icon); +void uiItemMenuEnumR_prop( + uiLayout *layout, PointerRNA *ptr, PropertyRNA *prop, const char *name, int icon); void uiItemMenuEnumR( - uiLayout *layout, struct PointerRNA *ptr, const char *propname, const char *name, int icon); + uiLayout *layout, PointerRNA *ptr, const char *propname, const char *name, int icon); void uiItemTabsEnumR_prop(uiLayout *layout, - struct bContext *C, - struct PointerRNA *ptr, - struct PropertyRNA *prop, - struct PointerRNA *ptr_highlight, - struct PropertyRNA *prop_highlight, + bContext *C, + PointerRNA *ptr, + PropertyRNA *prop, + PointerRNA *ptr_highlight, + PropertyRNA *prop_highlight, bool icon_only); /* Only for testing, inspecting layouts. */ @@ -3003,53 +2893,53 @@ const char *UI_layout_introspect(uiLayout *layout); uiLayout *uiItemsAlertBox(uiBlock *block, int size, eAlertIcon icon); /* UI Operators */ -typedef struct uiDragColorHandle { +struct uiDragColorHandle { float color[3]; bool gamma_corrected; -} uiDragColorHandle; +}; -void ED_operatortypes_ui(void); +void ED_operatortypes_ui(); /** * \brief User Interface Keymap */ -void ED_keymap_ui(struct wmKeyConfig *keyconf); -void ED_dropboxes_ui(void); -void ED_uilisttypes_ui(void); +void ED_keymap_ui(wmKeyConfig *keyconf); +void ED_dropboxes_ui(); +void ED_uilisttypes_ui(); -void UI_drop_color_copy(struct bContext *C, struct wmDrag *drag, struct wmDropBox *drop); -bool UI_drop_color_poll(struct bContext *C, struct wmDrag *drag, const struct wmEvent *event); +void UI_drop_color_copy(bContext *C, wmDrag *drag, wmDropBox *drop); +bool UI_drop_color_poll(bContext *C, wmDrag *drag, const wmEvent *event); -bool UI_context_copy_to_selected_list(struct bContext *C, - struct PointerRNA *ptr, - struct PropertyRNA *prop, - struct ListBase *r_lb, +bool UI_context_copy_to_selected_list(bContext *C, + PointerRNA *ptr, + PropertyRNA *prop, + ListBase *r_lb, bool *r_use_path_from_id, char **r_path); -bool UI_context_copy_to_selected_check(struct PointerRNA *ptr, - struct PointerRNA *ptr_link, - struct PropertyRNA *prop, +bool UI_context_copy_to_selected_check(PointerRNA *ptr, + PointerRNA *ptr_link, + PropertyRNA *prop, const char *path, bool use_path_from_id, - struct PointerRNA *r_ptr, - struct PropertyRNA **r_prop); + PointerRNA *r_ptr, + PropertyRNA **r_prop); /* Helpers for Operators */ -uiBut *UI_context_active_but_get(const struct bContext *C); +uiBut *UI_context_active_but_get(const bContext *C); /** * Version of #UI_context_active_get() that uses the result of #CTX_wm_menu() * if set. Does not traverse into parent menus, which may be wanted in some * cases. */ -uiBut *UI_context_active_but_get_respect_menu(const struct bContext *C); +uiBut *UI_context_active_but_get_respect_menu(const bContext *C); /** * Version of #UI_context_active_but_get that also returns RNA property info. * Helper function for insert keyframe, reset to default, etc operators. * * \return active button, NULL if none found or if it doesn't contain valid RNA data. */ -uiBut *UI_context_active_but_prop_get(const struct bContext *C, - struct PointerRNA *r_ptr, - struct PropertyRNA **r_prop, +uiBut *UI_context_active_but_prop_get(const bContext *C, + PointerRNA *r_ptr, + PropertyRNA **r_prop, int *r_index); /** @@ -3057,22 +2947,22 @@ uiBut *UI_context_active_but_prop_get(const struct bContext *C, * * \return active button, NULL if none found or if it doesn't contain valid RNA data. */ -uiBut *UI_region_active_but_prop_get(const struct ARegion *region, - struct PointerRNA *r_ptr, - struct PropertyRNA **r_prop, +uiBut *UI_region_active_but_prop_get(const ARegion *region, + PointerRNA *r_ptr, + PropertyRNA **r_prop, int *r_index); -void UI_context_active_but_prop_handle(struct bContext *C, bool handle_undo); -void UI_context_active_but_clear(struct bContext *C, struct wmWindow *win, struct ARegion *region); +void UI_context_active_but_prop_handle(bContext *C, bool handle_undo); +void UI_context_active_but_clear(bContext *C, wmWindow *win, ARegion *region); -struct wmOperator *UI_context_active_operator_get(const struct bContext *C); +wmOperator *UI_context_active_operator_get(const bContext *C); /** * Helper function for insert keyframe, reset to default, etc operators. */ -void UI_context_update_anim_flag(const struct bContext *C); -void UI_context_active_but_prop_get_filebrowser(const struct bContext *C, - struct PointerRNA *r_ptr, - struct PropertyRNA **r_prop, +void UI_context_update_anim_flag(const bContext *C); +void UI_context_active_but_prop_get_filebrowser(const bContext *C, + PointerRNA *r_ptr, + PropertyRNA **r_prop, bool *r_is_undo, bool *r_is_userdef); /** @@ -3080,27 +2970,25 @@ void UI_context_active_but_prop_get_filebrowser(const struct bContext *C, * * This is for browsing and editing the ID-blocks used. */ -void UI_context_active_but_prop_get_templateID(struct bContext *C, - struct PointerRNA *r_ptr, - struct PropertyRNA **r_prop); -struct ID *UI_context_active_but_get_tab_ID(struct bContext *C); +void UI_context_active_but_prop_get_templateID(bContext *C, + PointerRNA *r_ptr, + PropertyRNA **r_prop); +ID *UI_context_active_but_get_tab_ID(bContext *C); -uiBut *UI_region_active_but_get(const struct ARegion *region); -uiBut *UI_region_but_find_rect_over(const struct ARegion *region, const struct rcti *rect_px); -uiBlock *UI_region_block_find_mouse_over(const struct ARegion *region, - const int xy[2], - bool only_clip); +uiBut *UI_region_active_but_get(const ARegion *region); +uiBut *UI_region_but_find_rect_over(const ARegion *region, const rcti *rect_px); +uiBlock *UI_region_block_find_mouse_over(const ARegion *region, const int xy[2], bool only_clip); /** * Try to find a search-box region opened from a button in \a button_region. */ -struct ARegion *UI_region_searchbox_region_get(const struct ARegion *button_region); +ARegion *UI_region_searchbox_region_get(const ARegion *button_region); /** #uiFontStyle.align */ -typedef enum eFontStyle_Align { +enum eFontStyle_Align { UI_STYLE_TEXT_LEFT = 0, UI_STYLE_TEXT_CENTER = 1, UI_STYLE_TEXT_RIGHT = 2, -} eFontStyle_Align; +}; struct uiFontStyleDraw_Params { eFontStyle_Align align; @@ -3108,28 +2996,28 @@ struct uiFontStyleDraw_Params { }; /* Styled text draw */ -void UI_fontstyle_set(const struct uiFontStyle *fs); -void UI_fontstyle_draw_ex(const struct uiFontStyle *fs, - const struct rcti *rect, +void UI_fontstyle_set(const uiFontStyle *fs); +void UI_fontstyle_draw_ex(const uiFontStyle *fs, + const rcti *rect, const char *str, size_t str_len, const uchar col[4], - const struct uiFontStyleDraw_Params *fs_params, + const uiFontStyleDraw_Params *fs_params, int *r_xofs, int *r_yofs, - struct ResultBLF *r_info); + ResultBLF *r_info); -void UI_fontstyle_draw(const struct uiFontStyle *fs, - const struct rcti *rect, +void UI_fontstyle_draw(const uiFontStyle *fs, + const rcti *rect, const char *str, size_t str_len, const uchar col[4], - const struct uiFontStyleDraw_Params *fs_params); + const uiFontStyleDraw_Params *fs_params); /** * Drawn same as above, but at 90 degree angle. */ -void UI_fontstyle_draw_rotated(const struct uiFontStyle *fs, - const struct rcti *rect, +void UI_fontstyle_draw_rotated(const uiFontStyle *fs, + const rcti *rect, const char *str, const uchar col[4]); /** @@ -3139,19 +3027,19 @@ void UI_fontstyle_draw_rotated(const struct uiFontStyle *fs, * For drawing on-screen labels. */ void UI_fontstyle_draw_simple( - const struct uiFontStyle *fs, float x, float y, const char *str, const uchar col[4]); + const uiFontStyle *fs, float x, float y, const char *str, const uchar col[4]); /** * Same as #UI_fontstyle_draw but draw a colored backdrop. */ -void UI_fontstyle_draw_simple_backdrop(const struct uiFontStyle *fs, +void UI_fontstyle_draw_simple_backdrop(const uiFontStyle *fs, float x, float y, const char *str, const float col_fg[4], const float col_bg[4]); -int UI_fontstyle_string_width(const struct uiFontStyle *fs, - const char *str) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1, 2); +int UI_fontstyle_string_width(const uiFontStyle *fs, const char *str) ATTR_WARN_UNUSED_RESULT + ATTR_NONNULL(1, 2); /** * Return the width of `str` with the spacing & kerning of `fs` with `aspect` * (representing #uiBlock.aspect) applied. @@ -3162,11 +3050,11 @@ int UI_fontstyle_string_width(const struct uiFontStyle *fs, * Resolve this by calculating the text at the on-screen size, * returning the result scaled back to 1:1. See #92361. */ -int UI_fontstyle_string_width_with_block_aspect(const struct uiFontStyle *fs, +int UI_fontstyle_string_width_with_block_aspect(const uiFontStyle *fs, const char *str, float aspect) ATTR_WARN_UNUSED_RESULT ATTR_NONNULL(1, 2); -int UI_fontstyle_height_max(const struct uiFontStyle *fs); +int UI_fontstyle_height_max(const uiFontStyle *fs); /** * Triangle 'icon' for panel header and other cases. @@ -3176,17 +3064,17 @@ void UI_draw_icon_tri(float x, float y, char dir, const float[4]); /** * Read a style (without any scaling applied). */ -const struct uiStyle *UI_style_get(void); /* use for fonts etc */ +const uiStyle *UI_style_get(); /* use for fonts etc */ /** * Read a style (with the current DPI applied). */ -const struct uiStyle *UI_style_get_dpi(void); +const uiStyle *UI_style_get_dpi(); /* linker workaround ack! */ -void UI_template_fix_linking(void); +void UI_template_fix_linking(); /* UI_OT_editsource helpers */ -bool UI_editsource_enable_check(void); +bool UI_editsource_enable_check(); void UI_editsource_active_but_test(uiBut *but); /** * Remove the editsource data for \a old_but and reinsert it for \a new_but. Use when the button @@ -3204,11 +3092,11 @@ void UI_editsource_but_replace(const uiBut *old_but, uiBut *new_but); * \param region: The region the button is placed in. Make sure this is actually the one the button * is placed in, not just the context region. */ -void UI_but_ensure_in_view(const struct bContext *C, struct ARegion *region, const uiBut *but); +void UI_but_ensure_in_view(const bContext *C, ARegion *region, const uiBut *but); /* UI_butstore_ helpers */ -typedef struct uiButStore uiButStore; -typedef struct uiButStoreElem uiButStoreElem; +struct uiButStore; +struct uiButStoreElem; /** * Create a new button store, the caller must manage and run #UI_butstore_free @@ -3239,7 +3127,7 @@ void UI_butstore_unregister(uiButStore *bs_handle, uiBut **but_p); * for actions that can also be activated using shortcuts while the cursor is over the button. * Without this those shortcuts aren't discoverable for users. */ -const char *UI_key_event_operator_string(const struct bContext *C, +const char *UI_key_event_operator_string(const bContext *C, const char *opname, IDProperty *properties, const bool is_strict, @@ -3252,26 +3140,20 @@ const char *UI_key_event_operator_string(const struct bContext *C, * \param is_label: When true, show a small tip that only shows the name, otherwise show the full * tooltip. */ -struct ARegion *UI_tooltip_create_from_button(struct bContext *C, - struct ARegion *butregion, - uiBut *but, - bool is_label); -struct ARegion *UI_tooltip_create_from_button_or_extra_icon(struct bContext *C, - struct ARegion *butregion, - uiBut *but, - uiButExtraOpIcon *extra_icon, - bool is_label); -struct ARegion *UI_tooltip_create_from_gizmo(struct bContext *C, struct wmGizmo *gz); -void UI_tooltip_free(struct bContext *C, struct bScreen *screen, struct ARegion *region); +ARegion *UI_tooltip_create_from_button(bContext *C, ARegion *butregion, uiBut *but, bool is_label); +ARegion *UI_tooltip_create_from_button_or_extra_icon( + bContext *C, ARegion *butregion, uiBut *but, uiButExtraOpIcon *extra_icon, bool is_label); +ARegion *UI_tooltip_create_from_gizmo(bContext *C, wmGizmo *gz); +void UI_tooltip_free(bContext *C, bScreen *screen, ARegion *region); -typedef struct { +struct uiSearchItemTooltipData { /** A description for the item, e.g. what happens when selecting it. */ char description[UI_MAX_DRAW_STR]; /* The full name of the item, without prefixes or suffixes (e.g. hint with UI_SEP_CHARP). */ const char *name; /** Additional info about the item (e.g. library name of a linked data-block). */ char hint[UI_MAX_DRAW_STR]; -} uiSearchItemTooltipData; +}; /** * Create a tooltip from search-item tooltip data \a item_tooltip data. @@ -3280,10 +3162,10 @@ typedef struct { * \param item_rect: Rectangle of the search item in search region space (#ui_searchbox_butrect()) * which is passed to the tooltip callback. */ -struct ARegion *UI_tooltip_create_from_search_item_generic( - struct bContext *C, - const struct ARegion *searchbox_region, - const struct rcti *item_rect, +ARegion *UI_tooltip_create_from_search_item_generic( + bContext *C, + const ARegion *searchbox_region, + const rcti *item_rect, const uiSearchItemTooltipData *item_tooltip_data); /* How long before a tool-tip shows. */ @@ -3305,9 +3187,9 @@ struct ARegion *UI_tooltip_create_from_search_item_generic( int UI_calc_float_precision(int prec, double value); /* widget batched drawing */ -void UI_widgetbase_draw_cache_begin(void); -void UI_widgetbase_draw_cache_flush(void); -void UI_widgetbase_draw_cache_end(void); +void UI_widgetbase_draw_cache_begin(); +void UI_widgetbase_draw_cache_flush(); +void UI_widgetbase_draw_cache_end(); /* Use for resetting the theme. */ /** @@ -3316,10 +3198,10 @@ void UI_widgetbase_draw_cache_end(void); * \note When you add new colors, created & saved themes need initialized * use function below, #init_userdef_do_versions. */ -void UI_theme_init_default(void); -void UI_style_init_default(void); +void UI_theme_init_default(); +void UI_style_init_default(); -void UI_interface_tag_script_reload(void); +void UI_interface_tag_script_reload(); /** Special drawing for toolbar, mainly workarounds for inflexible icon sizing. */ #define USE_UI_TOOLBAR_HACK @@ -3332,7 +3214,7 @@ void UI_interface_tag_script_reload(void); * Typically used to enable a filter text button. Triggered on Ctrl+F by default. * \return True when filtering was enabled successfully. */ -bool UI_view_begin_filtering(const struct bContext *C, const uiViewHandle *view_handle); +bool UI_view_begin_filtering(const bContext *C, const uiViewHandle *view_handle); bool UI_view_item_is_interactive(const uiViewItemHandle *item_handle); bool UI_view_item_is_active(const uiViewItemHandle *item_handle); @@ -3345,7 +3227,7 @@ bool UI_view_item_matches(const uiViewItemHandle *a_handle, const uiViewItemHand bool UI_view_item_can_rename(const uiViewItemHandle *item_handle); void UI_view_item_begin_rename(uiViewItemHandle *item_handle); -void UI_view_item_context_menu_build(struct bContext *C, +void UI_view_item_context_menu_build(bContext *C, const uiViewItemHandle *item_handle, uiLayout *column); @@ -3355,21 +3237,17 @@ bool UI_view_item_supports_drag(const uiViewItemHandle *item_); * support dragging, i.e. if it won't create a drag-controller upon request. * \return True if dragging started successfully, otherwise false. */ -bool UI_view_item_drag_start(struct bContext *C, const uiViewItemHandle *item_); +bool UI_view_item_drag_start(bContext *C, const uiViewItemHandle *item_); /** * \param xy: Coordinate to find a view item at, in window space. * \param pad: Extra padding added to the bounding box of the view. */ -uiViewHandle *UI_region_view_find_at(const struct ARegion *region, const int xy[2], int pad); +uiViewHandle *UI_region_view_find_at(const ARegion *region, const int xy[2], int pad); /** * \param xy: Coordinate to find a view item at, in window space. */ -uiViewItemHandle *UI_region_views_find_item_at(const struct ARegion *region, const int xy[2]) +uiViewItemHandle *UI_region_views_find_item_at(const ARegion *region, const int xy[2]) ATTR_NONNULL(); -uiViewItemHandle *UI_region_views_find_active_item(const struct ARegion *region); -uiBut *UI_region_views_find_active_item_but(const struct ARegion *region); - -#ifdef __cplusplus -} -#endif +uiViewItemHandle *UI_region_views_find_active_item(const ARegion *region); +uiBut *UI_region_views_find_active_item_but(const ARegion *region); diff --git a/source/blender/editors/include/UI_interface_icons.hh b/source/blender/editors/include/UI_interface_icons.hh index 0ce0a76b4bd..93630f2b595 100644 --- a/source/blender/editors/include/UI_interface_icons.hh +++ b/source/blender/editors/include/UI_interface_icons.hh @@ -15,20 +15,21 @@ struct Collection; struct ID; +struct ImBuf; struct PointerRNA; struct PreviewImage; struct Scene; struct bContext; -typedef struct IconFile { - struct IconFile *next, *prev; +struct IconFile { + IconFile *next, *prev; char filename[256]; /* FILE_MAXFILE size */ int index; -} IconFile; +}; -typedef struct IconTextOverlay { +struct IconTextOverlay { char text[5]; -} IconTextOverlay; +}; #define UI_NO_ICON_OVERLAY_TEXT NULL @@ -42,26 +43,26 @@ typedef struct IconTextOverlay { #define PREVIEW_DEFAULT_HEIGHT 128 -typedef enum eAlertIcon { +enum eAlertIcon { ALERT_ICON_WARNING = 0, ALERT_ICON_QUESTION = 1, ALERT_ICON_ERROR = 2, ALERT_ICON_INFO = 3, ALERT_ICON_BLENDER = 4, ALERT_ICON_MAX, -} eAlertIcon; +}; -struct ImBuf *UI_icon_alert_imbuf_get(eAlertIcon icon); +ImBuf *UI_icon_alert_imbuf_get(eAlertIcon icon); /** * Resizable Icons for Blender */ -void UI_icons_init(void); +void UI_icons_init(); /** * Reload the textures for internal icons. * This function will release the previous textures. */ -void UI_icons_reload_internal_textures(void); +void UI_icons_reload_internal_textures(); /** * NOTE: returns unscaled by DPI. @@ -75,21 +76,18 @@ bool UI_icon_get_theme_color(int icon_id, unsigned char color[4]); * * Note that if an ID doesn't support jobs for preview creation, \a use_job will be ignored. */ -void UI_icon_render_id(const struct bContext *C, - struct Scene *scene, - struct ID *id, - enum eIconSizes size, - bool use_job); +void UI_icon_render_id( + const bContext *C, Scene *scene, ID *id, enum eIconSizes size, bool use_job); /** * Render the data block into the provided #PreviewImage. */ -void UI_icon_render_id_ex(const struct bContext *C, - struct Scene *scene, - struct ID *id_to_render, +void UI_icon_render_id_ex(const bContext *C, + Scene *scene, + ID *id_to_render, const enum eIconSizes size, const bool use_job, - struct PreviewImage *r_preview_image); + PreviewImage *r_preview_image); /** * Render size for preview images and icons @@ -111,24 +109,24 @@ void UI_icon_draw_ex(float x, float desaturate, const uchar mono_color[4], bool mono_border, - const struct IconTextOverlay *text_overlay); + const IconTextOverlay *text_overlay); -void UI_icons_free(void); +void UI_icons_free(); void UI_icons_free_drawinfo(void *drawinfo); -void UI_icon_draw_cache_begin(void); -void UI_icon_draw_cache_end(void); +void UI_icon_draw_cache_begin(); +void UI_icon_draw_cache_end(); -struct ListBase *UI_iconfile_list(void); +ListBase *UI_iconfile_list(); int UI_iconfile_get_index(const char *filename); -struct PreviewImage *UI_icon_to_preview(int icon_id); +PreviewImage *UI_icon_to_preview(int icon_id); -int UI_icon_from_rnaptr(const struct bContext *C, struct PointerRNA *ptr, int rnaicon, bool big); +int UI_icon_from_rnaptr(const bContext *C, PointerRNA *ptr, int rnaicon, bool big); int UI_icon_from_idcode(int idcode); -int UI_icon_from_library(const struct ID *id); +int UI_icon_from_library(const ID *id); int UI_icon_from_object_mode(int mode); -int UI_icon_color_from_collection(const struct Collection *collection); +int UI_icon_color_from_collection(const Collection *collection); -void UI_icon_text_overlay_init_from_count(struct IconTextOverlay *text_overlay, +void UI_icon_text_overlay_init_from_count(IconTextOverlay *text_overlay, const int icon_indicator_number); diff --git a/source/blender/editors/include/UI_resources.hh b/source/blender/editors/include/UI_resources.hh index 4378987c8cb..78029d53db7 100644 --- a/source/blender/editors/include/UI_resources.hh +++ b/source/blender/editors/include/UI_resources.hh @@ -10,24 +10,26 @@ #include "BLI_sys_types.h" +struct bTheme; + /* Define icon enum. */ #define DEF_ICON(name) ICON_##name, #define DEF_ICON_VECTOR(name) ICON_##name, #define DEF_ICON_COLOR(name) ICON_##name, #define DEF_ICON_BLANK(name) ICON_BLANK_##name, -typedef enum { +enum BIFIconID { /* ui */ #include "UI_icons.hh" BIFICONID_LAST, -} BIFIconID; +}; #define BIFICONID_FIRST (ICON_NONE) /* use to denote intentionally unset theme color */ #define TH_UNDEFINED -1 -typedef enum ThemeColorID { +enum ThemeColorID { TH_REDALERT, TH_THEMEUI, @@ -339,14 +341,12 @@ typedef enum ThemeColorID { TH_EDGE_BEVEL, TH_VERTEX_BEVEL, -} ThemeColorID; +}; /* Specific defines per space should have higher define values. */ -struct bTheme; - struct bThemeState { - struct bTheme *theme; + bTheme *theme; int spacetype, regionid; }; @@ -474,13 +474,13 @@ void UI_SetTheme(int spacetype, int regionid); /** * Get current theme. */ -struct bTheme *UI_GetTheme(void); +bTheme *UI_GetTheme(void); /** * For the rare case we need to temp swap in a different theme (off-screen render). */ -void UI_Theme_Store(struct bThemeState *theme_state); -void UI_Theme_Restore(struct bThemeState *theme_state); +void UI_Theme_Store(bThemeState *theme_state); +void UI_Theme_Restore(bThemeState *theme_state); /** * Return shadow width outside menus and popups. @@ -490,6 +490,6 @@ int UI_ThemeMenuShadowWidth(void); /** * Only for buttons in theme editor! */ -const unsigned char *UI_ThemeGetColorPtr(struct bTheme *btheme, int spacetype, int colorid); +const unsigned char *UI_ThemeGetColorPtr(bTheme *btheme, int spacetype, int colorid); void UI_make_axis_color(const unsigned char src_col[3], unsigned char dst_col[3], char axis); diff --git a/source/blender/editors/include/UI_view2d.hh b/source/blender/editors/include/UI_view2d.hh index 2407a45a198..52ce60f2efc 100644 --- a/source/blender/editors/include/UI_view2d.hh +++ b/source/blender/editors/include/UI_view2d.hh @@ -137,21 +137,21 @@ struct wmOperatorType; * this is called before #UI_view2d_size_update(), * as this one checks that the rects are properly initialized. */ -void UI_view2d_region_reinit(struct View2D *v2d, short type, int winx, int winy); +void UI_view2d_region_reinit(View2D *v2d, short type, int winx, int winy); -void UI_view2d_curRect_validate(struct View2D *v2d); +void UI_view2d_curRect_validate(View2D *v2d); /** * Restore 'cur' rect to standard orientation (i.e. optimal maximum view of tot). * This does not take into account if zooming the view on an axis * will improve the view (if allowed). */ -void UI_view2d_curRect_reset(struct View2D *v2d); -bool UI_view2d_area_supports_sync(struct ScrArea *area); +void UI_view2d_curRect_reset(View2D *v2d); +bool UI_view2d_area_supports_sync(ScrArea *area); /** * Called by menus to activate it, or by view2d operators * to make sure 'related' views stay in synchrony. */ -void UI_view2d_sync(struct bScreen *screen, struct ScrArea *area, struct View2D *v2dcur, int flag); +void UI_view2d_sync(bScreen *screen, ScrArea *area, View2D *v2dcur, int flag); /** * Perform all required updates after `v2d->cur` as been modified. @@ -159,19 +159,19 @@ void UI_view2d_sync(struct bScreen *screen, struct ScrArea *area, struct View2D * * Current intent is to use it from user code, such as view navigation and zoom operations. */ -void UI_view2d_curRect_changed(const struct bContext *C, struct View2D *v2d); +void UI_view2d_curRect_changed(const bContext *C, View2D *v2d); -void UI_view2d_totRect_set(struct View2D *v2d, int width, int height); +void UI_view2d_totRect_set(View2D *v2d, int width, int height); -void UI_view2d_mask_from_win(const struct View2D *v2d, struct rcti *r_mask); +void UI_view2d_mask_from_win(const View2D *v2d, rcti *r_mask); -void UI_view2d_zoom_cache_reset(void); +void UI_view2d_zoom_cache_reset(); /** * Clamp view2d area to what's visible, preventing * scrolling vertically to infinity. */ -void UI_view2d_curRect_clamp_y(struct View2D *v2d); +void UI_view2d_curRect_clamp_y(View2D *v2d); /** \} */ @@ -182,18 +182,18 @@ void UI_view2d_curRect_clamp_y(struct View2D *v2d); /** * Set view matrices to use 'cur' rect as viewing frame for View2D drawing. */ -void UI_view2d_view_ortho(const struct View2D *v2d); +void UI_view2d_view_ortho(const View2D *v2d); /** * Set view matrices to only use one axis of 'cur' only * * \param xaxis: if non-zero, only use cur x-axis, * otherwise use cur-yaxis (mostly this will be used for x). */ -void UI_view2d_view_orthoSpecial(struct ARegion *region, struct View2D *v2d, bool xaxis); +void UI_view2d_view_orthoSpecial(ARegion *region, View2D *v2d, bool xaxis); /** * Restore view matrices after drawing. */ -void UI_view2d_view_restore(const struct bContext *C); +void UI_view2d_view_restore(const bContext *C); /** \} */ @@ -205,7 +205,7 @@ void UI_view2d_view_restore(const struct bContext *C); * Draw a multi-level grid in given 2d-region. */ void UI_view2d_multi_grid_draw( - const struct View2D *v2d, int colorid, float step, int level_size, int totlevels); + const View2D *v2d, int colorid, float step, int level_size, int totlevels); /** * Draw a multi-level grid of dots, with a dynamic number of levels based on the fading. * @@ -214,51 +214,51 @@ void UI_view2d_multi_grid_draw( * a larger step size. * \param grid_subdivisions: The maximum number of sub-levels drawn at once. */ -void UI_view2d_dot_grid_draw(const struct View2D *v2d, +void UI_view2d_dot_grid_draw(const View2D *v2d, int grid_color_id, float min_step, int grid_subdivisions); -void UI_view2d_draw_lines_y__values(const struct View2D *v2d); -void UI_view2d_draw_lines_x__values(const struct View2D *v2d); -void UI_view2d_draw_lines_x__discrete_values(const struct View2D *v2d, bool display_minor_lines); -void UI_view2d_draw_lines_x__discrete_time(const struct View2D *v2d, - const struct Scene *scene, +void UI_view2d_draw_lines_y__values(const View2D *v2d); +void UI_view2d_draw_lines_x__values(const View2D *v2d); +void UI_view2d_draw_lines_x__discrete_values(const View2D *v2d, bool display_minor_lines); +void UI_view2d_draw_lines_x__discrete_time(const View2D *v2d, + const Scene *scene, bool display_minor_lines); -void UI_view2d_draw_lines_x__discrete_frames_or_seconds(const struct View2D *v2d, - const struct Scene *scene, +void UI_view2d_draw_lines_x__discrete_frames_or_seconds(const View2D *v2d, + const Scene *scene, bool display_seconds, bool display_minor_lines); -void UI_view2d_draw_lines_x__frames_or_seconds(const struct View2D *v2d, - const struct Scene *scene, +void UI_view2d_draw_lines_x__frames_or_seconds(const View2D *v2d, + const Scene *scene, bool display_seconds); -float UI_view2d_grid_resolution_x__frames_or_seconds(const struct View2D *v2d, - const struct Scene *scene, +float UI_view2d_grid_resolution_x__frames_or_seconds(const View2D *v2d, + const Scene *scene, bool display_seconds); -float UI_view2d_grid_resolution_y__values(const struct View2D *v2d); +float UI_view2d_grid_resolution_y__values(const View2D *v2d); /** * Scale indicator text drawing. */ -void UI_view2d_draw_scale_y__values(const struct ARegion *region, - const struct View2D *v2d, - const struct rcti *rect, +void UI_view2d_draw_scale_y__values(const ARegion *region, + const View2D *v2d, + const rcti *rect, int colorid); -void UI_view2d_draw_scale_y__block(const struct ARegion *region, - const struct View2D *v2d, - const struct rcti *rect, +void UI_view2d_draw_scale_y__block(const ARegion *region, + const View2D *v2d, + const rcti *rect, int colorid); -void UI_view2d_draw_scale_x__discrete_frames_or_seconds(const struct ARegion *region, - const struct View2D *v2d, - const struct rcti *rect, - const struct Scene *scene, +void UI_view2d_draw_scale_x__discrete_frames_or_seconds(const ARegion *region, + const View2D *v2d, + const rcti *rect, + const Scene *scene, bool display_seconds, int colorid); -void UI_view2d_draw_scale_x__frames_or_seconds(const struct ARegion *region, - const struct View2D *v2d, - const struct rcti *rect, - const struct Scene *scene, +void UI_view2d_draw_scale_x__frames_or_seconds(const ARegion *region, + const View2D *v2d, + const rcti *rect, + const Scene *scene, bool display_seconds, int colorid); @@ -271,10 +271,8 @@ void UI_view2d_draw_scale_x__frames_or_seconds(const struct ARegion *region, /** * Draw scroll-bars in the given 2D-region. */ -void UI_view2d_scrollers_draw_ex(struct View2D *v2d, - const struct rcti *mask_custom, - bool use_full_hide); -void UI_view2d_scrollers_draw(struct View2D *v2d, const struct rcti *mask_custom); +void UI_view2d_scrollers_draw_ex(View2D *v2d, const rcti *mask_custom, bool use_full_hide); +void UI_view2d_scrollers_draw(View2D *v2d, const rcti *mask_custom); /** \} */ @@ -309,8 +307,8 @@ void UI_view2d_listview_view_to_cell(float columnwidth, /** \name Coordinate Conversion * \{ */ -float UI_view2d_region_to_view_x(const struct View2D *v2d, float x); -float UI_view2d_region_to_view_y(const struct View2D *v2d, float y); +float UI_view2d_region_to_view_x(const View2D *v2d, float x); +float UI_view2d_region_to_view_y(const View2D *v2d, float y); /** * Convert from screen/region space to 2d-View space * @@ -318,13 +316,12 @@ float UI_view2d_region_to_view_y(const struct View2D *v2d, float y); * \param r_view_x, r_view_y: resultant coordinates */ void UI_view2d_region_to_view( - const struct View2D *v2d, float x, float y, float *r_view_x, float *r_view_y) ATTR_NONNULL(); -void UI_view2d_region_to_view_rctf(const struct View2D *v2d, - const struct rctf *rect_src, - struct rctf *rect_dst) ATTR_NONNULL(); + const View2D *v2d, float x, float y, float *r_view_x, float *r_view_y) ATTR_NONNULL(); +void UI_view2d_region_to_view_rctf(const View2D *v2d, const rctf *rect_src, rctf *rect_dst) + ATTR_NONNULL(); -float UI_view2d_view_to_region_x(const struct View2D *v2d, float x); -float UI_view2d_view_to_region_y(const struct View2D *v2d, float y); +float UI_view2d_view_to_region_x(const View2D *v2d, float x); +float UI_view2d_view_to_region_y(const View2D *v2d, float y); /** * Convert from 2d-View space to screen/region space * \note Coordinates are clamped to lie within bounds of region @@ -333,7 +330,7 @@ float UI_view2d_view_to_region_y(const struct View2D *v2d, float y); * \param r_region_x, r_region_y: Resultant coordinates. */ bool UI_view2d_view_to_region_clip( - const struct View2D *v2d, float x, float y, int *r_region_x, int *r_region_y) ATTR_NONNULL(); + const View2D *v2d, float x, float y, int *r_region_x, int *r_region_y) ATTR_NONNULL(); bool UI_view2d_view_to_region_segment_clip(const View2D *v2d, const float xy_a[2], @@ -350,19 +347,14 @@ bool UI_view2d_view_to_region_segment_clip(const View2D *v2d, * \param r_region_x, r_region_y: Resultant coordinates. */ 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 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_m4(const struct View2D *v2d, float matrix[4][4]) ATTR_NONNULL(); -void UI_view2d_view_to_region_rcti(const struct View2D *v2d, - const struct rctf *rect_src, - struct rcti *rect_dst) ATTR_NONNULL(); -bool UI_view2d_view_to_region_rcti_clip(const struct View2D *v2d, - const struct rctf *rect_src, - struct rcti *rect_dst) ATTR_NONNULL(); + const View2D *v2d, float x, float y, int *r_region_x, int *r_region_y) ATTR_NONNULL(); +void UI_view2d_view_to_region_fl( + const View2D *v2d, float x, float y, float *r_region_x, float *r_region_y) ATTR_NONNULL(); +void UI_view2d_view_to_region_m4(const View2D *v2d, float matrix[4][4]) ATTR_NONNULL(); +void UI_view2d_view_to_region_rcti(const View2D *v2d, const rctf *rect_src, rcti *rect_dst) + ATTR_NONNULL(); +bool UI_view2d_view_to_region_rcti_clip(const View2D *v2d, const rctf *rect_src, rcti *rect_dst) + ATTR_NONNULL(); /** \} */ @@ -373,11 +365,11 @@ bool UI_view2d_view_to_region_rcti_clip(const struct View2D *v2d, /** * View2D data by default resides in region, so get from region stored in context. */ -struct View2D *UI_view2d_fromcontext(const struct bContext *C); +View2D *UI_view2d_fromcontext(const bContext *C); /** * Same as above, but it returns region-window. Utility for pull-downs or buttons. */ -struct View2D *UI_view2d_fromcontext_rwin(const struct bContext *C); +View2D *UI_view2d_fromcontext_rwin(const bContext *C); /** * Get scroll-bar sizes of the current 2D view. @@ -385,7 +377,7 @@ struct View2D *UI_view2d_fromcontext_rwin(const struct bContext *C); * * \param mapped: whether to use view2d_scroll_mapped which changes flags */ -void UI_view2d_scroller_size_get(const struct View2D *v2d, bool mapped, float *r_x, float *r_y); +void UI_view2d_scroller_size_get(const View2D *v2d, bool mapped, float *r_x, float *r_y); /** * Calculate the scale per-axis of the drawing-area * @@ -394,20 +386,20 @@ void UI_view2d_scroller_size_get(const struct View2D *v2d, bool mapped, float *r * * \param r_x, r_y: scale on each axis */ -void UI_view2d_scale_get(const struct View2D *v2d, float *r_x, float *r_y); -float UI_view2d_scale_get_x(const struct View2D *v2d); -float UI_view2d_scale_get_y(const struct View2D *v2d); +void UI_view2d_scale_get(const View2D *v2d, float *r_x, float *r_y); +float UI_view2d_scale_get_x(const View2D *v2d); +float UI_view2d_scale_get_y(const View2D *v2d); /** * Same as `UI_view2d_scale_get() - 1.0f / x, y`. */ -void UI_view2d_scale_get_inverse(const struct View2D *v2d, float *r_x, float *r_y); +void UI_view2d_scale_get_inverse(const View2D *v2d, float *r_x, float *r_y); /** * Simple functions for consistent center offset access. * Used by node editor to shift view center for each individual node tree. */ -void UI_view2d_center_get(const struct View2D *v2d, float *r_x, float *r_y); -void UI_view2d_center_set(struct View2D *v2d, float x, float y); +void UI_view2d_center_get(const View2D *v2d, float *r_x, float *r_y); +void UI_view2d_center_set(View2D *v2d, float x, float y); /** * Simple pan function @@ -415,12 +407,12 @@ void UI_view2d_center_set(struct View2D *v2d, float x, float y); * (0.5, 0.5) center * (1.0, 1.0) top right. */ -void UI_view2d_offset(struct View2D *v2d, float xfac, float yfac); +void UI_view2d_offset(View2D *v2d, float xfac, float yfac); /** * Scrolls the view so that the upper edge is at a multiple of the page size. */ -void UI_view2d_offset_y_snap_to_closest_page(struct View2D *v2d); +void UI_view2d_offset_y_snap_to_closest_page(View2D *v2d); /** * Check if mouse is within scrollers @@ -433,39 +425,33 @@ void UI_view2d_offset_y_snap_to_closest_page(struct View2D *v2d); * - 'v' = in vertical scroller. * - 0 = not in scroller. */ -char UI_view2d_mouse_in_scrollers_ex(const struct ARegion *region, - const struct View2D *v2d, +char UI_view2d_mouse_in_scrollers_ex(const ARegion *region, + const View2D *v2d, const int xy[2], int *r_scroll) ATTR_NONNULL(1, 2, 3, 4); -char UI_view2d_mouse_in_scrollers(const struct ARegion *region, - const struct View2D *v2d, - const int xy[2]) ATTR_NONNULL(1, 2, 3); -char UI_view2d_rect_in_scrollers_ex(const struct ARegion *region, - const struct View2D *v2d, - const struct rcti *rect, +char UI_view2d_mouse_in_scrollers(const ARegion *region, const View2D *v2d, const int xy[2]) + ATTR_NONNULL(1, 2, 3); +char UI_view2d_rect_in_scrollers_ex(const ARegion *region, + const View2D *v2d, + const rcti *rect, int *r_scroll) ATTR_NONNULL(1, 2, 3); -char UI_view2d_rect_in_scrollers(const struct ARegion *region, - const struct View2D *v2d, - const struct rcti *rect) ATTR_NONNULL(1, 2, 3); +char UI_view2d_rect_in_scrollers(const ARegion *region, const View2D *v2d, const rcti *rect) + ATTR_NONNULL(1, 2, 3); /** * Cached text drawing in v2d, to allow pixel-aligned draw as post process. */ -void UI_view2d_text_cache_add(struct View2D *v2d, - float x, - float y, - const char *str, - size_t str_len, - const unsigned char col[4]); +void UI_view2d_text_cache_add( + View2D *v2d, float x, float y, const char *str, size_t str_len, const unsigned char col[4]); /** * No clip (yet). */ -void UI_view2d_text_cache_add_rectf(struct View2D *v2d, - const struct rctf *rect_view, +void UI_view2d_text_cache_add_rectf(View2D *v2d, + const rctf *rect_view, const char *str, size_t str_len, const unsigned char col[4]); -void UI_view2d_text_cache_draw(struct ARegion *region); +void UI_view2d_text_cache_draw(ARegion *region); /** \} */ @@ -473,17 +459,14 @@ void UI_view2d_text_cache_draw(struct ARegion *region); /** \name Operators * \{ */ -void ED_operatortypes_view2d(void); -void ED_keymap_view2d(struct wmKeyConfig *keyconf); +void ED_operatortypes_view2d(); +void ED_keymap_view2d(wmKeyConfig *keyconf); /** * Will start timer if appropriate. * the arguments are the desired situation. */ -void UI_view2d_smooth_view(const struct bContext *C, - struct ARegion *region, - const struct rctf *cur, - int smooth_viewtx); +void UI_view2d_smooth_view(const bContext *C, ARegion *region, const rctf *cur, int smooth_viewtx); #define UI_MARKER_MARGIN_Y (42 * UI_SCALE_FAC) #define UI_TIME_SCRUB_MARGIN_Y (23 * UI_SCALE_FAC) @@ -499,7 +482,7 @@ void UI_view2d_smooth_view(const struct bContext *C, /** * Caller defines the name for gizmo group. */ -void VIEW2D_GGT_navigate_impl(struct wmGizmoGroupType *gzgt, const char *idname); +void VIEW2D_GGT_navigate_impl(wmGizmoGroupType *gzgt, const char *idname); /** \} */ @@ -510,7 +493,7 @@ void VIEW2D_GGT_navigate_impl(struct wmGizmoGroupType *gzgt, const char *idname) /** * Custom-data for view panning operators. */ -typedef struct View2DEdgePanData { +struct View2DEdgePanData { /** Screen where view pan was initiated. */ struct bScreen *screen; /** Area where view pan was initiated. */ @@ -554,10 +537,10 @@ typedef struct View2DEdgePanData { /* Timers. */ double edge_pan_last_time; double edge_pan_start_time_x, edge_pan_start_time_y; -} View2DEdgePanData; +}; -void UI_view2d_edge_pan_init(struct bContext *C, - struct View2DEdgePanData *vpd, +void UI_view2d_edge_pan_init(bContext *C, + View2DEdgePanData *vpd, float inside_pad, float outside_pad, float speed_ramp, @@ -569,28 +552,26 @@ void UI_view2d_edge_pan_init(struct bContext *C, * Set area which can be panned */ void UI_view2d_edge_pan_set_limits( - struct View2DEdgePanData *vpd, float xmin, float xmax, float ymin, float ymax); + View2DEdgePanData *vpd, float xmin, float xmax, float ymin, float ymax); -void UI_view2d_edge_pan_reset(struct View2DEdgePanData *vpd); +void UI_view2d_edge_pan_reset(View2DEdgePanData *vpd); /** * Apply transform to view (i.e. adjust 'cur' rect). */ -void UI_view2d_edge_pan_apply(struct bContext *C, struct View2DEdgePanData *vpd, const int xy[2]) +void UI_view2d_edge_pan_apply(bContext *C, View2DEdgePanData *vpd, const int xy[2]) ATTR_NONNULL(1, 2, 3); /** * Apply transform to view using mouse events. */ -void UI_view2d_edge_pan_apply_event(struct bContext *C, - struct View2DEdgePanData *vpd, - const struct wmEvent *event); +void UI_view2d_edge_pan_apply_event(bContext *C, View2DEdgePanData *vpd, const wmEvent *event); -void UI_view2d_edge_pan_cancel(struct bContext *C, struct View2DEdgePanData *vpd); +void UI_view2d_edge_pan_cancel(bContext *C, View2DEdgePanData *vpd); -void UI_view2d_edge_pan_operator_properties(struct wmOperatorType *ot); +void UI_view2d_edge_pan_operator_properties(wmOperatorType *ot); -void UI_view2d_edge_pan_operator_properties_ex(struct wmOperatorType *ot, +void UI_view2d_edge_pan_operator_properties_ex(wmOperatorType *ot, float inside_pad, float outside_pad, float speed_ramp, @@ -601,8 +582,6 @@ void UI_view2d_edge_pan_operator_properties_ex(struct wmOperatorType *ot, /** * Initialize panning data with operator settings. */ -void UI_view2d_edge_pan_operator_init(struct bContext *C, - struct View2DEdgePanData *vpd, - struct wmOperator *op); +void UI_view2d_edge_pan_operator_init(bContext *C, View2DEdgePanData *vpd, wmOperator *op); /** \} */ diff --git a/source/blender/editors/space_node/node_select.cc b/source/blender/editors/space_node/node_select.cc index ad3dbca796f..70e79f00913 100644 --- a/source/blender/editors/space_node/node_select.cc +++ b/source/blender/editors/space_node/node_select.cc @@ -27,7 +27,6 @@ #include "BKE_node_tree_update.h" #include "BKE_workspace.h" -#include "ED_node.hh" /* own include */ #include "ED_node.hh" /* own include */ #include "ED_screen.hh" #include "ED_select_utils.hh"