Skip to content

Commit 76cf8e4

Browse files
authored
Merge pull request #149 from Amedeo123/master
mass variable type from double into Scalar
2 parents 2e06794 + 1d5b69c commit 76cf8e4

File tree

6 files changed

+35
-21
lines changed

6 files changed

+35
-21
lines changed

include/RigidBody/Joints.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
#include <rbdl/Model.h>
66
#include <rbdl/Constraints.h>
77
#include "biorbdConfig.h"
8+
#include "Utils/Scalar.h"
89

910
namespace biorbd {
1011
namespace utils {
@@ -432,7 +433,7 @@ class BIORBD_API Joints : public RigidBodyDynamics::Model
432433
/// \brief Return the total mass of the model
433434
/// \return The toal mass of the model
434435
///
435-
double mass() const;
436+
biorbd::utils::Scalar mass() const;
436437

437438
///
438439
/// \brief Return the position of the center of mass
@@ -824,7 +825,7 @@ class BIORBD_API Joints : public RigidBodyDynamics::Model
824825
std::shared_ptr<unsigned int> m_nbQddot; ///< The total number of Qddot
825826
std::shared_ptr<unsigned int> m_nRotAQuat; ///< The number of segments per quaternion
826827
std::shared_ptr<bool> m_isKinematicsComputed; ///< If the kinematics are computed
827-
std::shared_ptr<double> m_totalMass; ///< Mass of all the bodies combined
828+
std::shared_ptr<biorbd::utils::Scalar> m_totalMass; ///< Mass of all the bodies combined
828829

829830
///
830831
/// \brief Calculate the joint coordinate system (JCS) in global reference frame of a specified segment

include/RigidBody/SegmentCharacteristics.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ class BIORBD_API SegmentCharacteristics : public RigidBodyDynamics::Body
3838
/// \param inertia The inertia matrix
3939
///
4040
SegmentCharacteristics(
41-
double mass,
41+
const biorbd::utils::Scalar& mass,
4242
const biorbd::utils::Vector3d &com,
4343
const RigidBodyDynamics::Math::Matrix3d &inertia);
4444

@@ -50,7 +50,7 @@ class BIORBD_API SegmentCharacteristics : public RigidBodyDynamics::Body
5050
/// \param mesh The mesh geometry of the segment
5151
///
5252
SegmentCharacteristics(
53-
double mass,
53+
const biorbd::utils::Scalar &mass,
5454
const biorbd::utils::Vector3d &com,
5555
const RigidBodyDynamics::Math::Matrix3d &inertia,
5656
const biorbd::rigidbody::Mesh &mesh);
@@ -78,13 +78,13 @@ class BIORBD_API SegmentCharacteristics : public RigidBodyDynamics::Body
7878
/// \brief Returns the segment length
7979
/// \return The segment length
8080
///
81-
const biorbd::utils::Scalar& length() const;
81+
biorbd::utils::Scalar length() const;
8282

8383
///
8484
/// \brief Returns the segment mass
8585
/// \return The segment mass
8686
///
87-
double mass() const;
87+
biorbd::utils::Scalar mass() const;
8888

8989
///
9090
/// \brief CoM Returns the position of the center of mass in the local reference frame

src/RigidBody/Joints.cpp

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
#include <rbdl/rbdl_utils.h>
55
#include <rbdl/Kinematics.h>
66
#include <rbdl/Dynamics.h>
7+
#include "Utils/Scalar.h"
78
#include "Utils/String.h"
89
#include "Utils/Quaternion.h"
910
#include "Utils/Matrix.h"
@@ -33,7 +34,7 @@ biorbd::rigidbody::Joints::Joints() :
3334
m_nbQddot(std::make_shared<unsigned int>(0)),
3435
m_nRotAQuat(std::make_shared<unsigned int>(0)),
3536
m_isKinematicsComputed(std::make_shared<bool>(false)),
36-
m_totalMass(std::make_shared<double>(0))
37+
m_totalMass(std::make_shared<biorbd::utils::Scalar>(0))
3738
{
3839
this->gravity = biorbd::utils::Vector3d (0, 0, -9.81); // Redéfinition de la gravité pour qu'elle soit en z
3940
}
@@ -118,7 +119,7 @@ unsigned int biorbd::rigidbody::Joints::nbRoot() const {
118119
return *m_nbRoot;
119120
}
120121

121-
double biorbd::rigidbody::Joints::mass() const {
122+
biorbd::utils::Scalar biorbd::rigidbody::Joints::mass() const {
122123
return *m_totalMass;
123124
}
124125

src/RigidBody/SegmentCharacteristics.cpp

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
#define BIORBD_API_EXPORTS
22
#include "RigidBody/SegmentCharacteristics.h"
33

4+
#include "Utils/Scalar.h"
45
#include "Utils/Vector3d.h"
56
#include "RigidBody/MeshFace.h"
67
#include "RigidBody/Mesh.h"
@@ -13,7 +14,7 @@ biorbd::rigidbody::SegmentCharacteristics::SegmentCharacteristics() :
1314

1415
}
1516
biorbd::rigidbody::SegmentCharacteristics::SegmentCharacteristics(
16-
double mass,
17+
const biorbd::utils::Scalar &mass,
1718
const biorbd::utils::Vector3d &com,
1819
const RigidBodyDynamics::Math::Matrix3d &inertia) :
1920
Body(mass, com, inertia),
@@ -23,7 +24,7 @@ biorbd::rigidbody::SegmentCharacteristics::SegmentCharacteristics(
2324

2425
}
2526
biorbd::rigidbody::SegmentCharacteristics::SegmentCharacteristics(
26-
double mass,
27+
const biorbd::utils::Scalar &mass,
2728
const biorbd::utils::Vector3d &com,
2829
const RigidBodyDynamics::Math::Matrix3d &inertia,
2930
const biorbd::rigidbody::Mesh &mesh) :
@@ -54,12 +55,12 @@ void biorbd::rigidbody::SegmentCharacteristics::setLength(
5455
*m_length = val;
5556
}
5657

57-
const biorbd::utils::Scalar& biorbd::rigidbody::SegmentCharacteristics::length() const
58+
biorbd::utils::Scalar biorbd::rigidbody::SegmentCharacteristics::length() const
5859
{
5960
return *m_length;
6061
}
6162

62-
double biorbd::rigidbody::SegmentCharacteristics::mass() const
63+
biorbd::utils::Scalar biorbd::rigidbody::SegmentCharacteristics::mass() const
6364
{
6465
return mMass;
6566
}

test/test_biorbd.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,8 @@ TEST(FileIO, WriteModel){
4141

4242
TEST(GenericTests, mass){
4343
biorbd::Model model(modelPathForGeneralTesting);
44-
EXPECT_NEAR(model.mass(), 52.41212, requiredPrecision);
44+
SCALAR_TO_DOUBLE(mass, model.mass());
45+
EXPECT_NEAR(mass, 52.41212, requiredPrecision);
4546
}
4647

4748
TEST(MeshFile, FileIO){

test/test_rigidbody.cpp

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -339,10 +339,14 @@ TEST(Joints, copy)
339339
biorbd::rigidbody::Joints deepCopyNow(joints.DeepCopy());
340340
biorbd::rigidbody::Joints deepCopyLater;
341341
deepCopyLater.DeepCopy(joints);
342-
343-
EXPECT_NEAR(shallowCopy.mass(), 52.412120000000002, requiredPrecision);
344-
EXPECT_NEAR(deepCopyNow.mass(), 52.412120000000002, requiredPrecision);
345-
EXPECT_NEAR(deepCopyLater.mass(), 52.412120000000002, requiredPrecision);
342+
{
343+
SCALAR_TO_DOUBLE(shallowCopyMass, shallowCopy.mass());
344+
SCALAR_TO_DOUBLE(deepCopyNowMass, deepCopyNow.mass());
345+
SCALAR_TO_DOUBLE(deepCopyLaterMass, deepCopyLater.mass());
346+
EXPECT_NEAR(shallowCopyMass, 52.412120000000002, requiredPrecision);
347+
EXPECT_NEAR(deepCopyNowMass, 52.412120000000002, requiredPrecision);
348+
EXPECT_NEAR(deepCopyLaterMass, 52.412120000000002, requiredPrecision);
349+
}
346350

347351
biorbd::rigidbody::SegmentCharacteristics characteristics(
348352
10, biorbd::utils::Vector3d(0.5, 0.5, 0.5),
@@ -352,10 +356,16 @@ TEST(Joints, copy)
352356
joints.AddSegment("segmentName", "parentName", "zyx", "yzx", ranges, ranges, ranges,
353357
characteristics, RigidBodyDynamics::Math::SpatialTransform());
354358

355-
EXPECT_NEAR(joints.mass(), 62.412120000000002, requiredPrecision);
356-
EXPECT_NEAR(shallowCopy.mass(), 62.412120000000002, requiredPrecision);
357-
EXPECT_NEAR(deepCopyNow.mass(), 52.412120000000002, requiredPrecision);
358-
EXPECT_NEAR(deepCopyLater.mass(), 52.412120000000002, requiredPrecision);
359+
{
360+
SCALAR_TO_DOUBLE(jointsMass, joints.mass());
361+
SCALAR_TO_DOUBLE(shallowCopyMass, shallowCopy.mass());
362+
SCALAR_TO_DOUBLE(deepCopyNowMass, deepCopyNow.mass());
363+
SCALAR_TO_DOUBLE(deepCopyLaterMass, deepCopyLater.mass());
364+
EXPECT_NEAR(jointsMass, 62.412120000000002, requiredPrecision);
365+
EXPECT_NEAR(shallowCopyMass, 62.412120000000002, requiredPrecision);
366+
EXPECT_NEAR(deepCopyNowMass, 52.412120000000002, requiredPrecision);
367+
EXPECT_NEAR(deepCopyLaterMass, 52.412120000000002, requiredPrecision);
368+
}
359369
}
360370
}
361371

0 commit comments

Comments
 (0)