Program Listing for File flat.hxx¶
↰ Return to documentation for file (src/enve/flat.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_FLAT_HXX
#define INCLUDE_ENVE_FLAT_HXX
namespace enve
{
namespace ground
{
/*\
| __ _ _
| / _| | __ _| |_
| | |_| |/ _` | __|
| | _| | (_| | |_
| |_| |_|\__,_|\__|
|
\*/
class flat : public plane
{
private:
real m_friction;
public:
flat(flat const &) = delete;
flat(flat &&) = delete;
flat & operator=(const flat &) = delete;
flat & operator=(flat &&) = delete;
~flat(void) override = default;
flat(void);
flat(
real friction,
real origin_x,
real origin_y,
real origin_z,
real normal_x,
real normal_y,
real normal_z
);
flat(
real friction,
point const & origin,
vec3 const & normal
);
flat(
real friction,
plane const & plane_obj
);
void
copy(
flat const & flat_obj
);
bool
isApprox(
flat const & flat_obj,
real tolerance = EPSILON_LOW
) const;
real const &
friction(void)
const;
real &
friction(void);
plane const &
layingPlane(void)
const;
plane &
layingPlane(void);
void
print(
out_stream & os
) const;
};
} // namespace ground
} // namespace enve
#endif