00001
00069 #ifndef INC_SPATMOD_IMAGETARGETTILESETFILE_H
00070 #define INC_SPATMOD_IMAGETARGETTILESETFILE_H
00071
00072 #ifndef INC_SPATMOD_IMAGETARGETTILESET_H
00073 #include <spatmod/imagetargettileset.h>
00074 #endif
00075
00076 #ifndef INC_MI32_FILEPATH_H
00077 #include <mi32/filepath.h>
00078 #endif
00079
00080 namespace SPATMOD {
00081 namespace IMAGE {
00082
00083 class TARGET_FILE;
00084
00085
00086
00088 class TARGET_TILESET_FILE : public TARGET_TILESET {
00089 public:
00090
00092 virtual ~TARGET_TILESET_FILE ();
00093
00095 bool GetCreateAdditionalFiles (
00096 ) const { return (m_CreateAdditionalFiles); }
00097
00099 bool GetDeleteAfterZip (
00100 ) const { return (m_DeleteAfterZip); }
00101
00103 bool GetMakeTileMap (
00104 ) const { return (m_MakeTileMap); }
00105
00107 const FILEPATH& GetTileFolderBasePath (
00108 ) const { return (m_TileFolderBasePath); }
00109
00111 bool GetUsePalette (
00112 ) const { return (m_UsePalette); }
00113
00115 ERRVALUE CreateCatalogExcludeFile ();
00116
00118 double GetScale () const { return (m_Scale); }
00119
00120 INT32 GetScaleNumerator () const { return (m_ScaleNumerator); }
00121
00122 INT32 GetScaleDenominator () const { return (m_ScaleDenominator); }
00123
00124 INT64 GetPrescaleOffset () const { return (m_PrescaleOffset); }
00125
00126 INT64 GetPostscaleOffset () const { return (m_PostscaleOffset); }
00127
00128 double GetPixelValueMin () const { return (m_PixelValueMin); }
00129
00130 double GetPixelValueMax () const { return (m_PixelValueMax); }
00131
00133 bool GetZipOutput (
00134 ) const { return (m_ZipOutput); }
00135
00137 void SetCreateAdditionalFiles (
00138 bool CreateAdditionalFiles
00139 ) { m_CreateAdditionalFiles = CreateAdditionalFiles; }
00140
00142 void SetMakeTileMap (
00143 bool MakeTileMap
00144 ) { m_MakeTileMap = MakeTileMap; }
00145
00146 void SetPixelValueRange (
00147 double PixelValueMin,
00148 double PixelValueMax
00149 ) { m_PixelValueMin = PixelValueMin; m_PixelValueMax = PixelValueMax; }
00150
00152 void SetScale (
00153 double Scale
00154 ) { m_Scale = Scale; }
00155
00156 void SetScaleRational (
00157 INT32 Numerator,
00158 INT32 Denominator
00159 ) { m_ScaleNumerator = Numerator; m_ScaleDenominator = Denominator; m_Scale = (double)Numerator/(double)Denominator; }
00160
00161 void SetPrescaleOffset (
00162 INT64 offset
00163 ) { m_PrescaleOffset = offset; }
00164
00165 void SetPostscaleOffset (
00166 INT64 offset
00167 ) { m_PostscaleOffset = offset; }
00168
00170 void SetTileFolderBasePath (
00171 const FILEPATH& filepath
00172 ) { m_TileFolderBasePath = filepath; }
00173
00176 void SetUsePalette (
00177 bool UsePalette = true
00178 ) { m_UsePalette = UsePalette; }
00179
00181 void SetZipOutput (
00182 bool ZipOutput = true,
00183 bool DeleteAfterZip = false
00184 ) { m_ZipOutput = ZipOutput; m_DeleteAfterZip = DeleteAfterZip; }
00185
00186 protected:
00187
00189 TARGET_TILESET_FILE (
00190 STAGE *pInputStage,
00191 const IMAGE::TILESET& tileset
00192 );
00193
00195 TARGET_TILESET_FILE (
00196 STAGE *pInputStage,
00197 INT32 TileSize,
00198 IMAGE::TILESET::PROFILE profile,
00199 const IMAGE::FORMAT format
00200 );
00201
00203 TARGET_TILESET_FILE (
00204 STAGE *pInputStage,
00205 INT32 TileSize,
00206 IMAGE::TILESET::PROFILE profile
00207 );
00208
00210 ERRVALUE CreateTargetFile (
00211 IMAGE::STAGE *pStageInput,
00212 const FILEPATH& filepath,
00213 const IMAGE::FORMAT& format,
00214 IMAGE::TARGET_FILE *& pTargetFile
00215 ) const;
00216
00218 ERRVALUE CreateTargetFile (
00219 IMAGE::STAGE *pStageInput,
00220 const FILEPATH& filepath,
00221 bool HasNullCells,
00222 IMAGE::TARGET_FILE *& pTargetFile
00223 ) const;
00224
00227 const IMAGE::FORMAT* FindTileFile (
00228 FILEPATH& filepath,
00229 const LPOINT3D& TileIdx
00230 ) const { return (v_FindTileFile(filepath,TileIdx)); }
00231
00233 ERRVALUE GenerateTileFilePath (
00234 FILEPATH& filepath,
00235 const LPOINT3D& TileIdx,
00236 bool HasNullCells,
00237 bool CreateFolder
00238 ) const { return (v_GenerateTileFilePath(filepath,TileIdx,HasNullCells,CreateFolder)); }
00239
00243 virtual const IMAGE::FORMAT* v_FindTileFile (
00244 FILEPATH& filepath,
00245 const LPOINT3D& TileIdx
00246 ) const;
00247
00251 virtual ERRVALUE v_GenerateTileFilePath (
00252 FILEPATH& filepath,
00253 const LPOINT3D& TileIdx,
00254 bool HasNullCells,
00255 bool CreateFolder
00256 ) const;
00257
00260 virtual ERRVALUE v_WriteTile (
00261 SOURCE_MEMORY& SourceTile,
00262 const LPOINT3D& TileIdx,
00263 bool HasNullCells
00264 );
00265
00266 private:
00267 #ifndef GENERATING_DOXYGEN_OUTPUT
00268 FILEPATH m_TileFolderBasePath;
00269 bool m_ZipOutput;
00270 bool m_DeleteAfterZip;
00271 bool m_CreateAdditionalFiles;
00272 bool m_UsePalette;
00273 bool m_MakeTileMap;
00274 double m_PixelValueMin;
00275 double m_PixelValueMax;
00276 double m_Scale;
00277 INT32 m_ScaleNumerator;
00278 INT32 m_ScaleDenominator;
00279 INT64 m_PrescaleOffset;
00280 INT64 m_PostscaleOffset;
00281
00282
00283 TARGET_TILESET_FILE (const TARGET_TILESET_FILE&);
00284 TARGET_TILESET_FILE& operator= (const TARGET_TILESET_FILE&);
00285 #endif // GENERATING_DOXYGEN_OUTPUT
00286
00289 virtual ERRVALUE v_CreateTargetFile (
00290 IMAGE::STAGE *pStageInput,
00291 const FILEPATH& filepath,
00292 const IMAGE::FORMAT& format,
00293 IMAGE::TARGET_FILE *& pTargetFile
00294 ) const;
00295
00296 };
00297
00298
00299
00300 }
00301 }
00302
00303 #endif // INC_SPATMOD_IMAGETARGETTILESETFILE_H
00304