Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/editors/include/ED_object.h')
-rw-r--r--source/blender/editors/include/ED_object.h96
1 files changed, 68 insertions, 28 deletions
diff --git a/source/blender/editors/include/ED_object.h b/source/blender/editors/include/ED_object.h
index 5b2fdf29dd5..a116cf5e5d0 100644
--- a/source/blender/editors/include/ED_object.h
+++ b/source/blender/editors/include/ED_object.h
@@ -35,6 +35,7 @@
extern "C" {
#endif
+struct bFaceMap;
struct Base;
struct EnumPropertyItem;
struct ID;
@@ -43,6 +44,7 @@ struct ModifierData;
struct Object;
struct ReportList;
struct Scene;
+struct ViewLayer;
struct bConstraint;
struct bContext;
struct bPoseChannel;
@@ -53,6 +55,10 @@ struct wmOperatorType;
struct PointerRNA;
struct PropertyRNA;
struct EnumPropertyItem;
+struct EvaluationContext;
+struct WorkSpace;
+struct wmWindow;
+struct wmWindowManager;
#include "DNA_object_enums.h"
@@ -82,16 +88,21 @@ typedef enum eParentType {
PAR_VERTEX_TRI,
} eParentType;
+typedef enum eObjectSelect_Mode {
+ BA_DESELECT = 0,
+ BA_SELECT = 1,
+ BA_INVERT = 2,
+} eObjectSelect_Mode;
+
#ifdef __RNA_TYPES_H__
extern struct EnumPropertyItem prop_clear_parent_types[];
extern struct EnumPropertyItem prop_make_parent_types[];
#endif
-bool ED_object_parent_set(struct ReportList *reports, struct Main *bmain, struct Scene *scene, struct Object *ob,
+bool ED_object_parent_set(struct ReportList *reports, const struct bContext *C, struct Scene *scene, struct Object *ob,
struct Object *par, int partype, const bool xmirror, const bool keep_transform,
const int vert_par[3]);
void ED_object_parent_clear(struct Object *ob, const int type);
-struct Base *ED_object_scene_link(struct Scene *scene, struct Object *ob);
void ED_keymap_proportional_cycle(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap);
void ED_keymap_proportional_obmode(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap);
@@ -99,15 +110,12 @@ void ED_keymap_proportional_maskmode(struct wmKeyConfig *keyconf, struct wmKeyMa
void ED_keymap_proportional_editmode(struct wmKeyConfig *keyconf, struct wmKeyMap *keymap,
const bool do_connected);
-/* send your own notifier for select! */
-void ED_base_object_select(struct Base *base, short mode);
-/* includes notifier */
-void ED_base_object_activate(struct bContext *C, struct Base *base);
-
-void ED_base_object_free_and_unlink(struct Main *bmain, struct Scene *scene, struct Base *base);
+void ED_object_base_select(struct Base *base, eObjectSelect_Mode mode);
+void ED_object_base_activate(struct bContext *C, struct Base *base);
+void ED_object_base_free_and_unlink(struct Main *bmain, struct Scene *scene, struct Object *ob);
/* single object duplicate, if (dupflag == 0), fully linked, else it uses the flags given */
-struct Base *ED_object_add_duplicate(struct Main *bmain, struct Scene *scene, struct Base *base, int dupflag);
+struct Base *ED_object_add_duplicate(struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, struct Base *base, int dupflag);
void ED_object_parent(struct Object *ob, struct Object *parent, const int type, const char *substr);
@@ -117,7 +125,8 @@ void ED_object_parent(struct Object *ob, struct Object *parent, const int type,
#define EM_WAITCURSOR 4
#define EM_DO_UNDO 8
#define EM_IGNORE_LAYER 16
-void ED_object_editmode_exit_ex(struct bContext *C, struct Scene *scene, struct Object *obedit, int flag);
+void ED_object_editmode_exit_ex(
+ struct bContext *C, struct WorkSpace *workspace, struct Scene *scene, struct Object *obedit, int flag);
void ED_object_editmode_exit(struct bContext *C, int flag);
void ED_object_editmode_enter(struct bContext *C, int flag);
bool ED_object_editmode_load(struct Object *obedit);
@@ -126,25 +135,27 @@ bool ED_object_editmode_calc_active_center(struct Object *obedit, const bool sel
void ED_object_vpaintmode_enter_ex(
- struct wmWindowManager *wm,
- struct Scene *scene, struct Object *ob);
+ const struct EvaluationContext *eval_ctx, struct wmWindowManager *wm,
+ struct WorkSpace *workspace, struct Scene *scene, struct Object *ob);
void ED_object_vpaintmode_enter(struct bContext *C);
void ED_object_wpaintmode_enter_ex(
- struct wmWindowManager *wm,
- struct Scene *scene, struct Object *ob);
+ const struct EvaluationContext *eval_ctx, struct wmWindowManager *wm,
+ struct WorkSpace *workspace, struct Scene *scene, struct Object *ob);
void ED_object_wpaintmode_enter(struct bContext *C);
-void ED_object_vpaintmode_exit_ex(struct Object *ob);
+void ED_object_vpaintmode_exit_ex(struct WorkSpace *workspace, 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_ex(struct WorkSpace *workspace, struct Object *ob);
void ED_object_wpaintmode_exit(struct bContext *C);
void ED_object_sculptmode_enter_ex(
- struct Scene *scene, struct Object *ob,
+ const struct EvaluationContext *eval_ctx,
+ struct WorkSpace *workspace, struct Scene *scene, struct Object *ob,
struct ReportList *reports);
void ED_object_sculptmode_enter(struct bContext *C, struct ReportList *reports);
void ED_object_sculptmode_exit_ex(
- struct Scene *scene, struct Object *ob);
+ const struct EvaluationContext *eval_ctx,
+ struct WorkSpace *workspace, struct Scene *scene, struct Object *ob);
void ED_object_sculptmode_exit(struct bContext *C);
void ED_object_location_from_view(struct bContext *C, float loc[3]);
@@ -179,9 +190,9 @@ void ED_objects_clear_paths(struct bContext *C, bool only_selected);
void ED_objects_recalculate_paths(struct bContext *C, struct Scene *scene);
/* constraints */
-struct ListBase *get_active_constraints(struct Object *ob);
+struct ListBase *get_active_constraints(const struct EvaluationContext *eval_ctx, struct Object *ob);
struct ListBase *get_constraint_lb(struct Object *ob, struct bConstraint *con, struct bPoseChannel **r_pchan);
-struct bConstraint *get_active_constraint(struct Object *ob);
+struct bConstraint *get_active_constraint(const struct EvaluationContext *eval_ctx, struct Object *ob);
void object_test_constraints(struct Object *ob);
@@ -194,9 +205,30 @@ void ED_object_constraint_dependency_tag_update(struct Main *bmain, struct Objec
/* object_modes.c */
bool ED_object_mode_compat_test(const struct Object *ob, eObjectMode mode);
-bool ED_object_mode_compat_set(struct bContext *C, struct Object *ob, eObjectMode mode, struct ReportList *reports);
+bool ED_object_mode_compat_set(struct bContext *C, struct WorkSpace *workspace, eObjectMode mode, struct ReportList *reports);
void ED_object_mode_toggle(struct bContext *C, eObjectMode mode);
+bool ED_object_mode_generic_enter(
+ struct bContext *C,
+ eObjectMode object_mode);
+void ED_object_mode_generic_exit(
+ const struct EvaluationContext *eval_ctx,
+ struct WorkSpace *workspace, struct Scene *scene, struct Object *ob);
+bool ED_object_mode_generic_has_data(
+ const struct EvaluationContext *eval_ctx,
+ struct Object *ob);
+
+bool ED_object_mode_generic_enter_or_other_window(
+ struct bContext *C, const struct wmWindow *win_compare,
+ eObjectMode object_mode);
+void ED_object_mode_generic_exit_or_other_window(
+ const struct EvaluationContext *eval_ctx, struct wmWindowManager *wm,
+ struct WorkSpace *workspace, struct Scene *scene, struct Object *ob);
+
+bool ED_object_mode_generic_exists(
+ struct wmWindowManager *wm, struct Object *ob,
+ eObjectMode object_mode);
+
/* object_modifier.c */
enum {
MODIFIER_APPLY_DATA = 1,
@@ -205,7 +237,7 @@ enum {
struct ModifierData *ED_object_modifier_add(
struct ReportList *reports, struct Main *bmain, struct Scene *scene,
- struct Object *ob, const char *name, int type);
+ struct Object *ob, eObjectMode object_mode, const char *name, int type);
bool ED_object_modifier_remove(struct ReportList *reports, struct Main *bmain,
struct Object *ob, struct ModifierData *md);
void ED_object_modifier_clear(struct Main *bmain, struct Object *ob);
@@ -213,17 +245,20 @@ int ED_object_modifier_move_down(struct ReportList *reports, struct Object *ob,
int ED_object_modifier_move_up(struct ReportList *reports, struct Object *ob, struct ModifierData *md);
int ED_object_modifier_convert(
struct ReportList *reports, struct Main *bmain, struct Scene *scene,
- struct Object *ob, struct ModifierData *md);
-int ED_object_modifier_apply(struct ReportList *reports, struct Scene *scene,
+ struct ViewLayer *view_layer, struct Object *ob, eObjectMode object_mode, struct ModifierData *md);
+int ED_object_modifier_apply(struct ReportList *reports, const struct bContext *C, struct Scene *scene,
struct Object *ob, struct ModifierData *md, int mode);
int ED_object_modifier_copy(struct ReportList *reports, struct Object *ob, struct ModifierData *md);
bool ED_object_iter_other(
- struct Main *bmain, struct Object *orig_ob, const bool include_orig,
- bool (*callback)(struct Object *ob, void *callback_data),
+ const struct EvaluationContext *eval_ctx, struct Main *bmain,
+ struct Object *orig_ob, const bool include_orig,
+ bool (*callback)(const struct EvaluationContext *eval_ctx, struct Object *ob, void *callback_data),
void *callback_data);
-bool ED_object_multires_update_totlevels_cb(struct Object *ob, void *totlevel_v);
+bool ED_object_multires_update_totlevels_cb(
+ const struct EvaluationContext *eval_ctx,
+ struct Object *ob, void *totlevel_v);
/* object_select.c */
void ED_object_select_linked_by_id(struct bContext *C, struct ID *id);
@@ -236,7 +271,12 @@ const struct EnumPropertyItem *ED_object_vgroup_selection_itemf_helper(
const unsigned int selection_mask);
void ED_object_check_force_modifiers(
- struct Main *bmain, struct Scene *scene, struct Object *object);
+ struct Main *bmain, struct Scene *scene,
+ struct Object *object, eObjectMode object_mode);
+
+/* object_facemap_ops.c */
+void ED_object_facemap_face_add(struct Object *ob, struct bFaceMap *fmap, int facenum);
+void ED_object_facemap_face_remove(struct Object *ob, struct bFaceMap *fmap, int facenum);
#ifdef __cplusplus
}