glc_bsrep.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00023
00024 #ifndef GLC_BSREP_H_
00025 #define GLC_BSREP_H_
00026
00027 #include <QString>
00028 #include <QFileInfo>
00029 #include <QDataStream>
00030 #include <QUuid>
00031 #include <QDateTime>
00032 #include <QMutex>
00033
00034 #include "../glc_config.h"
00035 #include "glc_3drep.h"
00036
00039
00040
00041 class GLC_LIB_EXPORT GLC_BSRep
00042 {
00044
00046
00047 public:
00049 GLC_BSRep(const QString& absoluteFileName= QString(), bool useCompression= true);
00050
00052 GLC_BSRep(const GLC_BSRep&);
00053
00055 virtual ~GLC_BSRep();
00057
00058
00060
00061 public:
00062
00064 inline QString absoluteFileName() const
00065 {return m_FileInfo.fileName();}
00066
00068 bool isUsable(const QDateTime&);
00069
00071 GLC_3DRep loadRep();
00072
00074 GLC_BoundingBox boundingBox();
00075
00077 static QString suffix();
00079
00081
00083
00084 public:
00086 void setAbsoluteFileName(const QString&);
00087
00089 bool save(const GLC_3DRep&);
00090
00092 inline void setCompressionUsage(bool usage)
00093 {m_UseCompression= usage;}
00094
00096 inline void setCompressionLevel(int level)
00097 {m_CompressionLevel= level;}
00098
00100
00101 private:
00103
00105
00107 bool open(QIODevice::OpenMode);
00108
00110 bool close();
00111
00113 void writeHeader(const QDateTime&);
00114
00116 bool headerIsOk();
00117
00119 bool timeStampOk(const QDateTime&);
00120
00122
00124 private:
00126 static const QString m_Suffix;
00127
00129 static const QUuid m_Uuid;
00130
00132 static const quint32 m_Version;
00133
00135 QFileInfo m_FileInfo;
00136
00138 QFile* m_pFile;
00139
00141 QDataStream m_DataStream;
00142
00144 bool m_UseCompression;
00145
00147 int m_CompressionLevel;
00148
00150 static QMutex m_CompressionMutex;
00151
00152 };
00153
00154 #endif