diff options
Diffstat (limited to 'source/blender/blenkernel/BKE_object.h')
-rw-r--r-- | source/blender/blenkernel/BKE_object.h | 107 |
1 files changed, 72 insertions, 35 deletions
diff --git a/source/blender/blenkernel/BKE_object.h b/source/blender/blenkernel/BKE_object.h index 5578290c41a..11e259e0318 100644 --- a/source/blender/blenkernel/BKE_object.h +++ b/source/blender/blenkernel/BKE_object.h @@ -38,6 +38,7 @@ extern "C" { struct Base; struct EvaluationContext; struct Scene; +struct ViewLayer; struct Object; struct BoundBox; struct View3D; @@ -49,8 +50,10 @@ struct RigidBodyWorld; struct HookModifierData; struct ModifierData; +#include "DNA_object_enums.h" + void BKE_object_workob_clear(struct Object *workob); -void BKE_object_workob_calc_parent(struct Scene *scene, struct Object *ob, struct Object *workob); +void BKE_object_workob_calc_parent(const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob, struct Object *workob); void BKE_object_transform_copy(struct Object *ob_tar, const struct Object *ob_src); struct SoftBody *copy_softbody(const struct SoftBody *sb, const int flag); @@ -62,7 +65,6 @@ void BKE_object_free_particlesystems(struct Object *ob); void BKE_object_free_softbody(struct Object *ob); void BKE_object_free_bulletsoftbody(struct Object *ob); void BKE_object_free_curve_cache(struct Object *ob); -void BKE_object_update_base_layer(struct Scene *scene, struct Object *ob); void BKE_object_free(struct Object *ob); void BKE_object_free_derived_caches(struct Object *ob); @@ -72,16 +74,26 @@ void BKE_object_modifier_hook_reset(struct Object *ob, struct HookModifierData * bool BKE_object_support_modifier_type_check(struct Object *ob, int modifier_type); -void BKE_object_link_modifiers(struct Object *ob_dst, const struct Object *ob_src); +void BKE_object_link_modifiers( + struct Object *ob_dst, const struct Object *ob_src, + eObjectMode object_mode); void BKE_object_free_modifiers(struct Object *ob); void BKE_object_make_proxy(struct Object *ob, struct Object *target, struct Object *gob); void BKE_object_copy_proxy_drivers(struct Object *ob, struct Object *target); bool BKE_object_exists_check(struct Object *obtest); -bool BKE_object_is_in_editmode(struct Object *ob); +bool BKE_object_is_in_editmode(const struct Object *ob); bool BKE_object_is_in_editmode_vgroup(struct Object *ob); -bool BKE_object_is_in_wpaint_select_vert(struct Object *ob); +bool BKE_object_is_in_wpaint_select_vert(const struct Object *ob, eObjectMode object_mode); + +typedef enum eObjectVisibilityCheck { + OB_VISIBILITY_CHECK_FOR_VIEWPORT, + OB_VISIBILITY_CHECK_FOR_RENDER, + OB_VISIBILITY_CHECK_UNKNOWN_RENDER_MODE, +} eObjectVisibilityCheck; + +bool BKE_object_is_visible(struct Object *ob, const eObjectVisibilityCheck mode); void BKE_object_init(struct Object *ob); struct Object *BKE_object_add_only_object( @@ -89,9 +101,13 @@ struct Object *BKE_object_add_only_object( int type, const char *name) ATTR_NONNULL(1) ATTR_RETURNS_NONNULL; struct Object *BKE_object_add( - struct Main *bmain, struct Scene *scene, + struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, int type, const char *name) - ATTR_NONNULL(1, 2) ATTR_RETURNS_NONNULL; + ATTR_NONNULL(1, 2, 3) ATTR_RETURNS_NONNULL; +struct Object *BKE_object_add_from( + struct Main *bmain, struct Scene *scene, struct ViewLayer *view_layer, + int type, const char *name, struct Object *ob_src) + ATTR_NONNULL(1, 2, 3, 6) ATTR_RETURNS_NONNULL; void *BKE_object_obdata_add_from_type( struct Main *bmain, int type, const char *name) @@ -101,9 +117,12 @@ void BKE_object_lod_add(struct Object *ob); void BKE_object_lod_sort(struct Object *ob); bool BKE_object_lod_remove(struct Object *ob, int level); void BKE_object_lod_update(struct Object *ob, const float camera_position[3]); -bool BKE_object_lod_is_usable(struct Object *ob, struct Scene *scene); -struct Object *BKE_object_lod_meshob_get(struct Object *ob, struct Scene *scene); -struct Object *BKE_object_lod_matob_get(struct Object *ob, struct Scene *scene); +bool BKE_object_lod_is_usable( + struct Object *ob, struct ViewLayer *view_layer, const eObjectMode object_mode); +struct Object *BKE_object_lod_meshob_get( + struct Object *ob, struct ViewLayer *view_layer, const eObjectMode object_mode); +struct Object *BKE_object_lod_matob_get( + struct Object *ob, struct ViewLayer *view_layer, const eObjectMode object_mode); void BKE_object_copy_data(struct Main *bmain, struct Object *ob_dst, const struct Object *ob_src, const int flag); struct Object *BKE_object_copy(struct Main *bmain, const struct Object *ob); @@ -122,16 +141,23 @@ void BKE_object_to_mat4(struct Object *ob, float mat[4][4]); void BKE_object_apply_mat4(struct Object *ob, float mat[4][4], const bool use_compat, const bool use_parent); void BKE_object_matrix_local_get(struct Object *ob, float mat[4][4]); +bool BKE_object_pose_context_check_ex(struct Object *ob, bool selected); bool BKE_object_pose_context_check(struct Object *ob); struct Object *BKE_object_pose_armature_get(struct Object *ob); +struct Object *BKE_object_pose_armature_get_visible(struct Object *ob, struct ViewLayer *view_layer); -void BKE_object_get_parent_matrix(struct Scene *scene, struct Object *ob, struct Object *par, float parentmat[4][4]); -void BKE_object_where_is_calc(struct Scene *scene, struct Object *ob); +void BKE_object_get_parent_matrix( + struct Scene *scene, struct Object *ob, + struct Object *par, float parentmat[4][4]); +void BKE_object_where_is_calc( + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob); void BKE_object_where_is_calc_ex( - struct Scene *scene, struct RigidBodyWorld *rbw, struct Object *ob, float r_originmat[3][3]); -void BKE_object_where_is_calc_time(struct Scene *scene, struct Object *ob, float ctime); + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct RigidBodyWorld *rbw, + struct Object *ob, float r_originmat[3][3]); +void BKE_object_where_is_calc_time( + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob, float ctime); void BKE_object_where_is_calc_time_ex( - struct Scene *scene, struct Object *ob, float ctime, + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob, float ctime, struct RigidBodyWorld *rbw, float r_originmat[3][3]); void BKE_object_where_is_calc_mat4(struct Scene *scene, struct Object *ob, float obmat[4][4]); @@ -157,8 +183,7 @@ void BKE_object_foreach_display_point( void (*func_cb)(const float[3], void *), void *user_data); void BKE_scene_foreach_display_point( struct Scene *scene, - struct View3D *v3d, - const short flag, + struct ViewLayer *view_layer, void (*func_cb)(const float[3], void *), void *user_data); bool BKE_object_parent_loop_check(const struct Object *parent, const struct Object *ob); @@ -186,47 +211,60 @@ void BKE_object_tfm_protected_restore( /* Dependency graph evaluation callbacks. */ void BKE_object_eval_local_transform( - struct EvaluationContext *eval_ctx, + const struct EvaluationContext *eval_ctx, struct Object *ob); void BKE_object_eval_parent( - struct EvaluationContext *eval_ctx, + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob); void BKE_object_eval_constraints( - struct EvaluationContext *eval_ctx, + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob); -void BKE_object_eval_done(struct EvaluationContext *eval_ctx, struct Object *ob); +void BKE_object_eval_done(const struct EvaluationContext *eval_ctx, struct Object *ob); bool BKE_object_eval_proxy_copy( - struct EvaluationContext *eval_ctx, + const struct EvaluationContext *eval_ctx, struct Object *object); void BKE_object_eval_uber_transform( - struct EvaluationContext *eval_ctx, + const struct EvaluationContext *eval_ctx, struct Object *ob); void BKE_object_eval_uber_data( - struct EvaluationContext *eval_ctx, + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob); void BKE_object_eval_cloth( - struct EvaluationContext *eval_ctx, + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *object); - void BKE_object_eval_transform_all( - struct EvaluationContext *eval_ctx, + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *object); +void BKE_object_eval_update_shading( + const struct EvaluationContext *eval_ctx, + struct Object *object); +void BKE_object_data_select_update( + const struct EvaluationContext *eval_ctx, + struct ID *object_data); + +void BKE_object_eval_flush_base_flags( + const struct EvaluationContext *eval_ctx, + struct Object *object, struct Base *base, + const bool is_from_set); + void BKE_object_handle_data_update( - struct EvaluationContext *eval_ctx, + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob); -void BKE_object_handle_update(struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob); +void BKE_object_handle_update( + const struct EvaluationContext *eval_ctx, + struct Scene *scene, struct Object *ob); void BKE_object_handle_update_ex( - struct EvaluationContext *eval_ctx, + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob, struct RigidBodyWorld *rbw, const bool do_proxy_update); @@ -273,18 +311,17 @@ typedef enum eObjectSet { } eObjectSet; struct LinkNode *BKE_object_relational_superset( - struct Scene *scene, eObjectSet objectSet, eObRelationTypes includeFilter); + struct ViewLayer *view_layer, eObjectSet objectSet, eObRelationTypes includeFilter); struct LinkNode *BKE_object_groups(struct Object *ob); -void BKE_object_groups_clear(struct Scene *scene, struct Base *base, struct Object *object); +void BKE_object_groups_clear(struct Object *object); struct KDTree *BKE_object_as_kdtree(struct Object *ob, int *r_tot); bool BKE_object_modifier_use_time(struct Object *ob, struct ModifierData *md); bool BKE_object_modifier_update_subframe( - struct Scene *scene, struct Object *ob, bool update_mesh, - int parent_recursion, float frame, - int type); + const struct EvaluationContext *eval_ctx, struct Scene *scene, struct Object *ob, + bool update_mesh, int parent_recursion, float frame, int type); #ifdef __cplusplus } |