Parallel Plane Sweep  0.1
Shared memory multithreaded version of the plane sweep algorithm
Public Member Functions | Public Attributes | Friends | List of all members
halfsegment Class Reference

holds a single halfsegment, along with labeling information and information indicating if the opposing region's interior lies above and/or below the halfsegment. More...

#include <parPlaneSweep.h>

Public Member Functions

 halfsegment ()
 
 halfsegment (const halfsegment &rhs)
 
bool isLeft () const
 
halfsegment getBrother () const
 
bool operator== (const halfsegment &rhs) const
 
bool operator< (const halfsegment &rhs) const
 
bool colinear (const halfsegment &rhs) const
 
double getYvalAtX (const double x) const
 
 halfsegment ()
 
 halfsegment (const halfsegment &rhs)
 
bool isLeft () const
 
halfsegment getBrother () const
 
bool operator== (const halfsegment &rhs) const
 
bool operator< (const halfsegment &rhs) const
 
bool colinear (const halfsegment &rhs) const
 
double getYvalAtX (const double x) const
 

Public Attributes

double dx
 dominating and submissive points More...
 
double dy
 
double sx
 
double sy
 
int la
 label above, label below More...
 
int lb
 
int stripID
 strip ID More...
 
int regionID
 The region the seg belongs to. More...
 
int ola
 overlap labels. More...
 
int olb
 

Friends

ostream & operator<< (ostream &out, const halfsegment &rhs)
 
ostream & operator<< (ostream &out, const halfsegment &rhs)
 

Detailed Description

holds a single halfsegment, along with labeling information and information indicating if the opposing region's interior lies above and/or below the halfsegment.

holds a halfsegment.

Contains the x and y values for the dominating and submissive points.

Contains integer labels: la = label above and lb = label below

Contains the ID of the strip that this halfsegment is assigned to.

Contains the region to which the halfsegment belongs (there are two input regions)

Contains the overlap lables. Overlap labels indicate if the interior of the opposing region lies above and/or below this halfsegment.

Definition at line 76 of file parPlaneSweep.h.

Constructor & Destructor Documentation

halfsegment::halfsegment ( )
inline

Default constructor

Definition at line 92 of file parPlaneSweep.h.

halfsegment::halfsegment ( const halfsegment rhs)
inline

Copy constructor

Definition at line 99 of file parPlaneSweep.h.

halfsegment::halfsegment ( )
inline

Default constructor

Definition at line 71 of file halfsegment.h.

halfsegment::halfsegment ( const halfsegment rhs)
inline

Copy constructor

Definition at line 78 of file halfsegment.h.

Member Function Documentation

bool halfsegment::colinear ( const halfsegment rhs) const
inline

Test if two halfsegments are colinear.

Tests for exact colnearity. SENSITIVE TO ROUNDING ERRORS.

Definition at line 141 of file halfsegment.h.

bool halfsegment::colinear ( const halfsegment rhs) const
inline

Test if two halfsegments are colinear.

Tests for exact colnearity. SENSITIVE TO ROUNDING ERRORS.

Definition at line 160 of file parPlaneSweep.h.

halfsegment halfsegment::getBrother ( ) const
inline

Compute the brother of this halfsegment. (switch the dominating and submissive points).

Definition at line 96 of file halfsegment.h.

halfsegment halfsegment::getBrother ( ) const
inline

Compute the brother of this halfsegment. (switch the dominating and submissive points).

Definition at line 115 of file parPlaneSweep.h.

double halfsegment::getYvalAtX ( const double  x) const
inline

Compute the y value on a linesegment (halfsegment in this case) at a given x value.

Note that if the x value is beyond the end of the line segment, this still returns a y value. In otherwords, it is based only upon the equation of a line. The caller needs to ensure x is either within the line segment, or check after the function returns

Note that this is sensitive to divide by 0! and to floating point rounding errors

Definition at line 155 of file halfsegment.h.

double halfsegment::getYvalAtX ( const double  x) const
inline

Compute the y value on a linesegment (halfsegment in this case) at a given x value.

Note that if the x value is beyond the end of the line segment, this still returns a y value. In otherwords, it is based only upon the equation of a line. The caller needs to ensure x is either within the line segment, or check after the function returns

Note that this is sensitive to divide by 0! and to floating point rounding errors

Definition at line 174 of file parPlaneSweep.h.

bool halfsegment::isLeft ( ) const
inline

Returns true if this is a left halfsegment, right otherwise.

Definition at line 89 of file halfsegment.h.

bool halfsegment::isLeft ( ) const
inline

Returns true if this is a left halfsegment, right otherwise.

Definition at line 108 of file parPlaneSweep.h.

bool halfsegment::operator< ( const halfsegment rhs) const
inline

Overloaded less than operator.

Computes based ONLY on the end points of the halfsegment. That is, not nased on labels

Uses halfsegment ordering to determine less than

Definition at line 124 of file halfsegment.h.

bool halfsegment::operator< ( const halfsegment rhs) const
inline

Overloaded less than operator.

Computes based ONLY on the end points of the halfsegment. That is, not nased on labels

Uses halfsegment ordering to determine less than

Definition at line 143 of file parPlaneSweep.h.

bool halfsegment::operator== ( const halfsegment rhs) const
inline

Overloaded equivalence test.

Computes equivalence based ONLY on the end points of the halfsegments.

Segments are equal if their dominating and submissive points match.

Definition at line 112 of file halfsegment.h.

bool halfsegment::operator== ( const halfsegment rhs) const
inline

Overloaded equivalence test.

Computes equivalence based ONLY on the end points of the halfsegments.

Segments are equal if their dominating and submissive points match.

Definition at line 131 of file parPlaneSweep.h.

Friends And Related Function Documentation

ostream& operator<< ( ostream &  out,
const halfsegment rhs 
)
friend

Overloaded ostream operator.

Definition at line 165 of file halfsegment.h.

ostream& operator<< ( ostream &  out,
const halfsegment rhs 
)
friend

Overloaded ostream operator.

Definition at line 184 of file parPlaneSweep.h.

Member Data Documentation

double halfsegment::dx

dominating and submissive points

Definition at line 79 of file parPlaneSweep.h.

double halfsegment::dy

Definition at line 79 of file parPlaneSweep.h.

int halfsegment::la

label above, label below

Definition at line 81 of file parPlaneSweep.h.

int halfsegment::lb

Definition at line 81 of file parPlaneSweep.h.

int halfsegment::ola

overlap labels.

overlap labels

Definition at line 87 of file parPlaneSweep.h.

int halfsegment::olb

Definition at line 87 of file parPlaneSweep.h.

int halfsegment::regionID

The region the seg belongs to.

Definition at line 85 of file parPlaneSweep.h.

int halfsegment::stripID

strip ID

Definition at line 83 of file parPlaneSweep.h.

double halfsegment::sx

Definition at line 79 of file parPlaneSweep.h.

double halfsegment::sy

Definition at line 79 of file parPlaneSweep.h.


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