GridIsosurface.hpp

00001 #ifndef __BASEOP_GRIDISOSURFACE_HPP
00002 #define __BASEOP_GRIDISOSURFACE_HPP
00003 
00004 #include <grid/Grid.hpp>
00005 #include <bundle/Slice.hpp>
00006 
00007 #include "gridopDllApi.h"
00008 
00009 
00010 namespace Fiber
00011 {
00012 
00013 struct  gridop_API IsoException : std::exception
00014 {
00015         enum Code 
00016         { 
00017                 NO_ISO_ERROR,
00018                 NO_INPUT_COORDINATES,
00019                 NO_INPUT_FIELD,
00020                 NO_FRAGMENT_COORDINATES,
00021                 NO_SUPPORTED_DATATYPE,
00022 
00023                 NO_FRAGMENT_OFFSET_FOR_GLOBAL_COORDINATES,
00024 
00025                 UNDEFINED_ISO_ERROR 
00026         } 
00027 
00028         code; 
00029 
00030         IsoException(Code c)
00031         : code(c)
00032         {} 
00033 
00034         ~IsoException() throw();
00035 
00036         override const char*what();
00037 };
00038 
00039 
00049 extern gridop_API Grid&ComputeIsosurface(double Isolevel, 
00050                                          const Ageable&Trigger,
00051                                          const Grid&RegularGrid,
00052                                          const string&fieldname,
00053                                          Slice&TimeStep, 
00054                                          const string&isosurfacename,
00055                                          double precision);
00056 
00057 } // namespace Fiber
00058 
00059 #endif