16 #ifndef _A_TETRAHEDRON_H_
17 #define _A_TETRAHEDRON_H_
36 virtual const std::string
classname() {
return "a_tetrahedron";}
37 static const std::string
help();
44 inline a_point p(
const int ref)
const {
return p_[ref%4];}
72 virtual void read(std::istream &i);
73 virtual void write(std::ostream &o)
const;
static const std::string help()
a_point c() const
get centre of gravity
virtual void read(std::istream &i)
bool contains(const a_point &p) const
check whether point lies inside triangle
a_point p(const int ref) const
a_point operator[](const int i) const
a_segment s(const int ref) const
get segment i (0-3) of tetrahedron
virtual void write(std::ostream &o) const
a_tetrahedron & rotate(const a_point &x_axis, const a_point &y_axis, const a_point &z_axis)
bool operator==(const a_tetrahedron &p)
void set(const a_point &p1, const a_point &p2, const a_point &p3, const a_point &p4)
a_tetrahedron(const a_tetrahedron &p)
a_tetrahedron(const a_point &p1, const a_point &p2, const a_point &p3, const a_point &p4)
void p2(const a_point &v)
void p1(const a_point &v)
virtual const std::string classname()
a_triangle f(const int ref) const
double quality() const
quality: ratio between smaller and bigger segment
double S() const
get surface
void p3(const a_point &v)
a_tetrahedron & operator=(const a_tetrahedron &p)
double V() const
get volume
a_tetrahedron & translate(double x, double y, double z)
void p4(const a_point &v)