|
Blender V4.5
|
#include <transform.hh>
Public Member Functions | |
| bool | foreach_index (FunctionRef< bool(int)> fn) const |
| void | foreach_index_selected (FunctionRef< void(int)> fn) const |
Public Attributes | |
| TransData * | data |
| TransDataExtension * | data_ext |
| TransData2D * | data_2d |
| TransDataMirror * | data_mirror |
| int | data_len |
| int | data_mirror_len |
| int | data_gpf_len |
| Object * | obedit |
| float | mat [4][4] |
| float | imat [4][4] |
| float | mat3 [3][3] |
| float | imat3 [3][3] |
| float | mat3_unit [3][3] |
| Object * | poseobj |
| 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 |
| int * | sorted_index_map |
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).
Definition at line 662 of file transform.hh.
|
inline |
Call the given function for each index in the data. This index can then be used to access the data, data_ext, and data_2d arrays.
If there is a sorted_index_map (see above), this will be used. Otherwise it is assumed that the arrays can be iterated in their natural array order.
| fn | function that's called for each index. The function should return whether to keep looping (true) or break out of the loop (false). |
Definition at line 753 of file transform.hh.
References i.
Referenced by foreach_index_selected(), and blender::ed::transform::set_prop_dist().
|
inline |
Call fn only for indices of selected items. Apart from that, this is the same as index_map() above.
| fn | function that's called for each index. Contrary to the index_map() function, it is assumed that all selected items should be visited, and so for simplicity there is no bool to return. |
Definition at line 780 of file transform.hh.
References blender::ed::transform::TransDataBasic::flag, foreach_index(), i, and blender::ed::transform::TD_SELECTED.
Referenced by blender::ed::transform::UVGroups::init(), blender::ed::transform::set_prop_dist(), blender::ed::transform::transform_mesh_edge_slide_data_create(), blender::ed::transform::transform_mesh_uv_edge_slide_data_create(), and blender::ed::transform::transform_mesh_vert_slide_data_create().
| union { ... } blender::ed::transform::TransDataContainer |
Mirror option.
| float blender::ed::transform::TransDataContainer::center_local[3] |
Center of transformation (in local-space), Calculated from #TransInfo.center_global.
Definition at line 694 of file transform.hh.
Referenced by blender::ed::transform::ElementMirror(), blender::ed::transform::ElementResize(), blender::ed::transform::ElementRotation(), blender::ed::transform::transdata_elem_push_pull(), blender::ed::transform::transdata_elem_shear(), and blender::ed::transform::transdata_elem_to_sphere().
| TransCustomDataContainer blender::ed::transform::TransDataContainer::custom |
Definition at line 720 of file transform.hh.
Referenced by blender::ed::transform::cancelTransTracking(), blender::ed::transform::cancelTransTrackingCurves(), blender::ed::transform::curves::createTransCurvesVerts(), blender::ed::transform::createTransGraphEditData(), blender::ed::transform::greasepencil::createTransGreasePencilVerts(), blender::ed::transform::createTransMaskingData(), blender::ed::transform::createTransNlaData(), blender::ed::transform::createTransPaintCurveVerts(), blender::ed::transform::pointcloud::createTransPointCloudVerts(), blender::ed::transform::createTransSeqData(), blender::ed::transform::createTransSeqImageData(), blender::ed::transform::createTransSeqRetimingData(), blender::ed::transform::createTransTrackingCurvesData(), blender::ed::transform::createTransTrackingTracksData(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::ed::transform::drawVertSlide(), blender::ed::transform::edge_slide_snap_apply(), blender::ed::transform::edge_slide_transform_matrix_fn(), blender::ed::transform::edgeSlideFirstGet(), blender::ed::transform::flushTransGraphData(), blender::ed::transform::flushTransMasking(), blender::ed::transform::flushTransPaintCurve(), blender::ed::transform::flushTransTracking(), blender::ed::transform::flushTransTrackingCurves(), blender::ed::transform::freeCustomNormalArray(), blender::ed::transform::freeSeqData(), blender::ed::transform::handleEventVertSlide(), blender::ed::transform::mesh_customdata_ensure(), blender::ed::transform::mesh_customdatacorrect_apply(), blender::ed::transform::mesh_uv_groups_get(), blender::ed::transform::pose_transform_mirror_update(), blender::ed::transform::recalcData_nla(), blender::ed::transform::restoreBones(), blender::ed::transform::restoreMirrorPoseBones(), blender::ed::transform::special_aftertrans_update__nla(), blender::ed::transform::storeCustomLNorValue(), blender::ed::transform::vert_slide_snap_apply(), and blender::ed::transform::vert_slide_transform_matrix_fn().
| TransData* blender::ed::transform::TransDataContainer::data |
Transformed data (array).
Definition at line 664 of file transform.hh.
Referenced by blender::ed::transform::applyObjectConstraintRot(), blender::ed::transform::applyTransObjects(), blender::ed::transform::clipUVData(), blender::ed::transform::createTransActionData(), blender::ed::transform::createTransCursor_2D_impl(), blender::ed::transform::createTransCursor_view3d(), blender::ed::transform::curves::createTransCurvesVerts(), blender::ed::transform::createTransGraphEditData(), blender::ed::transform::greasepencil::createTransGreasePencilVerts(), blender::ed::transform::createTransMaskingData(), blender::ed::transform::createTransNlaData(), blender::ed::transform::createTransNodeData(), blender::ed::transform::createTransObject(), blender::ed::transform::createTransPaintCurveVerts(), blender::ed::transform::pointcloud::createTransPointCloudVerts(), blender::ed::transform::createTransSculpt(), blender::ed::transform::createTransSeqData(), blender::ed::transform::createTransSeqImageData(), blender::ed::transform::createTransSeqRetimingData(), blender::ed::transform::createTransTexspace(), blender::ed::transform::createTransTrackingCurvesData(), blender::ed::transform::createTransTrackingTracksData(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::ed::transform::flushTransGraphData(), blender::ed::transform::flushTransSeq(), blender::ed::transform::flushTransTracking(), blender::ed::transform::flushTransTrackingCurves(), blender::ed::transform::freeSeqData(), blender::ed::transform::freeSeqData(), blender::ed::transform::image_origin_set(), blender::ed::transform::image_transform_set(), blender::ed::transform::UVGroups::init(), blender::ed::transform::mesh_customdatacorrect_apply(), blender::ed::transform::mesh_customdatacorrect_create_impl(), blender::ed::transform::mesh_partial_ensure(), blender::ed::transform::mesh_transdata_mirror_apply(), blender::ed::transform::mesh_uv_group_is_inner(), blender::ed::transform::pose_transform_mirror_update(), blender::ed::transform::recalcData_actedit(), blender::ed::transform::recalcData_cursor_2D_impl(), blender::ed::transform::recalcData_sequencer(), blender::ed::transform::recalcData_sequencer_retiming(), blender::ed::transform::UVGroups::sd_array_create_and_init(), blender::ed::transform::UVGroups::sd_array_create_and_init_edge(), blender::ed::transform::seq_transform_collection_from_transdata(), blender::ed::transform::set_prop_dist(), blender::ed::transform::sort_trans_data_dist_container(), blender::ed::transform::sort_trans_data_selected_first_container(), blender::ed::transform::special_aftertrans_update__object(), blender::ed::transform::special_aftertrans_update__sequencer_image(), blender::ed::transform::transform_convert_clip_mirror_modifier_apply(), blender::ed::transform::transform_mesh_edge_slide_data_create(), blender::ed::transform::transform_mesh_uv_edge_slide_data_create(), blender::ed::transform::transform_mesh_uv_vert_slide_data_create(), blender::ed::transform::transform_mesh_vert_slide_data_create(), blender::ed::transform::transform_snap_nla_calc(), and blender::ed::transform::update_transdata_bezt_pointers().
| TransData2D* blender::ed::transform::TransDataContainer::data_2d |
Transformed data for 2d (array).
Definition at line 668 of file transform.hh.
Referenced by blender::ed::transform::createTransActionData(), blender::ed::transform::createTransCursor_2D_impl(), blender::ed::transform::createTransGraphEditData(), blender::ed::transform::createTransMaskingData(), blender::ed::transform::createTransNodeData(), blender::ed::transform::createTransPaintCurveVerts(), blender::ed::transform::createTransSeqData(), blender::ed::transform::createTransSeqImageData(), blender::ed::transform::createTransSeqRetimingData(), blender::ed::transform::createTransTrackingCurvesData(), blender::ed::transform::createTransTrackingTracksData(), blender::ed::transform::flushTransGraphData(), blender::ed::transform::flushTransMasking(), blender::ed::transform::flushTransPaintCurve(), blender::ed::transform::flushTransSeq(), blender::ed::transform::flushTransTracking(), blender::ed::transform::flushTransTrackingCurves(), blender::ed::transform::image_origin_set(), blender::ed::transform::image_transform_set(), blender::ed::transform::recalcData_actedit(), blender::ed::transform::recalcData_cursor_2D_impl(), blender::ed::transform::recalcData_sequencer_retiming(), blender::ed::transform::remake_graph_transdata(), blender::ed::transform::special_aftertrans_update__sequencer_image(), and blender::ed::transform::update_transdata_bezt_pointers().
| TransDataExtension* blender::ed::transform::TransDataContainer::data_ext |
Transformed data extension (array).
Definition at line 666 of file transform.hh.
Referenced by blender::ed::transform::createTransCursor_2D_impl(), blender::ed::transform::createTransCursor_view3d(), blender::ed::transform::createTransObject(), blender::ed::transform::createTransSculpt(), and blender::ed::transform::createTransTexspace().
| int blender::ed::transform::TransDataContainer::data_gpf_len |
Total number of transformed gp-frames.
Definition at line 677 of file transform.hh.
| int blender::ed::transform::TransDataContainer::data_len |
Total number of transformed data, data_ext, data_2d.
Definition at line 673 of file transform.hh.
Referenced by blender::ed::transform::applyTransObjects(), blender::ed::transform::clipUVData(), blender::ed::transform::countAndCleanTransDataContainer(), blender::ed::transform::createTransActionData(), blender::ed::transform::createTransCursor_2D_impl(), blender::ed::transform::createTransCursor_view3d(), blender::ed::transform::curves::createTransCurvesVerts(), blender::ed::transform::createTransGraphEditData(), blender::ed::transform::greasepencil::createTransGreasePencilVerts(), blender::ed::transform::createTransMaskingData(), blender::ed::transform::createTransNlaData(), blender::ed::transform::createTransNodeData(), blender::ed::transform::createTransObject(), blender::ed::transform::createTransPaintCurveVerts(), blender::ed::transform::pointcloud::createTransPointCloudVerts(), blender::ed::transform::createTransSculpt(), blender::ed::transform::createTransSeqData(), blender::ed::transform::createTransSeqImageData(), blender::ed::transform::createTransSeqRetimingData(), blender::ed::transform::createTransTexspace(), blender::ed::transform::createTransTrackingCurves(), blender::ed::transform::createTransTrackingCurvesData(), blender::ed::transform::createTransTrackingData(), blender::ed::transform::createTransTrackingTracksData(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::ed::transform::flushTransPaintCurve(), blender::ed::transform::freeSeqData(), blender::ed::transform::freeSeqData(), blender::ed::transform::UVGroups::init(), blender::ed::transform::make_sorted_index_map(), blender::ed::transform::mesh_customdatacorrect_apply(), blender::ed::transform::mesh_customdatacorrect_create_impl(), blender::ed::transform::mesh_customdatacorrect_init_container_merge_group(), blender::ed::transform::nlastrip_shuffle_transformed(), blender::ed::transform::pose_transform_mirror_update(), blender::ed::transform::recalcData_nla(), blender::ed::transform::remake_graph_transdata(), blender::ed::transform::seq_transform_collection_from_transdata(), blender::ed::transform::special_aftertrans_update__nla(), blender::ed::transform::special_aftertrans_update__object(), blender::ed::transform::transform_convert_clip_mirror_modifier_apply(), blender::ed::transform::transform_mesh_edge_slide_data_create(), and blender::ed::transform::transform_snap_nla_calc().
| TransDataMirror* blender::ed::transform::TransDataContainer::data_mirror |
Transformed data for mirror elements (array).
Definition at line 670 of file transform.hh.
Referenced by blender::ed::transform::mesh_customdatacorrect_apply(), blender::ed::transform::mesh_customdatacorrect_create_impl(), blender::ed::transform::mesh_partial_ensure(), and blender::ed::transform::mesh_transdata_mirror_apply().
| int blender::ed::transform::TransDataContainer::data_mirror_len |
Total number of transformed data_mirror.
Definition at line 675 of file transform.hh.
Referenced by blender::ed::transform::mesh_customdatacorrect_apply(), blender::ed::transform::mesh_customdatacorrect_create_impl(), blender::ed::transform::mesh_customdatacorrect_init_container_merge_group(), blender::ed::transform::mesh_partial_ensure(), and blender::ed::transform::mesh_transdata_mirror_apply().
| float blender::ed::transform::TransDataContainer::imat[4][4] |
Definition at line 682 of file transform.hh.
Referenced by blender::ed::transform::init_TransDataContainers().
| float blender::ed::transform::TransDataContainer::imat3[3][3] |
Definition at line 685 of file transform.hh.
Referenced by blender::ed::transform::constraintScaleLim(), blender::ed::transform::constraintTransLim(), blender::ed::transform::ElementRotation_ex(), and blender::ed::transform::init_TransDataContainers().
| bool blender::ed::transform::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 700 of file transform.hh.
Referenced by blender::ed::transform::createTransSculpt().
| float blender::ed::transform::TransDataContainer::mat[4][4] |
Definition at line 681 of file transform.hh.
Referenced by blender::ed::transform::applyFaceNearest(), blender::ed::transform::applyFaceProject(), blender::ed::transform::constraintTransLim(), blender::ed::transform::edge_slide_snap_apply(), blender::ed::transform::edge_slide_transform_matrix_fn(), blender::ed::transform::init_TransDataContainers(), blender::ed::transform::prop_dist_loc_get(), blender::ed::transform::transdata_center_global_get(), blender::ed::transform::vert_slide_snap_apply(), and blender::ed::transform::vert_slide_transform_matrix_fn().
| float blender::ed::transform::TransDataContainer::mat3[3][3] |
3x3 copies of matrices above.
Definition at line 684 of file transform.hh.
Referenced by blender::ed::transform::constraintScaleLim(), blender::ed::transform::constraintTransLim(), blender::ed::transform::ElementRotation_ex(), and blender::ed::transform::init_TransDataContainers().
| float blender::ed::transform::TransDataContainer::mat3_unit[3][3] |
Normalized mat3.
Definition at line 688 of file transform.hh.
Referenced by blender::ed::transform::applyObjectConstraintRot(), blender::ed::transform::applyObjectConstraintSize(), blender::ed::transform::applyObjectConstraintVec(), and blender::ed::transform::init_TransDataContainers().
| Object* blender::ed::transform::TransDataContainer::obedit |
Definition at line 679 of file transform.hh.
Referenced by blender::ed::transform::calcEdgeSlide_mval_range(), blender::ed::transform::calculateCenterActive(), blender::ed::transform::curves::createTransCurvesVerts(), blender::ed::transform::greasepencil::createTransGreasePencilVerts(), blender::ed::transform::pointcloud::createTransPointCloudVerts(), blender::ed::transform::drawVertSlide(), blender::ed::transform::freeCustomNormalArray(), blender::ed::transform::init_TransDataContainers(), blender::ed::transform::is_vert_slide_visible_bmesh(), blender::ed::transform::mesh_customdatacorrect_create_impl(), blender::ed::transform::mesh_partial_ensure(), blender::ed::transform::mesh_partial_update(), blender::ed::transform::restoreBones(), blender::ed::transform::transform_convert_clip_mirror_modifier_apply(), blender::ed::transform::transform_convert_mesh_crazyspace_detect(), blender::ed::transform::transform_mesh_edge_slide_data_create(), blender::ed::transform::transform_mesh_uv_edge_slide_data_create(), blender::ed::transform::transform_mesh_uv_vert_slide_data_create(), blender::ed::transform::EdgeSlideData::update_proj_mat(), and blender::ed::transform::VertSlideData::update_proj_mat().
| Object* blender::ed::transform::TransDataContainer::poseobj |
If t->flag & T_POSE, this denotes pose object.
Definition at line 691 of file transform.hh.
Referenced by blender::ed::transform::ElementResize(), blender::ed::transform::init_TransDataContainers(), blender::ed::transform::restoreBones(), blender::ed::transform::restoreMirrorPoseBones(), and blender::ed::transform::transform_autoik_update().
| int* blender::ed::transform::TransDataContainer::sorted_index_map |
Array of indices for the data, data_ext, and data_2d arrays.
When using this index map to traverse the arrays, they will be sorted primarily by selection state (selected before unselected). Depending on the sort function used (see below), unselected items are then sorted by their "distance" for proportional editing.
At the moment of writing, this map is only used in cases where tc->data has a mixture of selected and unselected items (as far as I, Sybren, know, just for proportial editing). Without tc->sorted_index_map, all items in tc->data are expected to be selected.
NOTE: this is set to nullptr by default; use one of the sorting functions below to initialize the array.
Definition at line 739 of file transform.hh.
Referenced by blender::ed::transform::make_sorted_index_map(), blender::ed::transform::sort_trans_data_dist_container(), and blender::ed::transform::sort_trans_data_selected_first_container().
| bool blender::ed::transform::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 707 of file transform.hh.
Referenced by blender::ed::transform::applyFaceNearest(), blender::ed::transform::applyFaceProject(), blender::ed::transform::constraintTransLim(), blender::ed::transform::edge_slide_snap_apply(), blender::ed::transform::edge_slide_transform_matrix_fn(), blender::ed::transform::init_TransDataContainers(), blender::ed::transform::prop_dist_loc_get(), blender::ed::transform::transdata_center_global_get(), blender::ed::transform::vert_slide_snap_apply(), and blender::ed::transform::vert_slide_transform_matrix_fn().
| char blender::ed::transform::TransDataContainer::use_mirror_axis_any |
Definition at line 717 of file transform.hh.
Referenced by blender::ed::transform::mesh_partial_ensure(), and blender::ed::transform::mesh_transdata_mirror_apply().
| uint blender::ed::transform::TransDataContainer::use_mirror_axis_x |
Definition at line 712 of file transform.hh.
Referenced by blender::ed::transform::init_TransDataContainers().
| uint blender::ed::transform::TransDataContainer::use_mirror_axis_y |
Definition at line 713 of file transform.hh.
Referenced by blender::ed::transform::init_TransDataContainers().
| uint blender::ed::transform::TransDataContainer::use_mirror_axis_z |
Definition at line 714 of file transform.hh.
Referenced by blender::ed::transform::init_TransDataContainers().