Blender V4.5
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
339/* Possibly belong in its own module? */
340
341void BKE_boundbox_init_from_minmax(BoundBox *bb, const float min[3], const float max[3]);
343 const blender::float4x4 &matrix,
344 blender::float3 &r_min,
345 blender::float3 &r_max);
346
357 const Object *ob);
358
364std::optional<blender::Bounds<blender::float3>> BKE_object_boundbox_get(const Object *ob);
365
367void BKE_object_dimensions_get(const Object *ob, float r_vec[3]);
368
376 const Object *ob);
377
379void BKE_object_dimensions_eval_cached_get(const Object *ob, float r_vec[3]);
380
390 const float value[3],
391 int axis_mask,
392 const float ob_scale_orig[3],
393 const float ob_obmat_orig[4][4]);
394void BKE_object_dimensions_set(Object *ob, const float value[3], int axis_mask);
395
396void BKE_object_empty_draw_type_set(Object *ob, int value);
397
400 Scene *scene,
401 Object *ob,
402 blender::float3 &r_min,
403 blender::float3 &r_max,
404 bool use_hidden);
411bool BKE_object_minmax_empty_drawtype(const Object *ob, float r_min[3], float r_max[3]);
412
417 const float obmat[4][4],
418 void (*func_cb)(const float[3], void *),
419 void *user_data);
421 void (*func_cb)(const float[3], void *),
422 void *user_data);
423
424bool BKE_object_parent_loop_check(const Object *parent, const Object *ob);
425
427void BKE_object_tfm_restore(Object *ob, void *obtfm_pt);
428
430 float loc[3], dloc[3];
431 float scale[3], dscale[3];
432 float rot[3], drot[3];
433 float quat[4], dquat[4];
434 float rotAxis[3], drotAxis[3];
436};
437
439
441 const ObjectTfmProtectedChannels *obtfm,
442 short protectflag);
443
444void BKE_object_tfm_copy(Object *object_dst, const Object *object_src);
445
454void BKE_object_eval_reset(Object *ob_eval);
455
456/* Dependency graph evaluation callbacks. */
457
459void BKE_object_eval_parent(Depsgraph *depsgraph, Object *ob);
460void BKE_object_eval_constraints(Depsgraph *depsgraph, Scene *scene, Object *ob);
462
463void BKE_object_eval_uber_transform(Depsgraph *depsgraph, Object *object);
464void BKE_object_eval_uber_data(Depsgraph *depsgraph, Scene *scene, Object *ob);
465
466void BKE_object_eval_shading(Depsgraph *depsgraph, Object *object);
467
468void BKE_object_eval_light_linking(Depsgraph *depsgraph, Object *object);
469
473void BKE_object_eval_assign_data(Object *object, ID *data, bool is_owned);
474
475void BKE_object_sync_to_original(Depsgraph *depsgraph, Object *object);
476
477void BKE_object_eval_ptcache_reset(Depsgraph *depsgraph, Scene *scene, Object *object);
478
479void BKE_object_eval_transform_all(Depsgraph *depsgraph, Scene *scene, Object *object);
480
481void BKE_object_data_select_update(Depsgraph *depsgraph, ID *object_data);
482void BKE_object_select_update(Depsgraph *depsgraph, Object *object);
483
485 Scene *scene,
486 int view_layer_index,
487 Object *object,
488 int base_index,
489 bool is_from_set);
490
491void BKE_object_handle_data_update(Depsgraph *depsgraph, Scene *scene, Object *ob);
499void BKE_object_handle_update(Depsgraph *depsgraph, Scene *scene, Object *ob);
508 Scene *scene,
509 Object *ob,
510 RigidBodyWorld *rbw);
511
513
515 char **r_texspace_flag,
516 float **r_texspace_location,
517 float **r_texspace_size);
518
521Mesh *BKE_object_get_evaluated_mesh(const Object *object_eval);
535const Mesh *BKE_object_get_pre_modified_mesh(const Object *object);
543
545const Mesh *BKE_object_get_editmesh_eval_cage(const Object *object);
546const Mesh *BKE_object_get_mesh_deform_eval(const Object *object);
547
548/* Lattice accessors.
549 * These functions return either the regular lattice, or the edit-mode lattice,
550 * whichever is currently in use. */
551
554
556void BKE_object_delete_ptcache(Object *ob, int index);
557KeyBlock *BKE_object_shapekey_insert(Main *bmain, Object *ob, const char *name, bool from_mix);
558bool BKE_object_shapekey_remove(Main *bmain, Object *ob, KeyBlock *kb);
559bool BKE_object_shapekey_free(Main *bmain, Object *ob);
560
561bool BKE_object_flag_test_recursive(const Object *ob, short flag);
562
563bool BKE_object_is_child_recursive(const Object *ob_parent, const Object *ob_child);
564
571int BKE_object_is_modified(Scene *scene, Object *ob);
578
594bool BKE_object_moves_in_time(const Object *object, bool recurse_parent);
595
598
599MovieClip *BKE_object_movieclip_get(Scene *scene, const Object *ob, bool use_default);
600
601void BKE_object_runtime_reset(Object *object);
613
615
616/* this function returns a superset of the scenes selection based on relationships */
617
619 OB_REL_NONE = 0, /* Just the selection as is. */
620 OB_REL_PARENT = (1 << 0), /* Immediate parent. */
621 OB_REL_PARENT_RECURSIVE = (1 << 1), /* Parents up to root of selection tree. */
622 OB_REL_CHILDREN = (1 << 2), /* Immediate children. */
623 OB_REL_CHILDREN_RECURSIVE = (1 << 3), /* All children. */
624 OB_REL_MOD_ARMATURE = (1 << 4), /* Armatures related to the selected objects. */
625 // OB_REL_SCENE_CAMERA = (1 << 5), /* You might want the scene camera too even if unselected? */
626};
627
629 OB_SET_SELECTED, /* Selected Objects. */
630 OB_SET_VISIBLE, /* Visible Objects. */
631 OB_SET_ALL, /* All Objects. */
632};
633
642 ViewLayer *view_layer,
643 eObjectSet objectSet,
644 eObRelationTypes includeFilter);
648LinkNode *BKE_object_groups(Main *bmain, Scene *scene, Object *ob);
649void BKE_object_groups_clear(Main *bmain, Scene *scene, Object *object);
650
660KDTree_3d *BKE_object_as_kdtree(Object *ob, int *r_tot);
661
669#define OBJECT_MODIFIER_UPDATE_SUBFRAME_RECURSION_DEFAULT 5
670
676 Scene *scene,
677 Object *ob,
678 bool update_mesh,
679 int parent_recursion_limit,
680 float frame,
681 int /*ModifierType*/ modifier_type);
682
688 Object *ob,
689 bool update_mesh,
690 int parent_recursion_limit,
691 int /*ModifierType*/ modifier_type,
692 blender::FunctionRef<void(Object *object, bool update_mesh)> update_or_tag_fn);
693
696
709Mesh *BKE_object_to_mesh(Depsgraph *depsgraph, Object *object, bool preserve_all_data_layers);
710
711void BKE_object_to_mesh_clear(Object *object);
712
723Curve *BKE_object_to_curve(Object *object, Depsgraph *depsgraph, bool apply_modifiers);
724
726
728
737
739
741
743
745void BKE_object_protected_location_set(Object *ob, const float location[3]);
747void BKE_object_protected_scale_set(Object *ob, const float scale[3]);
749void BKE_object_protected_rotation_quaternion_set(Object *ob, const float quat[4]);
751void BKE_object_protected_rotation_euler_set(Object *ob, const float euler[3]);
753void 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)
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)
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_boundbox_minmax(const BoundBox &bb, const blender::float4x4 &matrix, blender::float3 &r_min, blender::float3 &r_max)
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
float[3] Vector
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< 4, 4 > float4x4
MatBase< float, 4, 4 > float4x4
#define min(a, b)
Definition sort.cc:36
Definition DNA_ID.h:404
char name[64]
max
Definition text_draw.cc:251
uint8_t flag
Definition wm_window.cc:139