00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020 #ifndef OST_IO_DF3_HANDLER_HH
00021 #define OST_IO_DF3_HANDLER_HH
00022
00023
00024
00025
00026 #include "map_io_handler.hh"
00027
00028 namespace ost { namespace io {
00029
00030 class DLLEXPORT_OST_IO DF3: public ImageFormatBase
00031 {
00032 public:
00033
00034 DF3(bool normalize_on_save = false);
00035
00036 bool GetNormalizeOnSave() const;
00037 void SetNormalizeOnSave(bool normalize_on_save);
00038 Real GetMaximum() const;
00039 Real GetMinimum() const;
00040 static String FORMAT_STRING;
00041 static String FORMAT_NAME_STRING;
00042 static String FORMAT_ALIGNMENT_STRING;
00043
00044 private:
00045
00046 bool normalize_on_save_;
00047 };
00048
00049 class DLLEXPORT_OST_IO DF3MapIOHandler: public MapIOHandler
00050 {
00051 public:
00052 virtual void Import(img::MapHandle& sh, const boost::filesystem::path& loc,
00053 const ImageFormatBase& formatstruct);
00054 virtual void Import(img::MapHandle& sh, std::istream& loc,
00055 const ImageFormatBase& formatstruct);
00056 virtual void Export(const img::MapHandle& sh, const boost::filesystem::path& loc,
00057 const ImageFormatBase& formatstruct) const;
00058 virtual void Export(const img::MapHandle& sh, std::ostream& loc,
00059 const ImageFormatBase& formatstruct) const;
00060 static bool MatchContent(unsigned char* header);
00061 static bool MatchType(const ImageFormatBase& type);
00062 static bool MatchSuffix(const String& loc);
00063
00064 static bool ProvidesImport() { return false; }
00065 static bool ProvidesExport() { return true; }
00066
00067 static String GetFormatName() { return "DF3"; };
00068 static String GetFormatDescription() { return "PovRay Density file format"; };
00069 };
00070
00071 typedef MapIOHandlerFactory<DF3MapIOHandler> MapIODF3HandlerFactory;
00072
00073 }}
00074
00075 #endif