A C++ concept that requires a type to represent a plane in 3D space.
More...
#include <vclib/concepts/space/plane.h>
template<typename T>
T&& obj,
typename RemoveRef<T>::PointType p,
typename RemoveRef<T>::ScalarType s) {
typename RemoveRef<T>::ScalarType;
typename RemoveRef<T>::PointType;
RemoveRef<T>();
RemoveRef<T>(p, s);
RemoveRef<T>(p, p);
RemoveRef<T>(p, p, p);
{
obj.offset() } -> std::same_as<
decltype(s)>;
{ obj.projectPoint(p) } -> Point3Concept;
{ obj.mirrorPoint(p) } -> Point3Concept;
{ obj == obj } -> std::same_as<bool>;
{ obj != obj } -> std::same_as<bool>;
}
A class representing a line segment in n-dimensional space. The class is parameterized by a PointConc...
Definition segment.h:43
A C++ concept that requires a type to represent a plane in 3D space.
Definition plane.h:57
Concept for points in three-dimensional space.
Definition point.h:130
A C++ concept that requires a type to represent a plane in 3D space.
- Template Parameters
-
T | The type to check for compliance with the PlaneConcept. |
This concept requires that the input type T has the following public member functions:
- typename T::ScalarType: A type alias representing the scalar type used in the plane equations.
- typename T::PointType: A type alias representing the Point type used in the plane equations.
- const typename T::PointType& T::direction(): A const reference to the direction vector of the plane.
- typename T::ScalarType T::offset(): The offset of the plane from the origin.
- typename T::PointType T::projectPoint(const typename T::PointType& p): Projects a point onto the plane.
- typename T::PointType T::mirrorPoint(const typename T::PointType& p): Mirrors a point across the plane.
- bool T::operator==(const T& o): Equality comparison operator for planes.
- bool T::operator!=(const T& o): Inequality comparison operator for planes.
All of the member functions must satisfy the requirements listed in the Doxygen comments above.