8 #ifndef IMPALGEBRA_TRIANGLE_3D_H
9 #define IMPALGEBRA_TRIANGLE_3D_H
16 #include <cereal/access.hpp>
19 IMPALGEBRA_BEGIN_NAMESPACE
35 Floats get_edge_lengths()
const;
40 friend class cereal::access;
42 template<
class Archive>
void serialize(Archive &ar) {
43 ar(p_[0], p_[1], p_[2]);
61 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.
bool get_are_colinear(const Vector3D &p1, const Vector3D &p2, const Vector3D &p3)
Return true if the three points are co-linear.
Base class for geometric types.
Various useful constants.
Vector< VectorD< 3 > > Vector3Ds
#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.