diff --git a/Code/Common/otbImageRegionTileMapSplitter.txx b/Code/Common/otbImageRegionTileMapSplitter.txx index 1fa85027437b941a7117afcee9a4feacf8cb9c50..261b229080cd7343b9dc27e1c28190bcd767cd40 100644 --- a/Code/Common/otbImageRegionTileMapSplitter.txx +++ b/Code/Common/otbImageRegionTileMapSplitter.txx @@ -18,8 +18,9 @@ PURPOSE. See the above copyright notices for more information. =========================================================================*/ #ifndef __otbImageRegionTileMapSplitter_txx #define __otbImageRegionTileMapSplitter_txx + #include "otbImageRegionTileMapSplitter.h" -#include <math.h> +#include "otbMath.h" namespace otb { @@ -49,8 +50,8 @@ ImageRegionTileMapSplitter<VImageDimension> // determine the actual number of pieces that will be generated SizeValueType range = regionSize[splitAxis]; - int valuesPerPiece = ((int)::ceil(range/((double)requestedNumber*256))) * 256; - int maxPieceUsed = (int)::ceil(range/(double)valuesPerPiece); + int valuesPerPiece = static_cast<int>(vcl_ceil(static_cast<double>(range/((double)requestedNumber*256)) ) ) * 256; + int maxPieceUsed = static_cast<int>(vcl_ceil(static_cast<double>(range/(double)valuesPerPiece))); return maxPieceUsed + 1; } @@ -90,8 +91,8 @@ ImageRegionTileMapSplitter<VImageDimension> // determine the actual number of pieces that will be generated SizeValueType range = regionSize[splitAxis]; - int valuesPerPiece = ((int)::ceil(range/((double)numberOfPieces*256))) * 256; - int maxPieceUsed = (int)::ceil(range/(double)valuesPerPiece); + int valuesPerPiece = static_cast<int>((int)vcl_ceil(static_cast<double>(range/((double)numberOfPieces*256)))) * 256; + int maxPieceUsed = static_cast<int>(vcl_ceil(static_cast<double>(range/(double)valuesPerPiece))); // Split the region if ((int) i == maxPieceUsed-1) @@ -105,7 +106,7 @@ ImageRegionTileMapSplitter<VImageDimension> { //First piece may not contain a whole piece //splitIndex stay at splitRegion.GetIndex(); - splitSize[splitAxis] = (((int)::floor(splitIndex[splitAxis]/valuesPerPiece))+1) + splitSize[splitAxis] = ((static_cast<int>(vcl_floor(static_cast<double>(splitIndex[splitAxis]/valuesPerPiece))))+1) *valuesPerPiece - splitIndex[splitAxis]; } if ((int) i < maxPieceUsed-1)