# Ignition Math

## API Reference

6.10.0
Capsule< Precision > Class Template Reference

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 MaterialMat () 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...

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...

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.

## ◆ Capsule() [1/3]

 Capsule ( )
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]

 Capsule ( const Precision _length, const Precision _radius, const Material & _mat )

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.

## ◆ 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 > 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.

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.
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

Parameters