26 class GmMultiPolyIntersectionSorter;
31 enum GmMultiPolyIntersectorQueryEnum { GMMPIQ_COVEREDBY, GMMPIQ_INTERSECTS };
37 static boost::shared_ptr<GmMultiPolyIntersector>
New(
38 const std::vector<Pt3d>& a_points,
39 const std::vector<std::vector<int> >& a_polys,
40 boost::shared_ptr<GmMultiPolyIntersectionSorter> a_sorter,
41 int a_startingId = 1);
44 virtual void SetQuery(GmMultiPolyIntersectorQueryEnum a_query) = 0;
45 virtual void TraverseLineSegment(
double x1,
49 std::vector<int>& polyids,
50 std::vector<double>& tvalues) = 0;
51 virtual void TraverseLineSegment(
double x1,
55 std::vector<int>& polyidxs) = 0;
56 virtual void TraverseLineSegment(
double a_x1,
60 std::vector<int>& a_polyids,
61 std::vector<Pt3d>& a_pts) = 0;
62 virtual int PolygonFromPoint(
const Pt3d& a_pt) = 0;
See GmMultiPolyIntersectorImpl comments.
static boost::shared_ptr< GmMultiPolyIntersector > New(const std::vector< Pt3d > &a_points, const std::vector< std::vector< int > > &a_polys, boost::shared_ptr< GmMultiPolyIntersectionSorter > a_sorter, int a_startingId=1)
Creates a new GmMultiPolyIntersectorImpl object.
#define XM_DISALLOW_COPY_AND_ASSIGN(TypeName)