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

- File List

# MonotoneChainSelectAction.h

    00001 /**********************************************************************
    00002  * $Id: MonotoneChainSelectAction.h 2556 2009-06-06 22:22:28Z strk $
    00003  *
    00004  * GEOS - Geometry Engine Open Source
    00005  * http://geos.refractions.net
    00006  *
    00007  * Copyright (C) 2001-2002 Vivid Solutions 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  * Last port: index/chain/MonotoneChainSelectAction.java rev. 1.6 (JTS-1.10)
    00017  *
    00018  **********************************************************************/
    00019
    00020 #ifndef GEOS_IDX_CHAIN_MONOTONECHAINSELECTACTION_H
    00021 #define GEOS_IDX_CHAIN_MONOTONECHAINSELECTACTION_H
    00022
    00023 #include <geos/export.h>
    00024 #include <geos/geom/LineSegment.h> // composition
    00025 #include <geos/geom/Envelope.h> // composition
    00026
    00027
    00028 // Forward declarations
    00029 namespace geos {
    00030         namespace index {
    00031                 namespace chain {
    00032                         class MonotoneChain;
    00033                 }
    00034         }
    00035 }
    00036
    00037 namespace geos {
    00038 namespace index { // geos::index
    00039 namespace chain { // geos::index::chain
    00040
    00046 class GEOS_DLL MonotoneChainSelectAction {
    00047
    00048 protected:
    00049
    00050         geom::LineSegment selectedSegment;
    00051
    00052 public:
    00053
    00054         MonotoneChainSelectAction() {}
    00055
    00056         virtual ~MonotoneChainSelectAction() {}
    00057
    00059         virtual void select(MonotoneChain& mc, unsigned int start);
    00060
    00067         virtual void select(const geom::LineSegment& seg) = 0;
    00068
    00069         // these envelopes are used during the MonotoneChain search process
    00070         // should only be visible by classes in this package
    00071         geom::Envelope tempEnv1;
    00072 };
    00073
    00074
    00075 } // namespace geos::index::chain
    00076 } // namespace geos::index
    00077 } // namespace geos
    00078
    00079 #endif // GEOS_IDX_CHAIN_MONOTONECHAINSELECTACTION_H
    00080
    00081 /**********************************************************************
    00082  * $Log$
    00083  * Revision 1.1  2006/03/22 18:12:31  strk
    00084  * indexChain.h header split.
    00085  *
    00086  **********************************************************************/
    00087