TeDataTypes.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 *************************************************************************************/
00023 /*! \file TeDataTypes.h
00024     \brief This file contains enumerators and data types used by TerraLib
00025 */
00026 #ifndef  __TERRALIB_INTERNAL_DATATYPE_H
00027 #define  __TERRALIB_INTERNAL_DATATYPE_H
00028 
00029 
00030 #if defined(_MSC_VER) /* MSVC Compiler */
00031 #pragma warning(disable: 4786)
00032 #endif
00033 
00034 #include <vector>
00035 #include <string>
00036 #include <map> 
00037 
00038 using namespace std;
00039 
00040 //! SPRING´s data model entities
00041 enum TeSpringModels
00042 {   TeSPRCadastral=0, TeSPRNetwork=1, TeSPRThematic=2, TeSPRMNT=3 };
00043 
00044 
00045 //!  Types for Attributes (stored in object-relational databases)
00046 enum TeAttrDataType 
00047 {TeSTRING, TeREAL, TeINT, TeDATETIME, TeBLOB, TeOBJECT, TeCHARACTER, TeUNKNOWN, TeUNSIGNEDINT,
00048  TePOINTTYPE, TeLINE2DTYPE, TePOLYGONTYPE, TeCELLTYPE, TeTEXTTYPE, TeNODETYPE,
00049  TePOINTSETTYPE, TeLINESETTYPE, TePOLYGONSETTYPE, TeCELLSETTYPE, TeTEXTSETTYPE, TeNODESETTYPE,
00050  TeRASTERTYPE, TeBOOLEAN};
00051 
00052 
00053 //! Geometrical representations 
00054 /*! Uses a binary ennumeration since the same layer 
00055     may contain more than one geometrical representation
00056 */
00057 enum TeGeomRep 
00058 {       TePOLYGONS = 1, TeLINES = 2, TePOINTS = 4, TeSAMPLES = 8, TeCONTOURS = 16,
00059         TeARCS = 32, TeNODES = 64  , TeTEXT = 128, TeCELLS = 256 , TeRASTER = 512,
00060         TeRASTERFILE = 1024, TeGEOMETRYNONE = 2048, TeSHAPEFILE = 4096, TeCOVERAGE = 8192};
00061 
00062 //! Chart types
00063 enum TeChartType
00064 {   TeBarChart, TePieChart };
00065 
00066 //! Objects that will be grouped or used in a chart
00067 enum TeSelectedObjects
00068 {       TeAll, TeSelectedByPointing, TeNotSelectedByPointing, TeSelectedByQuery, TeNotSelectedByQuery,
00069         TeSelectedByPointingAndQuery, TeSelectedByPointingOrQuery, TeGrouped, TeNotGrouped };
00070 
00071 //! Modes of object selection
00072 enum TeObjectSelectionMode
00073 {   TeDefaultSelection, TePointingSelection, TeQuerySelection, TePointingAndQuerySelection };
00074 
00075 //! Modes of grouping objects
00076 enum TeGroupingMode
00077 { TeEqualSteps = 0, TeQuantil = 1, TeStdDeviation = 2, TeUniqueValue = 3,
00078   TeRasterSlicing = 4, TeCustomGroup = 5, TeNoGrouping = 100 };
00079 
00080 //! Direction of use in a ramp color
00081 enum TeColorDirection
00082 {       TeColorAscSatEnd, TeColorDescSatEnd, TeColorAscSatBegin, TeColorDescSatBegin };
00083 
00084 //! Types of attribute tables in a layer
00085 enum TeAttrTableType
00086 {       TeAllAttrTypes, TeAttrStatic, TeAttrMedia, TeAttrExternal, TeAttrEvent, TeFixedGeomDynAttr, 
00087         TeDynGeomDynAttr, TeGeomAttrLinkTime, TeGeocodingData };
00088 
00089 //! Types of integrity relations among tables in a database
00090 enum TeDBRelationType
00091 {       TeNoRelation, TeRINoCascadeDeletion, TeRICascadeDeletion };
00092 
00093 //! Data types
00094 enum TeDataType 
00095 {       TeBIT, TeUNSIGNEDCHAR, TeCHAR, TeUNSIGNEDSHORT, TeSHORT, TeINTEGER, TeUNSIGNEDLONG, TeLONG, TeFLOAT, TeDOUBLE };
00096 
00097 
00098 //!     Statistics
00099 /*!
00100          - TeSUM                                sum of the values
00101          - TeMAXVALUE                   maximum value
00102          - TeMINVALUE                   minimal value
00103          - TeCOUNT                              total number of the values
00104          - TeVALIDCOUNT                 valid number of the values
00105          - TeSTANDARDDEVIATION  standard deviation 
00106          - TeKERNEL                             kernel
00107          - TeMEAN                               mean
00108          - TeVARIANCE                   variance
00109          - TeSKEWNESS                   third moment about the Mean                     
00110          - TeKURTOSIS                   forth moment about the Mean
00111          - TeAMPLITUDE                  maximum value minus minimal value
00112          - TeMEDIAN                             median value
00113          - TeVARCOEFF                   coefficient of variation 
00114          - TeMODE                               value more frequent 
00115 */ 
00116 enum TeStatisticType
00117 {       TeNOSTATISTIC, TeSUM, TeMAXVALUE, TeMINVALUE, TeCOUNT, TeVALIDCOUNT, TeSTANDARDDEVIATION, TeKERNEL,  
00118         TeMEAN, TeVARIANCE, TeSKEWNESS, TeKURTOSIS, TeAMPLITUDE, TeMEDIAN, TeVARCOEFF, TeMODE};
00119 
00120 //! A map of an statistic to its value
00121 typedef map<TeStatisticType, double> TeStatisticValMap;
00122 
00123 //! A map of an statistic to its string value
00124 typedef map<TeStatisticType, string> TeStatisticStringValMap;
00125 
00126 //! A map of an object id to its statistics
00127 typedef map<string, TeStatisticValMap> TeObjStatisticsMap;
00128 
00129 //! A map of an statistic to the column name where its value is stored
00130 typedef map<TeStatisticType, string> TeStatisticsMap;
00131 
00132 //! Intersection Algorithms.
00133 enum TeIntersectorAlgorithm { TeBentleyOttman, TeRedBlue, TeTrivial };
00134 
00135 //! Topological relations
00136 enum TeSpatialRelation  
00137 {       TeDISJOINT = 1, TeTOUCHES = 2, TeCROSSES = 4, TeWITHIN = 8, 
00138         TeOVERLAPS = 16, TeCONTAINS = 32, TeINTERSECTS = 64, TeEQUALS = 128, TeCOVERS = 256,
00139         TeCOVEREDBY = 512, TeUNDEFINEDREL = 1024};
00140 
00141 //! Temporal predicates
00142 enum TeTemporalRelation { TeTIMEUNDEFINED, TeTIMEEQUAL, TeTIMEBEFORE, TeTIMEAFTER, TeTIMEMEETS, TeTIMEDURING, TeTIMEOVERLAPS, TeTIMEENDS, TeTIMESTARTS };
00143 
00144 //! Logical predicates
00145 enum TeLogicalOperator { TeAND = 1, TeOR = 2 };
00146 
00147 //! Time chronons
00148 enum TeChronon {        TeNOCHRONON, TeSECOND, TeMINUTE, TeHOUR, TeDAY, TeMONTH, TeYEAR,
00149                                         TeDAYOFWEEK, TeDAYOFMONTH, TeDAYOFYEAR, TeMONTHOFYEAR, TeSEASON, TeWEEKOFYEAR, 
00150                                         TeHOUROFDAY, TeMINUTEOFHOUR, TeSECONDOFMINUTE };
00151 
00152 //! Polygon style types
00153 enum TePolyBasicType { TePolyTypeTransparent=0, TePolyTypeFill=1, TePolyTypeHorizontal=2,
00154                                          TePolyTypeVertical=3, TePolyTypeFDiagonal=4, TePolyTypeBDiagonal=5,
00155                                          TePolyTypeCross=6, TePolyTypeDiagonalCross=7,  TePolyTypeCustom=8 };
00156 //! Line style types
00157 enum TeLnBasicType { TeLnTypeContinuous=0, TeLnTypeDashed=1, TeLnTypeDotted=2,  
00158                                          TeLnTypeDashDot=3, TeLnTypeDashDotDot=4, TeLnTypeNone=5,
00159                                          TeLnTypeCustom=6, TeLnTypeArrow=7, TeLnTypeMiddleArrow=8 };
00160 
00161 //! Line cap styles
00162 enum TeLnCapStyle { TeLnFlatCap=0, TeLnSquareCap=1, TeLnRoundCap=2 };
00163 
00164 //! Line join styles
00165 enum TeLnJoinStyle { TeLnMiterJoin=0, TeLnBevelJoin=1, TeLnRoundJoin=2 };
00166 
00167 //! Point style types
00168 enum TePtBasicType { TePtTypePlus=0, TePtTypeStar=1, TePtTypeCircle=2, TePtTypeX=3,  
00169                                          TePtTypeBox=4, TePtTypeDiamond=5, TePtTypeHollowCircle=6, 
00170                                          TePtTypeHollowBox=7, TePtTypeHollowDiamond=8, TePtTypeCustom=9 };
00171 
00172 //! Type of segment intersection
00173 enum TeSegmentIntersectionType { TeProperIntersection, TeImproperIntersection };
00174 
00175 //! Types of implementations of a generalized proximity matrix 
00176 enum TeGPMImplementation { TeGraphBreymann };
00177 
00178 //! Construction strategies to the generalized proximity matrix 
00179 enum TeGPMConstructionStrategy { TeAdjacencyStrategy, TeDistanceStrategy, TeNearestNeighboursStrategy,
00180                                                                  TeClosedNetworkStrategy, TeOpenNetworkStrategy, TeOpenNetworkStrategy2 };
00181 
00182 //! Slicing strategies to the generalized proximity matrix 
00183 enum TeGPMSlicingStrategy { TeNoSlicingStrategy, TeZonesSlicingStrategy };
00184         
00185 //! Weight strategies to the generalized proximity matrix 
00186 enum TeGPMWeightsStrategy { TeNoWeightsStrategy, TeInverseDistanceStrategy, 
00187                                                         TeSquaredInverseDistStrategy, TeConnectionStrenghtStrategy};
00188 
00189 //! Data units available on terralib
00190 enum TeUnits { TeUndefinedUnit, TeMillimeters, TeCentimeters, TeMeters, TeKilometers, TeMiles, TeInches, TeFeet, TeDecimalDegress };
00191 
00192 
00193 #endif

Generated on Sun Jul 29 04:01:20 2012 for TerraLib - Development Source by  doxygen 1.5.3