00001
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035
00036 #pragma once
00037
00038 class K3dReaderFile : public K3dFile
00039 {
00040 public:
00041 K3dReaderFile() {}
00042 K3dReaderFile ( const std::string& _rFileName )
00043 {
00044 Open ( _rFileName );
00045 }
00049 bool Open ( const std::string& _rFileName )
00050 {
00051 return OpenForRead ( _rFileName );
00052 }
00058 int Read ( char* _strBuf, size_t _tLen )
00059 {
00060 assert ( Good() );
00061 return fread ( reinterpret_cast<void*> ( _strBuf ), sizeof ( char ), _tLen, GetFile() );
00062 }
00066 int Read ( std::string& _rStr )
00067 {
00068 long lLen;
00069 int iVal = Read ( lLen );
00070 _rStr.resize ( lLen );
00071 iVal += Read ( &_rStr[0], lLen );
00072 return lLen;
00073 }
00077 int Read ( char& _rcVal )
00078 {
00079 return Read ( reinterpret_cast<char*> ( &_rcVal ), sizeof ( char ) );
00080 }
00084 int Read ( unsigned char& _rucVal )
00085 {
00086 return Read ( reinterpret_cast<char*> ( &_rucVal ), sizeof ( unsigned char ) );
00087 }
00091 int Read ( short& _rsVal )
00092 {
00093 return Read ( reinterpret_cast<char*> ( &_rsVal ), sizeof ( short ) );
00094 }
00098 int Read ( unsigned short& _rusVal )
00099 {
00100 return Read ( reinterpret_cast<char*> ( &_rusVal ), sizeof ( unsigned short ) );
00101 }
00105 int Read ( long& _rlVal )
00106 {
00107 return Read ( reinterpret_cast<char*> ( &_rlVal ), sizeof ( long ) );
00108 }
00112 int Read ( unsigned long& _rulVal )
00113 {
00114 return Read ( reinterpret_cast<char*> ( &_rulVal ), sizeof ( unsigned long ) );
00115 }
00119 int Read ( size_t& _tVal )
00120 {
00121 return Read ( reinterpret_cast<char*> ( &_tVal ), sizeof ( size_t ) );
00122 }
00126 int Read ( float& _rfVal )
00127 {
00128 return Read ( reinterpret_cast<char*> ( &_rfVal ), sizeof ( float ) );
00129 }
00133 int Read ( double& _rdVal )
00134 {
00135 return Read ( reinterpret_cast<char*> ( &_rdVal ), sizeof ( double ) );
00136 }
00137 };
00138