Biorbd
|
Cylinder object that makes the muscle to wrap around. More...
#include <WrappingCylinder.h>
Classes | |
class | NodeMusclePair |
Pair of 2 muscles points. More... | |
Public Member Functions | |
WrappingCylinder () | |
Construct a wrapping cylinder. | |
WrappingCylinder (const biorbd::utils::RotoTrans &rt, const biorbd::utils::Scalar &diameter, const biorbd::utils::Scalar &length, bool isCylinderPositiveSign) | |
Construct a wrapping cylinder. More... | |
WrappingCylinder (const biorbd::utils::RotoTrans &rt, const biorbd::utils::Scalar &diameter, const biorbd::utils::Scalar &length, bool isCylinderPositiveSign, const biorbd::utils::String &name, const biorbd::utils::String &parentName) | |
Construct a wrapping cylinder. More... | |
biorbd::muscles::WrappingCylinder | DeepCopy () const |
Deep copy of the wrapping cylinder. More... | |
void | DeepCopy (const biorbd::muscles::WrappingCylinder &other) |
Deep copy of the wrapping cylinder in another wrapping cylinder. More... | |
void | wrapPoints (const biorbd::utils::RotoTrans &rt, const biorbd::utils::Vector3d &p1_bone, const biorbd::utils::Vector3d &p2_bone, biorbd::utils::Vector3d &p1, biorbd::utils::Vector3d &p2, biorbd::utils::Scalar *length=nullptr) |
From the position of the cylinder, return the 2 locations where the muscle leaves the wrapping object. More... | |
void | wrapPoints (biorbd::rigidbody::Joints &model, const biorbd::rigidbody::GeneralizedCoordinates &Q, const biorbd::utils::Vector3d &p1_bone, const biorbd::utils::Vector3d &p2_bone, biorbd::utils::Vector3d &p1, biorbd::utils::Vector3d &p2, biorbd::utils::Scalar *length=nullptr) |
From the position of the cylinder, return the 2 locations where the muscle leaves the wrapping object. More... | |
void | wrapPoints (biorbd::utils::Vector3d &p1, biorbd::utils::Vector3d &p2, biorbd::utils::Scalar *length=nullptr) |
Returns the previously computed 2 locations where the muscle leaves the wrapping object. More... | |
virtual const biorbd::utils::RotoTrans & | RT (biorbd::rigidbody::Joints &model, const biorbd::rigidbody::GeneralizedCoordinates &Q, bool updateKin=true) |
Return the RotoTrans matrix of the cylinder. More... | |
void | setDiameter (const biorbd::utils::Scalar &val) |
Set the diameter of the wrapping cylinder. More... | |
const biorbd::utils::Scalar & | diameter () const |
Return the diameter of the cylinder. More... | |
biorbd::utils::Scalar | radius () const |
Return the radius of the cylinder. More... | |
void | setLength (const biorbd::utils::Scalar &val) |
Set the length of the cylinder. More... | |
const biorbd::utils::Scalar & | length () const |
Return the length of the cylinder. More... | |
![]() | |
WrappingObject () | |
Construct a wrapping object. | |
WrappingObject (const biorbd::utils::Scalar &x, const biorbd::utils::Scalar &y, const biorbd::utils::Scalar &z) | |
Construct a wrapping object. More... | |
WrappingObject (const biorbd::utils::Scalar &x, const biorbd::utils::Scalar &y, const biorbd::utils::Scalar &z, const biorbd::utils::String &name, const biorbd::utils::String &parentName) | |
Construct a wrapping object. More... | |
WrappingObject (const biorbd::utils::Vector3d &other) | |
Construct a wrapping object from 3d Vector. More... | |
WrappingObject (const biorbd::utils::Vector3d &other, const biorbd::utils::String &name, const biorbd::utils::String &parentName) | |
Construct a wrapping object. More... | |
void | DeepCopy (const biorbd::muscles::WrappingObject &other) |
Deep copy of the wrapping ibject in another wrapping object. More... | |
const biorbd::utils::RotoTrans & | RT () const |
Return the RotoTrans matrix of the wrapping object. More... | |
biorbd::muscles::WrappingObject & | operator= (const biorbd::utils::Vector3d &other) |
To be able to use the equal "=" operator to define wrapping object. More... | |
![]() | |
Vector3d () | |
Construct 3D vector. More... | |
Vector3d (const biorbd::utils::Scalar &x, const biorbd::utils::Scalar &y, const biorbd::utils::Scalar &z) | |
Construct 3D vector. More... | |
Vector3d (const biorbd::utils::Scalar &x, const biorbd::utils::Scalar &y, const biorbd::utils::Scalar &z, const biorbd::utils::String &name, const biorbd::utils::String &parentName) | |
Construct a 3D vector. More... | |
Vector3d (const biorbd::utils::Vector3d vec, const biorbd::utils::String &name, const biorbd::utils::String &parentName) | |
Construct a 3D vector. More... | |
Vector3d (const RigidBodyDynamics::Math::Vector3d &other) | |
Construct a 3D vector from a Casadi 3D vector (drop the trailling 1) More... | |
Vector3d (const RigidBodyDynamics::Math::VectorNd &other) | |
Construct a 3D vector from a Casadi ND vector (drop the trailling 1) More... | |
Vector3d (const RigidBodyDynamics::Math::Vector4d &other) | |
Construct a 3D vector from an eigen 4D vector (drop the trailling 1) More... | |
biorbd::utils::Vector3d | DeepCopy () const |
Deep copy of a 3D vector. More... | |
void | DeepCopy (const biorbd::utils::Vector3d &other) |
Deep copy of a 3D vector into another 3D vector. More... | |
biorbd::utils::Vector3d | applyRT (const RotoTrans &rt) const |
Apply a RotoTrans to the 3D vector. More... | |
void | applyRT (const RotoTrans &rt) |
Apply a RotoTrans to the 3D vector. More... | |
![]() | |
Node () | |
Construct Node. | |
Node (const biorbd::utils::Node &other) | |
Construct Node from another node. More... | |
Node (const biorbd::utils::String &name) | |
Construct Node. More... | |
Node (const biorbd::utils::String &name, const biorbd::utils::String &parentName) | |
Construct Node. More... | |
virtual | ~Node () |
Destroy class properly. | |
void | DeepCopy (const biorbd::utils::Node &other) |
Deep copy of the node in another node. More... | |
void | setName (const biorbd::utils::String &name) |
Set the name of the node. More... | |
const biorbd::utils::String & | name () const |
Return the name of the node. | |
const biorbd::utils::String & | parent () const |
Return the parent name of the node. | |
void | setParent (const biorbd::utils::String &name) |
Set the parent name of the node. More... | |
biorbd::utils::NODE_TYPE | typeOfNode () const |
Return the type of node. | |
Protected Member Functions | |
void | findTangentToCircle (const biorbd::utils::Vector3d &p, biorbd::utils::Vector3d &p_tan) const |
Find the two tangents of a point with a circle. More... | |
void | selectTangents (const NodeMusclePair &p, biorbd::utils::Vector3d &p_tan) const |
Select between a set of nodes which ones to keep. More... | |
bool | findVerticalNode (const NodeMusclePair &pointsInGlobal, NodeMusclePair &pointsToWrap) const |
Find the height of both points. More... | |
bool | checkIfWraps (const NodeMusclePair &pointsInGlobal, NodeMusclePair &pointsToWrap) const |
Check if a wrapper has to be done. More... | |
biorbd::utils::Scalar | computeLength (const NodeMusclePair &p) const |
Compute the muscle length on the cylinder. More... | |
![]() | |
void | setType () |
Set the type Vector3d. | |
Protected Attributes | |
std::shared_ptr< biorbd::utils::Scalar > | m_dia |
Diameter of the cylinder diametre du cylindre. | |
std::shared_ptr< biorbd::utils::Scalar > | m_length |
Length of the cylinder. | |
std::shared_ptr< bool > | m_isCylinderPositiveSign |
orientation of the muscle passing | |
std::shared_ptr< biorbd::utils::RotoTrans > | m_RTtoParent |
RotoTrans matrix with the parent. | |
std::shared_ptr< biorbd::utils::Vector3d > | m_p1Wrap |
First point of contact with the wrap. | |
std::shared_ptr< biorbd::utils::Vector3d > | m_p2Wrap |
Second point of contact with the wrap. | |
std::shared_ptr< biorbd::utils::Scalar > | m_lengthAroundWrap |
Length between p1 and p2. | |
![]() | |
std::shared_ptr< biorbd::utils::RotoTrans > | m_RT |
RotoTrans matrix of the wrapping object. | |
![]() | |
std::shared_ptr< biorbd::utils::String > | m_name |
The name of the node. | |
std::shared_ptr< biorbd::utils::String > | m_parentName |
The parent name of the node. | |
std::shared_ptr< biorbd::utils::NODE_TYPE > | m_typeOfNode |
The type of the node. | |
Cylinder object that makes the muscle to wrap around.
Definition at line 12 of file WrappingCylinder.h.
biorbd::muscles::WrappingCylinder::WrappingCylinder | ( | const biorbd::utils::RotoTrans & | rt, |
const biorbd::utils::Scalar & | diameter, | ||
const biorbd::utils::Scalar & | length, | ||
bool | isCylinderPositiveSign | ||
) |
Construct a wrapping cylinder.
rt | RotoTrans matrix of the origin of the cylinder |
diameter | Diameter of the cylinder |
length | Length of the cylinder |
isCylinderPositiveSign | If cylinder is of positive sign |
Definition at line 21 of file WrappingCylinder.cpp.
biorbd::muscles::WrappingCylinder::WrappingCylinder | ( | const biorbd::utils::RotoTrans & | rt, |
const biorbd::utils::Scalar & | diameter, | ||
const biorbd::utils::Scalar & | length, | ||
bool | isCylinderPositiveSign, | ||
const biorbd::utils::String & | name, | ||
const biorbd::utils::String & | parentName | ||
) |
Construct a wrapping cylinder.
rt | RotoTrans matrix |
diameter | Diameter of the cylinder |
length | Length of the cylinder |
isCylinderPositiveSign | If cylinder is of positive sign |
name | The name of the cylinder |
parentName | The parent name segment |
Definition at line 38 of file WrappingCylinder.cpp.
|
protected |
Check if a wrapper has to be done.
pointsInGlobal | The position of the muscle pair in global reference frame |
pointsToWrap | The points to wrap |
Definition at line 311 of file WrappingCylinder.cpp.
|
protected |
Compute the muscle length on the cylinder.
p | the muscle node pair |
Definition at line 353 of file WrappingCylinder.cpp.
biorbd::muscles::WrappingCylinder biorbd::muscles::WrappingCylinder::DeepCopy | ( | ) | const |
Deep copy of the wrapping cylinder.
Definition at line 57 of file WrappingCylinder.cpp.
void biorbd::muscles::WrappingCylinder::DeepCopy | ( | const biorbd::muscles::WrappingCylinder & | other | ) |
Deep copy of the wrapping cylinder in another wrapping cylinder.
other | The wrapping cylinder to copy |
Definition at line 64 of file WrappingCylinder.cpp.
const biorbd::utils::Scalar & biorbd::muscles::WrappingCylinder::diameter | ( | ) | const |
Return the diameter of the cylinder.
Definition at line 164 of file WrappingCylinder.cpp.
|
protected |
Find the two tangents of a point with a circle.
p | The point |
p_tan | The point tangent |
Definition at line 185 of file WrappingCylinder.cpp.
|
protected |
Find the height of both points.
pointsInGlobal | The position of the muscle pair in global reference frame |
pointsToWrap | The points to wrap |
Definition at line 235 of file WrappingCylinder.cpp.
const biorbd::utils::Scalar & biorbd::muscles::WrappingCylinder::length | ( | ) | const |
Return the length of the cylinder.
Definition at line 180 of file WrappingCylinder.cpp.
biorbd::utils::Scalar biorbd::muscles::WrappingCylinder::radius | ( | ) | const |
Return the radius of the cylinder.
Definition at line 169 of file WrappingCylinder.cpp.
|
virtual |
Return the RotoTrans matrix of the cylinder.
model | The joint model |
Q | The generalized coordinates |
updateKin | If the kinematics should be computed |
Implements biorbd::muscles::WrappingObject.
Definition at line 144 of file WrappingCylinder.cpp.
|
protected |
Select between a set of nodes which ones to keep.
p | The 2 muscles points |
p_tan | The selected point |
Definition at line 207 of file WrappingCylinder.cpp.
void biorbd::muscles::WrappingCylinder::setDiameter | ( | const biorbd::utils::Scalar & | val | ) |
Set the diameter of the wrapping cylinder.
val | Value of the diameter to set |
Definition at line 158 of file WrappingCylinder.cpp.
void biorbd::muscles::WrappingCylinder::setLength | ( | const biorbd::utils::Scalar & | val | ) |
Set the length of the cylinder.
val | Value of the to set |
Definition at line 174 of file WrappingCylinder.cpp.
|
virtual |
From the position of the cylinder, return the 2 locations where the muscle leaves the wrapping object.
model | The joint model |
Q | The generalized coordinates |
p1_bone | 1st position of the muscle node |
p2_bone | 2n position of the muscle node |
p1 | The 1st position on the cylinder the muscle leave |
p2 | The 2nd position on the cylinder the muscle leave |
length | Length of the muscle (ignored if no value is provided) |
Implements biorbd::muscles::WrappingObject.
Definition at line 121 of file WrappingCylinder.cpp.
|
virtual |
Returns the previously computed 2 locations where the muscle leaves the wrapping object.
p1 | The 1st position on the cylinder the muscle leave |
p2 | The 2nd position on the cylinder the muscle leave |
length | Length of the muscle (ignored if no value is provided) |
Implements biorbd::muscles::WrappingObject.
Definition at line 134 of file WrappingCylinder.cpp.
|
virtual |
From the position of the cylinder, return the 2 locations where the muscle leaves the wrapping object.
rt | RotoTrans matrix of the cylinder |
p1_bone | 1st position of the muscle node |
p2_bone | 2n position of the muscle node |
p1 | The 1st position on the cylinder the muscle leave |
p2 | The 2nd position on the cylinder the muscle leave |
length | Length of the muscle (ignored if no value is provided) |
Implements biorbd::muscles::WrappingObject.
Definition at line 76 of file WrappingCylinder.cpp.