8 #ifndef IMPALGEBRA_TRIANGLE_3D_H
9 #define IMPALGEBRA_TRIANGLE_3D_H
17 #include <cereal/access.hpp>
20 IMPALGEBRA_BEGIN_NAMESPACE
36 Floats get_edge_lengths()
const;
41 friend class cereal::access;
43 template<
class Archive>
void serialize(Archive &ar) {
44 ar(p_[0], p_[1], p_[2]);
62 IMPALGEBRA_END_NAMESPACE
Base class for geometric types.
#define IMP_SHOWABLE_INLINE(Name, how_to_show)
Declare the methods needed by an object that can be printed.
Triangle3D get_largest_triangle(const Vector3Ds &points)
Return the largest triangle defined by 3 points from the input.
Transformation3D get_transformation_from_first_triangle_to_second(Triangle3D first_tri, Triangle3D second_tri)
Return a transformation between two triangles.
Represent a triangle in 3D.
#define IMP_VALUES(Name, PluralName)
Define the type for storing sets of values.
Base class for geometric types.
bool get_are_colinear(const Vector3D &p1, const Vector3D &p2, const Vector3D &p3)
Return true if the three points are co-linear.
Various useful constants.
#define IMP_USAGE_CHECK(expr, message)
A runtime test for incorrect usage of a class or method.
const Vector3D & get_point(unsigned int i) const
Get the start=0/end=1 point of the segment.