xmsmesh  1.0
MeIntersectPolys.h
Go to the documentation of this file.
1 //------------------------------------------------------------------------------
6 //------------------------------------------------------------------------------
7 #pragma once
8 
9 //----- Included files ---------------------------------------------------------
11 #include <xmscore/stl/vector.h>
13 
14 //----- Forward declarations ---------------------------------------------------
15 
16 //----- Namespace declaration --------------------------------------------------
18 namespace xms
19 {
20 class MePolyOffsetterOutput;
21 //----- Constants / Enumerations -----------------------------------------------
22 
23 //----- Structs / Classes ------------------------------------------------------
27 {
29 public:
32 
33  void SetupInIn(const std::vector<MePolyOffsetterOutput>& a_offsets, double a_xyTol);
34  void SetupInOut(const MePolyOffsetterOutput& a_offsets, double a_xyTol);
35  void CalcEnvelopes();
36  void InInTrivialPolyCases();
37  void InInDoIntersection();
38  void InOutDoIntersection();
39  void FillOutput(MePolyOffsetterOutput& a_out);
40  void ClassifyPolys(const MePolyOffsetterOutput& a_input,
41  std::vector<std::vector<size_t>>& a_output);
42  void DeleteBad_NEWOUT_POLY(MePolyOffsetterOutput& a_out, const VecPt3d& a_origOutsidePoly);
43 
44 private:
46  class impl;
47  impl* m_p;
48 };
49 
50 //----- Function prototypes ----------------------------------------------------
51 
52 } // namespace xms
void ClassifyPolys(const MePolyOffsetterOutput &a_input, std::vector< std::vector< size_t >> &a_output)
calls implementation
void FillOutput(MePolyOffsetterOutput &a_out)
calls implementation
void SetupInOut(const MePolyOffsetterOutput &a_offsets, double a_xyTol)
calls implementation
void InInTrivialPolyCases()
calls implementation
void InOutDoIntersection()
calls implementation
Does polygon intersection for MePolyCleaner.
MeIntersectPolys()
Constructor.
friend MeIntersectPolysUnitTests
tests MeIntersectPolys
void SetupInIn(const std::vector< MePolyOffsetterOutput > &a_offsets, double a_xyTol)
calls implementation
convenience class for holding output data from the MePolyOffsetter
Intersect polygons that are a result of the paving process.
impl * m_p
implementation class
~MeIntersectPolys()
Destructor.
tests MeIntersectPolys
void DeleteBad_NEWOUT_POLY(MePolyOffsetterOutput &a_out, const VecPt3d &a_origOutsidePoly)
calls implementation
void CalcEnvelopes()
Calculates the envelope of all of the polygons.
XM_DISALLOW_COPY_AND_ASSIGN(MeIntersectPolys)
prevent compiler generated copy/assign
void InInDoIntersection()
calls implementation
std::vector< Pt3d > VecPt3d