Blender
V3.3
|
#include <stdlib.h>
#include <string.h>
#include "DNA_anim_types.h"
#include "DNA_armature_types.h"
#include "DNA_collection_types.h"
#include "DNA_gpencil_types.h"
#include "DNA_lattice_types.h"
#include "DNA_mesh_types.h"
#include "DNA_meta_types.h"
#include "DNA_object_types.h"
#include "DNA_scene_types.h"
#include "BLI_listbase.h"
#include "BLI_math.h"
#include "BLI_utildefines.h"
#include "BKE_armature.h"
#include "BKE_curve.h"
#include "BKE_editmesh.h"
#include "BKE_gpencil_geom.h"
#include "BKE_key.h"
#include "BKE_lattice.h"
#include "BKE_mball.h"
#include "BKE_mesh.h"
#include "BKE_scene.h"
#include "bmesh.h"
#include "DEG_depsgraph.h"
#include "DEG_depsgraph_query.h"
#include "WM_types.h"
#include "ED_armature.h"
#include "ED_mesh.h"
#include "ED_object.h"
#include "MEM_guardedalloc.h"
Go to the source code of this file.
Classes | |
struct | ElemData_Armature |
struct | ElemData_MetaBall |
struct | XFormObjectData |
struct | XFormObjectData_Mesh |
struct | XFormObjectData_Lattice |
struct | XFormObjectData_Curve |
struct | XFormObjectData_Armature |
struct | XFormObjectData_MetaBall |
struct | XFormObjectData_GPencil |
Macros | |
#define | COPY_PTR(member) memcpy(elem->member, bone->member, sizeof(bone->member)) |
#define | COPY_VAL(member) memcpy(&elem->member, &bone->member, sizeof(bone->member)) |
#define | COPY_PTR(member) memcpy(bone->member, elem->member, sizeof(bone->member)) |
#define | COPY_VAL(member) memcpy(&bone->member, &elem->member, sizeof(bone->member)) |
#define | COPY_PTR(member) memcpy(elem->member, ebone->member, sizeof(ebone->member)) |
#define | COPY_VAL(member) memcpy(&elem->member, &ebone->member, sizeof(ebone->member)) |
#define | COPY_PTR(member) memcpy(ebone->member, elem->member, sizeof(ebone->member)) |
#define | COPY_VAL(member) memcpy(&ebone->member, &elem->member, sizeof(ebone->member)) |
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 ontop of the original values so we don't lose precision over time.
Definition in file object_data_transform.c.
#define COPY_PTR | ( | member | ) | memcpy(elem->member, bone->member, sizeof(bone->member)) |
#define COPY_PTR | ( | member | ) | memcpy(bone->member, elem->member, sizeof(bone->member)) |
#define COPY_PTR | ( | member | ) | memcpy(elem->member, ebone->member, sizeof(ebone->member)) |
#define COPY_PTR | ( | member | ) | memcpy(ebone->member, elem->member, sizeof(ebone->member)) |
#define COPY_VAL | ( | member | ) | memcpy(&elem->member, &bone->member, sizeof(bone->member)) |
#define COPY_VAL | ( | member | ) | memcpy(&bone->member, &elem->member, sizeof(bone->member)) |
#define COPY_VAL | ( | member | ) | memcpy(&elem->member, &ebone->member, sizeof(ebone->member)) |
#define COPY_VAL | ( | member | ) | memcpy(&ebone->member, &elem->member, sizeof(ebone->member)) |
|
static |
Definition at line 146 of file object_data_transform.c.
References armature_coords_and_quats_apply_with_mat4(), and unit_m4().
Referenced by ED_object_data_xform_restore().
|
static |
Definition at line 138 of file object_data_transform.c.
References armature_coords_and_quats_apply_with_mat4_recurse(), BKE_armature_transform(), and bArmature::bonebase.
Referenced by armature_coords_and_quats_apply(), and ED_object_data_xform_by_mat4().
|
static |
Definition at line 111 of file object_data_transform.c.
References ElemData_Armature::arm_head, ElemData_Armature::arm_roll, ElemData_Armature::arm_tail, COPY_PTR, COPY_VAL, ElemData_Armature::dist, ElemData_Armature::head, LISTBASE_FOREACH, ElemData_Armature::rad_head, ElemData_Armature::rad_tail, ElemData_Armature::roll, ElemData_Armature::tail, ElemData_Armature::xwidth, and ElemData_Armature::zwidth.
Referenced by armature_coords_and_quats_apply_with_mat4().
|
static |
Definition at line 105 of file object_data_transform.c.
References armature_coords_and_quats_get_recurse(), and bArmature::bonebase.
Referenced by ED_object_data_xform_create_ex().
|
static |
Definition at line 78 of file object_data_transform.c.
References ElemData_Armature::arm_head, ElemData_Armature::arm_roll, ElemData_Armature::arm_tail, COPY_PTR, COPY_VAL, ElemData_Armature::dist, ElemData_Armature::head, LISTBASE_FOREACH, ElemData_Armature::rad_head, ElemData_Armature::rad_tail, ElemData_Armature::roll, ElemData_Armature::tail, ElemData_Armature::xwidth, and ElemData_Armature::zwidth.
Referenced by armature_coords_and_quats_get().
void ED_object_data_xform_by_mat4 | ( | struct XFormObjectData * | xod_base, |
const float | mat[4][4] | ||
) |
Definition at line 522 of file object_data_transform.c.
References armature_coords_and_quats_apply_with_mat4(), BKE_curve_nurbs_vert_coords_apply_with_mat4(), BKE_gpencil_point_coords_apply_with_mat4(), BKE_keyblock_curve_data_set_with_mat4(), BKE_keyblock_data_set_with_mat4(), BKE_lattice_vert_coords_apply_with_mat4(), BKE_mesh_vert_coords_apply_with_mat4(), BLI_assert, BMEditMesh::bm, bm, BM_mesh_vert_coords_apply_with_mat4(), CU_IS_2D, edit_armature_coords_and_quats_apply_with_mat4(), Mesh::edit_mesh, Lattice::editlatt, Curve::editnurb, GS, XFormObjectData::id, ID_AR, ID_CU_LEGACY, ID_GD, ID_LT, ID_MB, ID_ME, XFormObjectData::is_edit_mode, Curve::key, Mesh::key, EditLatt::latt, metaball_coords_and_quats_apply_with_mat4(), ID::name, NULL, Curve::nurb, and EditNurb::nurbs.
Referenced by ED_object_data_xform_container_update_all().
struct XFormObjectData* ED_object_data_xform_create | ( | ID * | id | ) |
Definition at line 481 of file object_data_transform.c.
References ED_object_data_xform_create_ex().
Referenced by ED_object_data_xform_container_item_ensure().
struct XFormObjectData* ED_object_data_xform_create_ex | ( | ID * | id, |
bool | is_edit_mode | ||
) |
Definition at line 304 of file object_data_transform.c.
References armature_coords_and_quats_get(), XFormObjectData_Mesh::base, XFormObjectData_Lattice::base, XFormObjectData_Curve::base, XFormObjectData_GPencil::base, XFormObjectData_MetaBall::base, XFormObjectData_Armature::base, BKE_armature_bonelist_count(), BKE_curve_nurbs_vert_coords_get(), BKE_curve_type_get(), BKE_gpencil_point_coords_get(), BKE_gpencil_stroke_point_count(), BKE_keyblock_data_get_from_shape(), BKE_keyblock_element_calc_size_from_shape(), BKE_lattice_vert_coords_get(), BKE_mesh_vert_coords_get(), BKE_nurbList_verts_count(), BLI_listbase_count(), BMEditMesh::bm, bm, BM_mesh_vert_coords_get(), bArmature::bonebase, bArmature::edbo, edit_armature_coords_and_quats_get(), Mesh::edit_mesh, Lattice::editlatt, Curve::editnurb, XFormObjectData_GPencil::elem_array, XFormObjectData_Armature::elem_array, XFormObjectData_MetaBall::elem_array, XFormObjectData_Mesh::elem_array, XFormObjectData_Lattice::elem_array, XFormObjectData_Curve::elem_array, MetaBall::elems, GS, id, XFormObjectData::id, ID_AR, ID_CU_LEGACY, ID_GD, ID_LT, ID_MB, ID_ME, XFormObjectData::is_edit_mode, Curve::key, Lattice::key, Mesh::key, XFormObjectData_Mesh::key_data, XFormObjectData_Lattice::key_data, XFormObjectData_Curve::key_data, EditLatt::latt, MEM_mallocN, metaball_coords_and_quats_get(), ID::name, NULL, Curve::nurb, EditNurb::nurbs, OB_FONT, Lattice::pntsu, Lattice::pntsv, Lattice::pntsw, BMesh::totvert, and Mesh::totvert.
Referenced by ED_object_data_xform_create(), and ED_object_data_xform_create_from_edit_mode().
struct XFormObjectData* ED_object_data_xform_create_from_edit_mode | ( | ID * | id | ) |
Definition at line 486 of file object_data_transform.c.
References ED_object_data_xform_create_ex().
Referenced by op_generic_value_invoke().
void ED_object_data_xform_destroy | ( | struct XFormObjectData * | xod_base | ) |
Definition at line 491 of file object_data_transform.c.
References GS, XFormObjectData::id, ID_CU_LEGACY, ID_LT, ID_ME, XFormObjectData_Mesh::key_data, XFormObjectData_Lattice::key_data, XFormObjectData_Curve::key_data, MEM_freeN, ID::name, and NULL.
Referenced by op_generic_value_exit(), and trans_obdata_in_obmode_free_elem().
void ED_object_data_xform_restore | ( | struct XFormObjectData * | xod_base | ) |
Definition at line 627 of file object_data_transform.c.
References armature_coords_and_quats_apply(), BKE_curve_nurbs_vert_coords_apply(), BKE_gpencil_point_coords_apply(), BKE_keyblock_data_set(), BKE_lattice_vert_coords_apply(), BKE_mesh_vert_coords_apply(), BMEditMesh::bm, bm, BM_mesh_vert_coords_apply(), CU_IS_2D, edit_armature_coords_and_quats_apply(), Mesh::edit_mesh, Lattice::editlatt, Curve::editnurb, GS, XFormObjectData::id, ID_AR, ID_CU_LEGACY, ID_GD, ID_LT, ID_MB, ID_ME, XFormObjectData::is_edit_mode, Curve::key, Mesh::key, EditLatt::latt, metaball_coords_and_quats_apply(), ID::name, NULL, Curve::nurb, and EditNurb::nurbs.
Referenced by op_generic_value_restore().
void ED_object_data_xform_tag_update | ( | struct XFormObjectData * | xod_base | ) |
Definition at line 726 of file object_data_transform.c.
References DEG_id_tag_update(), EDBM_update(), GS, XFormObjectData::id, bArmature::id, Curve::id, bGPdata::id, Lattice::id, Mesh::id, MetaBall::id, ID_AR, ID_CU_LEGACY, ID_GD, ID_LT, ID_MB, ID_ME, ID_RECALC_COPY_ON_WRITE, ID_RECALC_GEOMETRY, if(), XFormObjectData::is_edit_mode, and ID::name.
Referenced by op_generic_value_restore().
|
static |
Definition at line 201 of file object_data_transform.c.
References edit_armature_coords_and_quats_apply_with_mat4(), and unit_m4().
Referenced by ED_object_data_xform_restore().
|
static |
Definition at line 178 of file object_data_transform.c.
References COPY_PTR, COPY_VAL, ElemData_Armature::dist, ED_armature_edit_transform(), bArmature::edbo, ListBase::first, ElemData_Armature::head, ElemData_Armature::rad_head, ElemData_Armature::rad_tail, ElemData_Armature::roll, ElemData_Armature::tail, ElemData_Armature::xwidth, and ElemData_Armature::zwidth.
Referenced by ED_object_data_xform_by_mat4(), and edit_armature_coords_and_quats_apply().
|
static |
Definition at line 156 of file object_data_transform.c.
References COPY_PTR, COPY_VAL, ElemData_Armature::dist, bArmature::edbo, ListBase::first, ElemData_Armature::head, ElemData_Armature::rad_head, ElemData_Armature::rad_tail, ElemData_Armature::roll, ElemData_Armature::tail, ElemData_Armature::xwidth, and ElemData_Armature::zwidth.
Referenced by ED_object_data_xform_create_ex().
|
static |
Definition at line 244 of file object_data_transform.c.
References metaball_coords_and_quats_apply_with_mat4(), and unit_m4().
Referenced by ED_object_data_xform_restore().
|
static |
Definition at line 230 of file object_data_transform.c.
References BKE_mball_transform(), ElemData_MetaBall::co, copy_qt_qt(), copy_v3_v3(), MetaBall::elems, ElemData_MetaBall::exp, ListBase::first, ElemData_MetaBall::quat, and ElemData_MetaBall::rad.
Referenced by ED_object_data_xform_by_mat4(), and metaball_coords_and_quats_apply().
|
static |
Definition at line 219 of file object_data_transform.c.
References ElemData_MetaBall::co, copy_qt_qt(), copy_v3_v3(), MetaBall::elems, ElemData_MetaBall::exp, ListBase::first, ElemData_MetaBall::quat, and ElemData_MetaBall::rad.
Referenced by ED_object_data_xform_create_ex().