xmsmesh  1.0
xms::MeIntersectPolys Class Reference

Intersect polygons that are a result of the paving process. More...

#include <MeIntersectPolys.h>

Classes

class  impl
 Does polygon intersection for MePolyCleaner. More...
 

Public Member Functions

 MeIntersectPolys ()
 Constructor.
 
 ~MeIntersectPolys ()
 Destructor.
 
void SetupInIn (const std::vector< MePolyOffsetterOutput > &a_offsets, double a_xyTol)
 calls implementation More...
 
void SetupInOut (const MePolyOffsetterOutput &a_offsets, double a_xyTol)
 calls implementation More...
 
void CalcEnvelopes ()
 Calculates the envelope of all of the polygons.
 
void InInTrivialPolyCases ()
 calls implementation
 
void InInDoIntersection ()
 calls implementation
 
void InOutDoIntersection ()
 calls implementation
 
void FillOutput (MePolyOffsetterOutput &a_out)
 calls implementation More...
 
void ClassifyPolys (const MePolyOffsetterOutput &a_input, std::vector< std::vector< size_t >> &a_output)
 calls implementation More...
 
void DeleteBad_NEWOUT_POLY (MePolyOffsetterOutput &a_out, const VecPt3d &a_origOutsidePoly)
 calls implementation More...
 

Private Member Functions

 XM_DISALLOW_COPY_AND_ASSIGN (MeIntersectPolys)
 prevent compiler generated copy/assign
 

Private Attributes

friend MeIntersectPolysUnitTests
 tests MeIntersectPolys
 
implm_p
 implementation class
 

Detailed Description

Intersect polygons that are a result of the paving process.

See also
MeIntersectPolysImpl

Definition at line 26 of file MeIntersectPolys.h.

Member Function Documentation

◆ ClassifyPolys()

void xms::MeIntersectPolys::ClassifyPolys ( const MePolyOffsetterOutput a_input,
std::vector< std::vector< size_t >> &  a_output 
)

calls implementation

Parameters
a_inputInput polygons
a_output2D Vector where the first dimension is the number of "outside" polygons.

Definition at line 252 of file MeIntersectPolys.cpp.

References xms::MeIntersectPolys::impl::ClassifyPolys(), and m_p.

◆ DeleteBad_NEWOUT_POLY()

void xms::MeIntersectPolys::DeleteBad_NEWOUT_POLY ( MePolyOffsetterOutput a_out,
const VecPt3d a_origOutsidePoly 
)

calls implementation

Parameters
a_outHolds the output polygons from the operation performed (either InInDoIntersection or InOutDoIntersection
a_origOutsidePolyThe outside polygon for this step of the pave operation

Definition at line 263 of file MeIntersectPolys.cpp.

References xms::MeIntersectPolys::impl::DeleteBad_NEWOUT_POLY(), and m_p.

Referenced by xms::MePolyCleanerImpl::IntersectCleanInPolys().

◆ FillOutput()

void xms::MeIntersectPolys::FillOutput ( MePolyOffsetterOutput a_out)

calls implementation

Parameters
a_outHolds the output polygons from the operation performed (either InInDoIntersection or InOutDoIntersection

Definition at line 242 of file MeIntersectPolys.cpp.

References xms::MeIntersectPolys::impl::FillOutput(), and m_p.

Referenced by xms::MePolyCleanerImpl::IntersectCleanInOutPolys(), and xms::MePolyCleanerImpl::IntersectCleanInPolys().

◆ SetupInIn()

void xms::MeIntersectPolys::SetupInIn ( const std::vector< MePolyOffsetterOutput > &  a_offsets,
double  a_xyTol 
)

calls implementation

Parameters
a_offsetsVector of outputs from MePolyOffsetter::Offset. These would be the offsets from paving from OUTSIDE_POLY and INSIDE_POLY polygons.
a_xyToltolerance for floating point comparisons

Definition at line 191 of file MeIntersectPolys.cpp.

References m_p, and xms::MeIntersectPolys::impl::SetupInIn().

Referenced by xms::MePolyCleanerImpl::IntersectCleanInPolys().

◆ SetupInOut()

void xms::MeIntersectPolys::SetupInOut ( const MePolyOffsetterOutput a_offsets,
double  a_xyTol 
)

calls implementation

Parameters
a_offsetsThe output from MePolyCleaner::IntersectCleanInPolys
a_xyToltolerance for floating point comparisons

Definition at line 201 of file MeIntersectPolys.cpp.

References m_p, and xms::MeIntersectPolys::impl::SetupInOut().

Referenced by xms::MePolyCleanerImpl::IntersectCleanInOutPolys().


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