Program Listing for File shape.hxx¶
↰ Return to documentation for file (src/enve/shape.hxx
)
/*
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* *
* The ENVE project *
* *
* Copyright (c) 2020, Davide Stocco and Enrico Bertolazzi. *
* *
* The ENVE project and its components are supplied under the terms of *
* the open source BSD 3-Clause License. The contents of the ENVE *
* project and its components may not be copied or disclosed except in *
* accordance with the terms of the BSD 3-Clause License. *
* *
* URL: https://opensource.org/licenses/BSD-3-Clause *
* *
* Davide Stocco *
* Department of Industrial Engineering *
* University of Trento *
* e-mail: davide.stocco@unitn.it *
* *
* Enrico Bertolazzi *
* Department of Industrial Engineering *
* University of Trento *
* e-mail: enrico.bertolazzi@unitn.it *
* *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*/
#ifndef INCLUDE_ENVE_SHAPE_HXX
#define INCLUDE_ENVE_SHAPE_HXX
namespace enve
{
/*\
| _
| ___| |__ __ _ _ __ ___
| / __| '_ \ / _` | '_ \ / _ \
| \__ \ | | | (_| | |_) | __/
| |___/_| |_|\__,_| .__/ \___|
| |_|
\*/
class shape
{
private:
real m_r_x;
real m_m_x;
real m_r_y;
real m_m_y;
real m_l_y;
public:
shape(shape const &) = default;
shape(shape &&) = default;
shape & operator=(const shape &) = delete;
shape & operator=(shape &&) = delete;
~shape(void) = default;
shape(void);
shape(
real r_x,
real m_x,
real r_y,
real m_y,
real l_y
);
void
copy(
shape const & shape_obj
);
bool
isApprox(
shape const & shape_obj,
real tolerance = EPSILON_LOW
) const;
real const &
Rx(void)
const;
real const &
Mx(void)
const;
real const &
Ry(void)
const;
real const &
My(void)
const;
real const &
Ly(void)
const;
real &
Rx(void);
real &
Mx(void);
real &
Ry(void);
real &
My(void);
real &
Ly(void);
real const &
surfaceMaxRadius(void)
const;
real const &
surfaceMaxWidth(void)
const;
bool
checkWidthBound(
real y
) const;
real
surfaceRadius(
real y
) const;
real const &
surfaceWidth(void)
const;
real
surfaceDerivative(
real y,
real tolerance = EPSILON_MEDIUM
) const;
real
surfaceAngle(
real y,
real tolerance = EPSILON_MEDIUM
) const;
void
print(
out_stream & os
) const;
}; // class shape
} // namespace enve
#endif