- Main Page
- Related Pages
- Namespaces
- Classes
- Files

- File List

# PreparedPolygonPredicate.h

    00001 /**********************************************************************
    00002  * $Id: PreparedPolygonPredicate.h 2771 2009-12-03 19:29:54Z mloskot $
    00003  *
    00004  * GEOS - Geometry Engine Open Source
    00005  * http://geos.refractions.net
    00006  *
    00007  * Copyright (C) 2006 Refractions Research Inc.
    00008  *
    00009  * This is free software; you can redistribute and/or modify it under
    00010  * the terms of the GNU Lesser General Public Licence as published
    00011  * by the Free Software Foundation.
    00012  * See the COPYING file for more information.
    00013  *
    00014  *
    00015  **********************************************************************
    00016  *
    00017  * Last port: geom/prep/PreparedPolygonPredicate.java rev. 1.4 (JTS-1.10)
    00018  * (2007-12-12)
    00019  *
    00020  **********************************************************************/
    00021
    00022 #ifndef GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H
    00023 #define GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H
    00024
    00025 #include <geos/geom/Coordinate.h>
    00026
    00027 // forward declarations
    00028 namespace geos {
    00029         namespace algorithm {
    00030                 namespace locate {
    00031                         class PointOnGeometryLocator;
    00032                 }
    00033         }
    00034         namespace geom {
    00035                 class Geometry;
    00036
    00037                 namespace prep {
    00038                         class PreparedPolygon;
    00039                 }
    00040         }
    00041         namespace noding {
    00042                 class FastSegmentSetIntersectionFinder;
    00043         }
    00044 }
    00045
    00046
    00047 namespace geos {
    00048 namespace geom { // geos::geom
    00049 namespace prep { // geos::geom::prep
    00050
    00058 class PreparedPolygonPredicate
    00059 {
    00060 private:
    00061     // Declare type as noncopyable
    00062     PreparedPolygonPredicate(const PreparedPolygonPredicate& other);
    00063     PreparedPolygonPredicate& operator=(const PreparedPolygonPredicate& rhs);
    00064
    00065 protected:
    00066         const PreparedPolygon * const prepPoly;
    00067
    00078         bool isAllTestComponentsInTarget(const geom::Geometry * testGeom) const;
    00079
    00090         bool isAllTestComponentsInTargetInterior( const geom::Geometry * testGeom) const;
    00091
    00102         bool isAnyTestComponentInTarget( const geom::Geometry * testGeom) const;
    00103
    00114         bool isAnyTestComponentInTargetInterior( const geom::Geometry * testGeom) const;
    00115
    00124         bool isAnyTargetComponentInAreaTest( const geom::Geometry * testGeom, const geom::Coordinate::ConstVect * targetRepPts) const;
    00125
    00126 public:
    00132         PreparedPolygonPredicate( const PreparedPolygon * const prepPoly)
    00133         :       prepPoly( prepPoly)
    00134         { }
    00135
    00136         virtual ~PreparedPolygonPredicate()
    00137         { }
    00138
    00139 };
    00140
    00141 } // namespace geos::geom::prep
    00142 } // namespace geos::geom
    00143 } // namespace geos
    00144
    00145 #endif // GEOS_GEOM_PREP_PREPAREDPOLYGONPREDICATE_H
    00146 /**********************************************************************
    00147  * $Log$
    00148  **********************************************************************/
    00149