Skip to content

Commit

Permalink
Merged in issue_101_matrix3 (pull request gazebosim#328)
Browse files Browse the repository at this point in the history
7. Update Matrix3 class per issue gazebosim#101

Approved-by: Steve Peters <[email protected]>
  • Loading branch information
nkoenig committed Apr 7, 2020
2 parents 804622b + 62a34dd commit 45e59c0
Show file tree
Hide file tree
Showing 11 changed files with 489 additions and 76 deletions.
3 changes: 2 additions & 1 deletion Changelog.md
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,8 @@
* [Pull request 319](https://bitbucket.org/ignitionrobotics/ign-math/pull-requests/319)

1. Updates per issue #101.
* [Pull request 327](https://bitbucket.org/ignitionrobotics/ign-math/pull-requests/327)
* Quaternion: [Pull request 327](https://bitbucket.org/ignitionrobotics/ign-math/pull-requests/327)
* Matrix3: [Pull request 328](https://bitbucket.org/ignitionrobotics/ign-math/pull-requests/328)

1. Removed deprecations.
* [Pull request 320](https://bitbucket.org/ignitionrobotics/ign-math/pull-requests/320)
Expand Down
11 changes: 11 additions & 0 deletions Migration.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,17 @@ release will remove the deprecated code.
+ All mutator functions that lacked a `Set` prefix have been deprecated
and replaced by version with a `Set` prefix.

1. **Matrix3.hh**
+ ***Deprecation:*** public: void Axes(const Vector3<T> &, const Vector3<T> &, const Vector3<T> &)
+ ***Replacement:*** public: void SetAxes(const Vector3<T> &, const Vector3<T> &, const Vector3<T> &)

+ ***Deprecation:*** public: void Axis(const Vector3<T> &, T)
+ ***Replacement:*** public: void SetFromAxisAngle(const Vector3<T> &, T)
+ ***Deprecation:*** public: void From2Axes(const Vector3<T> &, const Vector3<T> &)
+ ***Replacement:*** public: void SetFrom2Axes(const Vector3<T> &, const Vector3<T> &)
+ ***Deprecation:*** public: void Col(unsigned int, const Vector3<T> &)
+ ***Replacement:*** public: void SetCol(unsigned int, const Vector3<T> &)

1. **Quaternion.hh**
+ ***Deprecation:*** public: void Axis(T, T, T, T)
+ ***Replacement:*** public: void SetFromAxisAngle(T, T, T, T)
Expand Down
19 changes: 11 additions & 8 deletions examples/CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -7,20 +7,23 @@ find_package(ignition-math${IGN_MATH_VER} REQUIRED)
add_executable(angle_example angle_example.cc)
target_link_libraries(angle_example ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})

add_executable(vector2_example vector2_example.cc)
target_link_libraries(vector2_example ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})
add_executable(graph_example graph_example.cc)
target_link_libraries(graph_example ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})

add_executable(triangle_example triangle_example.cc)
target_link_libraries(triangle_example ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})
add_executable(matrix3_example matrix3_example.cc)
target_link_libraries(matrix3_example ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})

add_executable(quaternion_example quaternion_example.cc)
target_link_libraries(quaternion_example ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})

add_executable(quaternion_from_euler quaternion_from_euler.cc)
target_link_libraries(quaternion_from_euler ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})

add_executable(quaternion_to_euler quaternion_to_euler.cc)
target_link_libraries(quaternion_to_euler ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})

add_executable(quaternion_from_euler quaternion_from_euler.cc)
target_link_libraries(quaternion_from_euler ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})
add_executable(triangle_example triangle_example.cc)
target_link_libraries(triangle_example ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})

add_executable(graph_example graph_example.cc)
target_link_libraries(graph_example ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})
add_executable(vector2_example vector2_example.cc)
target_link_libraries(vector2_example ignition-math${IGN_MATH_VER}::ignition-math${IGN_MATH_VER})
41 changes: 41 additions & 0 deletions examples/matrix3_example.cc
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
/*
* Copyright (C) 2019 Open Source Robotics Foundation
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
//! [complete]
#include <iostream>
#include <ignition/math/Matrix3.hh>

int main(int argc, char **argv)
{
// Construct a default matrix3.
ignition::math::Matrix3d m;
std::cout << "The default constructed matrix m has the following values.\n\t"
<< m << std::endl;

// Set the first column of the matrix.
m.SetCol(0, ignition::math::Vector3d(3, 4, 5));
std::cout << "Setting the first column of the matrix m to 3, 4, 5.\n\t"
<< m << std::endl;

// Transpose the matrix.
ignition::math::Matrix3d t = m.Transposed();
std::cout << "The transposed matrix t has the values.\n\t"
<< t << std::endl;

// Multiply the two matrices.
std::cout << "m * t = " << m * t << std::endl;
}
//! [complete]
55 changes: 55 additions & 0 deletions examples/matrix3_example.rb
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# Copyright (C) 2019 Open Source Robotics Foundation
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

# This example will only work if the Ruby interface library was compiled and
# installed.
#
# Modify the RUBYLIB environment variable to include the ignition math
# library install path. For example, if you install to /user:
#
# $ export RUBYLIB=/usr/lib/ruby:$RUBYLIB
#
require 'ignition/math'

# Construct a default matrix3.
m = Ignition::Math::Matrix3d.new
printf("The default constructed matrix m has the following values.\n\t" +
"%2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f\n",
m.(0, 0), m.(0, 1), m.(0, 2),
m.(1, 0), m.(1, 1), m.(1, 2),
m.(2, 0), m.(2, 1), m.(2, 2))

# Set the first column of the matrix.
m.SetCol(0, Ignition::Math::Vector3d.new(3, 4, 5))
printf("Setting the first column of the matrix m to 3, 4, 5.\n\t" +
"%2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f\n",
m.(0, 0), m.(0, 1), m.(0, 2),
m.(1, 0), m.(1, 1), m.(1, 2),
m.(2, 0), m.(2, 1), m.(2, 2))

# Transpose the matrix.
t = m.Transposed()
printf("The transposed matrix t has the values.\n\t"+
"%2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f\n",
t.(0, 0), t.(0, 1), t.(0, 2),
t.(1, 0), t.(1, 1), t.(1, 2),
t.(2, 0), t.(2, 1), t.(2, 2))

# Multiply the two matrices.
m = m * t
printf("m * t = " +
"%2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f %2.1f\n",
m.(0, 0), m.(0, 1), m.(0, 2),
m.(1, 0), m.(1, 1), m.(1, 2),
m.(2, 0), m.(2, 1), m.(2, 2))
Loading

0 comments on commit 45e59c0

Please sign in to comment.