|
Blender V5.0
|
#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 667 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 758 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 785 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 699 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 725 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 669 of file transform.hh.
Referenced by blender::ed::transform::applyObjectConstraintRot(), blender::ed::transform::clipUVData(), blender::ed::transform::constraintScaleLim(), 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::ElementMirror(), blender::ed::transform::ElementResize(), 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::initCurveShrinkFatten(), 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 673 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 671 of file transform.hh.
Referenced by blender::ed::transform::constraintScaleLim(), blender::ed::transform::createTransCursor_view3d(), blender::ed::transform::createTransObject(), blender::ed::transform::createTransSculpt(), blender::ed::transform::createTransTexspace(), blender::ed::transform::ElementMirror(), blender::ed::transform::ElementResize(), and blender::ed::transform::special_aftertrans_update__object().
| int blender::ed::transform::TransDataContainer::data_gpf_len |
Total number of transformed gp-frames.
Definition at line 682 of file transform.hh.
| int blender::ed::transform::TransDataContainer::data_len |
Total number of transformed data, data_ext, data_2d.
Definition at line 678 of file transform.hh.
Referenced by 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::flushTransSeq(), 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 675 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 680 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 687 of file transform.hh.
Referenced by blender::ed::transform::init_TransDataContainers().
| float blender::ed::transform::TransDataContainer::imat3[3][3] |
Definition at line 690 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 705 of file transform.hh.
Referenced by blender::ed::transform::createTransSculpt().
| float blender::ed::transform::TransDataContainer::mat[4][4] |
Definition at line 686 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 689 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 693 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 684 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 696 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 744 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 712 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 722 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 717 of file transform.hh.
Referenced by blender::ed::transform::init_TransDataContainers().
| uint blender::ed::transform::TransDataContainer::use_mirror_axis_y |
Definition at line 718 of file transform.hh.
Referenced by blender::ed::transform::init_TransDataContainers().
| uint blender::ed::transform::TransDataContainer::use_mirror_axis_z |
Definition at line 719 of file transform.hh.
Referenced by blender::ed::transform::init_TransDataContainers().