Blender V4.3
object_utils.cc File Reference
#include <cstdlib>
#include <cstring>
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
#include "DNA_meta_types.h"
#include "DNA_object_types.h"
#include "BLI_listbase.h"
#include "BLI_math_matrix.h"
#include "BLI_math_vector.h"
#include "BLI_utildefines.h"
#include "BKE_action.hh"
#include "BKE_armature.hh"
#include "BKE_editmesh.hh"
#include "BKE_lattice.hh"
#include "BKE_layer.hh"
#include "BKE_object.hh"
#include "BKE_scene.hh"
#include "DEG_depsgraph_query.hh"
#include "ED_curve.hh"
#include "ED_object.hh"
#include "MEM_guardedalloc.h"

Go to the source code of this file.

Classes

struct  blender::ed::object::XFormObjectSkipChild_Container
 
struct  blender::ed::object::XFormObjectSkipChild
 
struct  blender::ed::object::XFormObjectData_Container
 
struct  blender::ed::object::XFormObjectData_Extra
 

Namespaces

namespace  blender
 
namespace  blender::ed
 
namespace  blender::ed::object
 

Functions

Active Element Center
bool blender::ed::object::calc_active_center_for_editmode (Object *obedit, bool select_only, float r_center[3])
 
bool blender::ed::object::calc_active_center_for_posemode (Object *ob, bool select_only, float r_center[3])
 
bool blender::ed::object::calc_active_center (Object *ob, bool select_only, float r_center[3])
 
Object Child Skip

Don't transform unselected children, this is done using the parent inverse matrix.

Note
The complex logic here is caused by mixed selection within a single selection chain, otherwise we only need XFORM_OB_SKIP_CHILD_PARENT_IS_XFORM for single objects.
XFormObjectSkipChild_Containerblender::ed::object::xform_skip_child_container_create ()
 
void blender::ed::object::xform_skip_child_container_item_ensure_from_array (XFormObjectSkipChild_Container *xcs, const Scene *scene, ViewLayer *view_layer, Object **objects, uint objects_len)
 
void blender::ed::object::object_xform_skip_child_container_destroy (XFormObjectSkipChild_Container *xcs)
 
void blender::ed::object::object_xform_skip_child_container_item_ensure (XFormObjectSkipChild_Container *xcs, Object *ob, Object *ob_parent_recurse, int mode)
 
void blender::ed::object::object_xform_skip_child_container_update_all (XFormObjectSkipChild_Container *xcs, Main *bmain, Depsgraph *depsgraph)
 
Object Data Transform Container

Use to implement 'Affect Only Origins' feature.

void blender::ed::object::data_xform_container_item_ensure (XFormObjectData_Container *xds, Object *ob)
 
void blender::ed::object::data_xform_container_update_all (XFormObjectData_Container *xds, Main *bmain, Depsgraph *depsgraph)
 
static void blender::ed::object::trans_obdata_in_obmode_free_elem (void *xf_p)
 
XFormObjectData_Containerblender::ed::object::data_xform_container_create ()
 
void blender::ed::object::data_xform_container_destroy (XFormObjectData_Container *xds)
 
Transform Object Array

Low level object transform function, transforming objects by matrix. Simple alternative to full transform logic.

static bool blender::ed::object::object_parent_in_set (GSet *objects_set, Object *ob)
 
void blender::ed::object::object_xform_array_m4 (Object **objects, uint objects_len, const float matrix[4][4])