![]() |
TerraLib 4.1
|
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 *************************************************************************************/ 00026 #ifndef __TERRALIB_INTERNAL_DEFINES_H 00027 #define __TERRALIB_INTERNAL_DEFINES_H 00028 00029 #include <string> 00030 00040 #define TePLATFORMCODE_MSWINDOWS 1 00041 00042 #define TePLATFORMCODE_LINUX 2 00043 00044 #define TePLATFORMCODE_SOLARIS 3 00045 00046 #define TePLATFORMCODE_APPLE 4 00047 00048 #define TePLATFORMCODE_AIX 5 00049 00050 #if defined( WIN32 ) || defined( __WIN32__ ) || defined ( _WIN32 ) || defined( WIN64 ) || defined( _WIN32_WCE ) 00051 #define TePLATFORM TePLATFORMCODE_MSWINDOWS 00052 #elif defined( __LINUX__ ) || defined( linux ) || defined( __linux__ ) ||defined( __FreeBSD__ ) //FAMI 00053 #define TePLATFORM TePLATFORMCODE_LINUX 00054 #elif defined( __APPLE_CC__ ) || defined( APPLE_CC ) 00055 #define TePLATFORM TePLATFORMCODE_APPLE 00056 #elif defined(sparc) && defined(sun) && defined(unix) 00057 #define TePLATFORM TePLATFORMCODE_SOLARIS 00058 #elif defined(_AIX) 00059 #define TePLATFORM TePLATFORMCODE_AIX 00060 #ifndef __unix__ 00061 #define __unix__ 00062 #endif 00063 #else 00064 #error "ERROR: Unknown platform" 00065 #endif 00066 00072 #define TeCOMPILERCODE_VCPLUSPLUS 1 00073 00074 #define TeCOMPILERCODE_BCPLUSPLUS 2 00075 00076 #define TeCOMPILERCODE_GNUC 3 00077 00078 #define TeCOMPILERCODE_CODEWARRIOR 4 00079 00080 #define TeCOMPILERCODE_SUNFORTE7 5 00081 00082 #define TeCOMPILERCODE_XLC 6 00083 00084 #if defined( _MSC_VER ) 00085 #define TeCOMPILER TeCOMPILERCODE_VCPLUSPLUS 00086 #elif defined( __BORLANDC__ ) || defined( __BCPLUSPLUS__ ) 00087 #define TeCOMPILER TeCOMPILERCODE_BCPLUSPLUS 00088 #elif defined( __GNUC__ ) 00089 #define TeCOMPILER TeCOMPILERCODE_GNUC 00090 #elif defined( __MWERKS__ ) 00091 #define TeCOMPILER TeCOMPILERCODE_CODEWARRIOR 00092 #elif defined( __SUNPRO_CC) 00093 #define TeCOMPILER TeCOMPILERCODE_SUNFORTE7 00094 #elif defined( __xlC__ ) 00095 #define TeCOMPILER TeCOMPILERCODE_XLC 00096 #else 00097 #error "ERROR: Unknown compiler" 00098 #endif 00099 00101 /* Including platform dependent definitions */ 00102 00103 #if TePLATFORM == TePLATFORMCODE_MSWINDOWS 00104 #include "TeWindowsPlatformDefines.h" 00105 #elif TePLATFORM == TePLATFORMCODE_LINUX 00106 #ifdef HAVE_CONFIG_H 00107 #include "TeUnixPlatformDefines.h" 00108 #endif 00109 #elif TePLATFORM == TePLATFORMCODE_AIX 00110 #ifdef HAVE_CONFIG_H 00111 #include "TeUnixPlatformDefines.h" 00112 #endif 00113 #elif TePLATFORM == TePLATFORMCODE_APPLE 00114 #ifdef HAVE_CONFIG_H 00115 #include "TeUnixPlatformDefines.h" 00116 #endif 00117 #else 00118 #error "ERROR: Unsupported platform" 00119 #endif 00120 00121 00125 00126 const int TeNAME_LENGTH = 2000; 00127 const double TeMAXFLOAT = 3.4E37; 00128 const double TeMINFLOAT = 3.4E-37; 00129 const double TePI = 3.14159265358979323846; 00130 const double TeCDR = 0.01745329251994329576; 00131 const double TeCRD = 57.29577951308232087679; 00132 const double TeEARTHRADIUS = 6378160.; 00133 00134 #ifndef MAX 00135 #define MAX(a,b) ( (a>b) ? a : b ) //!< Macro that returns max between two values 00136 #endif 00137 00138 #ifndef MIN 00139 #define MIN(a,b) ( (a<b) ? a : b ) //!< Macro that returns min between two values 00140 #endif 00141 00142 #ifndef ABS 00143 #define ABS(x) ( ((x) >= 0) ? (x) : -(x) ) //!< Macro that returns the absolute value 00144 #endif 00145 00151 #define TeDEFAULT 0 //!< default selection 00152 #define TePOINTED 1 //!< object pointed 00153 #define TeQUERIED 2 //!< object queried 00154 #define TePOINTED_QUERIED 3 //!< object pointed and queried 00155 // end Selection Mode 00156 00157 00161 #define TeNOTURN 0 //!< Unknown orientation 00162 #define TeCOLLINEAR 0 //!< Collinear 00163 #define TeCLOCKWISE -1 //!< Clockwise orientation 00164 #define TeCOUNTERCLOCKWISE 1 //!< Counter-Clockwise orientation 00165 // end Orientation 00166 00174 #define TeUNKNOWNPOSITION 0 //!< unknown position 00175 #define TeINSIDE 1 //!< inside position 00176 #define TeOUTSIDE 2 //!< outside position 00177 #define TeBOUNDARY 4 //!< on the boundary position 00178 00189 #define TeINTERIORINTERIOR 8 //!< interior and interior intersection 00190 #define TeINTERIORBOUNDARY 16 //!< interior and boundary intersection 00191 #define TeINTERIOREXTERIOR 32 //!< interior and exterior intersection 00192 #define TeBOUNDARYINTERIOR 64 //!< boundary and interior intersection 00193 #define TeBOUNDARYBOUNDARY 128 //!< boundary and boundary intersection 00194 #define TeBOUNDARYEXTERIOR 256 //!< boundary and exterior intersection 00195 #define TeEXTERIORINTERIOR 512 //!< exterior and interior intersection 00196 #define TeEXTERIORBOUNDARY 1024 //!< exterior and boundary intersection 00197 #define TeEXTERIOREXTERIOR 2048 //!< exterior and exterior intersection 00198 // end GeneralInter 00199 00204 #define TeDONT_INTERSECT 0 //!< segments don't intersects 00205 #define TeDO_INTERSECT 1 //!< segments intersects 00206 #define TeAT_ENDPOINT 4 //!< segments intersects at end points 00207 // end SegInter // end Inte 00209 00213 #define TeDIFFERENCE 1 //!< Difference operation 00214 #define TeUNION 2 //!< Union operation 00215 #define TeINTERSECTION 4 //!< Intersection operation 00216 // end TopOper // end TopDefines // end Defines 00219 00221 const std::string TeDBVERSION = "4.1.2"; 00222 00223 /* @brief TeISNAN definition */ 00224 00225 #if TePLATFORM == TePLATFORMCODE_MSWINDOWS 00226 #include <float.h> 00227 #define TeISNAN( x ) _isnan( x ) 00228 #elif TePLATFORM == TePLATFORMCODE_LINUX || TePLATFORM == TePLATFORMCODE_AIX || TePLATFORM == TePLATFORMCODE_APPLE 00229 #include <math.h> 00230 #define TeISNAN( x ) isnan( x ) 00231 #else 00232 #error "ERROR: Unsupported platform" 00233 #endif 00234 00238 #if defined( WIN32 ) || defined( __WIN32__ ) || defined ( _WIN32 ) || defined( WIN64 ) || defined( _WIN32_WCE ) 00239 00240 #if defined(_MSC_VER) /* MSVC Compiler */ 00241 #pragma warning(disable: 4251) 00242 #endif 00243 00244 #ifdef TL_AS_DLL 00245 #define TL_DLL __declspec(dllexport) 00246 #else 00247 #define TL_DLL __declspec(dllimport) 00248 #endif 00249 00250 #else 00251 #define TL_DLL 00252 #endif 00253 00263 #endif 00264