![]() |
GemaCoreLib
The GeMA Core library
|
Representation for the intersection between a polyline segment and a mesh cell. Can be used both in 2D and in 3D. More...
#include <gmSegmentCellIntersection.h>
Classes | |
struct | IntersectionPoint |
Public Types | |
typedef QPair< int, int > | SegmentId |
Discontinuity index, segment index in the original discontinuity info. | |
Public Member Functions | |
void | print (const GmLogCategory &logger, GmLogLevel level) const |
Prints the contents of the intersection to the given logger. | |
Static Public Member Functions | |
static const char * | kindToStr (GmSegmentCellIntersectionPointKind kind) |
Returns a string representation for the given kind. | |
Public Attributes | |
int | _cellId |
The cell id. | |
SegmentId | _segmentId |
The segment id (discontinuity id + segment index in the original discontinuity info) | |
IntersectionPoint | _in |
The data for the first intersection point in the polyline direction. | |
IntersectionPoint | _out |
The data for the second intersection point in the polyline direction. | |
int | _edge |
In 2D or 3D, if the segment lies over an edge, stores the edge number. -1 otherwise. | |
int | _face |
In 3D, if the segment lies over a face, stores the face number. -1 otherwise. | |
bool | _continuous |
A flag set to true if this intersection segment start point is the same as the last point for the previous intersection. | |
bool | _single |
A flag set to true if in & out where collapsed into a single point. | |
Representation for the intersection between a polyline segment and a mesh cell. Can be used both in 2D and in 3D.
This is a rather large structure, mainly because it stores GmVector objects (each one statically reserving 16 array entries) to cope with 2/3 cartesian coordinates and from 2 to 4 natural coordinates.
In this way, it is a convenient class for use when searching for the intersections, but NOT for STORING the results. For that we use the GmCompact2DSegmentCellIntersection or GmCompact3DSegmentCellIntersection classes.