00001 #ifndef HW2DREADER_H 00002 #define HW2DREADER_H 00003 00004 #include "HW2DReaderCommon.h" 00005 00006 #include "dwf/dwfx/Constants.h" 00007 00008 class HW2DReader : public WT_FileExt 00009 { 00010 public: 00011 HW2DReader( 00012 DWFInputStream * rW2DStream, 00013 HInputHandlerOptions * pInputHandlerOptions, 00014 HC_KEY model_key, 00015 bool rebaseModel, 00016 HInputHandler * m); 00017 00018 HW2DReader( 00019 DWFToolkit::DWFResource * pResource, 00020 HInputHandlerOptions * pInputHandlerOptions, 00021 HC_KEY model_key, 00022 bool rebaseModel, 00023 HInputHandler * m); 00024 00025 virtual ~HW2DReader() { delete m_pReaderCommon; } 00026 00027 void init(); 00028 void GetExtents(double & x, double & y); 00029 WT_Result read(double z_separation, double depth_range) { return m_pReaderCommon->read(z_separation, depth_range); } 00030 00031 WT_Result process_stream_close() { return m_pReaderCommon->process_stream_close(); } 00032 WT_Result process_stream_end_seek(){ return m_pReaderCommon->process_stream_end_seek(); } 00033 WT_Result process_stream_open(){ return m_pReaderCommon->process_stream_open(); } 00034 WT_Result process_stream_read(int desired_bytes, int & bytes_read, void * buffer) 00035 { return m_pReaderCommon->process_stream_read(desired_bytes, bytes_read, buffer); } 00036 WT_Result process_stream_seek(int distance, int & amount_seeked) 00037 { return m_pReaderCommon->process_stream_seek (distance, amount_seeked); } 00038 WT_Result process_stream_tell(unsigned long * current_file_pointer_position) 00039 { return m_pReaderCommon->process_stream_tell (current_file_pointer_position); } 00040 WT_Result process_stream_write(int size, void const * buffer) 00041 { return m_pReaderCommon->process_stream_write(size, buffer); } 00042 00043 private: 00044 HW2DReaderCommon * m_pReaderCommon; 00045 }; 00046 00047 #ifndef DWFIO_SUPPORT_ONLY_LEGACY_VERSIONS 00048 #include "Access.h" 00049 #include "dwf/XAML/XamlFile.h" 00050 class HW2DReaderXaml : public WT_XAML_File //WT_FileExt 00051 { 00052 public: 00053 HW2DReaderXaml( 00054 DWFToolkit::DWFResource * pResource, 00055 DWFToolkit::DWFSection * pSection, 00056 HInputHandlerOptions * pInputHandlerOptions, 00057 HC_KEY model_key, 00058 bool rebaseModel, 00059 HInputHandler * m, 00060 bool is_dwfx); 00061 00062 virtual ~HW2DReaderXaml(); 00063 00064 void init(); 00065 00066 WT_Result read(double z_separation, double depth_range) { return m_pReaderCommon->read(z_separation, depth_range); } 00067 00068 WT_Result process_stream_close() { return m_pReaderCommon->process_stream_close(); } 00069 WT_Result process_stream_end_seek() { return m_pReaderCommon->process_stream_end_seek(); } 00070 WT_Result process_stream_open() { return m_pReaderCommon->process_stream_open(); } 00071 WT_Result process_stream_read(int desired_bytes, int & bytes_read, void * buffer) 00072 { return m_pReaderCommon->process_stream_read(desired_bytes, bytes_read, buffer); } 00073 WT_Result process_stream_seek(int distance, int & amount_seeked) 00074 { return m_pReaderCommon->process_stream_seek (distance, amount_seeked); } 00075 WT_Result process_stream_tell(unsigned long * current_file_pointer_position) 00076 { return m_pReaderCommon->process_stream_tell (current_file_pointer_position); } 00077 WT_Result process_stream_write(int size, void const * buffer) 00078 { return m_pReaderCommon->process_stream_write(size, buffer); } 00079 00080 private: 00081 HW2DReaderCommon * m_pReaderCommon; 00082 Access * m_pAccess; 00083 }; 00084 #endif 00085 00086 #endif //HW2DREADER_H