Main Page | Directories | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

vtkSystemIncludes.h

Go to the documentation of this file.
00001 /*=========================================================================
00002 
00003   Program:   Visualization Toolkit
00004   Module:    $RCSfile: vtkSystemIncludes.h,v $
00005 
00006   Copyright (c) Ken Martin, Will Schroeder, Bill Lorensen
00007   All rights reserved.
00008   See Copyright.txt or http://www.kitware.com/Copyright.htm for details.
00009 
00010      This software is distributed WITHOUT ANY WARRANTY; without even
00011      the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
00012      PURPOSE.  See the above copyright notice for more information.
00013 
00014 =========================================================================*/
00042 #ifndef __vtkSystemIncludes_h
00043 #define __vtkSystemIncludes_h
00044 
00045 /* first include the local configuration for this machine */
00046 #define __VTK_SYSTEM_INCLUDES__INSIDE
00047 #include "vtkWin32Header.h"
00048 #undef __VTK_SYSTEM_INCLUDES__INSIDE
00049 
00050 // The language wrapper files do not need the real streams.  They
00051 // define VTK_STREAMS_FWD_ONLY so that the streams are only
00052 // forward-declared.  This significantly improves compile time on some
00053 // platforms.
00054 #if defined(VTK_STREAMS_FWD_ONLY)
00055 # include "vtkIOStreamFwd.h" // Forward-declare the C++ streams.
00056 #else
00057 # include "vtkIOStream.h"    // Include the real C++ streams.
00058 #endif
00059 
00060 // define the type of floating point interface used for old and new versions
00061 // of VTK VTK42 and older use float and VTK 44 and newer use double for most
00062 // of the API calls
00063 #define vtkFloatingPointType vtkFloatingPointType 
00064 typedef double vtkFloatingPointType;
00065 
00066 // this should be removed at some point
00067 #define VTK_USE_EXECUTIVES
00068 
00069 // Choose an implementation for vtkIdType.
00070 #define VTK_HAS_ID_TYPE
00071 #ifdef VTK_USE_64BIT_IDS
00072 # define VTK_ID_TYPE_IS_NOT_BASIC_TYPE
00073 # define VTK_SIZEOF_ID_TYPE 8
00074 # ifdef _WIN32
00075 typedef __int64 vtkIdType;
00076 # else // _WIN32
00077 typedef long long vtkIdType;
00078 # endif // _WIN32
00079 #else // VTK_USE_64BIT_IDS
00080 # define VTK_SIZEOF_ID_TYPE VTK_SIZEOF_INT
00081 typedef int vtkIdType;
00082 #endif // VTK_USE_64BIT_IDS
00083 
00084 #define __VTK_SYSTEM_INCLUDES__INSIDE
00085 #include "vtkOStreamWrapper.h"    // Include the ostream wrapper.
00086 #include "vtkOStrStreamWrapper.h" // Include the ostrstream wrapper.
00087 #undef __VTK_SYSTEM_INCLUDES__INSIDE
00088 
00089 // Include generic stuff.
00090 #include <stdio.h>
00091 #include <stdlib.h>
00092 #include <string.h>
00093 
00094 // Some constants used throughout the code
00095 #define VTK_LARGE_FLOAT 1.0e+38F
00096 #ifdef VTK_USE_64BIT_IDS
00097 #  if defined(_WIN32) && !defined(__GNUC__)
00098 #    define VTK_LARGE_ID 9223372036854775807i64 // 2^63 - 1
00099 #  else
00100 #    define VTK_LARGE_ID 9223372036854775807LL // 2^63 - 1
00101 #  endif
00102 #else
00103 #  define VTK_LARGE_ID 2147483647 // 2^31 - 1
00104 #endif
00105 
00106 #define VTK_LARGE_INTEGER 2147483647 // 2^31 - 1
00107 
00108 // These types are returned by GetDataType to indicate pixel type.
00109 #define VTK_VOID            0
00110 #define VTK_BIT             1 
00111 #define VTK_CHAR            2
00112 #define VTK_UNSIGNED_CHAR   3
00113 #define VTK_SHORT           4
00114 #define VTK_UNSIGNED_SHORT  5
00115 #define VTK_INT             6
00116 #define VTK_UNSIGNED_INT    7
00117 #define VTK_LONG            8
00118 #define VTK_UNSIGNED_LONG   9
00119 #define VTK_FLOAT          10
00120 #define VTK_DOUBLE         11 
00121 #define VTK_ID_TYPE        12
00122 
00123 // These types are not currently supported by GetDataType, but are 
00124 // for completeness.
00125 #define VTK_STRING         13
00126 #define VTK_OPAQUE         14
00127 
00128 // Some constant required for correct template performance
00129 #define VTK_BIT_MIN            0
00130 #define VTK_BIT_MAX            1
00131 #define VTK_CHAR_MIN          -128
00132 #define VTK_CHAR_MAX           127
00133 #define VTK_UNSIGNED_CHAR_MIN  0
00134 #define VTK_UNSIGNED_CHAR_MAX  255
00135 #define VTK_SHORT_MIN         -32768
00136 #define VTK_SHORT_MAX          32767
00137 #define VTK_UNSIGNED_SHORT_MIN 0
00138 #define VTK_UNSIGNED_SHORT_MAX 65535
00139 #define VTK_INT_MIN          (-VTK_LARGE_INTEGER-1)
00140 #define VTK_INT_MAX            VTK_LARGE_INTEGER
00141 #define VTK_UNSIGNED_INT_MIN   0
00142 #define VTK_UNSIGNED_INT_MAX   4294967295U
00143 #define VTK_LONG_MIN         (-VTK_LARGE_INTEGER-1)
00144 #define VTK_LONG_MAX           VTK_LARGE_INTEGER
00145 #define VTK_UNSIGNED_LONG_MIN  0
00146 #define VTK_UNSIGNED_LONG_MAX  4294967295UL
00147 #define VTK_FLOAT_MIN         -VTK_LARGE_FLOAT
00148 #define VTK_FLOAT_MAX          VTK_LARGE_FLOAT
00149 #define VTK_DOUBLE_MIN        -1.0e+299
00150 #define VTK_DOUBLE_MAX         1.0e+299
00151 
00152 // These types are returned to distinguish data object types
00153 #define VTK_POLY_DATA                       0
00154 #define VTK_STRUCTURED_POINTS               1
00155 #define VTK_STRUCTURED_GRID                 2
00156 #define VTK_RECTILINEAR_GRID                3
00157 #define VTK_UNSTRUCTURED_GRID               4
00158 #define VTK_PIECEWISE_FUNCTION              5
00159 #define VTK_IMAGE_DATA                      6
00160 #define VTK_DATA_OBJECT                     7
00161 #define VTK_DATA_SET                        8
00162 #define VTK_POINT_SET                       9
00163 #define VTK_UNIFORM_GRID                   10
00164 #define VTK_COMPOSITE_DATA_SET             11
00165 #define VTK_HIERARCHICAL_DATA_SET          12
00166 #define VTK_MULTI_BLOCK_DATA_SET           13
00167 #define VTK_HIERARCHICAL_BOX_DATA_SET      14
00168 #define VTK_GENERIC_DATA_SET               15
00169 
00170 // These types define error codes for vtk functions
00171 #define VTK_OK                 1
00172 #define VTK_ERROR              2
00173 
00174 // These types define different text properties
00175 #define VTK_ARIAL     0
00176 #define VTK_COURIER   1
00177 #define VTK_TIMES     2
00178 
00179 #define VTK_TEXT_LEFT     0
00180 #define VTK_TEXT_CENTERED 1
00181 #define VTK_TEXT_RIGHT    2
00182 
00183 #define VTK_TEXT_BOTTOM 0
00184 #define VTK_TEXT_TOP    2
00185 
00186 #define VTK_TEXT_GLOBAL_ANTIALIASING_SOME 0
00187 #define VTK_TEXT_GLOBAL_ANTIALIASING_NONE 1
00188 #define VTK_TEXT_GLOBAL_ANTIALIASING_ALL 2
00189 
00190 #define VTK_LUMINANCE       1
00191 #define VTK_LUMINANCE_ALPHA 2
00192 #define VTK_RGB             3
00193 #define VTK_RGBA            4
00194 
00195 #define VTK_COLOR_MODE_DEFAULT 0
00196 #define VTK_COLOR_MODE_MAP_SCALARS 1
00197 
00198 // Constants for InterpolationType
00199 #define VTK_NEAREST_INTERPOLATION       0
00200 #define VTK_LINEAR_INTERPOLATION        1
00201 
00202 // For volume rendering
00203 #define VTK_MAX_VRCOMP                  4
00204 
00205 // For multithreading
00206 
00207 // The maximum number of threads allowed
00208 #ifdef VTK_USE_SPROC
00209 #define VTK_MAX_THREADS              32
00210 #endif
00211 
00212 #ifdef VTK_USE_PTHREADS
00213 #define VTK_MAX_THREADS              32
00214 #endif
00215 
00216 #ifdef VTK_USE_WIN32_THREADS
00217 #define VTK_MAX_THREADS              8
00218 #endif
00219 
00220 #ifndef VTK_USE_WIN32_THREADS
00221 #ifndef VTK_USE_SPROC
00222 #ifndef VTK_USE_PTHREADS
00223 #define VTK_MAX_THREADS              1
00224 #endif
00225 #endif
00226 #endif
00227 
00228 // If VTK_USE_PTHREADS is defined, then the multithreaded
00229 // function is of type void *, and returns NULL
00230 // Otherwise the type is void which is correct for WIN32
00231 // and SPROC
00232 #ifdef VTK_USE_PTHREADS
00233 #define VTK_THREAD_RETURN_VALUE  NULL
00234 #define VTK_THREAD_RETURN_TYPE   void *
00235 #endif
00236 
00237 #ifdef VTK_USE_WIN32_THREADS
00238 #define VTK_THREAD_RETURN_VALUE 0
00239 #define VTK_THREAD_RETURN_TYPE DWORD __stdcall
00240 #endif
00241 
00242 #if !defined(VTK_USE_PTHREADS) && !defined(VTK_USE_WIN32_THREADS)
00243 #define VTK_THREAD_RETURN_VALUE
00244 #define VTK_THREAD_RETURN_TYPE void
00245 #endif
00246 
00247 // For encoding
00248 
00249 #define VTK_ENCODING_NONE         0 // to specify that no encoding should occur
00250 #define VTK_ENCODING_US_ASCII     1
00251 #define VTK_ENCODING_UNICODE      2
00252 #define VTK_ENCODING_UTF_8        3
00253 #define VTK_ENCODING_ISO_8859_1   4
00254 #define VTK_ENCODING_ISO_8859_2   5
00255 #define VTK_ENCODING_ISO_8859_3   6
00256 #define VTK_ENCODING_ISO_8859_4   7
00257 #define VTK_ENCODING_ISO_8859_5   8
00258 #define VTK_ENCODING_ISO_8859_6   9
00259 #define VTK_ENCODING_ISO_8859_7   10
00260 #define VTK_ENCODING_ISO_8859_8   11
00261 #define VTK_ENCODING_ISO_8859_9   12
00262 #define VTK_ENCODING_ISO_8859_10  13
00263 #define VTK_ENCODING_ISO_8859_11  14
00264 #define VTK_ENCODING_ISO_8859_12  15
00265 #define VTK_ENCODING_ISO_8859_13  16
00266 #define VTK_ENCODING_ISO_8859_14  17
00267 #define VTK_ENCODING_ISO_8859_15  18
00268 #define VTK_ENCODING_ISO_8859_16  19
00269 #define VTK_ENCODING_UNKNOWN      20  // leave this one at the end
00270 
00271 #endif