xmsmesh
1.0
|
#include <xmsmesh/meshing/detail/MeIntersectPolys.h>
#include <boost/geometry/geometry.hpp>
#include <boost/unordered_set.hpp>
#include <xmsinterp/geometry/GmBoostTypes.h>
#include <xmsmesh/meshing/detail/MePolyOffsetter.h>
#include <xmscore/misc/XmError.h>
#include <xmscore/stl/vector.h>
#include <xmsmesh/meshing/detail/MeIntersectPolys.t.h>
#include <xmscore/testing/TestTools.h>
Go to the source code of this file.
Classes | |
class | xms::MeIntersectPolys::impl |
Does polygon intersection for MePolyCleaner. More... | |
Macros | |
#define | T_TOL 1e-13 |
tolerance used in multipoly intersector | |
#define | TOLERANCE 1e9 |
tolerance used in PolyOffsetter | |
Functions | |
static GmBstBox3d | xms::iCalcPolyEnvelope (const std::vector< size_t > &a_loop, const std::vector< Pt3d > &a_pts) |
Returns the envelop of a polygon. More... | |
static bool | xms::iEnvelopesOverlap (size_t a_i, size_t a_j, const std::vector< GmBstBox3d > &a_iEnv, const std::vector< GmBstBox3d > &a_jEnv) |
Returns true only if the envelopes overlap (not touch) More... | |
static bool | xms::iEnvelopeInsideOfEnvelope (size_t a_i, size_t a_j, const std::vector< GmBstBox3d > &a_envelopes) |
Returns true if envelope a_i is inside of envelope a_j. More... | |
Definition in file MeIntersectPolys.cpp.
|
static |
Returns the envelop of a polygon.
a_loop | Vector of point indexes defining a polygon. |
a_pts | Vector of locations. The indexes in a_loop refer to this vector. |
Definition at line 110 of file MeIntersectPolys.cpp.
References xms::iCalcPolyEnvelope(), xms::Pt3< T >::x, and xms::Pt3< T >::y.
Referenced by xms::MeIntersectPolys::impl::BoostPolySubtract(), xms::MeIntersectPolys::impl::BoostPolyUnion(), xms::MeIntersectPolys::CalcEnvelopes(), and xms::iCalcPolyEnvelope().
|
static |
Returns true if envelope a_i is inside of envelope a_j.
a_i | Index to an envelope from a polygon. |
a_j | Index to an envelope from a polygon. |
a_envelopes | Vector of envelopes used by the a_i & a_j variables. |
Definition at line 159 of file MeIntersectPolys.cpp.
References xms::iEnvelopeInsideOfEnvelope(), xms::Pt3< T >::x, and xms::Pt3< T >::y.
Referenced by xms::MeIntersectPolys::impl::ClassifyPolysInsideOfPolys(), and xms::iEnvelopeInsideOfEnvelope().
|
static |
Returns true only if the envelopes overlap (not touch)
a_i | Index to an envelope from a polygon. |
a_j | Index to an envelope from a polygon. |
a_iEnv | Vector of envelopes used by the a_i variable. |
a_jEnv | Vector of envelopes used by the a_j variable. |
Definition at line 141 of file MeIntersectPolys.cpp.
References xms::iEnvelopesOverlap(), xms::Pt3< T >::x, and xms::Pt3< T >::y.
Referenced by xms::MeIntersectPolys::impl::ClassifyDisjointPolys(), xms::iEnvelopesOverlap(), xms::MeIntersectPolys::impl::InInDoIntersection(), and xms::MeIntersectPolys::impl::InOutFindIntersectingPolys().