godot/tools/editor/plugins
Ferenc Arn 6b1252cdfa Fix the order in which additional transformations are applied in Matrix3 and Transform.
This is a part of the breaking changes proposed in PR #6865, solving the issue regarding the order of affine transformations described in #2565. This PR also fixes the affected code within Godot codebase. Includes improvements to documentation too.

Another change is, Matrix3::get_scale() will now return negative scaling when the determinant of the matrix is negative. The rationale behind this is simple: when performing a polar decomposition on a basis matrix M = R.S, we have to ensure that the determinant of R is +1, such that it is a proper rotation matrix (with no reflections) which can be represented by Euler angles or a quaternion.

Also replaced the few instances of float with real_t in Matrix3 and Transform.

Furthermore, this PR fixes an issue introduced due to the API breakage in #6865. Namely Matrix3::get_euler() now only works with proper rotation matrices. As a result, the code that wants to get the rotation portion of a transform needs to use Matrix3::get_rotation() introduced in this commit, which complements Matrix3::get_scaled(), providing both parts of the polar decomposition.

Finally, it is now possible to construct a rotation matrix from Euler angles using the new constructor Matrix3::Matrix3(const Vector3 &p_euler).
2017-01-08 10:36:14 -06:00
..
animation_player_editor_plugin.cpp -Conversion of most properties to a simpler syntax, easier to use by script 2017-01-04 01:16:14 -03:00
animation_player_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
animation_tree_editor_plugin.cpp -Conversion of most properties to a simpler syntax, easier to use by script 2017-01-04 01:16:14 -03:00
animation_tree_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
baked_light_baker_cmpxchg.cpp Welcome in 2017, dear changelog reader! 2017-01-01 22:03:33 +01:00
baked_light_baker.cpp Merge remote-tracking branch 'origin/gles3' into gles3-on-master 2017-01-02 21:52:26 +01:00
baked_light_baker.h Merge remote-tracking branch 'origin/gles3' into gles3-on-master 2017-01-02 21:52:26 +01:00
baked_light_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
baked_light_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
camera_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
camera_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
canvas_item_editor_plugin.cpp -Conversion of most properties to a simpler syntax, easier to use by script 2017-01-04 01:16:14 -03:00
canvas_item_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
collision_polygon_2d_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
collision_polygon_2d_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
collision_polygon_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
collision_polygon_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
collision_shape_2d_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
collision_shape_2d_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
color_ramp_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
color_ramp_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
cube_grid_theme_editor_plugin.cpp Use right handed coordinate system for rotation matrices and quaternions. Also fixes Euler angles (XYZ convention, which is used as default by Blender). 2017-01-03 17:41:04 -06:00
cube_grid_theme_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
editor_preview_plugins.cpp Use right handed coordinate system for rotation matrices and quaternions. Also fixes Euler angles (XYZ convention, which is used as default by Blender). 2017-01-03 17:41:04 -06:00
editor_preview_plugins.h Merge remote-tracking branch 'origin/gles3' into gles3-on-master 2017-01-02 21:52:26 +01:00
gi_probe_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
gi_probe_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
item_list_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
item_list_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
light_occluder_2d_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
light_occluder_2d_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
material_editor_plugin.cpp Use right handed coordinate system for rotation matrices and quaternions. Also fixes Euler angles (XYZ convention, which is used as default by Blender). 2017-01-03 17:41:04 -06:00
material_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
mesh_editor_plugin.cpp Use right handed coordinate system for rotation matrices and quaternions. Also fixes Euler angles (XYZ convention, which is used as default by Blender). 2017-01-03 17:41:04 -06:00
mesh_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
mesh_instance_editor_plugin.cpp -Conversion of most properties to a simpler syntax, easier to use by script 2017-01-04 01:16:14 -03:00
mesh_instance_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
multimesh_editor_plugin.cpp Fix the order in which additional transformations are applied in Matrix3 and Transform. 2017-01-08 10:36:14 -06:00
multimesh_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
navigation_polygon_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
navigation_polygon_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
particles_2d_editor_plugin.cpp -Conversion of most properties to a simpler syntax, easier to use by script 2017-01-04 01:16:14 -03:00
particles_2d_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
particles_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
particles_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
path_2d_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
path_2d_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
path_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
path_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
polygon_2d_editor_plugin.cpp -Conversion of most properties to a simpler syntax, easier to use by script 2017-01-04 01:16:14 -03:00
polygon_2d_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
resource_preloader_editor_plugin.cpp Begin modifying properties to make them more friendly to script and doc. 2017-01-03 00:38:16 -03:00
resource_preloader_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
rich_text_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
rich_text_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
sample_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
sample_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
sample_library_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
sample_library_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
sample_player_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
sample_player_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
script_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
script_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
script_text_editor.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
script_text_editor.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
SCsub style: Fix PEP8 whitespace issues in Python files 2016-11-01 00:35:16 +01:00
shader_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
shader_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
shader_graph_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
shader_graph_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
spatial_editor_plugin.cpp Fix the order in which additional transformations are applied in Matrix3 and Transform. 2017-01-08 10:36:14 -06:00
spatial_editor_plugin.h -Conversion of most properties to a simpler syntax, easier to use by script 2017-01-04 01:16:14 -03:00
sprite_frames_editor_plugin.cpp -Conversion of most properties to a simpler syntax, easier to use by script 2017-01-04 01:16:14 -03:00
sprite_frames_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
stream_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
stream_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
style_box_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
style_box_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
texture_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
texture_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
texture_region_editor_plugin.cpp -Conversion of most properties to a simpler syntax, easier to use by script 2017-01-04 01:16:14 -03:00
texture_region_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
theme_editor_plugin.cpp -Conversion of most properties to a simpler syntax, easier to use by script 2017-01-04 01:16:14 -03:00
theme_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
tile_map_editor_plugin.cpp -Conversion of most properties to a simpler syntax, easier to use by script 2017-01-04 01:16:14 -03:00
tile_map_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
tile_set_editor_plugin.cpp ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00
tile_set_editor_plugin.h ObjectTypeDB was renamed to ClassDB. Types are meant to be more generic to Variant. 2017-01-02 23:03:46 -03:00