|
Blender V4.3
|
#include "MEM_guardedalloc.h"#include "BLI_listbase.h"#include "BLI_math_matrix.h"#include "BLI_math_rotation.h"#include "BLI_math_vector.h"#include "BKE_context.hh"#include "BKE_layer.hh"#include "BKE_lib_id.hh"#include "BKE_object.hh"#include "BKE_pointcache.h"#include "BKE_rigidbody.h"#include "BKE_scene.hh"#include "ANIM_action.hh"#include "ANIM_keyframing.hh"#include "ANIM_rna.hh"#include "ED_anim_api.hh"#include "ED_object.hh"#include "DEG_depsgraph_query.hh"#include "transform.hh"#include "transform_orientations.hh"#include "transform_snap.hh"#include "transform_convert.hh"Go to the source code of this file.
Classes | |
| struct | TransDataObject |
Macros | |
| #define | BASE_XFORM_INDIRECT(base) |
Functions | |
Object Mode Custom Data | |
| static void | freeTransObjectCustomData (TransInfo *t, TransDataContainer *, TransCustomData *custom_data) |
Object Data in Object Mode | |
Use to implement 'Affect Only Origins' feature. We need this to be detached from transform data because, unlike transforming regular objects, we need to transform the children. Nearly all of the logic here is in the 'blender::ed::object::data_xform_container_*' API. | |
| static void | trans_obdata_in_obmode_update_all (TransInfo *t) |
Object Child Skip | |
Don't transform unselected children, this is done using the parent inverse matrix.
| |
| static void | trans_obchild_in_obmode_update_all (TransInfo *t) |
Object Transform Creation | |
Instead of transforming the selection, move the 2D/3D cursor. | |
| static void | ObjectToTransData (TransInfo *t, TransData *td, Object *ob) |
| static void | trans_object_base_deps_flag_prepare (const Scene *scene, ViewLayer *view_layer) |
| static void | set_trans_object_base_deps_flag_cb (ID *id, eDepsObjectComponentType component) |
| static void | flush_trans_object_base_deps_flag (Depsgraph *depsgraph, Object *object) |
| static void | trans_object_base_deps_flag_finish (const TransInfo *t, const Scene *scene, ViewLayer *view_layer) |
| static void | set_trans_object_base_flags (TransInfo *t) |
| static bool | mark_children (Object *ob) |
| static int | count_proportional_objects (TransInfo *t) |
| static void | clear_trans_object_base_flags (TransInfo *t) |
| static void | createTransObject (bContext *C, TransInfo *t) |
Transform (Auto-Keyframing) | |
| static bool | motionpath_need_update_object (Scene *scene, Object *ob) |
Recalc Data object | |
| static blender::Vector< RNAPath > | get_affected_rna_paths_from_transform_mode (const eTfmMode tmode, Scene *scene, ViewLayer *view_layer, Object *ob, const blender::StringRef rotation_path, const bool transforming_more_than_one_object) |
| static void | autokeyframe_object (bContext *C, Scene *scene, Object *ob, const eTfmMode tmode, const bool transforming_more_than_one_object) |
| static void | recalcData_objects (TransInfo *t) |
Special After Transform Object | |
| static void | special_aftertrans_update__object (bContext *C, TransInfo *t) |
Variables | |
| TransConvertTypeInfo | TransConvertType_Object |
| #define BASE_XFORM_INDIRECT | ( | base | ) |
Referenced by createTransObject().
|
static |
Definition at line 820 of file transform_convert_object.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::as_span(), AUTOKEY_FLAG_INSERTNEEDED, blender::animrig::autokeyframe_object(), CTX_data_view_layer(), get_affected_rna_paths_from_transform_mode(), blender::animrig::get_rotation_mode_path(), blender::animrig::is_keying_flag(), and Object::rotmode.
Referenced by recalcData_objects(), and special_aftertrans_update__object().
|
static |
Definition at line 477 of file transform_convert_object.cc.
References blender::ed::object::BA_SELECT, BA_SNAP_FIX_DEPS_FIASCO, BA_TEMP_TAG, BA_TRANSFORM_CHILD, BA_TRANSFORM_LOCKED_IN_PLACE, BA_TRANSFORM_PARENT, BA_WAS_SEL, blender::ed::object::base_select(), BKE_view_layer_object_bases_get(), BKE_view_layer_synced_ensure(), LISTBASE_FOREACH, TransInfo::scene, and TransInfo::view_layer.
Referenced by createTransObject(), and special_aftertrans_update__object().
Definition at line 422 of file transform_convert_object.cc.
References TransInfo::around, BA_TRANSFORM_CHILD, BA_TRANSFORM_PARENT, BASE_EDITABLE, BASE_SELECTABLE, BASE_SELECTED, BASE_SELECTED_EDITABLE, BKE_scene_ensure_depsgraph(), BKE_view_layer_object_bases_get(), TransInfo::context, CTX_data_main(), depsgraph, ELEM, Object::flag, flush_trans_object_base_deps_flag(), LISTBASE_FOREACH, mark_children(), TransInfo::mode, Object::parent, TransInfo::scene, TFM_ROTATION, TFM_TRACKBALL, trans_object_base_deps_flag_finish(), trans_object_base_deps_flag_prepare(), V3D_AROUND_LOCAL_ORIGINS, TransInfo::view, and TransInfo::view_layer.
Referenced by createTransObject().
Definition at line 494 of file transform_convert_object.cc.
References BA_TRANSFORM_CHILD, BA_TRANSFORM_LOCKED_IN_PLACE, BA_TRANSFORM_PARENT, BA_WAS_SEL, BASE_EDITABLE, BASE_SELECTABLE, BASE_SELECTED, BASE_XFORM_INDIRECT, BKE_id_is_editable(), BKE_object_is_in_editmode(), BKE_view_layer_base_find(), BKE_view_layer_object_bases_get(), BKE_view_layer_synced_ensure(), BLI_ghash_free(), BLI_ghash_insert(), BLI_ghash_lookup(), BLI_ghash_ptr_new_ex(), BLI_gset_add(), BLI_gset_free(), BLI_gset_haskey(), BLI_gset_ptr_new_ex(), clear_trans_object_base_flags(), count_proportional_objects(), CTX_DATA_BEGIN, CTX_DATA_COUNT, CTX_DATA_END, CTX_data_main(), CTX_OBMODE_XFORM_OBDATA, CTX_OBMODE_XFORM_SKIP_CHILDREN, TransInfo::custom, Object::data, TransCustomData::data, TransDataContainer::data, TransDataContainer::data_ext, TransDataContainer::data_len, TransData::ext, Object::flag, TransInfo::flag, TransCustomData::free_cb, freeTransObjectCustomData(), Object::id, LISTBASE_FOREACH, MEM_callocN, TransData::ob, ObjectToTransData(), TransInfo::options, Object::parent, Object::protectflag, TransData::protectflag, Object::rotmode, TransDataExtension::rotOrder, TransInfo::scene, set_trans_object_base_flags(), T_PROP_EDIT, TD_NO_LOC, TD_NOCENTER, TD_SELECTED, TD_SKIP, TRANS_DATA_CONTAINER_FIRST_SINGLE, TransCustomDataContainer::type, TransInfo::view, TransInfo::view_layer, TransDataObject::xcs, and TransDataObject::xds.
|
static |
Definition at line 318 of file transform_convert_object.cc.
References DEG_FOREACH_COMPONENT_IGNORE_TRANSFORM_SOLVERS, DEG_foreach_dependent_ID_component(), DEG_OB_COMP_TRANSFORM, depsgraph, ID_TAG_DOIT, and set_trans_object_base_deps_flag_cb().
Referenced by count_proportional_objects(), and set_trans_object_base_flags().
|
static |
Definition at line 61 of file transform_convert_object.cc.
References CTX_OBMODE_XFORM_OBDATA, CTX_OBMODE_XFORM_SKIP_CHILDREN, TransCustomData::data, blender::ed::object::data_xform_container_destroy(), MEM_freeN(), blender::ed::object::object_xform_skip_child_container_destroy(), TransInfo::options, TransDataObject::xcs, and TransDataObject::xds.
Referenced by createTransObject().
|
static |
Definition at line 765 of file transform_convert_object.cc.
References blender::Vector< T, InlineBufferCapacity, Allocator >::append(), blender::Vector< T, InlineBufferCapacity, Allocator >::append_non_duplicates(), BKE_view_layer_active_object_get(), BKE_view_layer_synced_ensure(), SCE_XFORM_AXIS_ALIGN, TFM_RESIZE, TFM_ROTATION, TFM_TRACKBALL, TFM_TRANSLATION, V3D_AROUND_ACTIVE, V3D_AROUND_CURSOR, and V3D_AROUND_LOCAL_ORIGINS.
Referenced by autokeyframe_object().
|
static |
Definition at line 406 of file transform_convert_object.cc.
References BA_TRANSFORM_CHILD, Object::flag, mark_children(), Object::parent, and SELECT.
Referenced by count_proportional_objects(), and mark_children().
Definition at line 743 of file transform_convert_object.cc.
References blender::animrig::autokeyframe_cfra_can_key(), Object::avs, Object::id, MOTIONPATH_BAKE_HAS_PATHS, and bAnimVizSettings::path_bakeflag.
Referenced by recalcData_objects(), and special_aftertrans_update__object().
Transcribe given object into TransData for Transforming.
Definition at line 138 of file transform_convert_object.cc.
References TransData::axismtx, TransDataExtension::axismtx_gimbal, BKE_object_mat3_to_rot(), BKE_object_tfm_copy(), BKE_object_to_mat3(), BKE_object_where_is_calc(), BKE_rigidbody_check_sim_running(), BKE_scene_ctime_get(), TransData::con, Object::constraints, constraints_list_needinv(), copy_m3_m3(), copy_m3_m4(), copy_m4_m4(), copy_qt_qt(), copy_v3_v3(), DEG_get_evaluated_object(), TransInfo::depsgraph, Object::dloc, Object::dquat, TransDataExtension::dquat, Object::drot, TransDataExtension::drot, Object::drotAngle, Object::drotAxis, Object::dscale, TransDataExtension::dscale, TransData::ext, ListBase::first, gimbal_axis_object(), invert_m3_m3_safe_ortho(), TransDataExtension::iquat, TransDataExtension::irot, TransDataExtension::irotAngle, TransDataExtension::irotAxis, TransDataExtension::isize, Object::loc, mat4_to_loc_rot_size(), TransInfo::mode, TransData::mtx, mul_m3_m3m3(), TransData::ob, OB_NEG_SCALE, OB_NO_CONSTRAINTS, TransDataExtension::obmat, TransDataExtension::oloc, TransDataExtension::oquat, TransInfo::orient_type_mask, TransDataExtension::orot, TransDataExtension::orotAngle, TransDataExtension::orotAxis, orthogonalize_m3_zero_axes(), Object::parent, Object::quat, TransDataExtension::quat, Object::rigidbody_object, Object::rot, rot, TransDataExtension::rot, ROT_MODE_AXISANGLE, Object::rotAngle, TransDataExtension::rotAngle, Object::rotAxis, TransDataExtension::rotAxis, Object::rotmode, TransDataExtension::rotOrder, Object::runtime, Object::scale, TransInfo::scene, TransDataExtension::size, TransData::smtx, sub_v3_v3(), TFM_DUMMY, Object::transflag, transform_orientations_create_from_axis(), unit_m3(), UNPACK3, and V3D_ORIENT_GIMBAL.
Referenced by createTransObject().
|
static |
Definition at line 841 of file transform_convert_object.cc.
References animrecord_check_state(), TransInfo::animtimer, autokeyframe_object(), TransInfo::context, CTX_OBMODE_XFORM_OBDATA, CTX_OBMODE_XFORM_SKIP_CHILDREN, TransInfo::data_len_all, DEG_id_tag_update(), FOREACH_TRANS_DATA_CONTAINER, Object::id, ID_RECALC_TRANSFORM, blender::animrig::is_autokey_on(), TransInfo::mode, motionpath_need_update_object(), TransData::ob, TransInfo::options, TransInfo::scene, TransInfo::state, TD_SKIP, TRANS_CANCEL, trans_obchild_in_obmode_update_all(), trans_obdata_in_obmode_update_all(), and transform_snap_project_individual_apply().
|
static |
Definition at line 306 of file transform_convert_object.cc.
References DEG_OB_COMP_GEOMETRY, DEG_OB_COMP_TRANSFORM, ELEM, GS, ID_OB, and ID_TAG_DOIT.
Referenced by flush_trans_object_base_deps_flag().
|
static |
Sets flags in Bases to define whether they take part in transform. It deselects Bases, so we have to call the clear function always after.
Definition at line 347 of file transform_convert_object.cc.
References TransInfo::around, BA_TRANSFORM_CHILD, BA_TRANSFORM_LOCKED_IN_PLACE, BA_WAS_SEL, Object::base_flag, BASE_SELECTED, BASE_SELECTED_EDITABLE, BKE_scene_base_flag_to_objects(), BKE_scene_ensure_depsgraph(), BKE_view_layer_base_find(), BKE_view_layer_object_bases_get(), BKE_view_layer_synced_ensure(), TransInfo::context, CTX_data_main(), DEG_graph_relations_update(), depsgraph, ELEM, Object::flag, flush_trans_object_base_deps_flag(), LISTBASE_FOREACH, TransInfo::mode, Object::parent, TransInfo::scene, TFM_DUMMY, TFM_ROTATION, TFM_TRACKBALL, trans_object_base_deps_flag_finish(), trans_object_base_deps_flag_prepare(), V3D_AROUND_LOCAL_ORIGINS, TransInfo::view, and TransInfo::view_layer.
Referenced by createTransObject().
Definition at line 899 of file transform_convert_object.cc.
References ANIM_deselect_keys_in_animation_editors(), autokeyframe_object(), BKE_ptcache_ids_from_object(), BKE_ptcache_object_reset(), BKE_rigidbody_aftertrans_update(), BKE_rigidbody_check_sim_running(), BKE_scene_ctime_get(), BLI_assert, BLI_freelistN(), clear_trans_object_base_flags(), CTX_OBJECT, TransDataContainer::data, TransDataContainer::data_len, DEG_id_tag_update(), TransData::ext, Object::id, ID_RECALC_GEOMETRY, ID_RECALC_TRANSFORM, blender::animrig::is_autokey_on(), LISTBASE_FOREACH, MAX_DUPLI_RECUR, TransInfo::mode, motionpath_need_update_object(), TransData::ob, TransDataExtension::oloc, TransInfo::options, TransDataExtension::oquat, TransDataExtension::orot, TransDataExtension::orotAngle, TransDataExtension::orotAxis, PTCACHE_OUTDATED, PTCACHE_RESET_OUTDATED, PTCACHE_TYPE_PARTICLES, Object::rigidbody_object, Scene::rigidbody_world, TransInfo::scene, TransInfo::state, TD_SKIP, TRANS_CANCEL, and TRANS_DATA_CONTAINER_FIRST_SINGLE.
|
static |
Definition at line 113 of file transform_convert_object.cc.
References TransInfo::context, CTX_data_main(), TransInfo::custom, TransCustomData::data, TransInfo::depsgraph, blender::ed::object::object_xform_skip_child_container_update_all(), TransCustomDataContainer::type, and TransDataObject::xcs.
Referenced by recalcData_objects().
|
static |
Definition at line 90 of file transform_convert_object.cc.
References TransInfo::context, CTX_data_main(), TransInfo::custom, TransCustomData::data, blender::ed::object::data_xform_container_update_all(), TransInfo::depsgraph, TransCustomDataContainer::type, and TransDataObject::xds.
Referenced by recalcData_objects().
|
static |
Definition at line 328 of file transform_convert_object.cc.
References BA_SNAP_FIX_DEPS_FIASCO, BKE_view_layer_object_bases_get(), BKE_view_layer_synced_ensure(), CTX_OBMODE_XFORM_OBDATA, ID_TAG_DOIT, LISTBASE_FOREACH, and TransInfo::options.
Referenced by count_proportional_objects(), and set_trans_object_base_flags().
|
static |
Definition at line 298 of file transform_convert_object.cc.
References BKE_view_layer_object_bases_get(), BKE_view_layer_synced_ensure(), and LISTBASE_FOREACH.
Referenced by count_proportional_objects(), and set_trans_object_base_flags().
| TransConvertTypeInfo TransConvertType_Object |
Definition at line 983 of file transform_convert_object.cc.
Referenced by convert_type_get(), create_trans_data(), ElementResize(), and init_proportional_edit().