Parallel Plane Sweep
0.1
Shared memory multithreaded version of the plane sweep algorithm

Go to the source code of this file.
Functions  
void  parallelOverlay (vector< halfsegment > &r1, vector< halfsegment > &r2, vector< halfsegment > &result, int numSplits=1, int numWorkerThreads=1) 
void  overlayPlaneSweep (const halfsegment r1[], int r1Size, const halfsegment r2[], int r2Size, vector< halfsegment > &result) 
Header file containing the necessary function prototypes for the parallel plane sweep and the serial plane sweep algorithms.
Also contains some helper functions.
Definition in file parPlaneSweep.h.
void overlayPlaneSweep  (  const halfsegment  r1[], 
int  r1Size,  
const halfsegment  r2[],  
int  r2Size,  
vector< halfsegment > &  result  
) 
Compute the overlay of halfsegments given in two input vectors. Uses the plane sweep algorithm. This is the serial plane sweep algorithm, it is called by parallelOverlay(). parallelOverlay() sets up the strips, then calls this over each strip. The implementation of this function can be switched with any plane sweep style algorithm.
r1  a vector of halfsegments 
r2  a vector of halfsegments 
r1Size  the length of the r1 vector 
r2Size  the length of the r2 vector 
result  [in/out] the result of overlaying r1 and r2 
See the prototype in parPlaneSweep.h
Definition at line 347 of file parPlaneSweep.cpp.
void parallelOverlay  (  vector< halfsegment > &  r1, 
vector< halfsegment > &  r2,  
vector< halfsegment > &  result,  
int  numStrips,  
int  numWorkerThreads  
) 
Compute the overlay of two regions in parallel. This is a wrapper function that divides a pair of input regions into strips, assigns halfsegments to the appropriate strips, then calls a plane sweep algorithm on each strip.
r1  [in/out] input region 1 
r2  [in/out] input region 2 
numSplits  how many strips should be created over the input. If no value is given, the number of strips defaults to the number of processor cores. 
numWorkerThreads  The number of worker threads for openMP to use. If no value is given, openMP's default value is used. 
See the prototype in parPlaneSweep.h
Definition at line 247 of file parPlaneSweep.cpp.