|
virtual int | GetFlags () const override |
| Returns a set of bit flags specifying which functions are implemented for this region (see RegFlags).
|
|
virtual vec_type | Volume () const override |
| Returns volume of the region. '-1' means that function is not implemented.
|
|
void | shift (const vector_t &shiftv) |
| Shift by a specified vector.
|
|
void | init (const vector_t &sp1, const vector_t &sp2) |
| sp1, sp2 are opposite vertices of the box
|
|
point_it | points_begin () const |
| returns begin iterator point_it at vertex of the box with minimal x, y and z coordinates
|
|
point_it | points_end () const |
| returns end iterator point_it at vertex of the box
|
|
Box_N & | operator&= (const Box_N &other) |
| this box becomes an intersection of itself with other box
|
|
bool | valid () const |
|
bool | TestBox (const Box_N &other) const |
|
bool | TestPoint (const vector_t &p) const override |
| Returns true if the point is in the region.
|
|
virtual vector_t | GetBoundingBox (vector_t *v1, vector_t *v2) const override |
| Returns opposite corners of the box which contains the region inside itself.
|
|
virtual Region< N > * | Clone (const vector_t &shift=vector_t()) const override |
|
virtual vec_type | SurfProject (const vector_t &p, vector_t *surfp=nullptr, vector_t *surfn=nullptr) const override |
| finds the point on the region surface closest to the given one p returns distance to this point (positive is P outside and negative is P inside region), surfp – projection, surfn – norm vector at surfp
|
|
virtual int | TestLine (const vector_t &p, const vector_t &dir, vec_type *frac, vector_t *surfp=nullptr, vector_t *surfn=nullptr, vec_type epsilon=0) const |
| Records the fractions frac1 and frac2 of the line (p,dir) corresponding to the intersections surfpi=p+fraci*dir, surfni - coords of intersection and corresponding outer normal.
|
|
template<class contour_t > |
vec_type | TestContour (const contour_t &cnt, VecContour< N > *subcont=nullptr, vector_t *subcenter=nullptr) const |
| Returns the area fraction of the contour part that is inside the region, subcontour which is inside the region (if pointer is not nullptr) and the center of the subcontour (if pointer is not nullptr)
|
|
virtual vec_type | TestPtrContour (const PtrContour< N > &cnt, VecContour< N > *subcont=nullptr, vector_t *subcenter=nullptr) const |
| virtual version of TestContour for particular PtrContour
|
|
virtual vector_t | GetCenter () const |
| Returns the center of the region.
|
|
virtual RegDumper< N > * | CreateDumper () const |
| return pointer on object RegDumper, which has function Dump drawing the region
|
|
virtual vec_type | GetInsideEdgePart (const vector_t &p1, const vector_t &p2) const |
| Returns a fraction of the edge [0-1] that belongs to the region.
|
|
virtual vec_type | TestEdge (const vector_t &p1, const vector_t &p2, vector_t *surfp=nullptr, vector_t *surfn=nullptr) const |
| Returns a fraction of the edge from the first point till the intersection with the surface of the region.
|
|
virtual vec_type | TestRay (const vector_t &p1, const vector_t &dir, vector_t *surfp=nullptr, vector_t *surfn=nullptr, vec_type epsilon=0) const |
| Returns the fraction of the ray corresponding to the nearest intersection in positive direction frac<0 means no intersection in positive direction intersections with frac<=epsilon are ignored.
|
|
virtual size_t | GetElementarySubRegions (std::vector< int > *flags=nullptr, std::vector< Region * > *regs=nullptr) const |
| For composite regions returns the number of elementary subregions, otherwise returns 0.
|
|
template<int N>
class Box_N< N >
Regular n-dimensional parallelepiped with edges parallel to coordinate axis.