Blender V4.3
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
12#include <optional>
13
14#include "BLI_bounds_types.hh"
15#include "BLI_compiler_attrs.h"
18#include "BLI_sys_types.h"
19#include "BLI_vector.hh"
20
21#include "DNA_object_enums.h"
22#include "DNA_userdef_enums.h"
23
24struct Base;
25struct BoundBox;
26struct Curve;
27struct Depsgraph;
29struct HookModifierData;
30struct ID;
31struct KDTree_3d;
32struct KeyBlock;
33struct Lattice;
34struct LinkNode;
35struct Main;
36struct Mesh;
37struct ModifierData;
38struct MovieClip;
39struct Object;
40struct PartEff;
41struct ParticleSystem;
42struct RegionView3D;
43struct RigidBodyWorld;
44struct Scene;
46struct View3D;
47struct ViewLayer;
48
61
62void BKE_object_transform_copy(Object *ob_tar, const Object *ob_src);
63void BKE_object_copy_softbody(Object *ob_dst, const Object *ob_src, int flag);
65void BKE_object_copy_particlesystems(Object *ob_dst, const Object *ob_src, int flag);
69
74void BKE_object_free_caches(Object *object);
75
78
83bool BKE_object_support_modifier_type_check(const Object *ob, int modifier_type);
84
85/* Active modifier. */
86
95
108 Main *bmain, const Scene *scene, Object *ob_dst, const Object *ob_src, const ModifierData *md);
120 const Object *ob_src,
121 bool do_copy_all,
122 int flag_subdata);
123void BKE_object_link_modifiers(Object *ob_dst, const Object *ob_src);
126
127bool BKE_object_exists_check(Main *bmain, const Object *obtest);
131bool BKE_object_is_in_editmode(const Object *ob);
134bool BKE_object_has_mode_data(const Object *ob, eObjectMode object_mode);
135bool BKE_object_is_mode_compat(const Object *ob, eObjectMode object_mode);
136
137bool BKE_object_data_is_in_editmode(const Object *ob, const ID *id);
138
140
145
152
156int BKE_object_visibility(const Object *ob, int dag_eval_mode);
157
163Object *BKE_object_add_only_object(Main *bmain, int type, const char *name) ATTR_RETURNS_NONNULL;
173 Scene *scene,
174 ViewLayer *view_layer,
175 int type,
176 const char *name) ATTR_NONNULL(1, 2, 3) ATTR_RETURNS_NONNULL;
183 Main *bmain, Scene *scene, ViewLayer *view_layer, int type, const char *name, Object *ob_src)
195 const Scene *scene,
196 ViewLayer *view_layer,
197 int type,
198 const char *name,
199 ID *data,
200 bool do_id_user) ATTR_RETURNS_NONNULL;
201void *BKE_object_obdata_add_from_type(Main *bmain, int type, const char *name) ATTR_NONNULL(1);
206
210bool BKE_object_is_libdata(const Object *ob);
215
228 Object *ob,
229 eDupli_ID_Flags dupflag,
230 uint duplicate_options);
231
235void BKE_object_obdata_size_init(Object *ob, float size);
236
237void BKE_object_scale_to_mat3(const Object *ob, float r_mat[3][3]);
238void BKE_object_rot_to_mat3(const Object *ob, float r_mat[3][3], bool use_drot);
239void BKE_object_mat3_to_rot(Object *ob, float r_mat[3][3], bool use_compat);
240void BKE_object_to_mat3(const Object *ob, float r_mat[3][3]);
241void BKE_object_to_mat4(const Object *ob, float r_mat[4][4]);
253 const float mat[4][4],
254 Object *parent,
255 const float parentinv[4][4],
256 bool use_compat);
258void BKE_object_apply_mat4(Object *ob, const float mat[4][4], bool use_compat, bool use_parent);
259
269
270void BKE_object_matrix_local_get(Object *ob, float r_mat[4][4]);
271
273
285 const Scene *scene,
286 ViewLayer *view_layer,
287 View3D *v3d);
288
292blender::Vector<Object *> BKE_object_pose_array_get_ex(const Scene *scene,
293 ViewLayer *view_layer,
294 View3D *v3d,
295 bool unique);
297 ViewLayer *view_layer,
298 View3D *v3d);
299blender::Vector<Object *> BKE_object_pose_array_get(const Scene *scene,
300 ViewLayer *view_layer,
301 View3D *v3d);
302
304 ViewLayer *view_layer,
305 View3D *v3d,
306 bool unique);
308 ViewLayer *view_layer,
309 View3D *v3d);
310blender::Vector<Base *> BKE_object_pose_base_array_get(const Scene *scene,
311 ViewLayer *view_layer,
312 View3D *v3d);
313
314void BKE_object_get_parent_matrix(const Object *ob, Object *par, float r_parentmat[4][4]);
315
319void BKE_object_where_is_calc(Depsgraph *depsgraph, Scene *scene, Object *ob);
321 Depsgraph *depsgraph, Scene *scene, RigidBodyWorld *rbw, Object *ob, float r_originmat[3][3]);
322void BKE_object_where_is_calc_time(Depsgraph *depsgraph, Scene *scene, Object *ob, float ctime);
329void BKE_object_where_is_calc_mat4(const Object *ob, float r_obmat[4][4]);
330
331/* Possibly belong in its own module? */
332
333void BKE_boundbox_init_from_minmax(BoundBox *bb, const float min[3], const float max[3]);
334void BKE_boundbox_minmax(const BoundBox *bb,
335 const float obmat[4][4],
336 float r_min[3],
337 float r_max[3]);
338
344std::optional<blender::Bounds<blender::float3>> BKE_object_boundbox_get(const Object *ob);
345void BKE_object_dimensions_get(Object *ob, float r_vec[3]);
346
354 const Object *ob);
356void BKE_object_dimensions_eval_cached_get(Object *ob, float r_vec[3]);
357
367 const float value[3],
368 int axis_mask,
369 const float ob_scale_orig[3],
370 const float ob_obmat_orig[4][4]);
371void BKE_object_dimensions_set(Object *ob, const float value[3], int axis_mask);
372
373void BKE_object_empty_draw_type_set(Object *ob, int value);
374
376 const Object *ob);
377void BKE_object_minmax(Object *ob, float r_min[3], float r_max[3]);
378bool BKE_object_minmax_dupli(Depsgraph *depsgraph,
379 Scene *scene,
380 Object *ob,
381 float r_min[3],
382 float r_max[3],
383 bool use_hidden);
390bool BKE_object_minmax_empty_drawtype(const Object *ob, float r_min[3], float r_max[3]);
391
396 const float obmat[4][4],
397 void (*func_cb)(const float[3], void *),
398 void *user_data);
400 void (*func_cb)(const float[3], void *),
401 void *user_data);
402
403bool BKE_object_parent_loop_check(const Object *parent, const Object *ob);
404
406void BKE_object_tfm_restore(Object *ob, void *obtfm_pt);
407
409 float loc[3], dloc[3];
410 float scale[3], dscale[3];
411 float rot[3], drot[3];
412 float quat[4], dquat[4];
413 float rotAxis[3], drotAxis[3];
414 float rotAngle, drotAngle;
415};
416
418
420 const ObjectTfmProtectedChannels *obtfm,
421 short protectflag);
422
423void BKE_object_tfm_copy(Object *object_dst, const Object *object_src);
424
433void BKE_object_eval_reset(Object *ob_eval);
434
435/* Dependency graph evaluation callbacks. */
436
438void BKE_object_eval_parent(Depsgraph *depsgraph, Object *ob);
439void BKE_object_eval_constraints(Depsgraph *depsgraph, Scene *scene, Object *ob);
441
442void BKE_object_eval_uber_transform(Depsgraph *depsgraph, Object *object);
443void BKE_object_eval_uber_data(Depsgraph *depsgraph, Scene *scene, Object *ob);
444
445void BKE_object_eval_shading(Depsgraph *depsgraph, Object *ob);
446
447void BKE_object_eval_light_linking(Depsgraph *depsgraph, Object *object);
448
452void BKE_object_eval_assign_data(Object *object, ID *data, bool is_owned);
453
454void BKE_object_sync_to_original(Depsgraph *depsgraph, Object *object);
455
456void BKE_object_eval_ptcache_reset(Depsgraph *depsgraph, Scene *scene, Object *object);
457
458void BKE_object_eval_transform_all(Depsgraph *depsgraph, Scene *scene, Object *object);
459
460void BKE_object_data_select_update(Depsgraph *depsgraph, ID *object_data);
461void BKE_object_select_update(Depsgraph *depsgraph, Object *object);
462
464 Scene *scene,
465 int view_layer_index,
466 Object *object,
467 int base_index,
468 bool is_from_set);
469
470void BKE_object_handle_data_update(Depsgraph *depsgraph, Scene *scene, Object *ob);
478void BKE_object_handle_update(Depsgraph *depsgraph, Scene *scene, Object *ob);
487 Scene *scene,
488 Object *ob,
489 RigidBodyWorld *rbw);
490
492
494 char **r_texspace_flag,
495 float **r_texspace_location,
496 float **r_texspace_size);
497
500Mesh *BKE_object_get_evaluated_mesh(const Object *object_eval);
523
525const Mesh *BKE_object_get_editmesh_eval_cage(const Object *object);
526const Mesh *BKE_object_get_mesh_deform_eval(const Object *object);
527
528/* Lattice accessors.
529 * These functions return either the regular lattice, or the edit-mode lattice,
530 * whichever is currently in use. */
531
534
536void BKE_object_delete_ptcache(Object *ob, int index);
537KeyBlock *BKE_object_shapekey_insert(Main *bmain, Object *ob, const char *name, bool from_mix);
538bool BKE_object_shapekey_remove(Main *bmain, Object *ob, KeyBlock *kb);
539bool BKE_object_shapekey_free(Main *bmain, Object *ob);
540
541bool BKE_object_flag_test_recursive(const Object *ob, short flag);
542
543bool BKE_object_is_child_recursive(const Object *ob_parent, const Object *ob_child);
544
551int BKE_object_is_modified(Scene *scene, Object *ob);
558
574bool BKE_object_moves_in_time(const Object *object, bool recurse_parent);
575
578
579MovieClip *BKE_object_movieclip_get(Scene *scene, const Object *ob, bool use_default);
580
581void BKE_object_runtime_reset(Object *object);
593
595
596/* this function returns a superset of the scenes selection based on relationships */
597
599 OB_REL_NONE = 0, /* Just the selection as is. */
600 OB_REL_PARENT = (1 << 0), /* Immediate parent. */
601 OB_REL_PARENT_RECURSIVE = (1 << 1), /* Parents up to root of selection tree. */
602 OB_REL_CHILDREN = (1 << 2), /* Immediate children. */
603 OB_REL_CHILDREN_RECURSIVE = (1 << 3), /* All children. */
604 OB_REL_MOD_ARMATURE = (1 << 4), /* Armatures related to the selected objects. */
605 // OB_REL_SCENE_CAMERA = (1 << 5), /* You might want the scene camera too even if unselected? */
606};
607
609 OB_SET_SELECTED, /* Selected Objects. */
610 OB_SET_VISIBLE, /* Visible Objects. */
611 OB_SET_ALL, /* All Objects. */
612};
613
622 ViewLayer *view_layer,
623 eObjectSet objectSet,
624 eObRelationTypes includeFilter);
628LinkNode *BKE_object_groups(Main *bmain, Scene *scene, Object *ob);
629void BKE_object_groups_clear(Main *bmain, Scene *scene, Object *object);
630
640KDTree_3d *BKE_object_as_kdtree(Object *ob, int *r_tot);
641
647 Scene *scene,
648 Object *ob,
649 bool update_mesh,
650 int parent_recursion,
651 float frame,
652 int type);
653
656
669Mesh *BKE_object_to_mesh(Depsgraph *depsgraph, Object *object, bool preserve_all_data_layers);
670
671void BKE_object_to_mesh_clear(Object *object);
672
683Curve *BKE_object_to_curve(Object *object, Depsgraph *depsgraph, bool apply_modifiers);
684
686
688
697
699
701
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])
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)
bool BKE_object_modifier_update_subframe(Depsgraph *depsgraph, Scene *scene, Object *ob, bool update_mesh, int parent_recursion, float frame, int type)
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)
void BKE_object_dimensions_get(Object *ob, float r_vec[3])
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)
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_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)
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)
void BKE_boundbox_init_from_minmax(BoundBox *bb, const float min[3], const float max[3])
bool BKE_object_supports_material_slots(Object *ob)
bool BKE_object_obdata_is_libdata(const Object *ob)
Object ATTR_RETURNS_NONNULL
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)
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_boundbox_minmax(const BoundBox *bb, const float obmat[4][4], float r_min[3], float r_max[3])
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])
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_minmax(Object *ob, float r_min[3], float r_max[3])
Mesh * BKE_object_get_evaluated_mesh_no_subsurf_unchecked(const Object *object)
Mesh * BKE_object_get_pre_modified_mesh(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)
bool BKE_object_is_in_wpaint_select_vert(const Object *ob)
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)
bool BKE_object_minmax_dupli(Depsgraph *depsgraph, Scene *scene, Object *ob, float r_min[3], float r_max[3], bool use_hidden)
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_eval_shading(Depsgraph *depsgraph, Object *ob)
void BKE_object_delete_ptcache(Object *ob, int index)
void BKE_object_dimensions_eval_cached_get(Object *ob, float r_vec[3])
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_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)
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)
#define ATTR_NONNULL(...)
unsigned int uint
eObjectMode
eDupli_ID_Flags
const Depsgraph * depsgraph
#define rot(x, k)
#define min(a, b)
Definition sort.c:32
Definition DNA_ID.h:413
uint8_t flag
Definition wm_window.cc:138