xmsmesh  1.0
xms::MePolyCleanerImpl Class Reference

Intersects and cleans polygons generated from MePolyOffsetter. More...

Inheritance diagram for xms::MePolyCleanerImpl:
xms::MePolyCleaner

Public Member Functions

virtual void CleanPolyOffset (const VecPt3d &a_input, int a_pType, double a_tol, MePolyOffsetterOutput &a_out) override
 Takes an input polyline (forming a closed loop) and intersects it with itself and fills the output with multiple closed loop polylines. More...
 
virtual void SetOriginalOutsidePolygon (const VecPt3d &a_origOutsidePoly) override
 Sets the original outside polygon for this pave operation. More...
 
virtual void IntersectCleanInPolys (const std::vector< MePolyOffsetterOutput > &a_offsets, MePolyOffsetterOutput &a_out, double a_xyTol) override
 Takes a vector of PolyOffsetOutput and intersects and cleans all INSIDE_POLY polygons . More...
 
virtual void IntersectCleanInOutPolys (const MePolyOffsetterOutput &a_offsets, MePolyOffsetterOutput &a_out, double a_xyTol) override
 Takes a PolyOffsetOutput and intersects and cleans all INSIDE_POLY polygons with OUTSIDE_POLY polygons. NEWOUT_POLY polygons are not changed. More...
 
void FillOutputForCleanPolyOffset (MePolyOffsetterOutput &a_out, int a_pType, std::list< std::vector< size_t >> &a_loops, std::vector< int > &a_loopType, const VecPt3d &a_pts)
 Fills the output variable for CleanPolyOffset method. More...
 

Public Attributes

VecPt3d m_origOutsidePoly
 the original outside polygon for this step of the paving process
 

Additional Inherited Members

- Static Public Member Functions inherited from xms::MePolyCleaner
static BSHP< MePolyCleanerNew ()
 Creates a new instance of this class. More...
 

Detailed Description

Intersects and cleans polygons generated from MePolyOffsetter.

Definition at line 39 of file MePolyCleaner.cpp.

Member Function Documentation

◆ CleanPolyOffset()

void xms::MePolyCleanerImpl::CleanPolyOffset ( const VecPt3d a_input,
int  a_pType,
double  a_tol,
MePolyOffsetterOutput a_out 
)
overridevirtual

Takes an input polyline (forming a closed loop) and intersects it with itself and fills the output with multiple closed loop polylines.

Parameters
a_inputThe input polyline forming a closed loop.
a_pTypeThe type of polygon: OUTSIDE_POLY or INSIDE_POLY
a_tolTolerance used for floating point geometry comparisons.
a_outOutput class to hold new polygons

Definition at line 115 of file MePolyCleaner.cpp.

References xms::MePolyPts::CalcLoopsForCleanPolyOffset(), xms::MePolyPts::ClassifyLoopsFromInPolyAndRemoveInvalid(), FillOutputForCleanPolyOffset(), xms::MePolyPts::IntersectSegs(), xms::MePolyPts::Pts(), xms::MePolyPts::RemoveBackwardLoopsForCleanPolyOffset(), xms::MePolyPts::SegmentsForCleanPolyOffset(), xms::MePolyPts::SequenceWithIntersects(), and xms::MePolyPts::XyTol().

Referenced by MePolyCleanerUnitTests::testCase0(), MePolyCleanerUnitTests::testCase1(), MePolyCleanerUnitTests::testCase2(), MePolyCleanerUnitTests::testCase2a(), MePolyCleanerUnitTests::testCase3(), MePolyCleanerUnitTests::testCase3a(), MePolyCleanerUnitTests::testCase4(), MePolyCleanerUnitTests::testCase5(), MePolyCleanerUnitTests::testCase5a(), MePolyCleanerUnitTests::testCase6(), MePolyCleanerUnitTests::testCase6a(), MePolyCleanerUnitTests::testCase6b(), MePolyCleanerUnitTests::testCase6c(), MePolyCleanerUnitTests::testCase7(), MePolyCleanerUnitTests::testCase7a(), MePolyCleanerUnitTests::testCase7b(), MePolyCleanerUnitTests::testCase7c(), MePolyCleanerUnitTests::testCase8(), MePolyCleanerUnitTests::testCase8a(), MePolyCleanerUnitTests::testCase8b(), MePolyCleanerUnitTests::testCase8c(), and MePolyCleanerUnitTests::testCase9().

◆ FillOutputForCleanPolyOffset()

void xms::MePolyCleanerImpl::FillOutputForCleanPolyOffset ( MePolyOffsetterOutput a_out,
int  a_pType,
std::list< std::vector< size_t >> &  a_loops,
std::vector< int > &  a_loopType,
const VecPt3d a_pts 
)

Fills the output variable for CleanPolyOffset method.

Parameters
a_out
a_pType
a_loops
a_loopType
a_pts

Definition at line 221 of file MePolyCleaner.cpp.

References xms::MePolyOffsetterOutput::m_loops, xms::MePolyOffsetterOutput::m_loopTypes, and xms::MePolyOffsetterOutput::m_pts.

Referenced by CleanPolyOffset().

◆ IntersectCleanInOutPolys()

void xms::MePolyCleanerImpl::IntersectCleanInOutPolys ( const MePolyOffsetterOutput a_offsets,
MePolyOffsetterOutput a_out,
double  a_xyTol 
)
overridevirtual

Takes a PolyOffsetOutput and intersects and cleans all INSIDE_POLY polygons with OUTSIDE_POLY polygons. NEWOUT_POLY polygons are not changed.

Parameters
a_offsetsResults from the IntersectCleanInPolys method
a_outResults from this operation.
a_xyTolTolerance used for floating point geometry comparisons.

Definition at line 203 of file MePolyCleaner.cpp.

References xms::MeIntersectPolys::CalcEnvelopes(), xms::MeIntersectPolys::FillOutput(), xms::MeIntersectPolys::InOutDoIntersection(), and xms::MeIntersectPolys::SetupInOut().

Referenced by MePolyCleanerUnitTests::testCleanInOut0(), MePolyCleanerUnitTests::testCleanInOut0a(), MePolyCleanerUnitTests::testCleanInOut0b(), MePolyCleanerUnitTests::testCleanInOut1(), MePolyCleanerUnitTests::testCleanInOut1a(), and MePolyCleanerUnitTests::testCleanInOut1b().

◆ IntersectCleanInPolys()

void xms::MePolyCleanerImpl::IntersectCleanInPolys ( const std::vector< MePolyOffsetterOutput > &  a_offsets,
MePolyOffsetterOutput a_out,
double  a_xyTol 
)
overridevirtual

Takes a vector of PolyOffsetOutput and intersects and cleans all INSIDE_POLY polygons .

Parameters
a_offsetsResults from the PolyOffsetter class
a_outResults from this operation. These will be the INSIDE_POLY polygons considered in future operations done by the meshing class. There can also be new OUTSIDE_POLY polygons created by this method. Any old OUTSIDE_POLY polygons that are passed in will be passed back out.
a_xyTolTolerance used for floating point geometry comparisons.

Definition at line 179 of file MePolyCleaner.cpp.

References xms::MeIntersectPolys::CalcEnvelopes(), xms::MeIntersectPolys::DeleteBad_NEWOUT_POLY(), xms::MeIntersectPolys::FillOutput(), xms::MeIntersectPolys::InInDoIntersection(), xms::MeIntersectPolys::InInTrivialPolyCases(), m_origOutsidePoly, and xms::MeIntersectPolys::SetupInIn().

Referenced by MePolyCleanerUnitTests::testCleanIn0(), MePolyCleanerUnitTests::testCleanIn1(), MePolyCleanerUnitTests::testCleanIn10(), MePolyCleanerUnitTests::testCleanIn11(), MePolyCleanerUnitTests::testCleanIn1a(), MePolyCleanerUnitTests::testCleanIn1b(), MePolyCleanerUnitTests::testCleanIn2(), MePolyCleanerUnitTests::testCleanIn2a(), MePolyCleanerUnitTests::testCleanIn2b(), MePolyCleanerUnitTests::testCleanIn3(), MePolyCleanerUnitTests::testCleanIn3a(), MePolyCleanerUnitTests::testCleanIn4(), MePolyCleanerUnitTests::testCleanIn4a(), MePolyCleanerUnitTests::testCleanIn4b(), MePolyCleanerUnitTests::testCleanIn4c(), MePolyCleanerUnitTests::testCleanIn4d(), MePolyCleanerUnitTests::testCleanIn5(), MePolyCleanerUnitTests::testCleanIn6(), MePolyCleanerUnitTests::testCleanIn7(), MePolyCleanerUnitTests::testCleanIn8(), and MePolyCleanerUnitTests::testCleanIn9().

◆ SetOriginalOutsidePolygon()

void xms::MePolyCleanerImpl::SetOriginalOutsidePolygon ( const VecPt3d a_origOutsidePoly)
overridevirtual

Sets the original outside polygon for this pave operation.

Parameters
a_origOutsidePolyThe outside polygon for this step of the pave operation

Definition at line 165 of file MePolyCleaner.cpp.

References m_origOutsidePoly.


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