Blender
V3.3
|
#include <BLI_float4x4.hh>
Classes | |
struct | float3x3_ref |
Public Types | |
using | c_style_float4x4 = float[4][4] |
Public Member Functions | |
float4x4 ()=default | |
float4x4 (const float *matrix) | |
float4x4 (const float matrix[4][4]) | |
operator float * () | |
operator const float * () const | |
float * | operator[] (const int64_t index) |
const float * | operator[] (const int64_t index) const |
c_style_float4x4 & | ptr () |
const c_style_float4x4 & | ptr () const |
void | operator*= (const float4x4 &other) |
float3 | translation () const |
float3 | to_euler () const |
float3 | scale () const |
void | apply_scale (const float scale) |
float4x4 | inverted () const |
float4x4 | inverted_affine () const |
float4x4 | transposed () const |
float4x4 | inverted_transposed_affine () const |
float3x3_ref | ref_3x3 () const |
bool | is_negative () const |
uint64_t | hash () const |
Static Public Member Functions | |
static float4x4 | from_loc_eul_scale (const float3 location, const float3 rotation, const float3 scale) |
static float4x4 | from_location (const float3 location) |
static float4x4 | from_normalized_axis_data (const float3 location, const float3 forward, const float3 up) |
static float4x4 | identity () |
static float4x4 | interpolate (const float4x4 &a, const float4x4 &b, float t) |
Public Attributes | |
float | values [4][4] |
Friends | |
float4x4 | operator* (const float4x4 &a, const float4x4 &b) |
float3 | operator* (const float4x4 &m, const float3 &v) |
float3 | operator* (const float4x4 &m, const float(*v)[3]) |
bool | operator== (const float4x4 &a, const float4x4 &b) |
bool | operator!= (const float4x4 &a, const float4x4 &b) |
std::ostream & | operator<< (std::ostream &stream, const float4x4 &mat) |
Definition at line 12 of file BLI_float4x4.hh.
using blender::float4x4::c_style_float4x4 = float[4][4] |
Definition at line 111 of file BLI_float4x4.hh.
|
default |
|
inline |
Definition at line 17 of file BLI_float4x4.hh.
References values.
|
inline |
Definition at line 22 of file BLI_float4x4.hh.
Definition at line 180 of file BLI_float4x4.hh.
References scale(), and values.
Referenced by blender::nodes::node_geo_string_to_curves_cc::create_curve_instances(), and blender::bke::fill_mesh_positions().
|
inlinestatic |
Definition at line 27 of file BLI_float4x4.hh.
References loc_eul_size_to_mat4(), scale(), and values.
Referenced by blender::nodes::node_geo_transform_cc::node_geo_exec(), and blender::nodes::transform_mesh().
Definition at line 36 of file BLI_float4x4.hh.
References copy_v3_v3(), identity(), and values.
Referenced by blender::nodes::translate_volume().
|
inlinestatic |
Definition at line 43 of file BLI_float4x4.hh.
References BLI_ASSERT_UNIT_V3, blender::math::cross(), and values.
Referenced by blender::bke::fill_mesh_positions().
|
inline |
Definition at line 250 of file BLI_float4x4.hh.
References values.
|
inlinestatic |
Definition at line 80 of file BLI_float4x4.hh.
References unit_m4(), and values.
Referenced by blender::nodes::node_geo_string_to_curves_cc::create_curve_instances(), blender::nodes::node_geo_mesh_primitive_ico_sphere_cc::create_ico_sphere_mesh(), blender::nodes::node_geo_scale_elements_cc::create_single_axis_transform(), from_location(), blender::bke::geometry_set_collect_recursive_collection_instance(), blender::bke::geometry_set_gather_instances(), blender::nodes::node_geo_boolean_cc::node_geo_exec(), blender::nodes::node_geo_collection_info_cc::node_geo_exec(), blender::nodes::node_geo_geometry_to_instance_cc::node_geo_exec(), blender::nodes::node_geo_object_info_cc::node_geo_exec(), blender::bke::object_get_evaluated_geometry_set(), blender::eevee::Camera::sync(), and blender::eevee::WorldPipeline::sync().
|
inlinestatic |
Definition at line 238 of file BLI_float4x4.hh.
References Freestyle::a, usdtokens::b(), interp_m4_m4m4(), result, and t.
|
inline |
Definition at line 193 of file BLI_float4x4.hh.
References invert_m4_m4(), result, and values.
Referenced by blender::ed::sculpt_paint::CombOperationExecutor::comb_projected(), blender::bke::CurvesSurfaceTransforms::CurvesSurfaceTransforms(), blender::nodes::node_geo_deform_curves_on_surface_cc::deform_curves(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_projected(), blender::ed::sculpt_paint::PuffOperationExecutor::find_curve_weights_projected(), blender::ed::sculpt_paint::SmoothOperationExecutor::find_projected_smooth_factors(), inverted_affine(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::paint_curve_selection_projected(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::paint_point_selection_projected(), blender::ed::sculpt_paint::PinchOperationExecutor::pinch_projected(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::projected_snake_hook(), blender::ed::sculpt_paint::sample_curves_3d_brush(), blender::ed::sculpt_paint::DensityAddOperationExecutor::sample_projected_with_symmetry(), blender::ed::sculpt_paint::SlideOperationExecutor::slide(), blender::ed::curves::convert_to_particle_system::try_convert_single_object(), and blender::draw::image_engine::OneTextureMethod::update_screen_uv_bounds().
|
inline |
Matrix inversion can be implemented more efficiently for affine matrices.
Definition at line 203 of file BLI_float4x4.hh.
References BLI_assert, inverted(), and values.
Referenced by inverted_transposed_affine().
|
inline |
Definition at line 217 of file BLI_float4x4.hh.
References inverted_affine(), and transposed().
|
inline |
Definition at line 245 of file BLI_float4x4.hh.
References is_negative_m4(), and ptr().
|
inline |
Definition at line 92 of file BLI_float4x4.hh.
References values.
|
inline |
Definition at line 87 of file BLI_float4x4.hh.
References values.
Definition at line 129 of file BLI_float4x4.hh.
References mul_m4_m4_post(), and values.
Definition at line 97 of file BLI_float4x4.hh.
References BLI_assert, and values.
Definition at line 104 of file BLI_float4x4.hh.
References BLI_assert, and values.
|
inline |
Definition at line 112 of file BLI_float4x4.hh.
References values.
Referenced by blender::eevee::cubeface_winmat_get(), is_negative(), blender::eevee::ShadingView::sync(), and blender::eevee::WorldPipeline::sync().
|
inline |
Definition at line 117 of file BLI_float4x4.hh.
References values.
|
inline |
Definition at line 233 of file BLI_float4x4.hh.
|
inline |
Definition at line 173 of file BLI_float4x4.hh.
References mat4_to_size(), and values.
Referenced by apply_scale(), from_loc_eul_scale(), and blender::nodes::node_geo_object_info_cc::node_geo_exec().
|
inline |
Definition at line 166 of file BLI_float4x4.hh.
References mat4_to_eul(), and values.
Referenced by blender::nodes::node_geo_object_info_cc::node_geo_exec().
|
inline |
Definition at line 160 of file BLI_float4x4.hh.
References values.
Referenced by blender::nodes::node_geo_object_info_cc::node_geo_exec().
|
inline |
Definition at line 210 of file BLI_float4x4.hh.
References result, transpose_m4_m4(), and values.
Referenced by blender::nodes::node_geo_scale_elements_cc::create_single_axis_transform(), blender::bke::CurvesSurfaceTransforms::CurvesSurfaceTransforms(), and inverted_transposed_affine().
Definition at line 155 of file BLI_float4x4.hh.
Definition at line 122 of file BLI_float4x4.hh.
Definition at line 145 of file BLI_float4x4.hh.
This also applies the translation on the vector. Use m.ref_3x3() * v
if that is not intended.
Definition at line 138 of file BLI_float4x4.hh.
|
friend |
Definition at line 260 of file BLI_float4x4.hh.
Definition at line 150 of file BLI_float4x4.hh.
float blender::float4x4::values[4][4] |
Definition at line 13 of file BLI_float4x4.hh.
Referenced by apply_scale(), blender::ed::sculpt_paint::CombOperationExecutor::comb_projected(), blender::ed::sculpt_paint::CombOperationExecutor::comb_spherical_with_symmetry(), blender::nodes::node_geo_scale_elements_cc::create_single_axis_transform(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_projected(), blender::ed::sculpt_paint::DeleteOperationExecutor::delete_spherical_with_symmetry(), blender::ed::sculpt_paint::PuffOperationExecutor::find_curve_weights_projected(), blender::ed::sculpt_paint::find_curves_brush_position(), blender::ed::sculpt_paint::PuffOperationExecutor::find_curves_weights_spherical_with_symmetry(), blender::ed::sculpt_paint::SmoothOperationExecutor::find_projected_smooth_factors(), blender::ed::sculpt_paint::SmoothOperationExecutor::find_spherical_smooth_factors_with_symmetry(), float4x4(), blender::geometry::foreach_geometry_in_reference(), from_loc_eul_scale(), from_location(), from_normalized_axis_data(), blender::ed::sculpt_paint::CurvesEffectOperationExecutor::gather_influences_projected(), blender::bke::geometry_set_collect_recursive_collection_instance(), blender::ed::sculpt_paint::SlideOperationExecutor::get_slide_transform(), blender::ed::sculpt_paint::get_symmetry_brush_transforms(), hash(), identity(), inverted(), inverted_affine(), operator const float *(), operator float *(), operator*=(), operator[](), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::paint_curve_selection_projected(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::paint_curve_selection_spherical_with_symmetry(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::paint_point_selection_projected(), blender::ed::sculpt_paint::SelectionPaintOperationExecutor::paint_point_selection_spherical_with_symmetry(), blender::ed::sculpt_paint::PinchOperationExecutor::pinch_projected(), blender::io::gpencil::GpencilIO::prepare_layer_export_matrix(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::projected_snake_hook(), ptr(), blender::ed::sculpt_paint::DensitySubtractOperationExecutor::reduce_density_projected(), blender::ed::sculpt_paint::DensityAddOperationExecutor::sample_projected_with_symmetry(), scale(), blender::io::gpencil::GpencilIO::selected_objects_boundbox_calc(), blender::ed::sculpt_paint::SlideOperationExecutor::slide(), blender::ed::sculpt_paint::SnakeHookOperatorExecutor::spherical_snake_hook_with_symmetry(), blender::io::gpencil::GpencilIO::stroke_point_radius_get(), to_euler(), blender::nodes::transform_volume(), translation(), transposed(), and blender::ed::curves::convert_to_particle_system::try_convert_single_object().