Blender V5.0
BKE_object.hh
Go to the documentation of this file.
1/* SPDX-FileCopyrightText: 2023 Blender Authors
2 *
3 * SPDX-License-Identifier: GPL-2.0-or-later */
4
5#pragma once
6
11
12#include <optional>
13
14#include "BLI_bounds_types.hh"
15#include "BLI_compiler_attrs.h"
16#include "BLI_function_ref.hh"
19#include "BLI_sys_types.h"
20#include "BLI_vector.hh"
21
22#include "DNA_object_enums.h"
23#include "DNA_userdef_enums.h"
24
25struct Base;
26struct BoundBox;
27struct Curve;
28struct Depsgraph;
30struct HookModifierData;
31struct ID;
32struct KDTree_3d;
33struct KeyBlock;
34struct Lattice;
35struct LinkNode;
36struct Main;
37struct Mesh;
38struct ModifierData;
39struct MovieClip;
40struct Object;
41struct PartEff;
42struct ParticleSystem;
43struct RegionView3D;
44struct RigidBodyWorld;
45struct Scene;
47struct View3D;
48struct ViewLayer;
49
62
63void BKE_object_transform_copy(Object *ob_tar, const Object *ob_src);
64void BKE_object_copy_softbody(Object *ob_dst, const Object *ob_src, int flag);
66void BKE_object_copy_particlesystems(Object *ob_dst, const Object *ob_src, int flag);
70
75void BKE_object_free_caches(Object *object);
76
79
84bool BKE_object_support_modifier_type_check(const Object *ob, int modifier_type);
85
86/* Active modifier. */
87
96
109 Main *bmain, const Scene *scene, Object *ob_dst, const Object *ob_src, const ModifierData *md);
121 const Object *ob_src,
122 bool do_copy_all,
123 int flag_subdata);
124void BKE_object_link_modifiers(Object *ob_dst, const Object *ob_src);
127
128bool BKE_object_exists_check(Main *bmain, const Object *obtest);
132bool BKE_object_is_in_editmode(const Object *ob);
135bool BKE_object_has_mode_data(const Object *ob, eObjectMode object_mode);
136bool BKE_object_is_mode_compat(const Object *ob, eObjectMode object_mode);
137
138bool BKE_object_data_is_in_editmode(const Object *ob, const ID *id);
139
141
146
153
157int BKE_object_visibility(const Object *ob, int dag_eval_mode);
158
164Object *BKE_object_add_only_object(Main *bmain, int type, const char *name) ATTR_RETURNS_NONNULL;
174 Scene *scene,
175 ViewLayer *view_layer,
176 int type,
184 Main *bmain, Scene *scene, ViewLayer *view_layer, int type, const char *name, Object *ob_src)
196 const Scene *scene,
197 ViewLayer *view_layer,
198 int type,
199 const char *name,
200 ID *data,
201 bool do_id_user) ATTR_RETURNS_NONNULL;
202void *BKE_object_obdata_add_from_type(Main *bmain, int type, const char *name) ATTR_NONNULL(1);
207
211bool BKE_object_is_libdata(const Object *ob);
216
236 Object *ob,
237 eDupli_ID_Flags dupflag,
238 /*eLibIDDuplicateFlags*/ uint duplicate_options);
239
244
245void BKE_object_scale_to_mat3(const Object *ob, float r_mat[3][3]);
246void BKE_object_rot_to_mat3(const Object *ob, float r_mat[3][3], bool use_drot);
247void BKE_object_mat3_to_rot(Object *ob, float r_mat[3][3], bool use_compat);
248void BKE_object_to_mat3(const Object *ob, float r_mat[3][3]);
249void BKE_object_to_mat4(const Object *ob, float r_mat[4][4]);
261 const float mat[4][4],
262 Object *parent,
263 const float parentinv[4][4],
264 bool use_compat);
266void BKE_object_apply_mat4(Object *ob, const float mat[4][4], bool use_compat, bool use_parent);
267
277
278void BKE_object_matrix_local_get(Object *ob, float r_mat[4][4]);
279
281
293 const Scene *scene,
294 ViewLayer *view_layer,
295 View3D *v3d);
296
301 ViewLayer *view_layer,
302 View3D *v3d,
303 bool unique);
305 ViewLayer *view_layer,
306 View3D *v3d);
308 ViewLayer *view_layer,
309 View3D *v3d);
310
312 ViewLayer *view_layer,
313 View3D *v3d,
314 bool unique);
316 ViewLayer *view_layer,
317 View3D *v3d);
319 ViewLayer *view_layer,
320 View3D *v3d);
321
322void BKE_object_get_parent_matrix(const Object *ob, Object *par, float r_parentmat[4][4]);
323
327void BKE_object_where_is_calc(Depsgraph *depsgraph, Scene *scene, Object *ob);
329 Depsgraph *depsgraph, Scene *scene, RigidBodyWorld *rbw, Object *ob, float r_originmat[3][3]);
330void BKE_object_where_is_calc_time(Depsgraph *depsgraph, Scene *scene, Object *ob, float ctime);
337void BKE_object_where_is_calc_mat4(const Object *ob, float r_obmat[4][4]);
338
349 const Object *ob);
350
356std::optional<blender::Bounds<blender::float3>> BKE_object_boundbox_get(const Object *ob);
357
359void BKE_object_dimensions_get(const Object *ob, float r_vec[3]);
360
368 const Object *ob);
369
371void BKE_object_dimensions_eval_cached_get(const Object *ob, float r_vec[3]);
372
382 const float value[3],
383 int axis_mask,
384 const float ob_scale_orig[3],
385 const float ob_obmat_orig[4][4]);
386void BKE_object_dimensions_set(Object *ob, const float value[3], int axis_mask);
387
388void BKE_object_empty_draw_type_set(Object *ob, int value);
389
392 Scene *scene,
393 Object *ob,
394 blender::float3 &r_min,
395 blender::float3 &r_max,
396 bool use_hidden);
403bool BKE_object_minmax_empty_drawtype(const Object *ob, float r_min[3], float r_max[3]);
404
409 const float obmat[4][4],
410 void (*func_cb)(const float[3], void *),
411 void *user_data);
413 void (*func_cb)(const float[3], void *),
414 void *user_data);
415
416bool BKE_object_parent_loop_check(const Object *parent, const Object *ob);
417
419void BKE_object_tfm_restore(Object *ob, void *obtfm_pt);
420
422 float loc[3], dloc[3];
423 float scale[3], dscale[3];
424 float rot[3], drot[3];
425 float quat[4], dquat[4];
426 float rotAxis[3], drotAxis[3];
428};
429
431
433 const ObjectTfmProtectedChannels *obtfm,
434 short protectflag);
435
436void BKE_object_tfm_copy(Object *object_dst, const Object *object_src);
437
446void BKE_object_eval_reset(Object *ob_eval);
447
448/* Dependency graph evaluation callbacks. */
449
451void BKE_object_eval_parent(Depsgraph *depsgraph, Object *ob);
452void BKE_object_eval_constraints(Depsgraph *depsgraph, Scene *scene, Object *ob);
454
455void BKE_object_eval_uber_transform(Depsgraph *depsgraph, Object *object);
456void BKE_object_eval_uber_data(Depsgraph *depsgraph, Scene *scene, Object *ob);
457
458void BKE_object_eval_shading(Depsgraph *depsgraph, Object *object);
459
460void BKE_object_eval_light_linking(Depsgraph *depsgraph, Object *object);
461
465void BKE_object_eval_assign_data(Object *object, ID *data, bool is_owned);
466
467void BKE_object_sync_to_original(Depsgraph *depsgraph, Object *object);
468
469void BKE_object_eval_ptcache_reset(Depsgraph *depsgraph, Scene *scene, Object *object);
470
471void BKE_object_eval_transform_all(Depsgraph *depsgraph, Scene *scene, Object *object);
472
473void BKE_object_data_select_update(Depsgraph *depsgraph, ID *object_data);
474void BKE_object_select_update(Depsgraph *depsgraph, Object *object);
475
477 Scene *scene,
478 int view_layer_index,
479 Object *object,
480 int base_index,
481 bool is_from_set);
482
483void BKE_object_handle_data_update(Depsgraph *depsgraph, Scene *scene, Object *ob);
491void BKE_object_handle_update(Depsgraph *depsgraph, Scene *scene, Object *ob);
500 Scene *scene,
501 Object *ob,
502 RigidBodyWorld *rbw);
503
505
507 char **r_texspace_flag,
508 float **r_texspace_location,
509 float **r_texspace_size);
510
513Mesh *BKE_object_get_evaluated_mesh(const Object *object_eval);
527const Mesh *BKE_object_get_pre_modified_mesh(const Object *object);
535
537const Mesh *BKE_object_get_editmesh_eval_cage(const Object *object);
538const Mesh *BKE_object_get_mesh_deform_eval(const Object *object);
539
540/* Lattice accessors.
541 * These functions return either the regular lattice, or the edit-mode lattice,
542 * whichever is currently in use. */
543
546
548void BKE_object_delete_ptcache(Object *ob, int index);
549KeyBlock *BKE_object_shapekey_insert(Main *bmain, Object *ob, const char *name, bool from_mix);
550bool BKE_object_shapekey_remove(Main *bmain, Object *ob, KeyBlock *kb);
551bool BKE_object_shapekey_free(Main *bmain, Object *ob);
552
553bool BKE_object_flag_test_recursive(const Object *ob, short flag);
554
555bool BKE_object_is_child_recursive(const Object *ob_parent, const Object *ob_child);
556
563int BKE_object_is_modified(Scene *scene, Object *ob);
570
586bool BKE_object_moves_in_time(const Object *object, bool recurse_parent);
587
590
591MovieClip *BKE_object_movieclip_get(Scene *scene, const Object *ob, bool use_default);
592
593void BKE_object_runtime_reset(Object *object);
605
607
608/* this function returns a superset of the scenes selection based on relationships */
609
611 OB_REL_NONE = 0, /* Just the selection as is. */
612 OB_REL_PARENT = (1 << 0), /* Immediate parent. */
613 OB_REL_PARENT_RECURSIVE = (1 << 1), /* Parents up to root of selection tree. */
614 OB_REL_CHILDREN = (1 << 2), /* Immediate children. */
615 OB_REL_CHILDREN_RECURSIVE = (1 << 3), /* All children. */
616 OB_REL_MOD_ARMATURE = (1 << 4), /* Armatures related to the selected objects. */
617 // OB_REL_SCENE_CAMERA = (1 << 5), /* You might want the scene camera too even if unselected? */
618};
619
621 OB_SET_SELECTED, /* Selected Objects. */
622 OB_SET_VISIBLE, /* Visible Objects. */
623 OB_SET_ALL, /* All Objects. */
624};
625
634 ViewLayer *view_layer,
635 eObjectSet objectSet,
636 eObRelationTypes includeFilter);
640LinkNode *BKE_object_groups(Main *bmain, Scene *scene, Object *ob);
641void BKE_object_groups_clear(Main *bmain, Scene *scene, Object *object);
642
652KDTree_3d *BKE_object_as_kdtree(Object *ob, int *r_tot);
653
661#define OBJECT_MODIFIER_UPDATE_SUBFRAME_RECURSION_DEFAULT 5
662
668 Scene *scene,
669 Object *ob,
670 bool update_mesh,
671 int parent_recursion_limit,
672 float frame,
673 int /*ModifierType*/ modifier_type);
674
680 Object *ob,
681 bool update_mesh,
682 int parent_recursion_limit,
683 int /*ModifierType*/ modifier_type,
684 blender::FunctionRef<void(Object *object, bool update_mesh)> update_or_tag_fn);
685
688
701Mesh *BKE_object_to_mesh(Depsgraph *depsgraph, Object *object, bool preserve_all_data_layers);
702
703void BKE_object_to_mesh_clear(Object *object);
704
715Curve *BKE_object_to_curve(Object *object, Depsgraph *depsgraph, bool apply_modifiers);
716
718
720
729
731
733
735
737void BKE_object_protected_location_set(Object *ob, const float location[3]);
739void BKE_object_protected_scale_set(Object *ob, const float scale[3]);
741void BKE_object_protected_rotation_quaternion_set(Object *ob, const float quat[4]);
743void BKE_object_protected_rotation_euler_set(Object *ob, const float euler[3]);
745void BKE_object_protected_rotation_axisangle_set(Object *ob, const float axis[3], float angle);
eObRelationTypes
@ OB_REL_MOD_ARMATURE
@ OB_REL_PARENT
@ OB_REL_CHILDREN_RECURSIVE
@ OB_REL_NONE
@ OB_REL_PARENT_RECURSIVE
@ OB_REL_CHILDREN
void BKE_object_matrix_local_get(Object *ob, float r_mat[4][4])
void BKE_object_where_is_calc_mat4(const Object *ob, float r_obmat[4][4])
void BKE_object_protected_location_set(Object *ob, const float location[3])
bool BKE_object_obdata_texspace_get(Object *ob, char **r_texspace_flag, float **r_texspace_location, float **r_texspace_size)
void BKE_object_rot_to_mat3(const Object *ob, float r_mat[3][3], bool use_drot)
void BKE_object_mat3_to_rot(Object *ob, float r_mat[3][3], bool use_compat)
void BKE_object_to_mesh_clear(Object *object)
bool BKE_object_is_libdata(const Object *ob)
blender::Vector< Base * > BKE_object_pose_base_array_get_unique(const Scene *scene, ViewLayer *view_layer, View3D *v3d)
void BKE_object_to_curve_clear(Object *object)
bool BKE_object_has_mode_data(const Object *ob, eObjectMode object_mode)
void BKE_object_select_update(Depsgraph *depsgraph, Object *object)
const Mesh * BKE_object_get_editmesh_eval_cage(const Object *object)
blender::float4x4 BKE_object_calc_parent(Depsgraph *depsgraph, Scene *scene, Object *ob)
void BKE_object_empty_draw_type_set(Object *ob, int value)
KDTree_3d * BKE_object_as_kdtree(Object *ob, int *r_tot)
void BKE_object_eval_reset(Object *ob_eval)
void BKE_object_groups_clear(Main *bmain, Scene *scene, Object *object)
bool BKE_object_flag_test_recursive(const Object *ob, short flag)
LinkNode * BKE_object_relational_superset(const Scene *scene, ViewLayer *view_layer, eObjectSet objectSet, eObRelationTypes includeFilter)
void BKE_object_sculpt_data_create(Object *ob)
void BKE_object_modifier_set_active(Object *ob, ModifierData *md)
Mesh * BKE_object_get_evaluated_mesh_no_subsurf(const Object *object_eval)
PartEff * BKE_object_do_version_give_parteff_245(Object *ob)
MovieClip * BKE_object_movieclip_get(Scene *scene, const Object *ob, bool use_default)
void BKE_object_tfm_restore(Object *ob, void *obtfm_pt)
bool BKE_object_is_in_editmode(const Object *ob)
bool BKE_object_exists_check(Main *bmain, const Object *obtest)
void BKE_object_handle_update_ex(Depsgraph *depsgraph, Scene *scene, Object *ob, RigidBodyWorld *rbw)
void BKE_object_copy_particlesystems(Object *ob_dst, const Object *ob_src, int flag)
void BKE_object_eval_parent(Depsgraph *depsgraph, Object *ob)
blender::Vector< Object * > BKE_object_pose_array_get_ex(const Scene *scene, ViewLayer *view_layer, View3D *v3d, bool unique)
void BKE_object_eval_local_transform(Depsgraph *depsgraph, Object *ob)
Object * BKE_object_add_for_data(Main *bmain, const Scene *scene, ViewLayer *view_layer, int type, const char *name, ID *data, bool do_id_user) ATTR_RETURNS_NONNULL
void BKE_object_update_select_id(Main *bmain)
KeyBlock * BKE_object_shapekey_insert(Main *bmain, Object *ob, const char *name, bool from_mix)
void BKE_object_eval_uber_transform(Depsgraph *depsgraph, Object *object)
void BKE_object_check_uids_unique_and_report(const Object *object)
void BKE_object_dimensions_set(Object *ob, const float value[3], int axis_mask)
const Mesh * BKE_object_get_pre_modified_mesh(const Object *object)
void BKE_object_apply_mat4(Object *ob, const float mat[4][4], bool use_compat, bool use_parent)
void BKE_object_tfm_protected_backup(const Object *ob, ObjectTfmProtectedChannels *obtfm)
void BKE_object_apply_mat4_ex(Object *ob, const float mat[4][4], Object *parent, const float parentinv[4][4], bool use_compat)
void BKE_object_batch_cache_dirty_tag(Object *ob)
void BKE_object_replace_data_on_shallow_copy(Object *ob, ID *new_data)
void BKE_object_workob_clear(Object *workob)
void BKE_object_dimensions_eval_cached_get(const Object *ob, float r_vec[3])
void BKE_object_get_parent_matrix(const Object *ob, Object *par, float r_parentmat[4][4])
bool BKE_object_minmax_empty_drawtype(const Object *ob, float r_min[3], float r_max[3])
bool BKE_object_supports_modifiers(const Object *ob)
char * BKE_object_data_editmode_flush_ptr_get(ID *id)
void BKE_object_runtime_reset(Object *object)
void BKE_object_tfm_copy(Object *object_dst, const Object *object_src)
void * BKE_object_obdata_add_from_type(Main *bmain, int type, const char *name) ATTR_NONNULL(1)
bool BKE_object_pose_context_check(const Object *ob)
Mesh * BKE_object_get_evaluated_mesh(const Object *object_eval)
void BKE_scene_foreach_display_point(Depsgraph *depsgraph, void(*func_cb)(const float[3], void *), void *user_data)
bool BKE_object_shapekey_free(Main *bmain, Object *ob)
eObjectVisibilityResult
@ OB_VISIBLE_INSTANCES
@ OB_VISIBLE_SELF
@ OB_VISIBLE_PARTICLES
@ OB_VISIBLE_ALL
int BKE_object_is_deform_modified(Scene *scene, Object *ob)
void BKE_object_sync_to_original(Depsgraph *depsgraph, Object *object)
Object * BKE_object_add(Main *bmain, Scene *scene, ViewLayer *view_layer, int type, const char *name) ATTR_NONNULL(1
void BKE_object_eval_constraints(Depsgraph *depsgraph, Scene *scene, Object *ob)
std::optional< blender::Bounds< blender::float3 > > BKE_object_boundbox_eval_cached_get(const Object *ob)
eObjectSet
@ OB_SET_SELECTED
@ OB_SET_VISIBLE
@ OB_SET_ALL
int BKE_object_insert_ptcache(Object *ob)
void BKE_object_eval_shading(Depsgraph *depsgraph, Object *object)
Object * BKE_object_add_only_object(Main *bmain, int type, const char *name) ATTR_RETURNS_NONNULL
bool BKE_object_moves_in_time(const Object *object, bool recurse_parent)
int BKE_object_scenes_users_get(Main *bmain, Object *ob)
bool BKE_object_shapekey_remove(Main *bmain, Object *ob, KeyBlock *kb)
Object * BKE_object_add_from(Main *bmain, Scene *scene, ViewLayer *view_layer, int type, const char *name, Object *ob_src) ATTR_NONNULL(1
Object * BKE_object_pose_armature_get(Object *ob)
bool BKE_object_modifier_stack_copy(Object *ob_dst, const Object *ob_src, bool do_copy_all, int flag_subdata)
void BKE_object_modifier_hook_reset(Object *ob, HookModifierData *hmd)
blender::Vector< Base * > BKE_object_pose_base_array_get(const Scene *scene, ViewLayer *view_layer, View3D *v3d)
void BKE_object_eval_uber_data(Depsgraph *depsgraph, Scene *scene, Object *ob)
void BKE_object_dimensions_set_ex(Object *ob, const float value[3], int axis_mask, const float ob_scale_orig[3], const float ob_obmat_orig[4][4])
const Mesh * BKE_object_get_mesh_deform_eval(const Object *object)
void BKE_object_runtime_free_data(Object *object)
blender::Vector< Base * > BKE_object_pose_base_array_get_ex(const Scene *scene, ViewLayer *view_layer, View3D *v3d, bool unique)
void BKE_object_data_select_update(Depsgraph *depsgraph, ID *object_data)
bool BKE_object_supports_material_slots(Object *ob)
bool BKE_object_obdata_is_libdata(const Object *ob)
std::optional< blender::Bounds< blender::float3 > > BKE_object_evaluated_geometry_bounds(const Object *ob)
ModifierData * BKE_object_active_modifier(const Object *ob)
SubsurfModifierData * BKE_object_get_last_subsurf_modifier(const Object *ob)
void BKE_object_free_particlesystems(Object *ob)
void BKE_object_free_curve_cache(Object *ob)
void BKE_object_eval_light_linking(Depsgraph *depsgraph, Object *object)
void BKE_object_where_is_calc_ex(Depsgraph *depsgraph, Scene *scene, RigidBodyWorld *rbw, Object *ob, float r_originmat[3][3])
bool BKE_object_data_is_in_editmode(const Object *ob, const ID *id)
void BKE_object_tfm_protected_restore(Object *ob, const ObjectTfmProtectedChannels *obtfm, short protectflag)
Mesh * BKE_object_get_evaluated_mesh_unchecked(const Object *object)
void BKE_object_eval_transform_all(Depsgraph *depsgraph, Scene *scene, Object *object)
void BKE_object_minmax(Object *ob, blender::float3 &r_min, blender::float3 &r_max)
ParticleSystem * BKE_object_copy_particlesystem(ParticleSystem *psys, int flag)
void BKE_object_free_modifiers(Object *ob, int flag)
bool BKE_object_parent_loop_check(const Object *parent, const Object *ob)
Object * BKE_object_pose_armature_get_with_wpaint_check(Object *ob)
bool BKE_object_is_mode_compat(const Object *ob, eObjectMode object_mode)
blender::Vector< Object * > BKE_object_pose_array_get_unique(const Scene *scene, ViewLayer *view_layer, View3D *v3d)
void BKE_object_foreach_display_point(Object *ob, const float obmat[4][4], void(*func_cb)(const float[3], void *), void *user_data)
Mesh * BKE_object_to_mesh(Depsgraph *depsgraph, Object *object, bool preserve_all_data_layers)
void BKE_object_link_modifiers(Object *ob_dst, const Object *ob_src)
void BKE_object_scale_to_mat3(const Object *ob, float r_mat[3][3])
void BKE_object_modifier_update_subframe_only_callback(Object *ob, bool update_mesh, int parent_recursion_limit, int modifier_type, blender::FunctionRef< void(Object *object, bool update_mesh)> update_or_tag_fn)
const Mesh * BKE_object_get_editmesh_eval_final(const Object *object)
bool BKE_object_is_child_recursive(const Object *ob_parent, const Object *ob_child)
void BKE_object_obdata_size_init(Object *ob, float size)
Object * BKE_object_duplicate(Main *bmain, Object *ob, eDupli_ID_Flags dupflag, uint duplicate_options)
void BKE_object_modifier_update_subframe(Depsgraph *depsgraph, Scene *scene, Object *ob, bool update_mesh, int parent_recursion_limit, float frame, int modifier_type)
Mesh * BKE_object_get_evaluated_mesh_no_subsurf_unchecked(const Object *object)
bool BKE_object_support_modifier_type_check(const Object *ob, int modifier_type)
bool BKE_object_empty_image_frame_is_visible_in_view3d(const Object *ob, const RegionView3D *rv3d)
void BKE_object_eval_transform_final(Depsgraph *depsgraph, Object *ob)
Lattice * BKE_object_get_lattice(const Object *object)
void BKE_object_modifier_gpencil_hook_reset(Object *ob, HookGpencilModifierData *hmd)
void BKE_object_protected_rotation_quaternion_set(Object *ob, const float quat[4])
void BKE_object_protected_rotation_euler_set(Object *ob, const float euler[3])
bool BKE_object_is_in_wpaint_select_vert(const Object *ob)
bool BKE_object_minmax_dupli(Depsgraph *depsgraph, Scene *scene, Object *ob, blender::float3 &r_min, blender::float3 &r_max, bool use_hidden)
void BKE_object_apply_parent_inverse(Object *ob)
std::optional< blender::Bounds< blender::float3 > > BKE_object_boundbox_get(const Object *ob)
void BKE_object_copy_softbody(Object *ob_dst, const Object *ob_src, int flag)
Mesh * BKE_object_get_original_mesh(const Object *object)
void BKE_object_to_mat4(const Object *ob, float r_mat[4][4])
Curve * BKE_object_to_curve(Object *object, Depsgraph *depsgraph, bool apply_modifiers)
Lattice * BKE_object_get_evaluated_lattice(const Object *object)
void * BKE_object_tfm_backup(Object *ob)
Object * BKE_object_pose_armature_get_visible(Object *ob, const Scene *scene, ViewLayer *view_layer, View3D *v3d)
void BKE_object_to_mat3(const Object *ob, float r_mat[3][3])
void BKE_object_eval_eval_base_flags(Depsgraph *depsgraph, Scene *scene, int view_layer_index, Object *object, int base_index, bool is_from_set)
void BKE_object_handle_update(Depsgraph *depsgraph, Scene *scene, Object *ob)
bool BKE_object_copy_modifier(Main *bmain, const Scene *scene, Object *ob_dst, const Object *ob_src, const ModifierData *md)
void BKE_object_delete_ptcache(Object *ob, int index)
void BKE_object_runtime_reset_on_copy(Object *object, int flag)
void BKE_object_free_caches(Object *object)
LinkNode * BKE_object_groups(Main *bmain, Scene *scene, Object *ob)
int BKE_object_obdata_to_type(const ID *id) ATTR_NONNULL(1)
void BKE_object_dimensions_get(const Object *ob, float r_vec[3])
void BKE_object_eval_assign_data(Object *object, ID *data, bool is_owned)
void BKE_object_where_is_calc_time(Depsgraph *depsgraph, Scene *scene, Object *ob, float ctime)
bool BKE_object_is_in_editmode_vgroup(const Object *ob)
void BKE_object_handle_data_update(Depsgraph *depsgraph, Scene *scene, Object *ob)
bool BKE_object_empty_image_data_is_visible_in_view3d(const Object *ob, const RegionView3D *rv3d)
void BKE_object_eval_ptcache_reset(Depsgraph *depsgraph, Scene *scene, Object *object)
void BKE_object_where_is_calc(Depsgraph *depsgraph, Scene *scene, Object *ob)
void BKE_object_transform_copy(Object *ob_tar, const Object *ob_src)
int BKE_object_is_modified(Scene *scene, Object *ob)
void BKE_object_free_shaderfx(Object *ob, int flag)
void BKE_object_protected_scale_set(Object *ob, const float scale[3])
blender::Vector< Object * > BKE_object_pose_array_get(const Scene *scene, ViewLayer *view_layer, View3D *v3d)
void BKE_object_free_derived_caches(Object *ob)
void BKE_object_free_softbody(Object *ob)
int BKE_object_visibility(const Object *ob, int dag_eval_mode)
void BKE_object_protected_rotation_axisangle_set(Object *ob, const float axis[3], float angle)
#define ATTR_RETURNS_NONNULL
#define ATTR_NONNULL(...)
unsigned int uint
eObjectMode
eDupli_ID_Flags
static double angle(const Eigen::Vector3d &v1, const Eigen::Vector3d &v2)
Definition IK_Math.h:117
BMesh const char void * data
BPy_StructRNA * depsgraph
static DBVT_INLINE btScalar size(const btDbvtVolume &a)
Definition btDbvt.cpp:52
MatBase< float, 4, 4 > float4x4
const char * name
Definition DNA_ID.h:414
uint8_t flag
Definition wm_window.cc:145