Main Page | Namespace List | Class Hierarchy | Alphabetical List | Compound List | File List | Compound Members | File Members | Related Pages

vlenums.h

Go to the documentation of this file.
00001 //$Id: vlenums.h,v 1.17 2003/11/24 16:32:52 slfrank Exp $
00002 //
00003 // OpenVL - A Library for working with volumetric datasets.
00004 //          http://openvl.sf.net
00005 //
00006 // Copyright (C) 2000-2003  Sarang Lakare <sarang#users.sf.net>
00007 //
00008 // This library is free software; you can redistribute it and/or
00009 // modify it under the terms of the GNU Library General Public
00010 // License as published by the Free Software Foundation; either
00011 // version 2 of the License, or (at your option) any later version.
00012 //
00013 // This library is distributed in the hope that it will be useful,
00014 // but WITHOUT ANY WARRANTY; without even the implied warranty of
00015 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00016 // Library General Public License for more details.
00017 //
00018 // You should have received a copy of the GNU Library General Public
00019 // License along with this library; if not, write to the Free Software
00020 // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
00021 // USA.
00022 //
00023 // Please report all bugs and problems to openvl-devel@lists.sf.net or
00024 // at the OpenVL website.
00025 //
00026 
00027 
00028 /*
00029  * This file will have all enum definitions for OpenVL
00030  */
00031 
00032 #ifndef _vlEnums_h
00033 #define _vlEnums_h
00034 
00035 #include <vector>
00036 #include <string>
00037 
00038 #include "vlconstants.h"
00039 
00043 typedef enum
00044 {
00045   SignedInt8,
00046   UnsignedInt8,
00047   SignedInt16,
00048   UnsignedInt16,
00049   SignedInt32,
00050   UnsignedInt32,
00051   Float,
00052   Double,
00053         TripleUInt8,
00054         ColorRGBu8,
00055   ColorRGBAu8,
00056   UnknownDataType
00057 
00058 /*
00059   VL_UNSIGNED_BYTE,
00060   VL_BYTE,
00061   VL_UNSIGNED_SHORT,
00062   VL_SHORT,
00063   VL_UNSIGNED_INT,
00064   VL_INT,
00065   VL_FLOAT,
00066   VL_DOUBLE,
00067   VL_COLOR_FLOAT,
00068   VL_COLOR_24BITRGB,
00069   VL_OTHER
00070 */
00071 } vlDataType;
00072 
00073 
00074 /*
00075  * Defines the type of data layout. This is just a smart way to simulate an enum.
00076  *
00077  * @see vlVoxelOperation
00078  */
00079 typedef uint16 vlLayoutType;
00080 
00098 class vlLayout {
00099   public:
00101   static const vlLayoutType VirtualCall = 1;
00102 
00104   static const vlLayoutType Generic = 2;
00105 
00107   static const vlLayoutType Linear = 10;
00108 
00110   static const vlLayoutType Unknown1 = 1000;
00111   static const vlLayoutType Unknown2 = 1001;
00112   static const vlLayoutType Unknown3 = 1002;
00113   static const vlLayoutType Unknown4 = 1003;
00114   static const vlLayoutType Unknown5 = 1004;
00115   static const vlLayoutType Unknown6 = 1005;
00116   static const vlLayoutType Unknown7 = 1006;
00117   static const vlLayoutType Unknown8 = 1007;
00118   static const vlLayoutType Unknown9 = 1008;
00119   static const vlLayoutType Unknown10 = 1009;
00120 
00125   static const vlLayoutType DefaultLayout = VirtualCall;
00126 
00128   static std::vector<vlLayoutType> supported() { return m_supportedLayouts; };
00129 
00130 protected:
00139   static const std::vector<vlLayoutType> m_supportedLayouts;
00140 };
00141 
00142 
00143 /*
00144  * Defines the type of interpolation. This is just a smart way to simulate an enum.
00145  *
00146  * @see vlInterpolation
00147  */
00148 typedef uint16 vlInterpolationType;
00149 
00153 class vlInterpolation {
00154 public:
00155   // "0" is reserved for unknown. Do not use it.
00156   
00157   static const vlInterpolationType NearestNeighbor = 1;
00158   static const vlInterpolationType TriLinear = 2;
00159 
00163   static std::string name(int index);
00164 };
00165 
00166 /*
00167  * Defines the type of voxel operation. This is just a smart way to simulate an enum.
00168  *
00169  * @see vlVoxelOperation
00170  */
00171 typedef uint16 vlVoxelOpType;
00172 
00176 class vlVoxelOp {
00177 public:
00178   // "0" is reserved for unknown. Do not use it.
00179 
00180   static const vlVoxelOpType Unknown = 0;
00181   static const vlVoxelOpType CentralDiff = 10;
00182   static const vlVoxelOpType Sobel = 11;
00183 
00184   static const vlVoxelOpType Anonymous = 10000;
00185 
00186   static const vlVoxelOpType AnonymousMax = 20000;
00187 
00188 
00192   static std::string name(int index);
00193 };
00194 
00195 
00196 
00200 typedef enum 
00201 {
00202   VL_X_AXIS,
00203   VL_Y_AXIS,
00204   VL_Z_AXIS,
00205   VL_OTHER_AXIS
00206 } vlAxis;           
00207 
00211 typedef enum
00212 {
00213   VL_OR,
00214   VL_XOR,
00215   VL_AND,
00216   VL_NOR,
00217   VL_REPLACE,     // replace destination bits by source bits
00218   VL_NOCHANGE     // do not change the destination bits
00219 } vlBitOperation;
00220 
00221 
00223 
00224 
00225 
00226 
00227 typedef enum
00228 {
00229   VL_BIORAD_CONFOCAL_DATA,
00230   VL_MAGNETIVLRESONANCE_DATA,
00231   VL_COMPUTED_TOMOGRAPHY_DATA,
00232   VL_SIMULATION_DATA,
00233   VL_BINARY_VOXELIZED_DATA,
00234   VL_FUZZY_VOXELIZED_DATA,
00235   VL_FUN_VOXELIZED_DATA,
00236   VL_OTHER_DATA_ORIGIN,
00237   VL_UNSPECIFIED_ORIGIN
00238 } vlDataOrigin;
00239 
00240 typedef enum
00241 {
00242   VL_ORIGINAL_DATA,
00243   VL_RESAMPLED_DATA,
00244   VL_RESAMPLED_FILTERED_DATA,
00245   VL_FILTERED_DATA,
00246   VL_OTHER_DATA_MODIFICATION,
00247   VL_UNSPECIFIED_MODIFICATION
00248 } vlDataModification;
00249 
00250 typedef enum
00251 {
00252   VL_NO_COMPRESSION,
00253   VL_RUN_LENGTH_ENCODE,
00254   VL_UNSPECIFIED_COMPRESSION
00255 } vlCompressionType;
00256 
00257 //#define VL_SLICE_MAGIC 11111
00258 
00259 typedef enum
00260 {
00261   VL_NO_ICON,
00262   VL_RGB,
00263   VL_GREYSCALE,
00264   VL_RGBA
00265 } vlIconFormat;
00266 
00267 
00268 
00269 #endif // _vlEnums_h

Generated on Fri Mar 18 11:33:13 2005 for OpenVL by doxygen 1.3.3