16 #ifndef _A_BLOCK_2D5_H_
17 #define _A_BLOCK_2D5_H_
27 a_block_2d5(a_point* p1, a_point* p2, a_point* p3, a_point* p4, a_point* p5,
double thickness=1.);
29 static const std::string
help();
35 virtual std::string
name()
const {
return "a_block_2d5";}
43 a_point
v3d(
const int i)
const;
45 inline int nvt()
const {
return 10;}
47 inline int nit()
const {
return 7;}
51 virtual a_point
cl()
const;
57 virtual void read(std::istream &
i);
58 virtual void write(std::ostream &o)
const;
60 virtual void writetri(std::ostream &o)
const;
61 virtual void writeb(std::ostream &o)
const;
62 virtual void writeg(std::ostream &o)
const;
64 void writefaces(std::ostream &o,
const int base)
const;
a_block_2d5 * cb_2d5(a_block *b)
void writefaces(std::ostream &o, const int base) const
write a triangle file description of the block
double thickness() const
get block thickness
virtual a_point cl() const
centre of gravity of the face (local coordinate system)
virtual void writeb(std::ostream &o) const
write a blender description of the block
virtual std::string name() const
get type of the pointer
virtual void write(std::ostream &o) const
void thickness(const double thickness)
set block thickness
int nvt() const
get number of vertices (here 10, from 5 which are defined)
a_point v3d(const int i) const
get vertex (world coordinate, 3D: 10 points: order v0-n, v0+n, v1+n, v1-n
a_point normall() const
normal to the definition plan of the block (local coordinates)
a_point normal() const
normal to the definition plan of the block (world coordinates)
virtual void copy(const a_block_2d5 &)
copy the block. do not create new edges
double * thickness_p() const
get block thickness pointer
virtual void deepcopy(const a_block_2d5 &)
copy the block. create new edges
virtual void read(std::istream &i)
input/output
static const std::string help()
get information about the class
virtual void writetri(std::ostream &o) const
write a triangle face representation of the block
virtual void writeg(std::ostream &o) const
write a brlcad description of the block
int nit() const
get number of faces (here 7, from 5 which are defined)
double V() const
volume of the block
void trianglecloud(a_trianglecloud &) const
a_face * i(const int i)
get pointer to face