GemaCoreLib
The GeMA Core library
Classes | Public Types | Public Member Functions | Static Public Member Functions | Public Attributes | List of all members
GmSegmentCellIntersection Class Reference

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>

Collaboration diagram for GmSegmentCellIntersection:
Collaboration graph
[legend]

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.
 

Detailed Description

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.


The documentation for this class was generated from the following files: