| TerraLib 4.1

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

- File List
- File Members

E:/Projetos_Primeiro_Semestre_2012/TerraView/terralib/src/terralib/kernel/TeProxMatrixSlicingStrategy.h
Go to the documentation of this file.

    00001 /************************************************************************************
    00002 TerraLib - a library for developing GIS applications.
    00003 Copyright © 2001-2007 INPE and Tecgraf/PUC-Rio.
    00004
    00005 This code is part of the TerraLib library.
    00006 This library is free software; you can redistribute it and/or
    00007 modify it under the terms of the GNU Lesser General Public
    00008 License as published by the Free Software Foundation; either
    00009 version 2.1 of the License, or (at your option) any later version.
    00010
    00011 You should have received a copy of the GNU Lesser General Public
    00012 License along with this library.
    00013
    00014 The authors reassure the license terms regarding the warranties.
    00015 They specifically disclaim any warranties, including, but not limited to,
    00016 the implied warranties of merchantability and fitness for a particular purpose.
    00017 The library provided hereunder is on an "as is" basis, and the authors have no
    00018 obligation to provide maintenance, support, updates, enhancements, or modifications.
    00019 In no event shall INPE and Tecgraf / PUC-Rio be held liable to any party for direct,
    00020 indirect, special, incidental, or consequential damages arising out of the use
    00021 of this library and its documentation.
    00022 *************************************************************************************/
    00028 #ifndef TeProxMatrixSlicingStrategy_H
    00029 #define TeProxMatrixSlicingStrategy_H
    00030
    00031 #include "TeProxMatrixImplementation.h"
    00032
    00033 struct TL_DLL TeProxMatrixSlicingParams
    00034 {
    00035 public:
    00036            TeGPMSlicingStrategy             strategy_;
    00037            double                                                            zone_dist_;
    00038            bool                                                              zone_local_;
    00039
    00040            TeProxMatrixSlicingParams(const TeGPMSlicingStrategy& type=TeNoSlicingStrategy):
    00041                       strategy_(type), zone_dist_(0.), zone_local_(false)
    00042                       {}
    00043
    00044            bool operator==(const TeProxMatrixSlicingParams& other) const
    00045            {
    00046                       return ((strategy_==other.strategy_) && (zone_dist_==other.zone_dist_) &&
    00047                                  (zone_local_==other.zone_local_));
    00048            }
    00049 };
    00050
    00051
    00053 class TL_DLL TeProxMatrixSlicingStrategy
    00054 {
    00055 protected:
    00057            TeProxMatrixSlicingParams params_;
    00058
    00060            TeProxMatrixSlicingStrategy(const TeGPMSlicingStrategy& type): params_(type) {}
    00061
    00062 public:
    00064            virtual ~TeProxMatrixSlicingStrategy() {}
    00065
    00067            virtual bool Slice(TeProxMatrixImplementation* )=0;
    00068
    00070            virtual bool operator== (const TeProxMatrixSlicingStrategy& s) const {return (params_==s.params_);}
    00071
    00073            TeProxMatrixSlicingParams& slicingParams() { return params_; }
    00074
    00075 };
    00076
    00077
    00079 class TL_DLL TeProxMatrixNoSlicingStrategy : public TeProxMatrixSlicingStrategy
    00080 {
    00081 public:
    00083            TeProxMatrixNoSlicingStrategy (): TeProxMatrixSlicingStrategy(TeNoSlicingStrategy)
    00084            {}
    00085
    00087            virtual bool Slice(TeProxMatrixImplementation* ) {return true;}
    00088
    00090            ~TeProxMatrixNoSlicingStrategy() {}
    00091 };
    00092
    00093
    00095 class TL_DLL TeProxMatrixZonesSlicingStrategy : public TeProxMatrixSlicingStrategy
    00096 {
    00097 public:
    00099            TeProxMatrixZonesSlicingStrategy (double dist, bool local = true):
    00100              TeProxMatrixSlicingStrategy(TeZonesSlicingStrategy)
    00101              {
    00102                         params_.zone_dist_=dist;
    00103                         params_.zone_local_=local;
    00104              }
    00105
    00107            virtual bool Slice(TeProxMatrixImplementation* imp);
    00108
    00110            ~TeProxMatrixZonesSlicingStrategy() {}
    00111 };
    00112
    00113 #endif

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines