A representation of a capsule or sphere-capped cylinder. More...
#include <ignition/math/Capsule.hh>
Public Member Functions | |
Capsule ()=default | |
Default constructor. The default radius and length are both zero. More... | |
Capsule (const Precision _length, const Precision _radius) | |
Construct a capsule with a length and radius. More... | |
Capsule (const Precision _length, const Precision _radius, const Material &_mat) | |
Construct a capsule with a length, radius, and material. More... | |
Precision | DensityFromMass (const Precision _mass) const |
Compute the capsule's density given a mass value. The capsule is assumed to be solid with uniform density. This function requires the capsule's radius and length to be set to values greater than zero. The Material of the capsule is ignored. More... | |
Precision | Length () const |
Get the length in meters. More... | |
std::optional< MassMatrix3< Precision > > | MassMatrix () const |
Get the mass matrix for this capsule. This function is only meaningful if the capsule's radius, length, and material have been set. More... | |
const Material & | Mat () const |
Get the material associated with this capsule. More... | |
bool | operator== (const Capsule &_capsule) const |
Check if this capsule is equal to the provided capsule. Radius, length, and material properties will be checked. More... | |
Precision | Radius () const |
Get the radius in meters. More... | |
bool | SetDensityFromMass (const Precision _mass) |
Set the density of this capsule based on a mass value. Density is computed using Precision DensityFromMass(const Precision _mass) const. The capsule is assumed to be solid with uniform density. This function requires the capsule's radius and length to be set to values greater than zero. The existing Material density value is overwritten only if the return value from this true. More... | |
void | SetLength (const Precision _length) |
Set the length in meters. More... | |
void | SetMat (const Material &_mat) |
Set the material associated with this capsule. More... | |
void | SetRadius (const Precision _radius) |
Set the radius in meters. More... | |
Precision | Volume () const |
Get the volume of the capsule in m^3. More... | |
Detailed Description
template<typename Precision>
class ignition::math::Capsule< Precision >
A representation of a capsule or sphere-capped cylinder.
The capsule class supports defining a capsule with a radius, length, and material properties. The shape is equivalent to a cylinder aligned with the Z-axis and capped with hemispheres. Radius and length are in meters. See Material for more on material properties.
- Template Parameters
-
Precision Scalar numeric type.
Constructor & Destructor Documentation
◆ Capsule() [1/3]
|
default |
Default constructor. The default radius and length are both zero.
◆ Capsule() [2/3]
Capsule | ( | const Precision | _length, |
const Precision | _radius | ||
) |
Construct a capsule with a length and radius.
- Parameters
-
[in] _length Length of the capsule. [in] _radius Radius of the capsule.
◆ Capsule() [3/3]
Construct a capsule with a length, radius, and material.
- Parameters
-
[in] _length Length of the capsule. [in] _radius Radius of the capsule. [in] _mat Material property for the capsule.
Member Function Documentation
◆ DensityFromMass()
Precision DensityFromMass | ( | const Precision | _mass | ) | const |
Compute the capsule's density given a mass value. The capsule is assumed to be solid with uniform density. This function requires the capsule's radius and length to be set to values greater than zero. The Material of the capsule is ignored.
- Parameters
-
[in] _mass Mass of the capsule, in kg. This value should be greater than zero.
- Returns
- Density of the capsule in kg/m^3. A NaN is returned if radius, length or _mass is <= 0.
◆ Length()
Precision Length | ( | ) | const |
Get the length in meters.
- Returns
- The length of the capsule in meters.
◆ MassMatrix()
std::optional< MassMatrix3<Precision> > MassMatrix | ( | ) | const |
Get the mass matrix for this capsule. This function is only meaningful if the capsule's radius, length, and material have been set.
- Returns
- The computed mass matrix if parameters are valid (radius > 0), (length > 0), and (density > 0). Otherwise std::nullopt is returned.
◆ Mat()
const Material& Mat | ( | ) | const |
Get the material associated with this capsule.
- Returns
- The material assigned to this capsule
◆ operator==()
bool operator== | ( | const Capsule< Precision > & | _capsule | ) | const |
Check if this capsule is equal to the provided capsule. Radius, length, and material properties will be checked.
◆ Radius()
Precision Radius | ( | ) | const |
Get the radius in meters.
- Returns
- The radius of the capsule in meters.
◆ SetDensityFromMass()
bool SetDensityFromMass | ( | const Precision | _mass | ) |
Set the density of this capsule based on a mass value. Density is computed using Precision DensityFromMass(const Precision _mass) const. The capsule is assumed to be solid with uniform density. This function requires the capsule's radius and length to be set to values greater than zero. The existing Material density value is overwritten only if the return value from this true.
- Parameters
-
[in] _mass Mass of the capsule, in kg. This value should be greater than zero.
- Returns
- True if the density was set. False is returned if the capsule's radius, length, or the _mass value are <= 0.
- See also
- Precision DensityFromMass(const Precision _mass) const
◆ SetLength()
void SetLength | ( | const Precision | _length | ) |
Set the length in meters.
- Parameters
-
[in] _length The length of the capsule in meters.
◆ SetMat()
void SetMat | ( | const Material & | _mat | ) |
Set the material associated with this capsule.
- Parameters
-
[in] _mat The material assigned to this capsule
◆ SetRadius()
void SetRadius | ( | const Precision | _radius | ) |
Set the radius in meters.
- Parameters
-
[in] _radius The radius of the capsule in meters.
◆ Volume()
Precision Volume | ( | ) | const |
Get the volume of the capsule in m^3.
- Returns
- Volume of the capsule in m^3.
The documentation for this class was generated from the following file: