Garfield++ 3.0
A toolkit for the detailed simulation of particle detectors based on ionisation measurement in gases and semiconductors
|
Polyline. More...
#include <polyline.h>
Public Member Functions | |
int | Gqpt () const |
point | Gpt (int n) const |
int | Gqsl () const |
straight | Gsl (int n) const |
int | check_point_in (const point &fpt, vfloat prec) const |
int | cross (const straight &fsl, point *pc, int &qpc, polyline *pl, int &qpl, vfloat prec) const |
vfloat | dist_two_inter (polyline &pl, vfloat prec) const |
Distance between two intervals. | |
vfloat | distance (const point &fpt) const |
vfloat | distance (const point &fpt, point &cpt) const |
Distance between two points. | |
polyline () | |
polyline (polyline &pl) | |
polyline (const polyline &pl) | |
polyline (const point *fpt, int fqpt) | |
polyline (const point &fpt1, const point &fpt2) | |
polyline & | operator= (const polyline &fpl) |
~polyline () | |
Public Member Functions inherited from Heed::absref | |
virtual | ~absref () |
Destructor. | |
virtual void | down (const abssyscoor *fasc) |
Convert numbering representation of object to basical system of fasc. | |
virtual void | up (const abssyscoor *fasc) |
Convert numbering representation of objects to new system. | |
virtual void | turn (const vec &dir, vfloat angle) |
Turn around axis doing via center of coordinate system along dir. | |
virtual void | shift (const vec &dir) |
Protected Member Functions | |
virtual absref_transmit | get_components () override |
void | polyline_init (const point *fpt, int fqpt) |
void | polyline_del () |
Protected Attributes | |
int | qpt |
point * | pt |
int | qsl |
straight * | sl |
absref ** | aref |
Friends | |
int | plane::cross (const polyline &pll, point *crpt, int &qcrpt, polyline *crpll, int &qcrpll, vfloat prec) const |
std::ostream & | operator<< (std::ostream &file, const polyline &p) |
Polyline.
Definition at line 23 of file polyline.h.
|
inline |
Definition at line 92 of file polyline.h.
Referenced by cross().
Heed::polyline::polyline | ( | polyline & | pl | ) |
Definition at line 22 of file polyline.cpp.
Heed::polyline::polyline | ( | const polyline & | pl | ) |
Definition at line 26 of file polyline.cpp.
Heed::polyline::polyline | ( | const point * | fpt, |
int | fqpt | ||
) |
Definition at line 30 of file polyline.cpp.
Definition at line 34 of file polyline.cpp.
|
inline |
Definition at line 105 of file polyline.h.
Return whether a point is inside. 0 point is not in 1 point coincides with an edge 2 point is inside an interval
Definition at line 76 of file polyline.cpp.
Referenced by check_point_in(), Heed::polygon::check_point_in(), and dist_two_inter().
int Heed::polyline::cross | ( | const straight & | fsl, |
point * | pc, | ||
int & | qpc, | ||
polyline * | pl, | ||
int & | qpl, | ||
vfloat | prec | ||
) | const |
If straight line goes exactly by segment of polyline, the fuction gives two end points of adjacent segments and the segment itself. If one of the points is common, it is given several times. For example, if line crosses break point the point is given two times.
Definition at line 94 of file polyline.cpp.
Distance between two intervals.
Definition at line 126 of file polyline.cpp.
Definition at line 147 of file polyline.cpp.
Referenced by dist_two_inter().
Distance between two points.
Definition at line 169 of file polyline.cpp.
|
overrideprotectedvirtual |
Reimplemented from Heed::absref.
Reimplemented in Heed::polyline_pl, Heed::rectangle, and Heed::spquadr.
Definition at line 18 of file polyline.cpp.
|
inline |
Definition at line 32 of file polyline.h.
Referenced by Heed::cross4pllines(), dist_two_inter(), and Heed::polygon::polygon().
|
inline |
Definition at line 31 of file polyline.h.
Referenced by dist_two_inter(), and Heed::polygon::polygon().
|
inline |
Definition at line 40 of file polyline.h.
Referenced by Heed::splane::cross(), and Heed::polyline_pl::polyline_pl().
|
inline |
Definition at line 41 of file polyline.h.
Referenced by dist_two_inter(), and Heed::polyline_pl::polyline_pl().
Definition at line 43 of file polyline.cpp.
Referenced by Heed::polyline_pl::polyline_pl().
|
inlineprotected |
Definition at line 76 of file polyline.h.
Referenced by Heed::polygon::operator=(), operator=(), Heed::polyline_pl::operator=(), and ~polyline().
|
protected |
Definition at line 50 of file polyline.cpp.
Referenced by Heed::polygon::operator=(), operator=(), Heed::polyline_pl::operator=(), and polyline().
|
friend |
Definition at line 221 of file polyline.cpp.
|
friend |
Referenced by Heed::spquadr::apos(), Heed::spquadr::perpos(), and Heed::polygon::range().
|
protected |
Definition at line 51 of file polyline.h.
Referenced by get_components(), Heed::polyline_pl::get_components(), Heed::rectangle::get_components(), Heed::spquadr::get_components(), polyline_del(), and polyline_init().
|
protected |
Definition at line 26 of file polyline.h.
Referenced by check_point_in(), Heed::polygon::check_point_in(), Heed::plane::cross(), cross(), distance(), Gpt(), Heed::polygon::operator=(), operator=(), Heed::polyline_pl::operator=(), polyline(), polyline_del(), and polyline_init().
|
protected |
Definition at line 25 of file polyline.h.
Referenced by check_point_in(), Heed::polygon::check_point_in(), get_components(), Heed::polyline_pl::get_components(), Heed::rectangle::get_components(), Heed::spquadr::get_components(), Gpt(), Gqpt(), Heed::polygon::operator=(), operator=(), Heed::polyline_pl::operator=(), Heed::polygon::polygon(), polyline(), and polyline_init().
|
protected |
Definition at line 27 of file polyline.h.
Referenced by check_point_in(), Heed::plane::cross(), cross(), distance(), get_components(), Heed::polyline_pl::get_components(), Heed::rectangle::get_components(), Heed::spquadr::get_components(), Gqsl(), Gsl(), and polyline_init().
|
protected |
Definition at line 28 of file polyline.h.
Referenced by check_point_in(), Heed::plane::cross(), cross(), distance(), Gsl(), Heed::spquadr::perpos(), polyline_del(), and polyline_init().