Blender V5.0
object_data_transform.cc File Reference
#include <cstdlib>
#include <cstring>
#include "DNA_armature_types.h"
#include "DNA_gpencil_legacy_types.h"
#include "DNA_lattice_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
#include "DNA_object_types.h"
#include "DNA_pointcloud_types.h"
#include "BLI_listbase.h"
#include "BLI_math_matrix.h"
#include "BLI_math_rotation.h"
#include "BLI_math_vector.h"
#include "BLI_task.hh"
#include "BKE_armature.hh"
#include "BKE_curve.hh"
#include "BKE_curves_utils.hh"
#include "BKE_editmesh.hh"
#include "BKE_grease_pencil.hh"
#include "BKE_key.hh"
#include "BKE_lattice.hh"
#include "BKE_mball.hh"
#include "BKE_mesh_types.hh"
#include "bmesh.hh"
#include "DEG_depsgraph.hh"
#include "ED_armature.hh"
#include "ED_curves.hh"
#include "ED_mesh.hh"
#include "ED_object.hh"

Go to the source code of this file.

Classes

struct  blender::ed::object::ElemData_Armature
struct  blender::ed::object::ElemData_MetaBall
struct  blender::ed::object::XFormObjectData_Mesh
struct  blender::ed::object::XFormObjectData_Lattice
struct  blender::ed::object::XFormObjectData_Curve
struct  blender::ed::object::XFormObjectData_Armature
struct  blender::ed::object::XFormObjectData_MetaBall
struct  blender::ed::object::XFormObjectData_GreasePencil
struct  blender::ed::object::XFormObjectData_Curves
struct  blender::ed::object::XFormObjectData_PointCloud

Namespaces

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

Macros

#define COPY_PTR(member)
#define COPY_VAL(member)
#define COPY_PTR(member)
#define COPY_VAL(member)
#define COPY_PTR(member)
#define COPY_VAL(member)
#define COPY_PTR(member)
#define COPY_VAL(member)

Functions

Internal Transform Get/Apply

Some object data types don't have utility functions to access their transformation data. Define these locally.

static ElemData_Armatureblender::ed::object::armature_coords_and_quats_get_recurse (const ListBase *bone_base, ElemData_Armature *elem_array)
static void blender::ed::object::armature_coords_and_quats_get (const bArmature *arm, MutableSpan< ElemData_Armature > elem_array)
static const ElemData_Armatureblender::ed::object::armature_coords_and_quats_apply_with_mat4_recurse (ListBase *bone_base, const ElemData_Armature *elem_array, const float4x4 &transform)
static void blender::ed::object::armature_coords_and_quats_apply_with_mat4 (bArmature *arm, const Span< ElemData_Armature > elem_array, const float4x4 &transform)
static void blender::ed::object::armature_coords_and_quats_apply (bArmature *arm, const Span< ElemData_Armature > elem_array)
static void blender::ed::object::edit_armature_coords_and_quats_get (const bArmature *arm, MutableSpan< ElemData_Armature > elem_array)
static void blender::ed::object::edit_armature_coords_and_quats_apply_with_mat4 (bArmature *arm, const Span< ElemData_Armature > elem_array, const float4x4 &transform)
static void blender::ed::object::edit_armature_coords_and_quats_apply (bArmature *arm, const Span< ElemData_Armature > elem_array)
static void blender::ed::object::metaball_coords_and_quats_get (const MetaBall *mb, MutableSpan< ElemData_MetaBall > elem_array)
static void blender::ed::object::metaball_coords_and_quats_apply_with_mat4 (MetaBall *mb, const Span< ElemData_MetaBall > elem_array, const float4x4 &transform)
static void blender::ed::object::metaball_coords_and_quats_apply (MetaBall *mb, const Span< ElemData_MetaBall > elem_array)
Public Object Data Storage API

Used for interactively transforming object data.

Store object data transformation in an opaque struct.

static std::unique_ptr< XFormObjectDatablender::ed::object::data_xform_create_ex (ID *id, bool is_edit_mode)
std::unique_ptr< XFormObjectDatablender::ed::object::data_xform_create (ID *id)
std::unique_ptr< XFormObjectDatablender::ed::object::data_xform_create_from_edit_mode (ID *id)
static void blender::ed::object::copy_transformed_radii (const Span< float > src, const float4x4 &transform, MutableSpan< float > dst)
void blender::ed::object::data_xform_by_mat4 (XFormObjectData &xod, const float4x4 &transform)
void blender::ed::object::data_xform_restore (XFormObjectData &xod)
void blender::ed::object::data_xform_tag_update (XFormObjectData &xod)

Detailed Description

Use to transform object origins only.

This is a small API to store & apply transformations to object data, where a transformation matrix can be continually applied on top of the original values so we don't lose precision over time.

Definition in file object_data_transform.cc.

Macro Definition Documentation

◆ COPY_PTR [1/4]

#define COPY_PTR ( member)
Value:
memcpy(ebone->member, elem->member, sizeof(ebone->member))

◆ COPY_PTR [2/4]

#define COPY_PTR ( member)
Value:
memcpy(elem->member, ebone->member, sizeof(ebone->member))

◆ COPY_PTR [3/4]

#define COPY_PTR ( member)
Value:
memcpy(bone->member, elem->member, sizeof(bone->member))

◆ COPY_PTR [4/4]

◆ COPY_VAL [1/4]

#define COPY_VAL ( member)
Value:
memcpy(&ebone->member, &elem->member, sizeof(ebone->member))

◆ COPY_VAL [2/4]

#define COPY_VAL ( member)
Value:
memcpy(&elem->member, &ebone->member, sizeof(ebone->member))

◆ COPY_VAL [3/4]

#define COPY_VAL ( member)
Value:
memcpy(&bone->member, &elem->member, sizeof(bone->member))

◆ COPY_VAL [4/4]