00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef SOTVIZTEXTUREPREPROCESSOR_H
00024 #define SOTVIZTEXTUREPREPROCESSOR_H
00025
00026 #include <Inventor/image/SbRasterImage.h>
00027 #include <TerrainViz/nodes/SoTVizPreprocessor.h>
00028 #include <TerrainViz/SbTVizTextureList.h>
00029
00030
00031 class Array2Duchar3;
00032
00033 class SoDEPRECATED SoTVizTexturePreprocessor : public SoTVizPreprocessor
00072 {
00073 public:
00074
00075
00079 SoTVizTexturePreprocessor();
00080
00081
00085 virtual ~SoTVizTexturePreprocessor();
00086
00087
00093 SbBool process();
00094
00098 void setMaximumDepth(int maxDepth);
00099
00103 int getQuadTreeDepth() const;
00104
00111 static void setMaxTextureSize(int size);
00112
00113
00117 static int getMaxTextureSize();
00118
00119
00123 SbBool addFile(const SbString& filePath);
00124
00131 SbBool addFile(const SbString& filePath, const SbVec2d& origin, const SbVec2d& orientation,
00132 const SbVec2d& step, TVIZUnits units);
00133
00134
00141 SbBool addOverlayFile(const SbString& filePath, const SbVec2d& origin, const SbVec2d& orientation,
00142 const SbVec2d& step, TVIZUnits units);
00143
00144
00151 SbBool writeToXML(const SbString& fileName);
00152
00153
00154 private:
00155
00156
00157 private:
00158
00159 static int m_maxTextureSize;
00160
00161 SbBool* m_levelAvailability;
00162 SbPList m_overlayFiles;
00163
00164 class TVIZFileInfo {
00165 public:
00166 SbString fileName;
00167 SbVec2s position;
00168 int level;
00169 SbVec2s borders;
00170 };
00171
00172 class TexTree {
00173 public:
00174 int level;
00175 SbVec2d step;
00176 };
00177
00178
00179 SbPList m_fileList;
00180 int depth;
00181 int m_maxDepth;
00182
00183
00184 TVIZInputFile* addRaster(const SbString& filePath, const SbVec2d& origin, const SbVec2d& orientation, const SbVec2d& step, TVIZUnits units, SbBool isOverlay);
00185 SbBool isFileNecessary(TVIZInputFile* inFile);
00186 SbBool readRaster(TVIZInputFile* file, SbRasterImage &rasterImage, SbBool infoOnly);
00187 void loadAndTransformGeoTiff(TVIZInputFile* g0, Array2Duchar4*& zoneBuffer, SbBox2d& resultBox, SbVec2s& resultSize);
00188 void loadAndTransformRaster(TVIZInputFile* g0, SbTVizTexture*& srcTex);
00189 void mergeInPatch(TVIZInputFile* g0, SbBox2d& resultBox, Array2Duchar4* patchBuffer, SbBox2d& patchGeodeticROI, TexTree* levelList, int level);
00190 };
00191
00192
00193 #endif
00194
00195
00196