|
Blender V5.0
|
#include <BLI_math_matrix_types.hh>
Inherits blender::vec_struct_base< VecBase< T, NumRow >, NumCol >.
Public Types | |
| using | base_type = T |
| using | vec3_type = VecBase<T, 3> |
| using | col_type = VecBase<T, NumRow> |
| using | row_type = VecBase<T, NumCol> |
| using | loc_type = VecBase<T, (NumRow < NumCol) ? NumRow : (NumRow - 1)> |
| using | c_style_mat = T[NumCol][NumRow] |
Public Member Functions | |
| MatBase ()=default | |
| template<BLI_ENABLE_IF_MAT(NumCol,==2)> | |
| MatBase (col_type _x, col_type _y) | |
| template<BLI_ENABLE_IF_MAT(NumCol,==3)> | |
| MatBase (col_type _x, col_type _y, col_type _z) | |
| template<BLI_ENABLE_IF_MAT(NumCol,==4)> | |
| MatBase (col_type _x, col_type _y, col_type _z, col_type _w) | |
| template<typename U, int OtherNumCol, int OtherNumRow> | |
| MatBase (const MatBase< U, OtherNumCol, OtherNumRow > &other) | |
| MatBase (const T *ptr) | |
| template<typename U, BLI_ENABLE_IF((std::is_convertible_v< U, T >))> | |
| MatBase (const U *ptr) | |
| MatBase (const T(*ptr)[NumCol]) | |
| template<typename U> | |
| MatBase (const MatBase< U, NumRow, NumCol > &vec) | |
| const c_style_mat & | ptr () const |
| c_style_mat & | ptr () |
| const T * | base_ptr () const |
| T * | base_ptr () |
| template<int ViewNumCol = NumCol, int ViewNumRow = NumRow, int SrcStartCol = 0, int SrcStartRow = 0> | |
| const MatView< T, ViewNumCol, ViewNumRow, NumCol, NumRow, SrcStartCol, SrcStartRow, Alignment > | view () const |
| template<int ViewNumCol = NumCol, int ViewNumRow = NumRow, int SrcStartCol = 0, int SrcStartRow = 0> | |
| MutableMatView< T, ViewNumCol, ViewNumRow, NumCol, NumRow, SrcStartCol, SrcStartRow, Alignment > | view () |
| const col_type & | operator[] (int index) const |
| col_type & | operator[] (int index) |
| vec3_type & | x_axis () |
| vec3_type & | y_axis () |
| vec3_type & | z_axis () |
| loc_type & | location () |
| const vec3_type & | x_axis () const |
| const vec3_type & | y_axis () const |
| const vec3_type & | z_axis () const |
| const loc_type & | location () const |
| MatBase & | operator+= (const MatBase &b) & |
| MatBase & | operator+= (T b) & |
| MatBase & | operator-= (const MatBase &b) & |
| MatBase & | operator-= (T b) & |
| MatBase & | operator*= (const MatBase &b) & |
| MatBase & | operator*= (T b) & |
| uint64_t | hash () const |
Static Public Member Functions | |
| static MatBase | diagonal (T value) |
| static MatBase | all (T value) |
| static MatBase | identity () |
| static MatBase | zero () |
Static Public Attributes | |
| static constexpr int | min_dim = (NumRow < NumCol) ? NumRow : NumCol |
| static constexpr int | col_len = NumCol |
| static constexpr int | row_len = NumRow |
Friends | |
| MatBase | operator+ (const MatBase &a, const MatBase &b) |
| MatBase | operator+ (const MatBase &a, T b) |
| MatBase | operator+ (T a, const MatBase &b) |
| MatBase | operator- (const MatBase &a) |
| MatBase | operator- (const MatBase &a, const MatBase &b) |
| MatBase | operator- (const MatBase &a, T b) |
| MatBase | operator- (T a, const MatBase &b) |
| MatBase | operator* (const MatBase &a, T b) |
| MatBase | operator* (T a, const MatBase &b) |
| col_type | operator* (const MatBase &a, const row_type &b) |
| row_type | operator* (const col_type &a, const MatBase &b) |
| bool | operator== (const MatBase &a, const MatBase &b) |
| bool | operator!= (const MatBase &a, const MatBase &b) |
| std::ostream & | operator<< (std::ostream &stream, const MatBase &mat) |
Additional Inherited Members | |
| Public Attributes inherited from blender::vec_struct_base< VecBase< T, NumRow >, NumCol > | |
| std::array< T, Size > | values |
Definition at line 75 of file BLI_math_matrix_types.hh.
| using blender::MatBase< T, NumCol, NumRow, Alignment >::base_type = T |
Definition at line 77 of file BLI_math_matrix_types.hh.
| using blender::MatBase< T, NumCol, NumRow, Alignment >::c_style_mat = T[NumCol][NumRow] |
C-style pointer dereference.
Definition at line 164 of file BLI_math_matrix_types.hh.
| using blender::MatBase< T, NumCol, NumRow, Alignment >::col_type = VecBase<T, NumRow> |
Definition at line 79 of file BLI_math_matrix_types.hh.
| using blender::MatBase< T, NumCol, NumRow, Alignment >::loc_type = VecBase<T, (NumRow < NumCol) ? NumRow : (NumRow - 1)> |
Definition at line 81 of file BLI_math_matrix_types.hh.
| using blender::MatBase< T, NumCol, NumRow, Alignment >::row_type = VecBase<T, NumCol> |
Definition at line 80 of file BLI_math_matrix_types.hh.
| using blender::MatBase< T, NumCol, NumRow, Alignment >::vec3_type = VecBase<T, 3> |
Definition at line 78 of file BLI_math_matrix_types.hh.
|
default |
|
inline |
Definition at line 91 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 97 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 105 of file BLI_math_matrix_types.hh.
|
inlineexplicit |
Masking.
Definition at line 116 of file BLI_math_matrix_types.hh.
|
inlineexplicit |
Conversion from pointers (from C-style vectors).
Definition at line 143 of file BLI_math_matrix_types.hh.
|
inlineexplicit |
Definition at line 148 of file BLI_math_matrix_types.hh.
|
inlineexplicit |
Definition at line 153 of file BLI_math_matrix_types.hh.
|
inlineexplicit |
Conversion from other matrix types.
Definition at line 157 of file BLI_math_matrix_types.hh.
|
inlinestatic |
Definition at line 443 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 185 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 179 of file BLI_math_matrix_types.hh.
Referenced by blender::math::determinant(), blender::math::invert(), blender::math::is_negative(), blender::nodes::node_composite_colorbalance_cc::node_gpu_material(), blender::math::polar_decompose(), blender::math::pseudo_invert(), blender::ed::geometry::run_node_group_exec(), and blender::bke::bake::serialize_primitive_value().
|
inlinestatic |
Miscellaneous.
Definition at line 436 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 460 of file BLI_math_matrix_types.hh.
|
inlinestatic |
Definition at line 450 of file BLI_math_matrix_types.hh.
Referenced by blender::math::projection::orthographic(), blender::math::projection::orthographic_infinite(), blender::math::projection::perspective(), blender::math::projection::perspective_infinite(), blender::ed::sculpt_paint::dyntopo::detail_size::test::TEST(), and blender::ed::sculpt_paint::dyntopo::detail_size::test::TEST().
|
inline |
Definition at line 259 of file BLI_math_matrix_types.hh.
Referenced by blender::draw::overlay::Cursor::begin_sync(), BKE_object_minmax(), bone_draw_wire(), blender::bke::build_point_matrix(), blender::ed::sculpt_paint::calc_brush_plane(), blender::ed::sculpt_paint::brushes::clay_strips::calc_local_matrix(), blender::ed::sculpt_paint::cloth::cloth_brush_apply_brush_forces(), blender::nodes::node_composite_cornerpin_cc::CornerPinOperation::compute_domain(), blender::nodes::node_composite_file_output_cc::FileOutputOperation::compute_domain(), blender::compositor::RealizeOnDomainOperation::compute_realized_transformation_domain(), blender::io::obj::compute_world_axes_transform(), blender::ed::sculpt_paint::brushes::do_clay_thumb_brush(), blender::ed::sculpt_paint::brushes::do_multiplane_scrape_brush(), blender::ed::sculpt_paint::brushes::do_pinch_brush(), blender::ed::sculpt_paint::brushes::do_plane_brush(), drw_shgroup_bone_stick(), blender::draw::drw_volume_object_mesh_init(), blender::ed::view3d::geometry_nodes_gizmos::TransformGizmos::get_axis_gizmo_matrix_basis(), blender::seq::CompositorContext::get_output(), blender::imbuf::transform::TransformContext::init(), blender::ed::view3d::geometry_nodes_gizmos::matrix_from_position_and_up_direction(), blender::bke::attribute_math::mix3(), blender::bke::attribute_math::mix4(), blender::ed::transform::nla_transform_apply(), blender::draw::overlay::Bounds::object_sync(), blender::draw::overlay::ForceFields::object_sync(), blender::draw::overlay::GreasePencil::object_sync(), blender::draw::overlay::LightProbes::object_sync(), blender::draw::overlay::Lights::object_sync(), blender::nodes::node_geo_rotate_instances_cc::rotate_instances(), blender::eevee::VolumeProbeModule::set_view(), blender::eevee::LookdevModule::sync(), blender::eevee::ShadowTileMap::sync_cubeface(), blender::math::tests::TEST(), blender::math::to_loc_rot_scale(), blender::math::to_loc_rot_scale(), blender::math::transform_point(), blender::math::transform_point(), blender::geometry::translate_greasepencil(), blender::ed::curves::convert_to_particle_system::try_convert_single_object(), blender::ed::view3d::geometry_nodes_gizmos::TransformGizmos::update(), blender::ed::transform::EdgeSlideData::update_proj_mat(), blender::ed::transform::VertSlideData::update_proj_mat(), blender::ed::view3d::geometry_nodes_gizmos::TransformGizmos::update_translate_transform_and_target_property(), and View3DCursor::matrix< blender::float4x4 >().
|
inline |
Definition at line 287 of file BLI_math_matrix_types.hh.
|
inline |
Multiply two matrices using matrix multiplication.
Definition at line 382 of file BLI_math_matrix_types.hh.
|
inline |
Multiply each component by a scalar.
Definition at line 390 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 315 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 321 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 355 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 361 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 229 of file BLI_math_matrix_types.hh.
|
inline |
Array access.
Definition at line 222 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 173 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 167 of file BLI_math_matrix_types.hh.
Referenced by DRWContext::acquire_data(), blender::ed::greasepencil::add_armature_envelope_weights(), blender::ed::object::add_generic_get_opts(), blender::nodes::node_geo_instance_on_points_cc::add_instances_from_component(), BKE_grease_pencil_point_coords_apply_with_mat4(), BKE_pchan_minmax(), blender::ed::sculpt_paint::filter::cache_init(), blender::geometry::ngon::calc_corner_tris(), blender::ed::sculpt_paint::trim::calculate_depth(), blender::ed::sculpt_paint::cloth::cloth_brush_apply_brush_forces(), blender::nodes::node_composite_planetrackdeform_cc::PlaneTrackDeformOperation::compute_homography_matrices(), blender::nodes::node_composite_cornerpin_cc::CornerPinOperation::compute_homography_matrix(), blender::nodes::node_composite_cornerpin_cc::CornerPinOperation::compute_plane_gpu(), blender::nodes::node_composite_cornerpin_cc::CornerPinOperation::compute_plane_mask_gpu(), blender::ed::greasepencil::image_render::compute_view_matrices(), blender::io::obj::compute_world_axes_transform(), content_planes_from_clip_flag(), blender::eevee::cubeface_winmat_get(), blender::ed::transform::curves::curve_populate_trans_data_structs(), blender::ed::object::data_xform_container_update_all(), blender::ed::sculpt_paint::brushes::do_clay_thumb_brush(), blender::ed::sculpt_paint::brushes::do_multiplane_scrape_brush(), blender::ed::sculpt_paint::color::do_paint_brush(), blender::ed::sculpt_paint::brushes::do_pinch_brush(), blender::eevee::VolumeModule::draw_prepass(), blender::draw::drw_debug_matrix_as_bbox(), DRW_text_edit_mesh_measure_stats(), ED_view3d_ob_project_mat_get(), ED_view3d_project_float_v2_m4(), blender::bke::tests::EXPECT_M3_ORTHOGONAL(), blender::bke::BoneDeformDualQuaternionMixer< full_deform >::finalize(), blender::ed::sculpt_paint::SlideOperationExecutor::get_slide_transform(), blender::ed::sculpt_paint::get_symmetry_brush_transforms(), blender::ed::transform::gizmo_3d_foreach_selected(), blender::eevee::DepthOfField::jitter_apply(), blender::ed::mesh::join_objects_exec(), blender::ed::sculpt_paint::brushes::multiplane_scrape_preview_draw(), blender::ed::transform::nla_transform_apply(), blender::ed::object::object_grease_pencil_add_exec(), blender::draw::overlay::Lights::object_sync(), blender::eevee::operator==(), blender::ed::sculpt_paint::paint_cursor_drawing_setup_cursor_space(), blender::ed::sculpt_paint::cloth::plane_falloff_preview_draw(), proj_paint_state_viewport_init(), blender::eevee::DepthOfField::render(), blender::nodes::node_geo_scale_instances_cc::scale_instances(), sculpt_apply_texture(), SCULPT_cache_calc_brushdata_symm(), SCULPT_calc_vertex_displacement(), blender::ed::sculpt_paint::sculpt_init_mirror_clipping(), blender::ed::sculpt_paint::SCULPT_layer_brush_height_preview_draw(), blender::workbench::AntiAliasingPass::setup_view(), blender::ed::transform::snap_object_context_runtime_init(), blender::ed::transform::snap_object_project_ray_ex(), blender::ed::transform::snap_object_project_view3d_ex(), snap_selected_to_location_rotation(), blender::ed::transform::snapCamera(), blender::ed::transform::snapMesh(), blender::draw::statvis_calc_overhang(), blender::draw::statvis_calc_thickness(), blender::draw::View::sync(), blender::eevee::ShadowTileMap::sync_cubeface(), blender::eevee::ShadowTileMap::sync_orthographic(), blender::math::tests::TEST(), blender::math::tests::TEST(), blender::math::tests::TEST(), blender::tests::TEST(), blender::draw::test_draw_resource_id_gen(), blender::draw::test_draw_visibility(), blender::geometry::transform_curve_edit_hints(), blender::ed::curves::convert_to_particle_system::try_convert_single_object(), update_brush_local_mat(), blender::ed::transform::EdgeSlideData::update_proj_mat(), blender::ed::transform::VertSlideData::update_proj_mat(), blender::ed::view3d::geometry_nodes_gizmos::TransformGizmos::update_rotate_transform_and_target_property(), blender::ed::view3d::geometry_nodes_gizmos::TransformGizmos::update_scale_transform_and_target_property(), blender::ed::sculpt_paint::update_sculpt_normal(), blender::ed::view3d::geometry_nodes_gizmos::DialGizmo::update_transform(), blender::ed::view3d::geometry_nodes_gizmos::LinearGizmo::update_transform(), blender::ed::view3d::geometry_nodes_gizmos::TransformGizmos::update_translate_transform_and_target_property(), blender::bke::greasepencil::update_triangle_cache(), view3d_ruler_item_mousemove(), View3DCursor::matrix< blender::float3x3 >(), blender::ed::object::visual_geometry_to_objects_exec(), workbench_render_to_image(), write_global(), and blender::io::obj::OBJWriter::write_nurbs_curve().
|
inline |
Definition at line 208 of file BLI_math_matrix_types.hh.
|
inline |
View creation.
Definition at line 197 of file BLI_math_matrix_types.hh.
Referenced by blender::bke::BoneDeformLinearMixer< full_deform >::accumulate(), blender::draw::overlay::Cursor::begin_sync(), BKE_light_area(), blender::ed::view3d::geometry_nodes_gizmos::TransformGizmos::get_axis_gizmo_matrix_basis(), blender::draw::overlay::LightProbes::object_sync(), blender::MatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator-, blender::MutableMatView< float, 4, 4, 4, 4, 0, 0, alignof(float)>::operator=(), blender::eevee::Light::sync(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::tests::TEST(), blender::ed::view3d::geometry_nodes_gizmos::TransformGizmos::update_rotate_transform_and_target_property(), and blender::ed::view3d::geometry_nodes_gizmos::TransformGizmos::update_scale_transform_and_target_property().
|
inline |
Access helpers. Using Blender coordinate system.
Definition at line 238 of file BLI_math_matrix_types.hh.
Referenced by BKE_multires_construct_tangent_matrix(), blender::bke::build_point_matrix(), blender::ed::sculpt_paint::brushes::clay_strips::calc_local_matrix(), blender::ed::sculpt_paint::cloth::calc_perpendicular_pinch_forces(), blender::ed::sculpt_paint::cloth::cloth_brush_apply_brush_forces(), blender::nodes::node_geo_scale_elements_cc::create_single_axis_transform(), blender::ed::sculpt_paint::brushes::do_clay_thumb_brush(), blender::ed::sculpt_paint::brushes::do_multiplane_scrape_brush(), blender::ed::sculpt_paint::brushes::do_pinch_brush(), blender::ed::sculpt_paint::brushes::do_plane_brush(), blender::math::from_up_axis(), blender::ed::sculpt_paint::greasepencil::get_screen_projection_fn(), blender::draw::overlay::FlatObjectRef::if_flat_axis_orthogonal_to_view(), blender::imbuf::transform::TransformContext::init(), blender::ed::view3d::geometry_nodes_gizmos::make_matrix_orthonormal_but_keep_z_axis(), blender::ed::sculpt_paint::brushes::clay_strips::node_in_box(), blender::draw::overlay::GreasePencil::object_sync(), blender::nodes::node_geo_rotate_instances_cc::rotate_instances(), blender::eevee::Light::sync(), blender::tests::TEST(), blender::ed::sculpt_paint::tilt_apply_to_normal(), blender::math::to_quaternion_legacy(), blender::math::to_scale(), and blender::geometry::transform_volume().
|
inline |
Definition at line 266 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 245 of file BLI_math_matrix_types.hh.
Referenced by BKE_multires_construct_tangent_matrix(), bone_draw_wire(), blender::bke::build_point_matrix(), blender::ed::sculpt_paint::brushes::clay_strips::calc_local_matrix(), blender::ed::sculpt_paint::cloth::cloth_brush_apply_brush_forces(), blender::nodes::node_geo_scale_elements_cc::create_single_axis_transform(), blender::ed::sculpt_paint::brushes::do_clay_thumb_brush(), blender::ed::sculpt_paint::brushes::do_multiplane_scrape_brush(), blender::ed::sculpt_paint::brushes::do_pinch_brush(), blender::ed::sculpt_paint::brushes::do_plane_brush(), drw_shgroup_bone_stick(), blender::math::from_up_axis(), blender::ed::sculpt_paint::greasepencil::get_screen_projection_fn(), blender::draw::overlay::FlatObjectRef::if_flat_axis_orthogonal_to_view(), blender::imbuf::transform::TransformContext::init(), blender::ed::view3d::geometry_nodes_gizmos::make_matrix_orthonormal_but_keep_z_axis(), blender::ed::sculpt_paint::brushes::clay_strips::node_in_box(), blender::draw::overlay::GreasePencil::object_sync(), blender::nodes::node_geo_rotate_instances_cc::rotate_instances(), blender::eevee::Light::sync(), blender::tests::TEST(), blender::ed::sculpt_paint::tilt_apply_to_normal(), blender::math::to_scale(), and blender::geometry::transform_volume().
|
inline |
Definition at line 273 of file BLI_math_matrix_types.hh.
|
inline |
Definition at line 252 of file BLI_math_matrix_types.hh.
Referenced by blender::draw::overlay::Fluids::begin_sync(), BKE_multires_construct_tangent_matrix(), blender::bke::build_point_matrix(), blender::ed::sculpt_paint::brushes::clay_strips::calc_local_matrix(), blender::ed::sculpt_paint::cloth::calc_perpendicular_pinch_forces(), blender::ed::sculpt_paint::cloth::cloth_brush_apply_brush_forces(), blender::nodes::node_geo_scale_elements_cc::create_single_axis_transform(), blender::ed::sculpt_paint::brushes::do_clay_thumb_brush(), blender::ed::sculpt_paint::brushes::do_multiplane_scrape_brush(), blender::ed::sculpt_paint::brushes::do_pinch_brush(), blender::ed::sculpt_paint::brushes::do_plane_brush(), blender::math::from_up_axis(), blender::ed::sculpt_paint::greasepencil::get_screen_projection_fn(), blender::draw::overlay::FlatObjectRef::if_flat_axis_orthogonal_to_view(), blender::ed::view3d::geometry_nodes_gizmos::make_matrix_orthonormal_but_keep_z_axis(), blender::ed::sculpt_paint::brushes::clay_strips::node_in_box(), blender::draw::overlay::Bounds::object_sync(), blender::draw::overlay::LightProbes::object_sync(), blender::nodes::node_geo_rotate_instances_cc::rotate_instances(), blender::eevee::Light::sync(), blender::tests::TEST(), blender::math::to_quaternion_legacy(), blender::math::to_scale(), blender::geometry::transform_volume(), and blender::ed::view3d::geometry_nodes_gizmos::LinearGizmo::update_transform().
|
inline |
Definition at line 280 of file BLI_math_matrix_types.hh.
|
inlinestatic |
Definition at line 455 of file BLI_math_matrix_types.hh.
|
friend |
Definition at line 429 of file BLI_math_matrix_types.hh.
|
friend |
Multiply by the transposed.
Definition at line 408 of file BLI_math_matrix_types.hh.
|
friend |
Vector operators.
Definition at line 398 of file BLI_math_matrix_types.hh.
|
friend |
Multiply each component by a scalar.
Definition at line 368 of file BLI_math_matrix_types.hh.
|
friend |
Multiply each component by a scalar.
Definition at line 376 of file BLI_math_matrix_types.hh.
|
friend |
Matrix operators.
Definition at line 296 of file BLI_math_matrix_types.hh.
|
friend |
Definition at line 303 of file BLI_math_matrix_types.hh.
|
friend |
Definition at line 310 of file BLI_math_matrix_types.hh.
|
friend |
Definition at line 327 of file BLI_math_matrix_types.hh.
|
friend |
Definition at line 334 of file BLI_math_matrix_types.hh.
|
friend |
Definition at line 341 of file BLI_math_matrix_types.hh.
|
friend |
Definition at line 348 of file BLI_math_matrix_types.hh.
|
friend |
NOTE: j and i are swapped to follow mathematical convention.
Definition at line 470 of file BLI_math_matrix_types.hh.
|
friend |
Compare.
Definition at line 419 of file BLI_math_matrix_types.hh.
|
staticconstexpr |
Definition at line 83 of file BLI_math_matrix_types.hh.
|
staticconstexpr |
Definition at line 82 of file BLI_math_matrix_types.hh.
|
staticconstexpr |
Definition at line 84 of file BLI_math_matrix_types.hh.