Blender V4.3
TransDataContainer Struct Reference

#include <transform.hh>

Public Attributes

TransDatadata
 
TransDataExtensiondata_ext
 
TransData2Ddata_2d
 
TransDataMirrordata_mirror
 
int data_len
 
int data_mirror_len
 
int data_gpf_len
 
Objectobedit
 
float mat [4][4]
 
float imat [4][4]
 
float mat3 [3][3]
 
float imat3 [3][3]
 
float mat3_unit [3][3]
 
Objectposeobj
 
float center_local [3]
 
bool is_active
 
bool use_local_mat
 
union { 
 
   struct { 
 
      uint   use_mirror_axis_x: 1 
 
      uint   use_mirror_axis_y: 1 
 
      uint   use_mirror_axis_z: 1 
 
   }  
 
   char   use_mirror_axis_any 
 
};  
 
TransCustomDataContainer custom
 

Detailed Description

Container for Transform Data

Used to implement multi-object modes, so each object can have its own data array as well as object matrix, local center etc.

Anything that can't be shared between all objects and doesn't make sense to store for every vertex (in the TransDataContainer.data).

Note
at some point this could be used to store non object containers although this only makes sense if each container has its own matrices, otherwise all elements may as well be stored in one array (TransDataContainer.data), as is already done for curve-objects, f-curves. etc.

Definition at line 443 of file transform.hh.

Member Data Documentation

◆ [union]

union { ... } TransDataContainer

Mirror option.

◆ center_local

float TransDataContainer::center_local[3]

Center of transformation (in local-space), Calculated from TransInfo.center_global.

Definition at line 475 of file transform.hh.

Referenced by ElementMirror(), ElementResize(), ElementRotation(), transdata_elem_push_pull(), transdata_elem_shear(), and transdata_elem_to_sphere().

◆ custom

◆ data

TransData* TransDataContainer::data

Transformed data (array).

Definition at line 445 of file transform.hh.

Referenced by applyObjectConstraintRot(), applyTransObjects(), createTransActionData(), createTransCursor_2D_impl(), createTransCursor_view3d(), blender::ed::transform::curves::createTransCurvesVerts(), createTransGPencil_curves(), createTransGPencil_strokes(), createTransGraphEditData(), blender::ed::transform::greasepencil::createTransGreasePencilVerts(), createTransMaskingData(), createTransNlaData(), blender::ed::transform::createTransNodeData(), createTransObject(), createTransPaintCurveVerts(), createTransSculpt(), createTransSeqData(), createTransSeqImageData(), createTransSeqRetimingData(), createTransTexspace(), createTransTrackingCurvesData(), createTransTrackingTracksData(), curve_populate_trans_data_structs(), flushTransGraphData(), flushTransSeq(), flushTransTracking(), flushTransTrackingCurves(), freeSeqData(), freeSeqData(), UVGroups::init(), mesh_customdatacorrect_apply(), mesh_customdatacorrect_create_impl(), mesh_partial_ensure(), mesh_transdata_mirror_apply(), mesh_uv_group_is_inner(), pose_transform_mirror_update(), recalcData_actedit(), recalcData_cursor_2D_impl(), recalcData_gpencil_strokes(), recalcData_sequencer(), recalcData_sequencer_image(), recalcData_sequencer_retiming(), UVGroups::sd_array_create_and_init(), UVGroups::sd_array_create_and_init_edge(), seq_transform_collection_from_transdata(), sort_trans_data_dist_container(), sort_trans_data_selected_first_container(), special_aftertrans_update__object(), special_aftertrans_update__sequencer_image(), transform_convert_clip_mirror_modifier_apply(), transform_mesh_edge_slide_data_create(), transform_mesh_uv_edge_slide_data_create(), transform_mesh_uv_vert_slide_data_create(), transform_mesh_vert_slide_data_create(), transform_snap_nla_calc(), and update_transdata_bezt_pointers().

◆ data_2d

◆ data_ext

TransDataExtension* TransDataContainer::data_ext

Transformed data extension (array).

Definition at line 447 of file transform.hh.

Referenced by createTransCursor_2D_impl(), createTransCursor_view3d(), createTransObject(), createTransSculpt(), and createTransTexspace().

◆ data_gpf_len

int TransDataContainer::data_gpf_len

Total number of transformed gp-frames.

Definition at line 458 of file transform.hh.

◆ data_len

int TransDataContainer::data_len

Total number of transformed data, data_ext, data_2d.

Definition at line 454 of file transform.hh.

Referenced by applyTransObjects(), createTransActionData(), createTransCursor_2D_impl(), createTransCursor_view3d(), blender::ed::transform::curves::createTransCurvesVerts(), createTransGPencil_curves(), createTransGPencil_strokes(), createTransGraphEditData(), blender::ed::transform::greasepencil::createTransGreasePencilVerts(), createTransMaskingData(), createTransNlaData(), blender::ed::transform::createTransNodeData(), createTransObject(), createTransPaintCurveVerts(), createTransSculpt(), createTransSeqData(), createTransSeqImageData(), createTransSeqRetimingData(), createTransTexspace(), createTransTrackingCurves(), createTransTrackingCurvesData(), createTransTrackingData(), createTransTrackingTracksData(), curve_populate_trans_data_structs(), flushTransGraphData(), flushTransMasking(), flushTransPaintCurve(), flushTransSeq(), flushTransTracking(), flushTransTrackingCurves(), freeSeqData(), UVGroups::init(), mesh_customdatacorrect_apply(), mesh_customdatacorrect_create_impl(), mesh_customdatacorrect_init_container_merge_group(), mesh_partial_ensure(), mesh_transdata_mirror_apply(), nlastrip_shuffle_transformed(), pose_transform_mirror_update(), recalcData_actedit(), recalcData_gpencil_strokes(), recalcData_nla(), recalcData_sequencer(), recalcData_sequencer_image(), recalcData_sequencer_retiming(), remake_graph_transdata(), seq_transform_collection_from_transdata(), sort_trans_data_dist_container(), sort_trans_data_selected_first_container(), special_aftertrans_update__nla(), special_aftertrans_update__object(), special_aftertrans_update__sequencer_image(), transform_convert_clip_mirror_modifier_apply(), transform_mesh_edge_slide_data_create(), transform_mesh_uv_edge_slide_data_create(), transform_mesh_vert_slide_data_create(), and transform_snap_nla_calc().

◆ data_mirror

TransDataMirror* TransDataContainer::data_mirror

Transformed data for mirror elements (array).

Definition at line 451 of file transform.hh.

Referenced by mesh_customdatacorrect_apply(), mesh_customdatacorrect_create_impl(), mesh_partial_ensure(), and mesh_transdata_mirror_apply().

◆ data_mirror_len

int TransDataContainer::data_mirror_len

◆ imat

float TransDataContainer::imat[4][4]

Definition at line 463 of file transform.hh.

Referenced by init_TransDataContainers().

◆ imat3

float TransDataContainer::imat3[3][3]

Definition at line 466 of file transform.hh.

Referenced by constraintSizeLim(), ElementRotation_ex(), and init_TransDataContainers().

◆ is_active

bool TransDataContainer::is_active

Use for cases we care about the active, eg: active vert of active mesh. if set this will always be the first item in the array.

Definition at line 481 of file transform.hh.

Referenced by createTransSculpt().

◆ mat

◆ mat3

float TransDataContainer::mat3[3][3]

3x3 copies of matrices above.

Definition at line 465 of file transform.hh.

Referenced by constraintSizeLim(), ElementRotation_ex(), and init_TransDataContainers().

◆ mat3_unit

float TransDataContainer::mat3_unit[3][3]

◆ obedit

◆ poseobj

Object* TransDataContainer::poseobj

If t->flag & T_POSE, this denotes pose object.

Definition at line 472 of file transform.hh.

Referenced by ElementResize(), init_TransDataContainers(), restoreBones(), and restoreMirrorPoseBones().

◆ use_local_mat

bool TransDataContainer::use_local_mat

Store matrix, this avoids having to have duplicate check all over Typically: 'obedit->object_to_world().ptr()' or 'poseobj->object_to_world().ptr()', but may be used elsewhere too.

Definition at line 488 of file transform.hh.

Referenced by applyFaceNearest(), applyFaceProject(), constraintTransLim(), edge_slide_snap_apply(), edge_slide_transform_matrix_fn(), init_TransDataContainers(), prop_dist_loc_get(), transdata_center_global_get(), vert_slide_snap_apply(), and vert_slide_transform_matrix_fn().

◆ use_mirror_axis_any

char TransDataContainer::use_mirror_axis_any

Definition at line 498 of file transform.hh.

Referenced by mesh_partial_ensure(), and mesh_transdata_mirror_apply().

◆ use_mirror_axis_x

uint TransDataContainer::use_mirror_axis_x

Definition at line 493 of file transform.hh.

Referenced by init_TransDataContainers().

◆ use_mirror_axis_y

uint TransDataContainer::use_mirror_axis_y

Definition at line 494 of file transform.hh.

Referenced by init_TransDataContainers().

◆ use_mirror_axis_z

uint TransDataContainer::use_mirror_axis_z

Definition at line 495 of file transform.hh.

Referenced by init_TransDataContainers().


The documentation for this struct was generated from the following file: