diff --git a/Code/BasicFilters/otbBinaryImageDensityFunction.h b/Code/BasicFilters/otbBinaryImageDensityFunction.h index 16e34cde09932399a30ee12badf31c534290fc50..f111db714e7a36eefe4084d85f6364aa08f83cba 100644 --- a/Code/BasicFilters/otbBinaryImageDensityFunction.h +++ b/Code/BasicFilters/otbBinaryImageDensityFunction.h @@ -104,7 +104,7 @@ class ITK_EXPORT BinaryImageDensityFunction : protected: BinaryImageDensityFunction(); - ~BinaryImageDensityFunction(){}; + virtual ~BinaryImageDensityFunction(){}; void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/BasicFilters/otbBinaryImageToDensityImageFilter.h b/Code/BasicFilters/otbBinaryImageToDensityImageFilter.h index 3fc373f2b1020b828176d8c7258c7617f1eb3f78..018d779f3a65e9396ad861b50023aea699b4e5d7 100644 --- a/Code/BasicFilters/otbBinaryImageToDensityImageFilter.h +++ b/Code/BasicFilters/otbBinaryImageToDensityImageFilter.h @@ -82,7 +82,7 @@ protected: /** Constructor */ BinaryImageToDensityImageFilter(); /** Destructor */ - ~BinaryImageToDensityImageFilter(); + virtual ~BinaryImageToDensityImageFilter(); /** PrintSelf method */ void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/BasicFilters/otbChangeLabelImageFilter.h b/Code/BasicFilters/otbChangeLabelImageFilter.h index b2b6216ecb0aa305ccdab9c1759eed51728f1ebc..f3009f2611cc8e35f23f5f0aa7d1a047daa7308a 100644 --- a/Code/BasicFilters/otbChangeLabelImageFilter.h +++ b/Code/BasicFilters/otbChangeLabelImageFilter.h @@ -46,7 +46,7 @@ public: typedef typename TOutput::ValueType ValueType; VectorChangeLabel() {}; - ~VectorChangeLabel() {}; + virtual ~VectorChangeLabel() {}; typedef std::map<TInput, TOutput> ChangeMapType; @@ -228,7 +228,7 @@ template< class TInput, class TOutput> { public: VectorChangeLabel() {m_NumberOfComponents=1;}; - ~VectorChangeLabel() {}; + virtual ~VectorChangeLabel() {}; void SetNumberOfComponents(unsigned int nb) diff --git a/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.txx b/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.txx index 25ba273e0ca198eec11c9f4886039dea891a49ab..73ca172d7d6fb730e667223f2deb6d54458c8abf 100644 --- a/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.txx +++ b/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.txx @@ -98,13 +98,14 @@ FlexibleDistanceWithMissingValue< TVector > if (IsEuclidean()) return Superclass::Evaluate(a,b); - // FIXME throw NaN exception or not ?? + // FIXME throw NaN exception instaed of returning 0. ?? if ( IsMissingValue( a ) || IsMissingValue( b ) ) return 0.0; double temp = vcl_pow(vcl_abs(vcl_pow(a,this->Alpha) - vcl_pow(b,this->Alpha)), this->Beta) ; return temp ; } + template< class TVector > void FlexibleDistanceWithMissingValue< TVector > diff --git a/Code/BasicFilters/otbGaborFilterGenerator.h b/Code/BasicFilters/otbGaborFilterGenerator.h index 52f465169209e325e137ac2761a829e316e11759..c13ed623f4ebc0c2f9aac5a2d936b2dce5741a15 100644 --- a/Code/BasicFilters/otbGaborFilterGenerator.h +++ b/Code/BasicFilters/otbGaborFilterGenerator.h @@ -109,7 +109,7 @@ protected: /** constructor */ GaborFilterGenerator(); /** destructor */ - ~GaborFilterGenerator() {} + virtual ~GaborFilterGenerator() {} /** PrintSelf method */ void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/BasicFilters/otbImageAndVectorImageOperationFilter.h b/Code/BasicFilters/otbImageAndVectorImageOperationFilter.h index 08d54b4559fe1d770fa99c739dd524f0c5bd41f6..c4514290d4e3a2294cae0d815cc9dfb89e1497ed 100644 --- a/Code/BasicFilters/otbImageAndVectorImageOperationFilter.h +++ b/Code/BasicFilters/otbImageAndVectorImageOperationFilter.h @@ -42,7 +42,7 @@ public: { m_Operator = ADDITION;//1; }; - ~ImageAndVectorImageOperationFunctor(){}; + virtual ~ImageAndVectorImageOperationFunctor(){}; void SetOperator(OperatorType oper) @@ -216,7 +216,7 @@ public: protected: ImageAndVectorImageOperationFilter(); - ~ImageAndVectorImageOperationFilter(); + virtual ~ImageAndVectorImageOperationFilter(); /** This is a source, so it must set the spacing, size, and largest possible * region for the output image that it will produce. diff --git a/Code/BasicFilters/otbImportImageFilter.h b/Code/BasicFilters/otbImportImageFilter.h index a394ec83e2367b76f99f1c177313b31dec194239..eb908a3110824935619087829d82cb6b1252bde5 100644 --- a/Code/BasicFilters/otbImportImageFilter.h +++ b/Code/BasicFilters/otbImportImageFilter.h @@ -141,7 +141,7 @@ public: protected: ImportImageFilter(); - ~ImportImageFilter(); + virtual ~ImportImageFilter(); void PrintSelf(std::ostream& os, itk::Indent indent) const; /** This filter does not actually "produce" any data, rather it "wraps" diff --git a/Code/BasicFilters/otbImportVectorImageFilter.h b/Code/BasicFilters/otbImportVectorImageFilter.h index cc1c43bbd1b82236bb493f0ed1827ce694abe226..60ac579901387f70e1173535283ed84c958ee072 100644 --- a/Code/BasicFilters/otbImportVectorImageFilter.h +++ b/Code/BasicFilters/otbImportVectorImageFilter.h @@ -146,7 +146,7 @@ public: protected: ImportVectorImageFilter(); - ~ImportVectorImageFilter(); + virtual ~ImportVectorImageFilter(); void PrintSelf(std::ostream& os, itk::Indent indent) const; /** This filter does not actually "produce" any data, rather it "wraps" diff --git a/Code/BasicFilters/otbInverseLogPolarTransform.h b/Code/BasicFilters/otbInverseLogPolarTransform.h index 951a34b9ae2992414987adaa76420cdaad08283a..b18b1103edfbd4e6f5f340dca11e42f072481394 100644 --- a/Code/BasicFilters/otbInverseLogPolarTransform.h +++ b/Code/BasicFilters/otbInverseLogPolarTransform.h @@ -107,7 +107,7 @@ protected: /** Constructor */ InverseLogPolarTransform(); /** Destructor */ - ~InverseLogPolarTransform(); + virtual ~InverseLogPolarTransform(); /** PrintSelf method */ void PrintSelf(std::ostream &os,itk::Indent indent) const; diff --git a/Code/BasicFilters/otbLogPolarTransform.h b/Code/BasicFilters/otbLogPolarTransform.h index 47ed9da65caa8813d9f0f4f745d112df851bd62c..ded4ec920b73ac2a8284ae756908ff26fe872807 100644 --- a/Code/BasicFilters/otbLogPolarTransform.h +++ b/Code/BasicFilters/otbLogPolarTransform.h @@ -108,7 +108,7 @@ protected: /** Constructor */ LogPolarTransform(); /** Destructor */ - ~LogPolarTransform(); + virtual ~LogPolarTransform(); /** PrintSelf method */ void PrintSelf(std::ostream &os,itk::Indent indent) const; diff --git a/Code/BasicFilters/otbMeanShiftImageFilter.h b/Code/BasicFilters/otbMeanShiftImageFilter.h index 8f7960d4462f57bf3e7069e11819f59749f5b6a9..39589b6e993f9ea664125e546b24a4a3940eb27c 100644 --- a/Code/BasicFilters/otbMeanShiftImageFilter.h +++ b/Code/BasicFilters/otbMeanShiftImageFilter.h @@ -194,7 +194,7 @@ protected: /** Constructor */ MeanShiftImageFilter(); /** destructor */ - ~MeanShiftImageFilter() {}; + virtual ~MeanShiftImageFilter() {}; /**PrintSelf method */ virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/BasicFilters/otbMeanShiftVectorImageFilter.h b/Code/BasicFilters/otbMeanShiftVectorImageFilter.h index ab76351ac3905de26b130233a76afd00ad6b1db5..6ea47b3c3e107b10b0df609c3ac9994d6efc8f4a 100644 --- a/Code/BasicFilters/otbMeanShiftVectorImageFilter.h +++ b/Code/BasicFilters/otbMeanShiftVectorImageFilter.h @@ -87,7 +87,7 @@ protected: /** Constructor */ MeanShiftVectorImageFilter() {}; /** destructor */ - ~MeanShiftVectorImageFilter() {}; + virtual ~MeanShiftVectorImageFilter() {}; /**PrintSelf method */ virtual void PrintSelf(std::ostream& os, itk::Indent indent) const diff --git a/Code/BasicFilters/otbPersistentVectorizationImageFilter.h b/Code/BasicFilters/otbPersistentVectorizationImageFilter.h index 6b27aede59a6a2e4935f54c79587749b4e4cd71e..eca4d72bbb21098e78caeabdf00c8140ef8d0cbe 100644 --- a/Code/BasicFilters/otbPersistentVectorizationImageFilter.h +++ b/Code/BasicFilters/otbPersistentVectorizationImageFilter.h @@ -86,7 +86,7 @@ public: protected: PersistentVectorizationImageFilter(); - ~PersistentVectorizationImageFilter() {}; + virtual ~PersistentVectorizationImageFilter() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; virtual void GenerateData(); diff --git a/Code/BasicFilters/otbPointSetDensityFunction.h b/Code/BasicFilters/otbPointSetDensityFunction.h index e28a7aca6a8848d5c81927be57b9c6c0b4d46af1..afef5a85b62f2de69e125e7a04cf2552aaccbccb 100644 --- a/Code/BasicFilters/otbPointSetDensityFunction.h +++ b/Code/BasicFilters/otbPointSetDensityFunction.h @@ -65,7 +65,7 @@ public: protected: PointSetDensityFunction(); - ~PointSetDensityFunction() {}; + virtual ~PointSetDensityFunction() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/BasicFilters/otbSpatialObjectToImageDrawingFilter.h b/Code/BasicFilters/otbSpatialObjectToImageDrawingFilter.h index ac824b539b24384d57945e4fffae18bbde7c6e5e..649bee567de20f6a04be46fe9217d8c6182fb715 100644 --- a/Code/BasicFilters/otbSpatialObjectToImageDrawingFilter.h +++ b/Code/BasicFilters/otbSpatialObjectToImageDrawingFilter.h @@ -137,7 +137,7 @@ public: protected: SpatialObjectToImageDrawingFilter(); - ~SpatialObjectToImageDrawingFilter(); + virtual ~SpatialObjectToImageDrawingFilter(); virtual void GenerateOutputInformation(); // do nothing virtual void GenerateData(); diff --git a/Code/BasicFilters/otbStreamingMatrixTransposeMatrixImageFilter.h b/Code/BasicFilters/otbStreamingMatrixTransposeMatrixImageFilter.h index f1c782c057cce2b9c8a6980aceb2a43b8c3b6c6a..c9f7eab2b246583bd47003d706f2d621e313766f 100644 --- a/Code/BasicFilters/otbStreamingMatrixTransposeMatrixImageFilter.h +++ b/Code/BasicFilters/otbStreamingMatrixTransposeMatrixImageFilter.h @@ -167,7 +167,7 @@ public: protected: PersistentMatrixTransposeMatrixImageFilter(); - ~PersistentMatrixTransposeMatrixImageFilter() {}; + virtual ~PersistentMatrixTransposeMatrixImageFilter() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Multi-thread version GenerateData. */ virtual void ThreadedGenerateData (const RegionType& outputRegionForThread,int threadId); diff --git a/Code/BasicFilters/otbStreamingShrinkImageFilter.h b/Code/BasicFilters/otbStreamingShrinkImageFilter.h index 8e30d71f9f772ca4c9c6f1af5ad16263e05fcbc7..0c96e4aaff83a68e7591fb508f7275a13120ee4d 100644 --- a/Code/BasicFilters/otbStreamingShrinkImageFilter.h +++ b/Code/BasicFilters/otbStreamingShrinkImageFilter.h @@ -78,7 +78,7 @@ protected: /** Constructor */ StreamingShrinkImageFilter(); /** Destructor */ - ~StreamingShrinkImageFilter(); + virtual ~StreamingShrinkImageFilter(); /** PrintSelf method */ void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/BasicFilters/otbStreamingStatisticsImageFilter.h b/Code/BasicFilters/otbStreamingStatisticsImageFilter.h index 68eccc5a43d20f0dfc79bb913c7d165d5344807a..82416cee7c4dd8b889f3edaaaad9d1bc2a40a2b3 100644 --- a/Code/BasicFilters/otbStreamingStatisticsImageFilter.h +++ b/Code/BasicFilters/otbStreamingStatisticsImageFilter.h @@ -150,7 +150,7 @@ public: protected: PersistentStatisticsImageFilter(); - ~PersistentStatisticsImageFilter() {}; + virtual ~PersistentStatisticsImageFilter() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Multi-thread version GenerateData. */ diff --git a/Code/BasicFilters/otbVectorImageToAmplitudeImageFilter.h b/Code/BasicFilters/otbVectorImageToAmplitudeImageFilter.h index 4206d3cef6f30f7ecf376df7c630b8a4c5e324c4..c19ff6e127238dbd95eb51c833cc5172b3768e9b 100644 --- a/Code/BasicFilters/otbVectorImageToAmplitudeImageFilter.h +++ b/Code/BasicFilters/otbVectorImageToAmplitudeImageFilter.h @@ -30,7 +30,7 @@ class VectorToAmplitudeFunctor { public: VectorToAmplitudeFunctor() {}; - ~VectorToAmplitudeFunctor() {}; + virtual ~VectorToAmplitudeFunctor() {}; inline TOutput operator()(const TInput & A) { diff --git a/Code/BasicFilters/otbVectorRescaleIntensityImageFilter.h b/Code/BasicFilters/otbVectorRescaleIntensityImageFilter.h index 647c85d2f2667d3056c49acdd21fe032d1dd7e1c..f301874e6ce10682915a9b5470d819e9ae4eda5d 100644 --- a/Code/BasicFilters/otbVectorRescaleIntensityImageFilter.h +++ b/Code/BasicFilters/otbVectorRescaleIntensityImageFilter.h @@ -47,7 +47,7 @@ public: /// Constructor VectorAffineTransform() {} /// Desctructor - ~VectorAffineTransform() {} + virtual ~VectorAffineTransform() {} /// Accessors void SetOutputMaximum( TOutput a ) diff --git a/Code/BasicFilters/otbWindowedSincInterpolateImageFunctionBase.h b/Code/BasicFilters/otbWindowedSincInterpolateImageFunctionBase.h index efb3fdf95094ecaaff6308513241a118dabf1e06..8716b7c60e6698cc3dbcb835e3b428887f93dadd 100644 --- a/Code/BasicFilters/otbWindowedSincInterpolateImageFunctionBase.h +++ b/Code/BasicFilters/otbWindowedSincInterpolateImageFunctionBase.h @@ -174,7 +174,7 @@ public: protected: WindowedSincInterpolateImageFunctionBase(); - ~WindowedSincInterpolateImageFunctionBase(); + virtual ~WindowedSincInterpolateImageFunctionBase(); virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/ChangeDetection/otbCBAMIChangeDetector.h b/Code/ChangeDetection/otbCBAMIChangeDetector.h index 669713c6a67bcac09a746babcc10b983aadf609c..339f1b79529ef3a7a76fd5878c2d23772e4c3bdf 100644 --- a/Code/ChangeDetection/otbCBAMIChangeDetector.h +++ b/Code/ChangeDetection/otbCBAMIChangeDetector.h @@ -69,7 +69,7 @@ public: typedef typename VectorOfVectorType::iterator VecOfVecIteratorType; CBAMI() {}; - ~CBAMI() {}; + virtual ~CBAMI() {}; inline TOutput operator()( const TInput1 & itA, const TInput2 & itB) { diff --git a/Code/ChangeDetection/otbCorrelationChangeDetector.h b/Code/ChangeDetection/otbCorrelationChangeDetector.h index d4c723e7c96da1e332e330f935bbf9505ec9a28e..b2b252938ba637fbd6a99fde329035d24e5b518e 100644 --- a/Code/ChangeDetection/otbCorrelationChangeDetector.h +++ b/Code/ChangeDetection/otbCorrelationChangeDetector.h @@ -54,7 +54,7 @@ class CrossCorrelation { public: CrossCorrelation() {}; - ~CrossCorrelation() {}; + virtual ~CrossCorrelation() {}; inline TOutput operator()( const TInput1 & itA, const TInput2 & itB) { diff --git a/Code/ChangeDetection/otbJoinHistogramMIImageFilter.h b/Code/ChangeDetection/otbJoinHistogramMIImageFilter.h index d27a3ed137e768eb1e73cfdd827248b084088fdf..65e59e853836f85d84adcc86d076055562feff99 100644 --- a/Code/ChangeDetection/otbJoinHistogramMIImageFilter.h +++ b/Code/ChangeDetection/otbJoinHistogramMIImageFilter.h @@ -58,7 +58,7 @@ public: typedef double HistogramFrequencyType; typedef typename itk::Statistics::Histogram<HistogramFrequencyType, 2> HistogramType; JoinHistogramMI() {}; - ~JoinHistogramMI() {}; + virtual ~JoinHistogramMI() {}; inline TOutput operator()( const TInput1 & itA, const TInput2 & itB, const HistogramType* histogram) { diff --git a/Code/ChangeDetection/otbLHMIChangeDetector.h b/Code/ChangeDetection/otbLHMIChangeDetector.h index 1458a1619e7d6b66816f9c30878a48b16f70503c..9383c213de62536f80c274ef9c70663532dae198 100644 --- a/Code/ChangeDetection/otbLHMIChangeDetector.h +++ b/Code/ChangeDetection/otbLHMIChangeDetector.h @@ -77,7 +77,7 @@ public: LHMI() {}; - ~LHMI() {}; + virtual ~LHMI() {}; inline TOutput operator()( const TInput1 & itA, const TInput2 & itB) { diff --git a/Code/ChangeDetection/otbMeanDifferenceImageFilter.h b/Code/ChangeDetection/otbMeanDifferenceImageFilter.h index d8426797edb922d56aae327bc3e0fbd5a2a99b84..c009eeb5893e9b50586ed208b3d3fdfec999e27e 100644 --- a/Code/ChangeDetection/otbMeanDifferenceImageFilter.h +++ b/Code/ChangeDetection/otbMeanDifferenceImageFilter.h @@ -54,7 +54,7 @@ class MeanDifference { public: MeanDifference() {}; - ~MeanDifference() {}; + virtual ~MeanDifference() {}; inline TOutput operator()( const TInput1 & itA, const TInput2 & itB) { diff --git a/Code/ChangeDetection/otbMeanRatioImageFilter.h b/Code/ChangeDetection/otbMeanRatioImageFilter.h index ce6b93ec58ab9c8563218926466fbc01d7fe6849..209aa3c400bca249fb2ddba8111f48d32e66d32a 100644 --- a/Code/ChangeDetection/otbMeanRatioImageFilter.h +++ b/Code/ChangeDetection/otbMeanRatioImageFilter.h @@ -52,7 +52,7 @@ class MeanRatio { public: MeanRatio() {}; - ~MeanRatio() {}; + virtual ~MeanRatio() {}; inline TOutput operator()( const TInput1 & itA, const TInput2 & itB) { diff --git a/Code/Common/otbCommandLineArgumentParser.h b/Code/Common/otbCommandLineArgumentParser.h index abc1e72c632b20814c038470572d14596df5745a..39f8e8eacf3a76d0363caa5e800d4095574dd3b3 100644 --- a/Code/Common/otbCommandLineArgumentParser.h +++ b/Code/Common/otbCommandLineArgumentParser.h @@ -176,7 +176,7 @@ public: protected: CommandLineArgumentParseResult() {}; - ~CommandLineArgumentParseResult() {}; + virtual ~CommandLineArgumentParseResult() {}; private: @@ -261,7 +261,7 @@ public: bool failOnUnknownTrailingParameters = true); protected: CommandLineArgumentParser(); - ~CommandLineArgumentParser() {}; + virtual ~CommandLineArgumentParser() {}; private: diff --git a/Code/Common/otbExtractROI.h b/Code/Common/otbExtractROI.h index ada262a4c6421ab323cee4431b798bd3dc7741d8..e891267eab10f1537d4e522146a51aa412e7a7c3 100644 --- a/Code/Common/otbExtractROI.h +++ b/Code/Common/otbExtractROI.h @@ -80,7 +80,7 @@ public: protected: ExtractROI(); - ~ExtractROI() {}; + virtual ~ExtractROI() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; /** ExtractROI diff --git a/Code/Common/otbExtractROIBase.h b/Code/Common/otbExtractROIBase.h index 8ea855b4023956cf1522466f52e4fbf1092c3fff..5e32146c80898009babde178278191ee91634091 100644 --- a/Code/Common/otbExtractROIBase.h +++ b/Code/Common/otbExtractROIBase.h @@ -104,7 +104,7 @@ public: protected: ExtractROIBase(); - ~ExtractROIBase() {}; + virtual ~ExtractROIBase() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Common/otbGISTableSource.h b/Code/Common/otbGISTableSource.h index 31881ff12ee3ed5d4ff1602bb4de79692bf0522f..d0b7170627a84a0c99c7653272fda91938acd83e 100644 --- a/Code/Common/otbGISTableSource.h +++ b/Code/Common/otbGISTableSource.h @@ -63,7 +63,7 @@ class ITK_EXPORT GISTableSource : public itk::ProcessObject protected: GISTableSource(); - ~GISTableSource(); + virtual ~GISTableSource(); void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Common/otbGenericInterpolateImageFunction.h b/Code/Common/otbGenericInterpolateImageFunction.h index e93ac60e53d193ea71280a584141960091a260f5..5588bc99c8fad4603a0e4912138897fae16c06cd 100644 --- a/Code/Common/otbGenericInterpolateImageFunction.h +++ b/Code/Common/otbGenericInterpolateImageFunction.h @@ -112,7 +112,7 @@ public: protected: GenericInterpolateImageFunction(); - ~GenericInterpolateImageFunction(); + virtual ~GenericInterpolateImageFunction(); virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Call the superclass implementation and set the TablesHaveBeenGenerated diff --git a/Code/Common/otbImageList.h b/Code/Common/otbImageList.h index 86044ee2adb58bf9229c539552e558d5ade2c676..81f7f4eb490db2a8464fd0c6c32673328df05898 100644 --- a/Code/Common/otbImageList.h +++ b/Code/Common/otbImageList.h @@ -67,7 +67,7 @@ protected: /** Constructor */ ImageList() {}; /** Destructor */ - ~ImageList() {}; + virtual ~ImageList() {}; /** PrintSelf method */ void PrintSelf(std::ostream& os, itk::Indent indent) const { diff --git a/Code/Common/otbImageOfVectorsToMonoChannelExtractROI.h b/Code/Common/otbImageOfVectorsToMonoChannelExtractROI.h index 0a70115ecee5c324e2e04c86cb3542c4944eb289..77fc503133945aa8f2adfb82979d584de8812f32 100644 --- a/Code/Common/otbImageOfVectorsToMonoChannelExtractROI.h +++ b/Code/Common/otbImageOfVectorsToMonoChannelExtractROI.h @@ -81,7 +81,7 @@ public: protected: ImageOfVectorsToMonoChannelExtractROI(); - ~ImageOfVectorsToMonoChannelExtractROI() {}; + virtual ~ImageOfVectorsToMonoChannelExtractROI() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; /** ExtractImageFilter can produce an image which is a different diff --git a/Code/Common/otbImageRegionNonUniformMultidimensionalSplitter.h b/Code/Common/otbImageRegionNonUniformMultidimensionalSplitter.h index dd98d986f4eedf4ff3606565c5f92fbb0c91b94a..81155b046f7f2ed3f1aceb92ac84ba42c6f4b25f 100644 --- a/Code/Common/otbImageRegionNonUniformMultidimensionalSplitter.h +++ b/Code/Common/otbImageRegionNonUniformMultidimensionalSplitter.h @@ -105,7 +105,7 @@ public: protected: ImageRegionNonUniformMultidimensionalSplitter() {} - ~ImageRegionNonUniformMultidimensionalSplitter() {} + virtual ~ImageRegionNonUniformMultidimensionalSplitter() {} void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/Common/otbImageRegionTileMapSplitter.h b/Code/Common/otbImageRegionTileMapSplitter.h index b928783859a7d0d2ddc1ae89eed85e52789be705..650c2174bfbfe13de6e53ffb050556571da28848 100644 --- a/Code/Common/otbImageRegionTileMapSplitter.h +++ b/Code/Common/otbImageRegionTileMapSplitter.h @@ -121,7 +121,7 @@ public: protected: ImageRegionTileMapSplitter() {} - ~ImageRegionTileMapSplitter() {} + virtual ~ImageRegionTileMapSplitter() {} void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/Common/otbImageToVectorImageCastFilter.h b/Code/Common/otbImageToVectorImageCastFilter.h index 3813631d962dc0dd5dfda7c16055ca61eb137727..45d7a4417f1681e4a3489d7b93e6dae30f7c3adc 100644 --- a/Code/Common/otbImageToVectorImageCastFilter.h +++ b/Code/Common/otbImageToVectorImageCastFilter.h @@ -38,7 +38,7 @@ class VectorCast public: typedef typename TOutput::ValueType OutputValueType; VectorCast() {}; - ~VectorCast() {}; + virtual ~VectorCast() {}; bool operator!=(const VectorCast&) const { diff --git a/Code/Common/otbMacro.h b/Code/Common/otbMacro.h index 61acd04395134e4fcd7dd7227679607aa1f4136a..8c14ed0b79b6a8f8ad6f0e3de0723476ab5adda3 100644 --- a/Code/Common/otbMacro.h +++ b/Code/Common/otbMacro.h @@ -316,7 +316,7 @@ class Cleanup { public: Cleanup(std::strstream& ostr): m_StrStream(ostr) {} - ~Cleanup() + virtual ~Cleanup() { m_StrStream.rdbuf()->freeze(0); } diff --git a/Code/Common/otbMultiChannelExtractROI.h b/Code/Common/otbMultiChannelExtractROI.h index a7c25a4e8abf3c4e144dc27da8738828787a0ade..43383803503aec199e7949f66cb6ab8ace865955 100644 --- a/Code/Common/otbMultiChannelExtractROI.h +++ b/Code/Common/otbMultiChannelExtractROI.h @@ -120,7 +120,7 @@ public: protected: MultiChannelExtractROI(); - ~MultiChannelExtractROI() {}; + virtual ~MultiChannelExtractROI() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Reinitialize channels vector for multiple Update.*/ diff --git a/Code/Common/otbMultiToMonoChannelExtractROI.h b/Code/Common/otbMultiToMonoChannelExtractROI.h index de5b3d5982a6505059ca7db950e7f00c9ebbd266..f81a0e5c2d07f93100364e294ba6b346194de383 100644 --- a/Code/Common/otbMultiToMonoChannelExtractROI.h +++ b/Code/Common/otbMultiToMonoChannelExtractROI.h @@ -88,7 +88,7 @@ public: protected: MultiToMonoChannelExtractROI(); - ~MultiToMonoChannelExtractROI() {}; + virtual ~MultiToMonoChannelExtractROI() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; /** ExtractImageFilter can produce an image which is a different diff --git a/Code/Common/otbPathFunction.h b/Code/Common/otbPathFunction.h index fb95561b1dc578cc2d89ff35c2b6414b82b84d1b..5a35fa78398a5a7614ed8381ac9b08a7b892faec 100644 --- a/Code/Common/otbPathFunction.h +++ b/Code/Common/otbPathFunction.h @@ -76,7 +76,7 @@ public: protected: PathFunction(); - ~PathFunction() {} + virtual ~PathFunction() {} void PrintSelf(std::ostream& os, itk::Indent indent) const; InputPathConstPointer m_Path; diff --git a/Code/Common/otbVectorDataExtractROI.h b/Code/Common/otbVectorDataExtractROI.h index 4be06d60622963af86f66d9065ef6a568f0697af..b422b1c457b8c0bb5c4cd533dcb7758b3c2833e9 100644 --- a/Code/Common/otbVectorDataExtractROI.h +++ b/Code/Common/otbVectorDataExtractROI.h @@ -103,7 +103,7 @@ public: protected: VectorDataExtractROI(); - ~VectorDataExtractROI() {}; + virtual ~VectorDataExtractROI() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Method to compare the projection embedded in the cartoRegion And the the InputVectorData*/ diff --git a/Code/Common/otbVectorDataSource.h b/Code/Common/otbVectorDataSource.h index ccc7bf6ad35503f661265ef4dd17a2ade6712183..07377e95d273957e7e8f1d7576a45eea7ad9c0f4 100644 --- a/Code/Common/otbVectorDataSource.h +++ b/Code/Common/otbVectorDataSource.h @@ -63,7 +63,7 @@ class ITK_EXPORT VectorDataSource : public itk::ProcessObject protected: VectorDataSource(); - ~VectorDataSource(); + virtual ~VectorDataSource(); void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/DisparityMap/otbMIRegistrationFilter.h b/Code/DisparityMap/otbMIRegistrationFilter.h index c22e18f75b28b76c50700c4d4e877ee61ed6de56..5ebb5bb7f3206f7aa4b7e622ef7864fe64c8ad72 100644 --- a/Code/DisparityMap/otbMIRegistrationFilter.h +++ b/Code/DisparityMap/otbMIRegistrationFilter.h @@ -119,7 +119,7 @@ public: protected: MIRegistrationFilter(); - ~MIRegistrationFilter() {} + virtual ~MIRegistrationFilter() {} void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Initialize the state of filter and equation before each iteration. */ diff --git a/Code/DisparityMap/otbNCCRegistrationFilter.h b/Code/DisparityMap/otbNCCRegistrationFilter.h index 0fca41f3de2e32912f037d29e2c3eb23464ddd5c..7900c0e59fa73e1ce0a3afed100414ea1c2caf1c 100644 --- a/Code/DisparityMap/otbNCCRegistrationFilter.h +++ b/Code/DisparityMap/otbNCCRegistrationFilter.h @@ -132,7 +132,7 @@ public: protected: NCCRegistrationFilter(); - ~NCCRegistrationFilter() {} + virtual ~NCCRegistrationFilter() {} void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Initialize the state of filter and equation before each iteration. */ diff --git a/Code/DisparityMap/otbNCCRegistrationFunction.h b/Code/DisparityMap/otbNCCRegistrationFunction.h index 3e5681b0c794e27accf6c6e677c14a394ac525cc..48017ee82e4ab51023827ff3ed01e2383852ef7d 100644 --- a/Code/DisparityMap/otbNCCRegistrationFunction.h +++ b/Code/DisparityMap/otbNCCRegistrationFunction.h @@ -149,7 +149,7 @@ public: protected: NCCRegistrationFunction(); - ~NCCRegistrationFunction() {} + virtual ~NCCRegistrationFunction() {} void PrintSelf(std::ostream& os, itk::Indent indent) const; /** FixedImage image neighborhood iterator type. */ diff --git a/Code/DisparityMap/otbPointSetToDeformationFieldGenerator.h b/Code/DisparityMap/otbPointSetToDeformationFieldGenerator.h index b245e99038f147a644500feea21739aa9ab1eaac..b049b8a703a51975c7ce43cbda41e712781e8db9 100644 --- a/Code/DisparityMap/otbPointSetToDeformationFieldGenerator.h +++ b/Code/DisparityMap/otbPointSetToDeformationFieldGenerator.h @@ -32,7 +32,7 @@ class DistanceComparisonFunctor { public: DistanceComparisonFunctor() {}; - ~DistanceComparisonFunctor() {}; + virtual ~DistanceComparisonFunctor() {}; typedef std::vector<double> DistanceVectorType; void SetDistanceVector(DistanceVectorType &vec) diff --git a/Code/FeatureExtraction/otbAssociativeSymmetricalSumImageFilter.h b/Code/FeatureExtraction/otbAssociativeSymmetricalSumImageFilter.h index 0ad1fb5ede7f5cd24b351fe8e0c70821027d4149..83841921ac8a07165a7713716e84ed14c73315c0 100644 --- a/Code/FeatureExtraction/otbAssociativeSymmetricalSumImageFilter.h +++ b/Code/FeatureExtraction/otbAssociativeSymmetricalSumImageFilter.h @@ -47,7 +47,7 @@ class ITK_EXPORT AssociativeSymmetricalSum { public: AssociativeSymmetricalSum() {}; - ~AssociativeSymmetricalSum() {}; + virtual ~AssociativeSymmetricalSum() {}; inline TOutput operator()( const TInput1 X, const TInput2 Y) diff --git a/Code/FeatureExtraction/otbCompacityPathFunction.h b/Code/FeatureExtraction/otbCompacityPathFunction.h index 17f27fa511c5072b8745b9757ecec3be2ae4b327..620adabab689bd56079b9fbb08116562890743d7 100644 --- a/Code/FeatureExtraction/otbCompacityPathFunction.h +++ b/Code/FeatureExtraction/otbCompacityPathFunction.h @@ -71,7 +71,7 @@ public: protected: CompacityPathFunction() {}; - ~CompacityPathFunction() {}; + virtual ~CompacityPathFunction() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/FeatureExtraction/otbComplexMomentImageFunction.h b/Code/FeatureExtraction/otbComplexMomentImageFunction.h index 7c3a24b164e09d8ee396eebd693ba6ad5bab2c1d..769eecb7305a90b8e7fd6538c20497d1a8ae61c0 100644 --- a/Code/FeatureExtraction/otbComplexMomentImageFunction.h +++ b/Code/FeatureExtraction/otbComplexMomentImageFunction.h @@ -105,7 +105,7 @@ public: protected: ComplexMomentImageFunction(); - ~ComplexMomentImageFunction() {}; + virtual ~ComplexMomentImageFunction() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/FeatureExtraction/otbComplexMomentPathFunction.h b/Code/FeatureExtraction/otbComplexMomentPathFunction.h index b9da756c092fd4fdb9b802e3ad46b7a205be9cb5..1d53a6dd3dfa9bfb6f1c444cdf1957340d08a8b1 100644 --- a/Code/FeatureExtraction/otbComplexMomentPathFunction.h +++ b/Code/FeatureExtraction/otbComplexMomentPathFunction.h @@ -98,7 +98,7 @@ public: protected: ComplexMomentPathFunction(); - ~ComplexMomentPathFunction() {}; + virtual ~ComplexMomentPathFunction() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/FeatureExtraction/otbFlusserImageFunction.h b/Code/FeatureExtraction/otbFlusserImageFunction.h index a5bb476f588f489a34f844f3bba169b6b1f0632e..8b778527c5109de16281f8c6f4ec0a4810411ace 100644 --- a/Code/FeatureExtraction/otbFlusserImageFunction.h +++ b/Code/FeatureExtraction/otbFlusserImageFunction.h @@ -123,7 +123,7 @@ public: protected: FlusserImageFunction(); - ~FlusserImageFunction() {}; + virtual ~FlusserImageFunction() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/FeatureExtraction/otbFlusserPathFunction.h b/Code/FeatureExtraction/otbFlusserPathFunction.h index 9e56511c616e24d7940cc7501b96205fe3800521..a97cf5830b65e8d1c58160a21ad70bbfa0106ba8 100644 --- a/Code/FeatureExtraction/otbFlusserPathFunction.h +++ b/Code/FeatureExtraction/otbFlusserPathFunction.h @@ -97,7 +97,7 @@ public: protected: FlusserPathFunction(); - ~FlusserPathFunction() {}; + virtual ~FlusserPathFunction() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/FeatureExtraction/otbForwardFourierMellinTransformImageFilter.h b/Code/FeatureExtraction/otbForwardFourierMellinTransformImageFilter.h index 34debb692a5a1f1040b6d3b15736ca5543247369..00dab7d8fe0c39c09c7655cbde35a199b6154a42 100644 --- a/Code/FeatureExtraction/otbForwardFourierMellinTransformImageFilter.h +++ b/Code/FeatureExtraction/otbForwardFourierMellinTransformImageFilter.h @@ -133,7 +133,7 @@ public: protected: ForwardFourierMellinTransformImageFilter(); - ~ForwardFourierMellinTransformImageFilter() {}; + virtual ~ForwardFourierMellinTransformImageFilter() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Main Computation Method */ void GenerateData(); diff --git a/Code/FeatureExtraction/otbHessianToScalarImageFilter.h b/Code/FeatureExtraction/otbHessianToScalarImageFilter.h index 99fab2af9a076c14f499caaaf7c668e95c680269..e1340d8576799522ab0bda25d9c4aafb3213b26d 100644 --- a/Code/FeatureExtraction/otbHessianToScalarImageFilter.h +++ b/Code/FeatureExtraction/otbHessianToScalarImageFilter.h @@ -38,7 +38,7 @@ public: { m_Alpha = 1.0; } - ~HessianToScalar() {}; + virtual ~HessianToScalar() {}; inline TOutput operator()( const TInput & Hessian ) { diff --git a/Code/FeatureExtraction/otbHuImageFunction.h b/Code/FeatureExtraction/otbHuImageFunction.h index 31bcb5cc8aa627ae4de0d7237f57c0ef2f18a224..71d55e5ff55a26aa86cec90dcb5a5a1e95c2d61f 100644 --- a/Code/FeatureExtraction/otbHuImageFunction.h +++ b/Code/FeatureExtraction/otbHuImageFunction.h @@ -116,7 +116,7 @@ public: protected: HuImageFunction(); - ~HuImageFunction() {}; + virtual ~HuImageFunction() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/FeatureExtraction/otbHuPathFunction.h b/Code/FeatureExtraction/otbHuPathFunction.h index 46f798baca1a53d4e2a8c7fbf2401fc4546c91a9..def32656341a077f069e730eab5859f3e8a36a65 100644 --- a/Code/FeatureExtraction/otbHuPathFunction.h +++ b/Code/FeatureExtraction/otbHuPathFunction.h @@ -94,7 +94,7 @@ public: protected: HuPathFunction(); - ~HuPathFunction() {}; + virtual ~HuPathFunction() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/FeatureExtraction/otbImageToHessianDeterminantImageFilter.h b/Code/FeatureExtraction/otbImageToHessianDeterminantImageFilter.h index 604cf28893a9eaffc8291c7702c22275b0ebd5c4..1e97f295a210ddf2dc9e111ced1a60c69f3585bc 100644 --- a/Code/FeatureExtraction/otbImageToHessianDeterminantImageFilter.h +++ b/Code/FeatureExtraction/otbImageToHessianDeterminantImageFilter.h @@ -47,7 +47,7 @@ class HessianDeterminant { public: HessianDeterminant() {}; - ~HessianDeterminant() {}; + virtual ~HessianDeterminant() {}; /* * diff --git a/Code/FeatureExtraction/otbImageToLineSegmentVectorData.h b/Code/FeatureExtraction/otbImageToLineSegmentVectorData.h index f707ed73ed1edf4aec512264e257220eb767b2c7..5a5be70b29b550f696f9bb693e08e00e6fabc4f6 100644 --- a/Code/FeatureExtraction/otbImageToLineSegmentVectorData.h +++ b/Code/FeatureExtraction/otbImageToLineSegmentVectorData.h @@ -103,7 +103,7 @@ public PersistentImageFilter<TInputImage, TInputImage> protected: PersistentLineSegmentDetector(); - ~PersistentLineSegmentDetector() {}; + virtual ~PersistentLineSegmentDetector() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; virtual void ThreadedGenerateData (const RegionType& outputRegionForThread,int threadId); diff --git a/Code/FeatureExtraction/otbImageToPathListAlignFilter.h b/Code/FeatureExtraction/otbImageToPathListAlignFilter.h index 5d881755d4c6f553b7eba952022bca71d9ea6d92..b36983ed340b9cb18228a3cebaa437e8ff5da2dd 100644 --- a/Code/FeatureExtraction/otbImageToPathListAlignFilter.h +++ b/Code/FeatureExtraction/otbImageToPathListAlignFilter.h @@ -119,7 +119,7 @@ public: protected: ImageToPathListAlignFilter(); - ~ImageToPathListAlignFilter(); + virtual ~ImageToPathListAlignFilter(); virtual void GenerateOutputInformation() {}; // do nothing virtual void GenerateData(); diff --git a/Code/FeatureExtraction/otbKeyPointSetsMatchingFilter.h b/Code/FeatureExtraction/otbKeyPointSetsMatchingFilter.h index 666861990006d5a2333957362a868013d817ecf5..c83d7b0970c38626ed5016c17c09fd30077ed498 100644 --- a/Code/FeatureExtraction/otbKeyPointSetsMatchingFilter.h +++ b/Code/FeatureExtraction/otbKeyPointSetsMatchingFilter.h @@ -98,7 +98,7 @@ protected: /// Constructor KeyPointSetsMatchingFilter(); /// Destructor - ~KeyPointSetsMatchingFilter() {}; + virtual ~KeyPointSetsMatchingFilter() {}; /// PrintSelf method virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/FeatureExtraction/otbLandmark.h b/Code/FeatureExtraction/otbLandmark.h index afa852f8b2110efa8fe93870572c8267e7c85dff..a1096576ab08831a891f37bba1249a76be21cbf8 100644 --- a/Code/FeatureExtraction/otbLandmark.h +++ b/Code/FeatureExtraction/otbLandmark.h @@ -67,7 +67,7 @@ protected: /// Constructor Landmark() {} /// Destructor - ~Landmark() {} + virtual ~Landmark() {} /// PrintSelf method virtual void PrintSelf(std::ostream& os, itk::Indent indent) const { diff --git a/Code/FeatureExtraction/otbMultiplyByScalarImageFilter.h b/Code/FeatureExtraction/otbMultiplyByScalarImageFilter.h index ef0f4ecb037f96df2448753afe697ed9fd71c35e..c4fdac4d60b650733e85633dc5a8608bb475ded6 100644 --- a/Code/FeatureExtraction/otbMultiplyByScalarImageFilter.h +++ b/Code/FeatureExtraction/otbMultiplyByScalarImageFilter.h @@ -38,7 +38,7 @@ public: { m_Coef = 1.0; } - ~MultiplyByScalar() {}; + virtual ~MultiplyByScalar() {}; inline TOutput operator()( const TInput & value ) { TOutput result; diff --git a/Code/FeatureExtraction/otbNonMaxRemovalByDirectionFilter.h b/Code/FeatureExtraction/otbNonMaxRemovalByDirectionFilter.h index 9e83b41e34ece71581c0e6c4c66c4aafeb33a9b6..ba5fb970aa0a6ef77faf0a0f2493df0bb85fee84 100644 --- a/Code/FeatureExtraction/otbNonMaxRemovalByDirectionFilter.h +++ b/Code/FeatureExtraction/otbNonMaxRemovalByDirectionFilter.h @@ -37,7 +37,7 @@ class NonMaxRemovalByDirectionFunctor { public: NonMaxRemovalByDirectionFunctor() {}; - ~NonMaxRemovalByDirectionFunctor() {}; + virtual ~NonMaxRemovalByDirectionFunctor() {}; inline TOutput operator()(const TInput1 & itA, const TInput2 &itB) { TOutput resp = 0; diff --git a/Code/FeatureExtraction/otbOrientationPathFunction.h b/Code/FeatureExtraction/otbOrientationPathFunction.h index 3a38b6fea9818311f0ba22af0b6497b2e7e4806d..31a0316465376d7cb15d0e6caa910d045e37efc2 100644 --- a/Code/FeatureExtraction/otbOrientationPathFunction.h +++ b/Code/FeatureExtraction/otbOrientationPathFunction.h @@ -67,7 +67,7 @@ public: protected: OrientationPathFunction() {}; - ~OrientationPathFunction() {}; + virtual ~OrientationPathFunction() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/FeatureExtraction/otbPanTexTextureImageFunctionFilter.h b/Code/FeatureExtraction/otbPanTexTextureImageFunctionFilter.h index f4ff39eb5e86c37b9e937fc6afb171a9733b9c41..4917c498350533a6962764408acf699b5b9536bc 100644 --- a/Code/FeatureExtraction/otbPanTexTextureImageFunctionFilter.h +++ b/Code/FeatureExtraction/otbPanTexTextureImageFunctionFilter.h @@ -80,7 +80,7 @@ protected: this->SetRadius(radius); }; - ~PanTexTextureImageFunctionFilter() {}; + virtual ~PanTexTextureImageFunctionFilter() {}; //void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/FeatureExtraction/otbRegionImageToRectangularPathListFilter.h b/Code/FeatureExtraction/otbRegionImageToRectangularPathListFilter.h index dd7e4b3c5b62163e92b589dafe1f2bae8f4bbf5c..6dc5de27a39a5a79ccc1a054ab01d2e8189b3eb3 100644 --- a/Code/FeatureExtraction/otbRegionImageToRectangularPathListFilter.h +++ b/Code/FeatureExtraction/otbRegionImageToRectangularPathListFilter.h @@ -102,7 +102,7 @@ public: protected: RegionImageToRectangularPathListFilter(); - ~RegionImageToRectangularPathListFilter(); + virtual ~RegionImageToRectangularPathListFilter(); virtual void GenerateOutputInformation(){}; // do nothing virtual void GenerateData(); diff --git a/Code/FeatureExtraction/otbRegionImageToRectangularPathListFilter.txx b/Code/FeatureExtraction/otbRegionImageToRectangularPathListFilter.txx index b45e404f6ed3e7975d5026df98eb2f5acb095f19..511fbb8f41d61fc318da63bb165837ea4667ead0 100644 --- a/Code/FeatureExtraction/otbRegionImageToRectangularPathListFilter.txx +++ b/Code/FeatureExtraction/otbRegionImageToRectangularPathListFilter.txx @@ -209,8 +209,8 @@ RegionImageToRectangularPathListFilter<TInputImage,TOutputPath> double ax, ay; for (regionIterator = regionContainer.begin(); regionIterator != regionContainer.end(); ++regionIterator) { explorerIndex = *regionIterator; - ax = vcl_fabs(explorerIndex[0] - avgX); - ay = vcl_fabs(explorerIndex[1] - avgY); + ax = vcl_abs(explorerIndex[0] - avgX); + ay = vcl_abs(explorerIndex[1] - avgY); sumAX += ax; sumAY += ay; crossTermAXY += ax * ay; @@ -266,10 +266,10 @@ RegionImageToRectangularPathListFilter<TInputImage,TOutputPath> // Compute equivalent length and width (based on equal area criterion) double length, width; if (al2 != 0) { - length = vcl_sqrt(vcl_fabs(al1 / al2) * n); + length = vcl_sqrt(vcl_abs(al1 / al2) * n); //length = vcl_sqrt(l1 / l2 * n); if (al1 != 0) - width = vcl_fabs(al2 / al1) * length; + width = vcl_abs(al2 / al1) * length; else { // l1 == 0 and l2 == 0 length = width = vcl_sqrt(static_cast<double>(n)); // should happen only when n == 1 anyway } @@ -316,8 +316,8 @@ RegionImageToRectangularPathListFilter<TInputImage,TOutputPath> explorerIndex = *regionIterator; vx = explorerIndex[0] - avgX; vy = explorerIndex[1] - avgY; - if (vcl_fabs(vx * x1 + vy * y1) <= halfLength - && vcl_fabs(vx * x2 + vy * y2) <= halfWidth) + if (vcl_abs(vx * x1 + vy * y1) <= halfLength + && vcl_abs(vx * x2 + vy * y2) <= halfWidth) countWithin ++; } diff --git a/Code/FeatureExtraction/otbRemoveIsolatedByDirectionFilter.h b/Code/FeatureExtraction/otbRemoveIsolatedByDirectionFilter.h index 7b11a50113608db703872ada19708ee0deae5dfe..8ea18006073226f80932e0071f3a6024c2eb49fe 100644 --- a/Code/FeatureExtraction/otbRemoveIsolatedByDirectionFilter.h +++ b/Code/FeatureExtraction/otbRemoveIsolatedByDirectionFilter.h @@ -36,7 +36,7 @@ class RemoveIsolatedByDirectionFunctor { public: RemoveIsolatedByDirectionFunctor() {}; - ~RemoveIsolatedByDirectionFunctor() {}; + virtual ~RemoveIsolatedByDirectionFunctor() {}; inline TOutput operator()(const TInput1 & itA, const TInput2 &itB) { double currentDirection = itB.GetCenterPixel(); diff --git a/Code/FeatureExtraction/otbRemoveWrongDirectionFilter.h b/Code/FeatureExtraction/otbRemoveWrongDirectionFilter.h index 731c172cbfeaf2e90bdb1c74434cc6e6b113a367..35c1000a39ed4ee5c5c7175680447aec0e940194 100644 --- a/Code/FeatureExtraction/otbRemoveWrongDirectionFilter.h +++ b/Code/FeatureExtraction/otbRemoveWrongDirectionFilter.h @@ -40,7 +40,7 @@ class RemoveWrongDirectionFunctor { public: RemoveWrongDirectionFunctor() {}; - ~RemoveWrongDirectionFunctor() {}; + virtual ~RemoveWrongDirectionFunctor() {}; inline TOutput operator()(const TInput1 &A, const TInput2 &B) { if (B < CONST_PI_8) diff --git a/Code/FeatureExtraction/otbTextureImageFunction.h b/Code/FeatureExtraction/otbTextureImageFunction.h index c42f35b5ab44d865018759fce631f18c97013841..75a1fd1b31544cd8973082779672c409b62ff60f 100644 --- a/Code/FeatureExtraction/otbTextureImageFunction.h +++ b/Code/FeatureExtraction/otbTextureImageFunction.h @@ -111,7 +111,7 @@ class ITK_EXPORT TextureImageFunction : protected: TextureImageFunction(); - ~TextureImageFunction() {}; + virtual ~TextureImageFunction() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/FeatureExtraction/otbUrbanAreaDetectionImageFilter.h b/Code/FeatureExtraction/otbUrbanAreaDetectionImageFilter.h index 1124b2a2b8a68f839617f98a229b12168961ca4f..d47bc7aad0076193ef59d4a57efb93f666d8d045 100644 --- a/Code/FeatureExtraction/otbUrbanAreaDetectionImageFilter.h +++ b/Code/FeatureExtraction/otbUrbanAreaDetectionImageFilter.h @@ -71,7 +71,7 @@ class RadiometricNonWaterNonVegetationIndexFunctor m_WaterFunctor.SetNIRIndex(id); }; RadiometricNonWaterNonVegetationIndexFunctor(){} - ~RadiometricNonWaterNonVegetationIndexFunctor(){}; + virtual ~RadiometricNonWaterNonVegetationIndexFunctor(){}; inline TOutput operator()(const TInput& pInPix) { @@ -116,7 +116,7 @@ public: m_UpperThreshold = 1.0; }; - ~RadiometricNonWaterNonVegetationDetectionFunctor() {}; + virtual ~RadiometricNonWaterNonVegetationDetectionFunctor() {}; inline TOutput operator()(const TInput& inPix) { // The vegetation and water areas are put to 0. diff --git a/Code/Fusion/otbBayesianFusionFilter.h b/Code/Fusion/otbBayesianFusionFilter.h index 111211883d4383ecd786f2716bad74ca26e10055..2a79d5d146f49af220ee4b25dc809b2b23a33d89 100644 --- a/Code/Fusion/otbBayesianFusionFilter.h +++ b/Code/Fusion/otbBayesianFusionFilter.h @@ -50,7 +50,7 @@ class BayesianFunctor { public: BayesianFunctor() {}; - ~BayesianFunctor() {}; + virtual ~BayesianFunctor() {}; typedef typename TInputMultiSpectral::RealValueType RealType; typedef typename itk::VariableSizeMatrix<RealType> MatrixType; diff --git a/Code/GeospatialAnalysis/otbGISTableFunction.h b/Code/GeospatialAnalysis/otbGISTableFunction.h index 21d541a77f2d0b107c2a9706afcdaa550cc75e10..a783a65807c9021a22c41a1b3640d08101ec0c85 100644 --- a/Code/GeospatialAnalysis/otbGISTableFunction.h +++ b/Code/GeospatialAnalysis/otbGISTableFunction.h @@ -89,7 +89,7 @@ public: protected: GISTableFunction(); - ~GISTableFunction() {} + virtual ~GISTableFunction() {} void PrintSelf(std::ostream& os, Indent indent) const; /** Const pointer to the input table. */ diff --git a/Code/GeospatialAnalysis/otbTransactorGISTableFunction.h b/Code/GeospatialAnalysis/otbTransactorGISTableFunction.h index d84564b604f4f5d150d80c9d188b570e4b7243d4..7029eed84f26eb557dd5a9e068a15271745250fa 100644 --- a/Code/GeospatialAnalysis/otbTransactorGISTableFunction.h +++ b/Code/GeospatialAnalysis/otbTransactorGISTableFunction.h @@ -78,7 +78,7 @@ public: protected: TransactorGISTableFunction(); - ~TransactorGISTableFunction() {} + virtual ~TransactorGISTableFunction() {} void PrintSelf(std::ostream& os, Indent indent) const; /** Const pointer to the input Table. */ diff --git a/Code/IO/otbBSQImageIO.h b/Code/IO/otbBSQImageIO.h index 1709dfb6556e3bc2f40d51ba8d2f891ddd9637da..a7b559c5fa0bea0565bf1ef7eaa958e0f168495f 100644 --- a/Code/IO/otbBSQImageIO.h +++ b/Code/IO/otbBSQImageIO.h @@ -102,7 +102,7 @@ protected: /** Construtor.*/ BSQImageIO(); /** Destructor.*/ - ~BSQImageIO(); + virtual ~BSQImageIO(); bool OpenOneraDataFileForReading(const char* filename); bool OpenOneraHeaderFileForReading(const char* filename); diff --git a/Code/IO/otbBSQImageIOFactory.h b/Code/IO/otbBSQImageIOFactory.h index 62765d0497e7f2274e42e3c3764f45194c7cfb1b..bfc1c0a4269073e406b235d4c643af390546db6d 100644 --- a/Code/IO/otbBSQImageIOFactory.h +++ b/Code/IO/otbBSQImageIOFactory.h @@ -54,7 +54,7 @@ public: protected: BSQImageIOFactory(); - ~BSQImageIOFactory(); + virtual ~BSQImageIOFactory(); private: BSQImageIOFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbDEMHandler.h b/Code/IO/otbDEMHandler.h index de02500dcb6181ae21a259b6e85660299b055ade..da715458b14b15e8979cfc71a295f4942987022f 100644 --- a/Code/IO/otbDEMHandler.h +++ b/Code/IO/otbDEMHandler.h @@ -74,7 +74,7 @@ public : protected: DEMHandler(); - ~DEMHandler(); + virtual ~DEMHandler(); void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/IO/otbDEMToImageGenerator.h b/Code/IO/otbDEMToImageGenerator.h index b2d0d9ee7d3ac53a94eba4fa7a1e78019b81891a..dd9137b4216114e795b0515d1eb337bddde7286e 100644 --- a/Code/IO/otbDEMToImageGenerator.h +++ b/Code/IO/otbDEMToImageGenerator.h @@ -100,7 +100,7 @@ public : protected: DEMToImageGenerator(); - ~DEMToImageGenerator(){}; + virtual ~DEMToImageGenerator(){}; void PrintSelf(std::ostream& os, itk::Indent indent) const; void ThreadedGenerateData(const OutputImageRegionType& outputRegionForThread, diff --git a/Code/IO/otbDEMToOrthoImageGenerator.h b/Code/IO/otbDEMToOrthoImageGenerator.h index 67dc24051f2f1b9a8df8325c3bdb926319a6fea7..ee548dbfca23f4760af69211d4c784679092738c 100644 --- a/Code/IO/otbDEMToOrthoImageGenerator.h +++ b/Code/IO/otbDEMToOrthoImageGenerator.h @@ -100,7 +100,7 @@ public : protected: DEMToOrthoImageGenerator(); - ~DEMToOrthoImageGenerator(){}; + virtual ~DEMToOrthoImageGenerator(){}; void PrintSelf(std::ostream& os, Indent indent) const; virtual void GenerateOutputInformation(); diff --git a/Code/IO/otbDefaultImageMetadataInterfaceFactory.h b/Code/IO/otbDefaultImageMetadataInterfaceFactory.h index b1f644e94a22038eed194598e2f10f9141ed5594..8b711867666afb0d79cc799b8ff4ace53855ca77 100644 --- a/Code/IO/otbDefaultImageMetadataInterfaceFactory.h +++ b/Code/IO/otbDefaultImageMetadataInterfaceFactory.h @@ -58,7 +58,7 @@ public: protected: DefaultImageMetadataInterfaceFactory(); - ~DefaultImageMetadataInterfaceFactory(); + virtual ~DefaultImageMetadataInterfaceFactory(); private: DefaultImageMetadataInterfaceFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbGDALImageIO.h b/Code/IO/otbGDALImageIO.h index e3d25781f6161e0e4161f75603561b9ee7e595fc..d4aa0c92c91a51ae7ab046018e2d1fb4a41f4256 100644 --- a/Code/IO/otbGDALImageIO.h +++ b/Code/IO/otbGDALImageIO.h @@ -125,7 +125,7 @@ protected: /** Construtor.*/ GDALImageIO(); /** Destructor.*/ - ~GDALImageIO(); + virtual ~GDALImageIO(); void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Read all information on the image*/ diff --git a/Code/IO/otbGDALImageIOFactory.h b/Code/IO/otbGDALImageIOFactory.h index d07784822170a68a4a12e54633e31618488be60d..b908406cb4a4da2ed6861625620f8f80df828660 100644 --- a/Code/IO/otbGDALImageIOFactory.h +++ b/Code/IO/otbGDALImageIOFactory.h @@ -55,7 +55,7 @@ public: protected: GDALImageIOFactory(); - ~GDALImageIOFactory(); + virtual ~GDALImageIOFactory(); private: GDALImageIOFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbIkonosImageMetadataInterfaceFactory.h b/Code/IO/otbIkonosImageMetadataInterfaceFactory.h index 0e1af0acb3103be093f8103e0a998844967878ce..9e63445e4d1788dcd1c445d41e8eb2d9f0fa1413 100644 --- a/Code/IO/otbIkonosImageMetadataInterfaceFactory.h +++ b/Code/IO/otbIkonosImageMetadataInterfaceFactory.h @@ -57,7 +57,7 @@ public: protected: IkonosImageMetadataInterfaceFactory(); - ~IkonosImageMetadataInterfaceFactory(); + virtual ~IkonosImageMetadataInterfaceFactory(); private: IkonosImageMetadataInterfaceFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbImageFileReader.h b/Code/IO/otbImageFileReader.h index cddfa3bbb242e7efb2b4dd4075165e528383fccc..2190767b976b62f8427f35af7099bbf8e3e0dd74 100644 --- a/Code/IO/otbImageFileReader.h +++ b/Code/IO/otbImageFileReader.h @@ -76,7 +76,7 @@ public: protected: ImageFileReader(); - ~ImageFileReader(); + virtual ~ImageFileReader(); void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/IO/otbImageFileWriter.h b/Code/IO/otbImageFileWriter.h index ec41235b08a9b3d24e95880f8b4d6ef150004971..9ae3ee5a20a52a523dd20e3c4ac034c3164ae495 100644 --- a/Code/IO/otbImageFileWriter.h +++ b/Code/IO/otbImageFileWriter.h @@ -105,7 +105,7 @@ public: protected: ImageFileWriter(); - ~ImageFileWriter(); + virtual ~ImageFileWriter(); void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/IO/otbJPEG2000ImageIO.h b/Code/IO/otbJPEG2000ImageIO.h index fdcadb5e2592868b0b8237abcf7abd1b296c38cc..2f9f2ee399ceb9cd022fc967d578edcf5cfd648c 100644 --- a/Code/IO/otbJPEG2000ImageIO.h +++ b/Code/IO/otbJPEG2000ImageIO.h @@ -101,7 +101,7 @@ protected: /** Construtor.*/ JPEG2000ImageIO(); /** Destructor.*/ - ~JPEG2000ImageIO(); + virtual ~JPEG2000ImageIO(); void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/IO/otbJPEG2000ImageIOFactory.h b/Code/IO/otbJPEG2000ImageIOFactory.h index 6cb3439304dece4020721d143ec818d319df97c0..c9c8a2ff3c41af989e683f3bb164088272095b77 100644 --- a/Code/IO/otbJPEG2000ImageIOFactory.h +++ b/Code/IO/otbJPEG2000ImageIOFactory.h @@ -54,7 +54,7 @@ public: protected: JPEG2000ImageIOFactory(); - ~JPEG2000ImageIOFactory(); + virtual ~JPEG2000ImageIOFactory(); private: JPEG2000ImageIOFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbKMLVectorDataIOFactory.h b/Code/IO/otbKMLVectorDataIOFactory.h index 57b836936c7b80ae772191e3c4994e6a71776bd2..6056a7c2adb68fc8fcc88540a52d7a7cc0a533e0 100644 --- a/Code/IO/otbKMLVectorDataIOFactory.h +++ b/Code/IO/otbKMLVectorDataIOFactory.h @@ -53,7 +53,7 @@ public: protected: KMLVectorDataIOFactory(); - ~KMLVectorDataIOFactory(); + virtual ~KMLVectorDataIOFactory(); private: KMLVectorDataIOFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbLUMImageIO.h b/Code/IO/otbLUMImageIO.h index a7180a20b6b6579d24a6881eb7ca1accfdf25a07..070130b7cc529b1b4e73413789bc65b86dc9c185 100644 --- a/Code/IO/otbLUMImageIO.h +++ b/Code/IO/otbLUMImageIO.h @@ -101,7 +101,7 @@ protected: /** Construtor.*/ LUMImageIO(); /** Destructor.*/ - ~LUMImageIO(); + virtual ~LUMImageIO(); bool OpenOneraDataFileForReading(const char* filename); bool OpenOneraHeaderFileForReading(const char* filename); diff --git a/Code/IO/otbLUMImageIOFactory.h b/Code/IO/otbLUMImageIOFactory.h index 3cf27f2fd6b4da26fcb4af92471a20733c76f0b8..d160c4713e6042c7f33cc427649bc0b4638347e1 100644 --- a/Code/IO/otbLUMImageIOFactory.h +++ b/Code/IO/otbLUMImageIOFactory.h @@ -54,7 +54,7 @@ public: protected: LUMImageIOFactory(); - ~LUMImageIOFactory(); + virtual ~LUMImageIOFactory(); private: LUMImageIOFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbMSTARImageIO.h b/Code/IO/otbMSTARImageIO.h index 57f7bce695137a9ab1506e9f53b1b474e5a51be7..f948b45f670d066e3b9fae06798d61fb5e91220a 100644 --- a/Code/IO/otbMSTARImageIO.h +++ b/Code/IO/otbMSTARImageIO.h @@ -93,7 +93,7 @@ public: MSTARImageIO(); - ~MSTARImageIO(); + virtual ~MSTARImageIO(); void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/IO/otbMSTARImageIOFactory.h b/Code/IO/otbMSTARImageIOFactory.h index 65db7453d5949b4b35a584075ad1478bf674d3cc..cc9e6f9d4664b729c6a4828029545e0050475f59 100644 --- a/Code/IO/otbMSTARImageIOFactory.h +++ b/Code/IO/otbMSTARImageIOFactory.h @@ -54,7 +54,7 @@ public: protected: MSTARImageIOFactory(); - ~MSTARImageIOFactory(); + virtual ~MSTARImageIOFactory(); private: MSTARImageIOFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbMWImageIO.h b/Code/IO/otbMWImageIO.h index cdb18108427cd76f94879e020f7bc3a7dcc5ae02..eaae4b4d10660bce1c5be76cdb8e936297069ecf 100644 --- a/Code/IO/otbMWImageIO.h +++ b/Code/IO/otbMWImageIO.h @@ -101,7 +101,7 @@ protected: /** Construtor.*/ MWImageIO(); /** Destructor.*/ - ~MWImageIO(); + virtual ~MWImageIO(); bool OpenOneraDataFileForReading(const char* filename); bool OpenOneraHeaderFileForReading(const char* filename); diff --git a/Code/IO/otbMWImageIOFactory.h b/Code/IO/otbMWImageIOFactory.h index 198f996025a51870dc585a1910927df1472bc329..ba10b677783d2c24a75cab447c1189176ac9f70a 100644 --- a/Code/IO/otbMWImageIOFactory.h +++ b/Code/IO/otbMWImageIOFactory.h @@ -54,7 +54,7 @@ public: protected: MWImageIOFactory(); - ~MWImageIOFactory(); + virtual ~MWImageIOFactory(); private: MWImageIOFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbONERAImageIO.h b/Code/IO/otbONERAImageIO.h index 36f503bf217d1c3b82ad048a617e7499679cb3d4..8808b213922992f5f22ba062226fdb0410acb9ff 100644 --- a/Code/IO/otbONERAImageIO.h +++ b/Code/IO/otbONERAImageIO.h @@ -100,7 +100,7 @@ protected: /** Construtor.*/ ONERAImageIO(); /** Destructor.*/ - ~ONERAImageIO(); + virtual ~ONERAImageIO(); bool OpenOneraDataFileForReading(const char* filename); bool OpenOneraHeaderFileForReading(const char* filename); diff --git a/Code/IO/otbONERAImageIOFactory.h b/Code/IO/otbONERAImageIOFactory.h index 2fe0debf83b0b617fa16b7af10634460d791c085..7e2a6eae8dd13d76e43a4f9e85e487f1bd41e6d1 100644 --- a/Code/IO/otbONERAImageIOFactory.h +++ b/Code/IO/otbONERAImageIOFactory.h @@ -54,7 +54,7 @@ public: protected: ONERAImageIOFactory(); - ~ONERAImageIOFactory(); + virtual ~ONERAImageIOFactory(); private: ONERAImageIOFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbPointSetFileReader.h b/Code/IO/otbPointSetFileReader.h index 67a899b1a614f95dd9b5bf8881c1779b26dfb9b8..c0ee9f39308fea2473aabd7fda6842acf848107a 100644 --- a/Code/IO/otbPointSetFileReader.h +++ b/Code/IO/otbPointSetFileReader.h @@ -76,7 +76,7 @@ public: protected: PointSetFileReader(); - ~PointSetFileReader(); + virtual ~PointSetFileReader(); void PrintSelf(std::ostream& os, itk::Indent indent) const; void TestFileExistanceAndReadability(); diff --git a/Code/IO/otbPrepareSRTMDirectory.h b/Code/IO/otbPrepareSRTMDirectory.h index c4435b2796faabd4aa2c6655d103ba0da4493f62..e394c9833179af4677ce2f153a7f304ba0097870 100644 --- a/Code/IO/otbPrepareSRTMDirectory.h +++ b/Code/IO/otbPrepareSRTMDirectory.h @@ -76,7 +76,7 @@ public: protected: PrepareSRTMDirectory(); - ~PrepareSRTMDirectory() {}; + virtual ~PrepareSRTMDirectory() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; private: diff --git a/Code/IO/otbQuickBirdImageMetadataInterfaceFactory.h b/Code/IO/otbQuickBirdImageMetadataInterfaceFactory.h index 80473a0851aa97d2200400841fbcaef6a1e9675a..f6690cf689a6f42afdf6d06dd5791c64bd693b39 100644 --- a/Code/IO/otbQuickBirdImageMetadataInterfaceFactory.h +++ b/Code/IO/otbQuickBirdImageMetadataInterfaceFactory.h @@ -57,7 +57,7 @@ public: protected: QuickBirdImageMetadataInterfaceFactory(); - ~QuickBirdImageMetadataInterfaceFactory(); + virtual ~QuickBirdImageMetadataInterfaceFactory(); private: QuickBirdImageMetadataInterfaceFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbRADImageIO.h b/Code/IO/otbRADImageIO.h index ab8516f831b2145fe822d52d207e74cd4a2fcef8..830c09b43a7db74ebd9c2ad6e8a702d2081b7258 100644 --- a/Code/IO/otbRADImageIO.h +++ b/Code/IO/otbRADImageIO.h @@ -102,7 +102,7 @@ protected: /** Construtor.*/ RADImageIO(); /** Destructor.*/ - ~RADImageIO(); + virtual ~RADImageIO(); bool OpenOneraDataFileForReading(const char* filename); bool OpenOneraHeaderFileForReading(const char* filename); diff --git a/Code/IO/otbRADImageIOFactory.h b/Code/IO/otbRADImageIOFactory.h index 2c53bb5d9e898eeeced6a2f25b1f745d0c9660ab..bc8a029c7e86af43957ae89e521edc31086a3b6b 100644 --- a/Code/IO/otbRADImageIOFactory.h +++ b/Code/IO/otbRADImageIOFactory.h @@ -54,7 +54,7 @@ public: protected: RADImageIOFactory(); - ~RADImageIOFactory(); + virtual ~RADImageIOFactory(); private: RADImageIOFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbSHPVectorDataIOFactory.h b/Code/IO/otbSHPVectorDataIOFactory.h index b4860ed412b8c21266422539d447d38d459091e8..4a6c8b478567243f56dd5ffa23212cf30d8d151b 100644 --- a/Code/IO/otbSHPVectorDataIOFactory.h +++ b/Code/IO/otbSHPVectorDataIOFactory.h @@ -53,7 +53,7 @@ public: protected: SHPVectorDataIOFactory(); - ~SHPVectorDataIOFactory(); + virtual ~SHPVectorDataIOFactory(); private: SHPVectorDataIOFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbSpatialObjectDXFReader.h b/Code/IO/otbSpatialObjectDXFReader.h index 8cf6b6effbb49bd2eeb33cb447d81e38e7bc4924..de2dadcb1642bd020e112accf0ee680685dc9d19 100644 --- a/Code/IO/otbSpatialObjectDXFReader.h +++ b/Code/IO/otbSpatialObjectDXFReader.h @@ -70,7 +70,7 @@ protected: /** Constructor */ SpatialObjectDXFReader(); /** Destructor */ - ~SpatialObjectDXFReader(); + virtual ~SpatialObjectDXFReader(); /** Main computation method */ virtual void GenerateData(); diff --git a/Code/IO/otbSpotImageMetadataInterfaceFactory.h b/Code/IO/otbSpotImageMetadataInterfaceFactory.h index a7fd226b63c997247e90d82e74262781a9b0c257..f515561d4e1285efa9df5f8d0c843cd341dcda0a 100644 --- a/Code/IO/otbSpotImageMetadataInterfaceFactory.h +++ b/Code/IO/otbSpotImageMetadataInterfaceFactory.h @@ -58,7 +58,7 @@ public: protected: SpotImageMetadataInterfaceFactory(); - ~SpotImageMetadataInterfaceFactory(); + virtual ~SpotImageMetadataInterfaceFactory(); private: SpotImageMetadataInterfaceFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbStreamingImageFileWriter.h b/Code/IO/otbStreamingImageFileWriter.h index 4b388d33145e80f79517b28dc190b778b11441ba..fb83bc99e038b6b65ed0d83245431e4705447897 100644 --- a/Code/IO/otbStreamingImageFileWriter.h +++ b/Code/IO/otbStreamingImageFileWriter.h @@ -173,7 +173,7 @@ public: protected: StreamingImageFileWriter(); - ~StreamingImageFileWriter(); + virtual ~StreamingImageFileWriter(); void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Does the real work. */ diff --git a/Code/IO/otbStreamingImageVirtualWriter.h b/Code/IO/otbStreamingImageVirtualWriter.h index 0c5e3c5dbc2204b2bfa67bcdad4435b4781c1b6f..8fbe95539a57fc01e92a7b8a38bce777ff381dcb 100644 --- a/Code/IO/otbStreamingImageVirtualWriter.h +++ b/Code/IO/otbStreamingImageVirtualWriter.h @@ -126,7 +126,7 @@ public: protected: StreamingImageVirtualWriter(); - ~StreamingImageVirtualWriter(); + virtual ~StreamingImageVirtualWriter(); void PrintSelf(std::ostream& os, itk::Indent indent) const; virtual void GenerateData(void); diff --git a/Code/IO/otbTileMapImageIO.h b/Code/IO/otbTileMapImageIO.h index 67525cb16a8590704a1ba77edeead300ef8b261d..c0b7887af06897fc3c3d72dbdd54b64e5598e5cc 100644 --- a/Code/IO/otbTileMapImageIO.h +++ b/Code/IO/otbTileMapImageIO.h @@ -157,7 +157,7 @@ protected: /** Construtor.*/ TileMapImageIO(); /** Destructor.*/ - ~TileMapImageIO(); + virtual ~TileMapImageIO(); void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Read all information on the image*/ diff --git a/Code/IO/otbTileMapImageIOFactory.h b/Code/IO/otbTileMapImageIOFactory.h index 6f28e2aa20ae7a129a482e68726f3cbaed77b1bc..eb8c2c5e46d178d091c4b2c97a0bd6993c33a8e0 100644 --- a/Code/IO/otbTileMapImageIOFactory.h +++ b/Code/IO/otbTileMapImageIOFactory.h @@ -55,7 +55,7 @@ public: protected: TileMapImageIOFactory(); - ~TileMapImageIOFactory(); + virtual ~TileMapImageIOFactory(); private: TileMapImageIOFactory(const Self&); //purposely not implemented diff --git a/Code/IO/otbVectorDataFileReader.h b/Code/IO/otbVectorDataFileReader.h index 57b0b02bf2be92dd073b84ff15efba6bdf579a98..47f99750594f2fd60c6516207c72806cc9a2f7c4 100644 --- a/Code/IO/otbVectorDataFileReader.h +++ b/Code/IO/otbVectorDataFileReader.h @@ -125,7 +125,7 @@ public : protected: VectorDataFileReader(); - ~VectorDataFileReader(); + virtual ~VectorDataFileReader(); std::string m_ExceptionMessage; typename VectorDataIOBaseType::Pointer m_VectorDataIO; diff --git a/Code/IO/otbVectorDataFileWriter.h b/Code/IO/otbVectorDataFileWriter.h index 424307cfd87133a89aaeab23267849a1b1aaa856..eb84166d5213f14e2ef8257f060c6732e47d6063 100644 --- a/Code/IO/otbVectorDataFileWriter.h +++ b/Code/IO/otbVectorDataFileWriter.h @@ -101,7 +101,7 @@ public : protected: VectorDataFileWriter(); - ~VectorDataFileWriter(); + virtual ~VectorDataFileWriter(); void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Learning/otbSVMCrossValidationCostFunction.h b/Code/Learning/otbSVMCrossValidationCostFunction.h index 0f6b48d7428271565148056d37a58629743c324d..48beeddf8555428c08b457246c47c101795fd5b8 100644 --- a/Code/Learning/otbSVMCrossValidationCostFunction.h +++ b/Code/Learning/otbSVMCrossValidationCostFunction.h @@ -94,7 +94,7 @@ protected: /// Constructor SVMCrossValidationCostFunction(); /// Destructor - ~SVMCrossValidationCostFunction(); + virtual ~SVMCrossValidationCostFunction(); /** Update svm parameters struct according to the input parameters */ diff --git a/Code/Learning/otbSVMImageModelEstimator.h b/Code/Learning/otbSVMImageModelEstimator.h index 050f820793085cea3a3b5af2b3d2a0374fa322e4..c7d43ffc6a145f76389a2626ae9c9822a0aaba62 100644 --- a/Code/Learning/otbSVMImageModelEstimator.h +++ b/Code/Learning/otbSVMImageModelEstimator.h @@ -102,7 +102,7 @@ protected: /** Constructor */ SVMImageModelEstimator(); /** Destructor */ - ~SVMImageModelEstimator(); + virtual ~SVMImageModelEstimator(); /** PrintSelf */ virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Learning/otbSVMModel.h b/Code/Learning/otbSVMModel.h index 499e79c280133b7ff8bf295ff4c141e1eb57b116..8503170cfa312a867cc2b26ea2a696f13cbd9dd4 100644 --- a/Code/Learning/otbSVMModel.h +++ b/Code/Learning/otbSVMModel.h @@ -396,7 +396,7 @@ protected: /** Constructor */ SVMModel(); /** Destructor */ - ~SVMModel(); + virtual ~SVMModel(); /** Display infos */ void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Learning/otbSVMModelEstimator.h b/Code/Learning/otbSVMModelEstimator.h index bbf25837b602294c91fb7904d1712a05f3cffa1c..f493203c9cb9a7dabd28db14c56a0e2afc6b7747 100644 --- a/Code/Learning/otbSVMModelEstimator.h +++ b/Code/Learning/otbSVMModelEstimator.h @@ -297,7 +297,7 @@ protected: /** Constructor */ SVMModelEstimator(); /** Destructor */ - ~SVMModelEstimator(); + virtual ~SVMModelEstimator(); virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Starts the modelling process */ diff --git a/Code/Learning/otbSVMPointSetModelEstimator.h b/Code/Learning/otbSVMPointSetModelEstimator.h index ead89c746392ff7fe82b81b691ffbb43ae86e70e..4cbd6ac44871a59e9d0ada14272a3499702423d1 100644 --- a/Code/Learning/otbSVMPointSetModelEstimator.h +++ b/Code/Learning/otbSVMPointSetModelEstimator.h @@ -98,7 +98,7 @@ protected: /** Constructor */ SVMPointSetModelEstimator(); /** Destructor */ - ~SVMPointSetModelEstimator(); + virtual ~SVMPointSetModelEstimator(); /** PrintSelf */ virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Prepare data */ diff --git a/Code/Learning/otbSVMSampleListModelEstimator.h b/Code/Learning/otbSVMSampleListModelEstimator.h index ce5ea4f99eb66e72a5eea1c68653e51813ae0f6a..40b8bc40a01ae1a84ddc72b7095f9d1e0a566026 100644 --- a/Code/Learning/otbSVMSampleListModelEstimator.h +++ b/Code/Learning/otbSVMSampleListModelEstimator.h @@ -162,7 +162,7 @@ protected: /** Constructor */ SVMSampleListModelEstimator(); /** Destructor */ - ~SVMSampleListModelEstimator(); + virtual ~SVMSampleListModelEstimator(); /** PrintSelf */ virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Markov/otbMarkovRandomFieldFilter.h b/Code/Markov/otbMarkovRandomFieldFilter.h index 5cdd9787605d912aeb0701099b645c025b59c608..d140ea974f8e8cbbac3f6dfa1fa7e3e5402f6959 100644 --- a/Code/Markov/otbMarkovRandomFieldFilter.h +++ b/Code/Markov/otbMarkovRandomFieldFilter.h @@ -333,7 +333,7 @@ public: protected: MarkovRandomFieldFilter(); - ~MarkovRandomFieldFilter(){}; + virtual ~MarkovRandomFieldFilter(){}; void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Allocate memory for labelled images. This is automatically called diff --git a/Code/MultiScale/otbConvexOrConcaveClassificationFilter.h b/Code/MultiScale/otbConvexOrConcaveClassificationFilter.h index 3212bb5db909accebf4e347895e81cf9081e504b..7d4f48dded78d68998d851c9d38f0de5d447cb65 100644 --- a/Code/MultiScale/otbConvexOrConcaveClassificationFilter.h +++ b/Code/MultiScale/otbConvexOrConcaveClassificationFilter.h @@ -68,7 +68,7 @@ public: /** * Destructor */ - ~ConvexOrConcaveDecisionRule() {}; + virtual ~ConvexOrConcaveDecisionRule() {}; /** * Label the pixel to convex, concave or flat * \return The label of the pixel diff --git a/Code/MultiScale/otbGeodesicMorphologyIterativeDecompositionImageFilter.h b/Code/MultiScale/otbGeodesicMorphologyIterativeDecompositionImageFilter.h index 6f9f67989cb95779bf52c1398df25a77e415de1a..da710e17a897232134d285d2c23aabcd266e5c12 100644 --- a/Code/MultiScale/otbGeodesicMorphologyIterativeDecompositionImageFilter.h +++ b/Code/MultiScale/otbGeodesicMorphologyIterativeDecompositionImageFilter.h @@ -125,7 +125,7 @@ protected: /** Constructor */ GeodesicMorphologyIterativeDecompositionImageFilter(); /** Destructor */ - ~GeodesicMorphologyIterativeDecompositionImageFilter() {}; + virtual ~GeodesicMorphologyIterativeDecompositionImageFilter() {}; /** Generate output information */ virtual void GenerateOutputInformation(); /** Generate input requested region */ diff --git a/Code/MultiScale/otbGeodesicMorphologyLevelingFilter.h b/Code/MultiScale/otbGeodesicMorphologyLevelingFilter.h index 660c232b63c1e933c29bc44a0f4d3fa8eccea74d..cb4df4863427e049113533a353afe5e266808499 100644 --- a/Code/MultiScale/otbGeodesicMorphologyLevelingFilter.h +++ b/Code/MultiScale/otbGeodesicMorphologyLevelingFilter.h @@ -38,7 +38,7 @@ public: /// Constructor LevelingFunctor() {}; /// Destructor - ~LevelingFunctor() {}; + virtual ~LevelingFunctor() {}; inline TOutput operator()(const TInput& pixel, const TInputMap& convexPixel, const TInputMap& concavePixel) { diff --git a/Code/MultiScale/otbMorphologicalPyramidAnalysisFilter.h b/Code/MultiScale/otbMorphologicalPyramidAnalysisFilter.h index 2c35e040b821352344a559ee507d761dc65bcb88..31dc033a011c07bfdbadfaa95913e70d47d0bac7 100644 --- a/Code/MultiScale/otbMorphologicalPyramidAnalysisFilter.h +++ b/Code/MultiScale/otbMorphologicalPyramidAnalysisFilter.h @@ -114,7 +114,7 @@ protected: /** Constructor */ MorphologicalPyramidAnalysisFilter(); /** Destructor */ - ~MorphologicalPyramidAnalysisFilter(); + virtual ~MorphologicalPyramidAnalysisFilter(); virtual void GenerateOutputInformation() {}; // does nothing /** Main computation method */ virtual void GenerateData(); diff --git a/Code/MultiScale/otbMorphologicalPyramidResampler.h b/Code/MultiScale/otbMorphologicalPyramidResampler.h index 347b9451fc0283e33277e8460ce6c978d2a1f1ea..1514e355ef261c9012001260b872c62a3f1d9b11 100644 --- a/Code/MultiScale/otbMorphologicalPyramidResampler.h +++ b/Code/MultiScale/otbMorphologicalPyramidResampler.h @@ -72,7 +72,7 @@ protected: /** Constructor */ Resampler(); /** Destructor */ - ~Resampler() {}; + virtual ~Resampler() {}; /** Generate output information */ virtual void GenerateOutputInformation(); /** Configure input requested region to be the largest possible region */ diff --git a/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.h b/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.h index 94f6795b0ed6e5afe7832e96db8240bf989ce091..7a60f05f4878acdb256905ee36c8a10009f54aaa 100644 --- a/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.h +++ b/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.h @@ -136,7 +136,7 @@ protected: /** Constructor */ MorphologicalPyramidSegmentationFilter(); /** Destructor */ - ~MorphologicalPyramidSegmentationFilter(); + virtual ~MorphologicalPyramidSegmentationFilter(); virtual void GenerateOutputInformation() {}; // does nothing /** Main computation method */ virtual void GenerateData(); diff --git a/Code/MultiScale/otbMorphologicalPyramidSynthesisFilter.h b/Code/MultiScale/otbMorphologicalPyramidSynthesisFilter.h index c5d2c7d11a8095bc06d72482617904e5ca2f4f08..e192a293ba7553156de07fa116eea54e80400f8a 100644 --- a/Code/MultiScale/otbMorphologicalPyramidSynthesisFilter.h +++ b/Code/MultiScale/otbMorphologicalPyramidSynthesisFilter.h @@ -123,7 +123,7 @@ protected: /** Constructor */ MorphologicalPyramidSynthesisFilter(); /** Destructor */ - ~MorphologicalPyramidSynthesisFilter(); + virtual ~MorphologicalPyramidSynthesisFilter(); virtual void GenerateOutputInformation() {}; // does nothing /** Main computation method */ virtual void GenerateData(); diff --git a/Code/MultiScale/otbMultiScaleConvexOrConcaveClassificationFilter.h b/Code/MultiScale/otbMultiScaleConvexOrConcaveClassificationFilter.h index d62b2048afffec66aed00899405cc8dc5ba76437..ad77ca2d818dcedf77bac748edc01018760c4773 100644 --- a/Code/MultiScale/otbMultiScaleConvexOrConcaveClassificationFilter.h +++ b/Code/MultiScale/otbMultiScaleConvexOrConcaveClassificationFilter.h @@ -68,7 +68,7 @@ public: /** * Destructor */ - ~MultiScaleConvexOrConcaveDecisionRule() {}; + virtual ~MultiScaleConvexOrConcaveDecisionRule() {}; /** * Label the pixel to convex, concave or flat * \return The label of the pixel diff --git a/Code/Projections/otbCompositeTransform.h b/Code/Projections/otbCompositeTransform.h index 601786b2606431f7c93b18420e3f56ea745be93f..b185058cf4b3d169ab8fcf4b270bb80b5c0d31c2 100644 --- a/Code/Projections/otbCompositeTransform.h +++ b/Code/Projections/otbCompositeTransform.h @@ -127,7 +127,7 @@ public : protected: CompositeTransform(); - ~CompositeTransform(); + virtual ~CompositeTransform(); FirstTransformPointerType m_FirstTransform; SecondTransformPointerType m_SecondTransform; diff --git a/Code/Projections/otbCoordinateToName.h b/Code/Projections/otbCoordinateToName.h index 84592d1b8041dd71ce3b41cea904af7f6d5e8e3b..451594d8d12f367b0cc7685e2a7f2128972e266f 100644 --- a/Code/Projections/otbCoordinateToName.h +++ b/Code/Projections/otbCoordinateToName.h @@ -59,7 +59,7 @@ public: protected: CoordinateToName(); - ~CoordinateToName() {}; + virtual ~CoordinateToName() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; void RetrieveXML(std::ostringstream& urlStream); void ParseXMLGeonames(); diff --git a/Code/Projections/otbForwardSensorModel.txx b/Code/Projections/otbForwardSensorModel.txx index c1102e42c0f4f7d3b6470dfb88a06bbf6115ea06..31c2113888a09abc85ddf87470d7359c72032f3c 100644 --- a/Code/Projections/otbForwardSensorModel.txx +++ b/Code/Projections/otbForwardSensorModel.txx @@ -109,7 +109,7 @@ ForwardSensorModel< TScalarType, NInputDimensions, NOutputDimensions> this->m_Model->lineSampleHeightToWorld(ossimPoint, point[2], ossimGPoint); } //Use of average elevation - else if (this->m_AverageElevation != -10000) + else if (this->m_AverageElevation != -32768.0) { this->m_Model->lineSampleHeightToWorld(ossimPoint, this->m_AverageElevation, ossimGPoint); } diff --git a/Code/Projections/otbGenericRSTransform.h b/Code/Projections/otbGenericRSTransform.h index e3f352837b391c717800b7bb855436d264c5c4ca..85f47ce8b13aae858f2d3dcae977d6383f103cae 100644 --- a/Code/Projections/otbGenericRSTransform.h +++ b/Code/Projections/otbGenericRSTransform.h @@ -96,6 +96,9 @@ namespace otb itkSetStringMacro(DEMDirectory); itkGetStringMacro(DEMDirectory); + itkSetMacro(AverageElevation, double); + itkGetMacro(AverageElevation, double); + /** Set/Get Dictionary*/ const itk::MetaDataDictionary& GetInputDictionary() const { @@ -207,6 +210,7 @@ namespace otb std::string m_InputProjectionRef; std::string m_OutputProjectionRef; std::string m_DEMDirectory; + double m_AverageElevation; SpacingType m_InputSpacing; OriginType m_InputOrigin; diff --git a/Code/Projections/otbGenericRSTransform.txx b/Code/Projections/otbGenericRSTransform.txx index 7ec3532d15ff564bb4e96d635a835d76d34a3e37..f77749f6d23104513e6542421efeebd602c4cac7 100644 --- a/Code/Projections/otbGenericRSTransform.txx +++ b/Code/Projections/otbGenericRSTransform.txx @@ -32,7 +32,7 @@ namespace otb template<class TScalarType, unsigned int NInputDimensions, unsigned int NOutputDimensions> GenericRSTransform<TScalarType, NInputDimensions, NOutputDimensions> -::GenericRSTransform() : Superclass(SpaceDimension,ParametersDimension) +::GenericRSTransform() : Superclass(SpaceDimension,ParametersDimension), m_DEMDirectory(""), m_AverageElevation(-32768.0) { m_InputProjectionRef.clear(); m_OutputProjectionRef.clear(); @@ -110,25 +110,29 @@ GenericRSTransform<TScalarType, NInputDimensions, NOutputDimensions> //Set the input transformation //***************************** try - { + { if (m_InputKeywordList.GetSize() > 0) - { + { typedef otb::ForwardSensorModel<double, InputSpaceDimension, InputSpaceDimension> ForwardSensorModelType; typename ForwardSensorModelType::Pointer sensorModel = ForwardSensorModelType::New(); sensorModel->SetImageGeometry(m_InputKeywordList); if ( !m_DEMDirectory.empty()) - { + { sensorModel->SetDEMDirectory(m_DEMDirectory); - } + } + else if (m_AverageElevation != -32768.0) + { + sensorModel->SetAverageElevation(m_AverageElevation); + } m_InputTransform = sensorModel.GetPointer(); inputTransformIsSensor = true; otbMsgDevMacro(<< "Input projection set to sensor model."); - } } + } catch(itk::ExceptionObject &) - { + { otbMsgDevMacro(<<" Input keyword list does not describe a sensor model."); - } + } if ((m_InputTransform.IsNull()) && ( !m_InputProjectionRef.empty() ))//map projection @@ -177,25 +181,29 @@ GenericRSTransform<TScalarType, NInputDimensions, NOutputDimensions> //Set the output transformation //***************************** try - { + { if (m_OutputKeywordList.GetSize() > 0) - { + { typedef otb::InverseSensorModel<double, InputSpaceDimension, OutputSpaceDimension> InverseSensorModelType; typename InverseSensorModelType::Pointer sensorModel = InverseSensorModelType::New(); sensorModel->SetImageGeometry(m_OutputKeywordList); if ( !m_DEMDirectory.empty()) - { + { sensorModel->SetDEMDirectory(m_DEMDirectory); - } + } + else if (m_AverageElevation != -32768.0) + { + sensorModel->SetAverageElevation(m_AverageElevation); + } m_OutputTransform = sensorModel.GetPointer(); outputTransformIsSensor = true; otbMsgDevMacro(<< "Output projection set to sensor model"); - } } + } catch(itk::ExceptionObject &) - { + { otbMsgDevMacro(<<" Output keyword list does not describe a sensor model."); - } + } if ((m_OutputTransform.IsNull()) && ( !m_OutputProjectionRef.empty() ))//map projection @@ -239,7 +247,6 @@ GenericRSTransform<TScalarType, NInputDimensions, NOutputDimensions> } else { - m_TransformAccuracy = Projection::PRECISE; } diff --git a/Code/Projections/otbInverseSensorModel.txx b/Code/Projections/otbInverseSensorModel.txx index 6dbcaf21461ec075b670fee5ef434b78085181b0..43bf9ce92874c24c84da6bb0908fb1c4f20d8393 100644 --- a/Code/Projections/otbInverseSensorModel.txx +++ b/Code/Projections/otbInverseSensorModel.txx @@ -65,7 +65,7 @@ InverseSensorModel< TScalarType, NInputDimensions, NOutputDimensions> { ossimGPoint.height(point[2]); } - else if (this->m_AverageElevation != -10000) + else if (this->m_AverageElevation != -32768.0) { ossimGPoint.height(this->m_AverageElevation); } diff --git a/Code/Projections/otbOrthoRectificationFilter.h b/Code/Projections/otbOrthoRectificationFilter.h index 68740e0167ce739e1cdd29a20188a665dfa97b7a..0faa79b4de454df70a9a269fb58209ee593a8a4e 100644 --- a/Code/Projections/otbOrthoRectificationFilter.h +++ b/Code/Projections/otbOrthoRectificationFilter.h @@ -127,7 +127,7 @@ public : protected: OrthoRectificationFilter(); - ~OrthoRectificationFilter(); + virtual ~OrthoRectificationFilter(); void PrintSelf(std::ostream& os, itk::Indent indent) const; virtual void GenerateInputRequestedRegion(); diff --git a/Code/Projections/otbPlaceNameToLonLat.h b/Code/Projections/otbPlaceNameToLonLat.h index 866498b641ffcddba3dcc0ce221271320a4c1604..5dc5b8bddaaedb04b8108d40672945903243ec2c 100644 --- a/Code/Projections/otbPlaceNameToLonLat.h +++ b/Code/Projections/otbPlaceNameToLonLat.h @@ -61,7 +61,7 @@ public: protected: PlaceNameToLonLat(); - ~PlaceNameToLonLat() {}; + virtual ~PlaceNameToLonLat() {}; void PrintSelf(std::ostream& os, itk::Indent indent) const; void RetrieveXML(std::ostringstream& urlStream); void ParseXMLYahoo(); diff --git a/Code/Projections/otbSensorModelBase.txx b/Code/Projections/otbSensorModelBase.txx index 03fccd16992052396426186bc9c115edca67474b..a6460def06c26c185b7521b7cc9717b5fbef3fd0 100644 --- a/Code/Projections/otbSensorModelBase.txx +++ b/Code/Projections/otbSensorModelBase.txx @@ -43,7 +43,7 @@ SensorModelBase< TScalarType,NInputDimensions,NOutputDimensions> m_DEMHandler = DEMHandlerType::New(); m_UseDEM = false; m_DEMIsLoaded = false; - m_AverageElevation = -10000; + m_AverageElevation = -32768.0; } diff --git a/Code/Projections/otbVectorDataProjectionFilter.h b/Code/Projections/otbVectorDataProjectionFilter.h index 1ae4d789ba36da45a8600e8b5c8975f14f6f8d58..80d6cce2ba23ebf142bc9da0335bd9850b065b49 100644 --- a/Code/Projections/otbVectorDataProjectionFilter.h +++ b/Code/Projections/otbVectorDataProjectionFilter.h @@ -131,6 +131,9 @@ public: itkSetStringMacro(DEMDirectory); itkGetStringMacro(DEMDirectory); + itkSetMacro(AverageElevation, double); + itkGetMacro(AverageElevation, double); + itkGetMacro(InputKeywordList,ImageKeywordlist); void SetInputKeywordList(ImageKeywordlist kwl) @@ -209,7 +212,9 @@ private: std::string m_OutputProjectionRef; ImageKeywordlist m_InputKeywordList; ImageKeywordlist m_OutputKeywordList; + std::string m_DEMDirectory; + double m_AverageElevation; SpacingType m_InputSpacing; OriginType m_InputOrigin; diff --git a/Code/Projections/otbVectorDataProjectionFilter.txx b/Code/Projections/otbVectorDataProjectionFilter.txx index 3820e7ac6db07c6247d4aef27467b94ec5fd3739..800f3d586052935b081ca6cfc4e654eb3c3b59f8 100644 --- a/Code/Projections/otbVectorDataProjectionFilter.txx +++ b/Code/Projections/otbVectorDataProjectionFilter.txx @@ -37,7 +37,7 @@ namespace otb */ template <class TInputVectorData, class TOutputVectorData > VectorDataProjectionFilter<TInputVectorData,TOutputVectorData> -::VectorDataProjectionFilter() +::VectorDataProjectionFilter(): m_DEMDirectory(""), m_AverageElevation(-32768.0) { m_InputProjectionRef.clear(); m_OutputProjectionRef.clear(); @@ -321,6 +321,7 @@ VectorDataProjectionFilter<TInputVectorData,TOutputVectorData> m_Transform->SetInputKeywordList(m_InputKeywordList); m_Transform->SetOutputKeywordList(m_OutputKeywordList); m_Transform->SetDEMDirectory(m_DEMDirectory); + m_Transform->SetAverageElevation(m_AverageElevation); m_Transform->SetInputSpacing(m_InputSpacing); m_Transform->SetInputOrigin(m_InputOrigin); m_Transform->SetOutputSpacing(m_OutputSpacing); diff --git a/Code/Radiometry/otbAeronetFileReader.cxx b/Code/Radiometry/otbAeronetFileReader.cxx index 1003c36fb092d08bb6d5047c25a1f520eb0c35a6..849abf7388fbfd5f7d391824b1268876f1649d31 100755 --- a/Code/Radiometry/otbAeronetFileReader.cxx +++ b/Code/Radiometry/otbAeronetFileReader.cxx @@ -150,7 +150,7 @@ AeronetFileReader ossimLocalTm current_date = ParseDate(line[col_date], line[col_time]); double dcurrent_date = current_date.getJulian(); // Check hour +/- epsilon - if(vcl_fabs(dcurrent_date-ref_date) < epsilon) + if(vcl_abs(dcurrent_date-ref_date) < epsilon) { double dwater = atof(line[col_vapor].c_str()); double dangst = atof(line[col_angst].c_str()); diff --git a/Code/Radiometry/otbAeronetFileReader.h b/Code/Radiometry/otbAeronetFileReader.h index 19fe58737b75ff4d822084a19cd476a991e645c3..74ef1227a394d17a81c78e75b7950729575b8f99 100755 --- a/Code/Radiometry/otbAeronetFileReader.h +++ b/Code/Radiometry/otbAeronetFileReader.h @@ -119,7 +119,7 @@ protected: /** Constructor */ AeronetFileReader(); /** Destructor */ - ~AeronetFileReader(); + virtual ~AeronetFileReader(); /** Main computation method */ virtual void GenerateData(); diff --git a/Code/Radiometry/otbAtmosphericCorrectionParameters.cxx b/Code/Radiometry/otbAtmosphericCorrectionParameters.cxx index e99d56c0c3c35af0e168f181271670796d1e5d2c..fbecbb50ac3a08f8b8c8eadbd0b0f0a12b3c529b 100644 --- a/Code/Radiometry/otbAtmosphericCorrectionParameters.cxx +++ b/Code/Radiometry/otbAtmosphericCorrectionParameters.cxx @@ -19,8 +19,9 @@ PURPOSE. See the above copyright notices for more information. #include "otbAtmosphericCorrectionParameters.h" #include "otbAeronetFileReader.h" +#include "base/ossimFilename.h" #include <fstream> -#include <iostream> + @@ -33,7 +34,6 @@ FilterFunctionValues m_MinSpectralValue = 0; m_MaxSpectralValue = 0; m_UserStep = 0.0025; - m_FilterFunctionValues.clear(); } /**PrintSelf method */ @@ -41,16 +41,15 @@ void FilterFunctionValues ::PrintSelf(std::ostream& os, itk::Indent indent) const { - Superclass::PrintSelf(os,indent); - os << indent << "Minimum spectral value: " << m_MinSpectralValue << std::endl; - os << indent << "Maximum spectral value: " << m_MaxSpectralValue << std::endl; - os << indent << "User Step between each wavelenght spectral band values: " << m_UserStep << std::endl; - os << indent << "Filter function Vector Values: " << std::endl; + os << indent << "Minimum spectral value : " << m_MinSpectralValue << std::endl; + os << indent << "Maximum spectral value : " << m_MaxSpectralValue << std::endl; + os << indent << "Wavelenght spectral band step: " << m_UserStep << std::endl; + os << indent << "Filter function values: " << std::endl; for (unsigned int i=0; i<m_FilterFunctionValues.size(); ++i) { os << indent << m_FilterFunctionValues[i] <<std::endl; } - os << indent << "Filter function Vector Values 6S: " << std::endl; + os << indent << "6S Filter function values: " << std::endl; for (unsigned int i=0; i<m_FilterFunctionValues6S.size(); ++i) { os << indent << m_FilterFunctionValues6S[i] <<std::endl; @@ -77,42 +76,86 @@ AtmosphericCorrectionParameters m_OzoneAmount = 0.28; m_AerosolModel = CONTINENTAL; m_AerosolOptical = 0.2; + m_WavelenghtSpectralBand.clear(); } /** Get data from aeronet file*/ void AtmosphericCorrectionParameters ::UpdateAeronetData( std::string file, int year, int month, int day, int hour, int minute, double epsi ) -{ - if(file == "") - itkExceptionMacro(<<"No Aeronet filename specified."); - - AeronetFileReader::Pointer reader = AeronetFileReader::New(); - reader->SetFileName(file); - reader->SetDay(day); - reader->SetMonth(month); - reader->SetYear(year); - reader->SetHour(hour); - reader->SetMinute(minute); - reader->SetEpsilon(epsi); - std::cout<<day<<std::endl; - std::cout<<month<<std::endl; - std::cout<<year<<std::endl; - std::cout<<hour<<std::endl; - std::cout<<minute<<std::endl; - std::cout<<epsi<<std::endl; - - std::cout<<reader->GetDay()<<std::endl; - std::cout<<reader->GetMonth()<<std::endl; - std::cout<<reader->GetYear()<<std::endl; - std::cout<<reader->GetHour()<<std::endl; - std::cout<<reader->GetMinute()<<std::endl; - std::cout<<reader->GetEpsilon()<<std::endl; - - reader->Update(); - - m_AerosolOptical = reader->GetOutput()->GetAerosolOpticalThickness(); - m_WaterVaporAmount = reader->GetOutput()->GetWater(); +{ + if(file == "") + itkExceptionMacro(<<"No Aeronet filename specified."); + + AeronetFileReader::Pointer reader = AeronetFileReader::New(); + reader->SetFileName(file); + reader->SetDay(day); + reader->SetMonth(month); + reader->SetYear(year); + reader->SetHour(hour); + reader->SetMinute(minute); + reader->SetEpsilon(epsi); + + reader->Update(); + + m_AerosolOptical = reader->GetOutput()->GetAerosolOpticalThickness(); + m_WaterVaporAmount = reader->GetOutput()->GetWater(); +} + + +/** Get data from filter function file*/ +void +AtmosphericCorrectionParameters +::LoadFilterFunctionValue( std::string filename ) +{ + m_WavelenghtSpectralBand.clear(); + FilterFunctionValues::Pointer ffv = FilterFunctionValues::New(); + + ossimFilename fname(filename); + if(!fname.exists()) + itkExceptionMacro("Filename "<<filename<<" doesn not exist."); + + std::ifstream file( filename.c_str() ); + + if ( !file ) + itkExceptionMacro("Enable to read "<<filename<<" file."); + + int bandId = 0; + std::string line; + ossimString separatorList = " "; + + FilterFunctionValues::Pointer function = FilterFunctionValues::New(); + FilterFunctionValues::ValuesVectorType vect; + m_WavelenghtSpectralBand.clear(); + vect.clear(); + + while ( std::getline( file, line ) ) + { + ossimString osLine(line); + std::vector<ossimString> keywordStrings = osLine.split(separatorList); + + if(keywordStrings.size() == 2 || keywordStrings.size() == 3) + { + if(bandId != 0) + { + function->SetFilterFunctionValues(vect); + m_WavelenghtSpectralBand.push_back(function); + function = FilterFunctionValues::New(); + vect.clear(); + } + bandId++; + function->SetMinSpectralValue(keywordStrings[0].toDouble()); + function->SetMaxSpectralValue(keywordStrings[1].toDouble()); + if(keywordStrings.size() == 3) + function->SetUserStep(keywordStrings[2].toDouble()); + } + else if(keywordStrings.size()==1) + vect.push_back(keywordStrings[0].toDouble()); + else if(keywordStrings.size()!=0) + itkExceptionMacro("File "<<filename<<" not valid."); + } + function->SetFilterFunctionValues(vect); + m_WavelenghtSpectralBand.push_back(function); } @@ -121,26 +164,24 @@ void AtmosphericCorrectionParameters ::PrintSelf(std::ostream& os, itk::Indent indent) const { - Superclass::PrintSelf(os,indent); - os << indent << "Solar zenithal angle: " << m_SolarZenithalAngle << std::endl; - os << indent << "Solar azimutal angle: " << m_SolarAzimutalAngle << std::endl; - os << indent << "Viewing zenithal angle: " << m_ViewingZenithalAngle << std::endl; - os << indent << "Viewing azimutal angle: " << m_ViewingAzimutalAngle << std::endl; - os << indent << "Month: " << m_Month << std::endl; - os << indent << "Day: " << m_Day << std::endl; - os << indent << "Atmospheric pressure: " << m_AtmosphericPressure << std::endl; - os << indent << "Water vapor amount: " << m_WaterVaporAmount << std::endl; - os << indent << "Ozone amount: " << m_OzoneAmount << std::endl; - os << indent << "Aerosol model: " << m_AerosolModel << std::endl; - os << indent << "Aerosol optical : " << m_AerosolOptical << std::endl; + os << "Solar zenithal angle : " << m_SolarZenithalAngle << std::endl; + os << "Solar azimutal angle : " << m_SolarAzimutalAngle << std::endl; + os << "Viewing zenithal angle: " << m_ViewingZenithalAngle << std::endl; + os << "Viewing azimutal angle: " << m_ViewingAzimutalAngle << std::endl; + os << "Month : " << m_Month << std::endl; + os << "Day : " << m_Day << std::endl; + os << "Atmospheric pressure : " << m_AtmosphericPressure << std::endl; + os << "Water vapor amount : " << m_WaterVaporAmount << std::endl; + os << "Ozone amount : " << m_OzoneAmount << std::endl; + os << "Aerosol model : " << m_AerosolModel << std::endl; + os << "Aerosol optical : " << m_AerosolOptical << std::endl; // Function values print : - os << indent << "Filter function Values: " << std::endl; + os << "Filter function values: " << std::endl; for (unsigned int i=0; i<m_WavelenghtSpectralBand.size(); ++i) { - os << indent << "Channel : "<< i+1 <<" : " << std::endl; + os << indent << "Channel "<< i+1 <<" : " << std::endl; os << indent << m_WavelenghtSpectralBand[i]<< std::endl; } } } // end namespace otb - diff --git a/Code/Radiometry/otbAtmosphericCorrectionParameters.h b/Code/Radiometry/otbAtmosphericCorrectionParameters.h index 353bbe6cc4a77597861fa0b2bb9411a24976e5c5..c0f5b578867d1a385ee6d19a568b9958d2c8228a 100644 --- a/Code/Radiometry/otbAtmosphericCorrectionParameters.h +++ b/Code/Radiometry/otbAtmosphericCorrectionParameters.h @@ -51,8 +51,8 @@ public: /** Creation through object factory macro */ itkNewMacro(Self); - typedef double WavelenghtSpectralBandType; - typedef std::vector<WavelenghtSpectralBandType> ValuesVectorType; + typedef double WavelenghtSpectralBandType; + typedef std::vector<WavelenghtSpectralBandType> ValuesVectorType; /** Set vector that contains the filter function value. */ void SetFilterFunctionValues(const ValuesVectorType & vect) @@ -147,8 +147,7 @@ public: itkNewMacro(Self); typedef enum {NO_AEROSOL=0,CONTINENTAL=1,MARITIME=2,URBAN=3,DESERTIC=5} AerosolModelType; - typedef std::vector<FilterFunctionValues::Pointer> WavelenghtSpectralBandVectorType; - //typedef itk::VariableSizeMatrix<WavelenghtSpectralBandType> WavelenghtSpectralBandMatrixType; + typedef std::vector<FilterFunctionValues::Pointer> WavelenghtSpectralBandVectorType; /** * Set/Get the solar zenithal angle. @@ -257,7 +256,12 @@ public: this->UpdateAeronetData( file, year, m_Month, m_Day, hour, minute, 0.4 ); }; - + /** Read a file that contains filter function values. + * Format is MinSpectralValue MaxSpectralValue UserStep and then the list of coefficients for each band. + * NB : if no UserStep writen, the default value will be 0,0025µm + */ + void LoadFilterFunctionValue( std::string filename ); + /** Constructor */ AtmosphericCorrectionParameters(); /** Destructor */ diff --git a/Code/Radiometry/otbAtmosphericRadiativeTerms.cxx b/Code/Radiometry/otbAtmosphericRadiativeTerms.cxx index 9f615440d749dee14e6052ced9f87b7060e61ebe..999a9a0e63ce3c954b28cb0749aac5455bd10fe3 100644 --- a/Code/Radiometry/otbAtmosphericRadiativeTerms.cxx +++ b/Code/Radiometry/otbAtmosphericRadiativeTerms.cxx @@ -27,15 +27,15 @@ AtmosphericRadiativeTermsSingleChannel ::PrintSelf(std::ostream& os, itk::Indent indent) const { Superclass::PrintSelf(os,indent); - os << indent << "Intrinsic Atmospheric Reflectance: " << m_IntrinsicAtmosphericReflectance << std::endl; - os << indent << "Shperical Albedo of the Atmosphere: " << m_SphericalAlbedo << std::endl; - os << indent << "Total Gaseous Transmission: " << m_TotalGaseousTransmission << std::endl; - os << indent << "Downward Transmittance of the Atmospher: " << m_DownwardTransmittance << std::endl; - os << indent << "Upward Transmittance of the Atmospher: " << m_UpwardTransmittance << std::endl; - os << indent << "Upward diffuse transmittance: " << m_UpwardDiffuseTransmittance << std::endl; - os << indent << "Upward direct transmittance: " << m_UpwardDirectTransmittance << std::endl; - os << indent << "Upward diffuse transmittance for rayleigh: " << m_UpwardDiffuseTransmittanceForRayleigh << std::endl; - os << indent << "Upward diffuse transmittance for aerosols: " << m_UpwardDiffuseTransmittanceForAerosol << std::endl; + os << indent << "Intrinsic Atmospheric Reflectance : " << m_IntrinsicAtmosphericReflectance << std::endl; + os << indent << "Atmospher Shperical Albedo : " << m_SphericalAlbedo << std::endl; + os << indent << "Total Gaseous Transmission : " << m_TotalGaseousTransmission << std::endl; + os << indent << "Atmospher Downward Transmittance : " << m_DownwardTransmittance << std::endl; + os << indent << "Atmospher Upward Transmittance : " << m_UpwardTransmittance << std::endl; + os << indent << "Upward Diffuse Transmittance : " << m_UpwardDiffuseTransmittance << std::endl; + os << indent << "Upward Direct Transmittance : " << m_UpwardDirectTransmittance << std::endl; + os << indent << "Upward Diffuse Transmittance for Rayleigh: " << m_UpwardDiffuseTransmittanceForRayleigh << std::endl; + os << indent << "Upward Diffuse Transmittance for aerosols: " << m_UpwardDiffuseTransmittanceForAerosol << std::endl; } @@ -503,7 +503,7 @@ AtmosphericRadiativeTerms { for (unsigned int i=0; i<m_Values.size(); ++i) { - os << indent << "Channel "<< i << " : "<< std::endl; + os << "Channel "<< i << " : "<< std::endl; //ValueType::(os,indent); os << indent << "Intrinsic Atmospheric Reflectance : " << m_Values[i]->GetIntrinsicAtmosphericReflectance() << std::endl; os << indent << "Shperical Albedo of the Atmosphere : " << m_Values[i]->GetSphericalAlbedo() << std::endl; diff --git a/Code/Radiometry/otbAtmosphericRadiativeTerms.h b/Code/Radiometry/otbAtmosphericRadiativeTerms.h index 79e2a10a430d2946e02f150bc7f01c29b5924d03..7b916da0c601dafd8c0240ac6cc0a52e15d166b2 100644 --- a/Code/Radiometry/otbAtmosphericRadiativeTerms.h +++ b/Code/Radiometry/otbAtmosphericRadiativeTerms.h @@ -144,7 +144,6 @@ private: /** The upward diffuse transmittance for aerosols. */ double m_UpwardDiffuseTransmittanceForAerosol; - }; diff --git a/Code/Radiometry/otbBuiltUpIndicesFunctor.h b/Code/Radiometry/otbBuiltUpIndicesFunctor.h index b5036042e5a9e6d543baa6eede6fc5b44ab32dea..ea39f95a36206293e0885266cb421717d7582d16 100644 --- a/Code/Radiometry/otbBuiltUpIndicesFunctor.h +++ b/Code/Radiometry/otbBuiltUpIndicesFunctor.h @@ -111,7 +111,7 @@ public: /// Constructor NDBI() {}; /// Desctructor - ~NDBI() {}; + virtual ~NDBI() {}; // Operator on r and nir single pixel values protected: inline TOutput Evaluate(const TInput1 &pTM4, const TInput2 &pTM5) const @@ -142,7 +142,7 @@ public: /// Constructor ISU() : m_A(100.), m_B(25.) {}; /// Desctructor - ~ISU() {}; + virtual ~ISU() {}; /** Set/Get A correction */ void SetA(const double pA) diff --git a/Code/Radiometry/otbImageToLuminanceImageFilter.h b/Code/Radiometry/otbImageToLuminanceImageFilter.h index a5a05338f084022a32591bce003a1271876b3bfa..3bfa54e7428b349e6617306138e8244d8663499c 100644 --- a/Code/Radiometry/otbImageToLuminanceImageFilter.h +++ b/Code/Radiometry/otbImageToLuminanceImageFilter.h @@ -56,7 +56,7 @@ public: m_Beta(0.) {}; - ~ImageToLuminanceImageFunctor() {}; + virtual ~ImageToLuminanceImageFunctor() {}; void SetAlpha(double alpha) { diff --git a/Code/Radiometry/otbImageToReflectanceImageFilter.h b/Code/Radiometry/otbImageToReflectanceImageFilter.h index 9e60fe0b2dcec219a45e5532c6263b0cad6c5e6c..0c8959f82c301f0f09d6a93a603612dcb1bd5aef 100644 --- a/Code/Radiometry/otbImageToReflectanceImageFilter.h +++ b/Code/Radiometry/otbImageToReflectanceImageFilter.h @@ -50,7 +50,7 @@ class ImageToReflectanceImageFunctor { public: ImageToReflectanceImageFunctor() {}; - ~ImageToReflectanceImageFunctor() {}; + virtual ~ImageToReflectanceImageFunctor() {}; typedef Functor::ImageToLuminanceImageFunctor<TInput, TOutput> ImToLumFunctorType; typedef Functor::LuminanceToReflectanceImageFunctor<TInput, TOutput> LumToReflecFunctorType; diff --git a/Code/Radiometry/otbLuminanceToReflectanceImageFilter.h b/Code/Radiometry/otbLuminanceToReflectanceImageFilter.h index fc2a00d2cf9b7d18122593c517d461cab4ae3c0d..2834efe7b4459992064d479e93936b35e309554d 100644 --- a/Code/Radiometry/otbLuminanceToReflectanceImageFilter.h +++ b/Code/Radiometry/otbLuminanceToReflectanceImageFilter.h @@ -59,7 +59,7 @@ public: m_IlluminationCorrectionCoefficient(1.0) {}; - ~LuminanceToReflectanceImageFunctor() {}; + virtual ~LuminanceToReflectanceImageFunctor() {}; void SetSolarIllumination(double solarIllumination) { diff --git a/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.h b/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.h index 8111427e48ad6d231c6e872443d1b723a2a73d67..f6876b0f2c7dbd56d1762f0d4b4ff322603f7978 100644 --- a/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.h +++ b/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.h @@ -50,7 +50,7 @@ public: m_Residu = 1.; m_SphericalAlbedo = 1.; }; - ~ReflectanceToSurfaceReflectanceImageFunctor() {}; + virtual ~ReflectanceToSurfaceReflectanceImageFunctor() {}; /** * Set/Get the spherical albedo of the atmosphere. @@ -156,7 +156,8 @@ public: typedef AtmosphericCorrectionParametersTo6SAtmosphericRadiativeTerms Parameters2RadiativeTermsType; typedef Parameters2RadiativeTermsType::Pointer Parameters2RadiativeTermsPointerType; typedef AtmosphericCorrectionParameters::Pointer CorrectionParametersPointerType; - typedef AtmosphericRadiativeTerms::Pointer AtmosphericRadiativeTermsPointerType; + typedef AtmosphericRadiativeTerms::Pointer AtmosphericRadiativeTermsPointerType; + typedef FilterFunctionValues FilterFunctionValuesType; typedef FilterFunctionValuesType::ValuesVectorType CoefVectorType; @@ -174,7 +175,7 @@ public: } /** Get/Set Atmospheric Correction Parameters. */ - itkGetConstObjectMacro(AtmosphericRadiativeTerms, AtmosphericRadiativeTerms); + itkGetObjectMacro(AtmosphericRadiativeTerms, AtmosphericRadiativeTerms); itkGetObjectMacro(CorrectionParameters, AtmosphericCorrectionParameters); /** Get/Set Aeronet file name. */ @@ -196,21 +197,29 @@ public: return m_FilterFunctionCoef; } + /** Compute radiative terms if necessary and then updtae functors attibuts. */ + void GenerateParameters(); + + /** Set/Get UseGenerateParameters. */ + itkSetMacro(UseGenerateParameters, bool); + itkGetMacro(UseGenerateParameters, bool); + protected: /** Constructor */ ReflectanceToSurfaceReflectanceImageFilter(); /** Destructor */ virtual ~ReflectanceToSurfaceReflectanceImageFilter() {}; - /** If empty, fill AtmosphericRadiativeTerms using image metadata*/ - void UpdateAtmosphericRadiativeTerms( const MetaDataDictionaryType dict ); - /** Read the aeronet data and extract aerosol optical and water vapor amount. */ - void UpdateAeronetData( const MetaDataDictionaryType dict ); + //void UpdateAeronetData( const MetaDataDictionaryType dict ); /** Initialize the functor vector */ - void BeforeThreadedGenerateData(); - + void GenerateOutputInformation(); + + /** Fill AtmosphericRadiativeTerms using image metadata*/ + void UpdateAtmosphericRadiativeTerms(); + /** Update Functors parameters */ + void UpdateFunctors(); private: AtmosphericRadiativeTermsPointerType m_AtmosphericRadiativeTerms; @@ -222,8 +231,10 @@ private: std::string m_FilterFunctionValuesFileName; /** Contains the filter function values (each element is a vector and represnts the values for each channel) */ FilterFunctionCoefVectorType m_FilterFunctionCoef; - /** BeforeThreadedGenerateData executed once or not */ - bool m_BeforeDone; + /** Enable/Disable GenerateParameters in GenerateOutputInformation. + * Usefull for image view that call GenerateOutputInformation each time you move the full area. + */ + bool m_UseGenerateParameters; }; } // end namespace otb diff --git a/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.txx b/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.txx index dfd308f36017fd52aa28e06c9fa58e8fbfa79324..799ea439c06f0d5faf8db363b6091a663343a1d3 100644 --- a/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.txx +++ b/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.txx @@ -21,7 +21,7 @@ #include "otbReflectanceToSurfaceReflectanceImageFilter.h" #include "otbImageMetadataInterfaceFactory.h" #include "otbImageMetadataInterfaceBase.h" -#include "otbAeronetFileReader.h" + namespace otb { @@ -36,117 +36,139 @@ ReflectanceToSurfaceReflectanceImageFilter<TInputImage,TOutputImage> m_AtmosphericRadiativeTerms = AtmosphericRadiativeTerms::New(); m_CorrectionParameters = AtmosphericCorrectionParameters::New(); m_IsSetAtmosphericRadiativeTerms = false; - m_BeforeDone = false; m_AeronetFileName = ""; m_FilterFunctionValuesFileName = ""; m_FilterFunctionCoef.clear(); + m_UseGenerateParameters = true; } template <class TInputImage, class TOutputImage> void ReflectanceToSurfaceReflectanceImageFilter<TInputImage,TOutputImage> -::UpdateAtmosphericRadiativeTerms( const MetaDataDictionaryType dict ) +::UpdateAtmosphericRadiativeTerms() { - ImageMetadataInterfaceBase::Pointer imageMetadataInterface = ImageMetadataInterfaceFactory::CreateIMI(dict); - - if ((m_CorrectionParameters->GetDay() == 0)) + MetaDataDictionaryType dict = this->GetInput()->GetMetaDataDictionary(); + + ImageMetadataInterfaceBase::Pointer imageMetadataInterface = ImageMetadataInterfaceFactory::CreateIMI(dict); + + if ((m_CorrectionParameters->GetDay() == 0)) { m_CorrectionParameters->SetDay(imageMetadataInterface->GetDay(dict)); } - - if ((m_CorrectionParameters->GetMonth() == 0)) + + if ((m_CorrectionParameters->GetMonth() == 0)) { m_CorrectionParameters->SetMonth(imageMetadataInterface->GetMonth(dict)); } - - if ((m_CorrectionParameters->GetSolarZenithalAngle() == 361.)) + + if ((m_CorrectionParameters->GetSolarZenithalAngle() == 361.)) { m_CorrectionParameters->SetSolarZenithalAngle(90. - imageMetadataInterface->GetSunElevation(dict)); } - - if ((m_CorrectionParameters->GetSolarAzimutalAngle() == 361.)) + + if ((m_CorrectionParameters->GetSolarAzimutalAngle() == 361.)) { m_CorrectionParameters->SetSolarAzimutalAngle(imageMetadataInterface->GetSunAzimuth(dict)); } - - if ((m_CorrectionParameters->GetViewingZenithalAngle() == 361.)) + + if ((m_CorrectionParameters->GetViewingZenithalAngle() == 361.)) { m_CorrectionParameters->SetViewingZenithalAngle(90. - imageMetadataInterface->GetSatElevation(dict)); } - - if ((m_CorrectionParameters->GetViewingAzimutalAngle() == 361.)) + + if ((m_CorrectionParameters->GetViewingAzimutalAngle() == 361.)) { m_CorrectionParameters->SetViewingAzimutalAngle(imageMetadataInterface->GetSatAzimuth(dict)); } - - if(m_AeronetFileName != "") - m_CorrectionParameters->UpdateAeronetData( m_AeronetFileName, - imageMetadataInterface->GetYear(dict), - imageMetadataInterface->GetHour(dict), - imageMetadataInterface->GetMinute(dict) ); - - Parameters2RadiativeTermsPointerType param2Terms = Parameters2RadiativeTermsType::New(); - - if( m_FilterFunctionCoef.size() != this->GetInput()->GetNumberOfComponentsPerPixel() ) - itkExceptionMacro(<<"Filter Function and image channels mismatch."); - - for(unsigned int i=0; i<this->GetInput()->GetNumberOfComponentsPerPixel(); i++) + + if(m_AeronetFileName != "") + m_CorrectionParameters->UpdateAeronetData( m_AeronetFileName, + imageMetadataInterface->GetYear(dict), + imageMetadataInterface->GetHour(dict), + imageMetadataInterface->GetMinute(dict) ); + + // load fiter function values + if(m_FilterFunctionValuesFileName != "") + { + m_CorrectionParameters->LoadFilterFunctionValue( m_FilterFunctionValuesFileName ); + } + // the user has set the filter function values + else { + if( m_FilterFunctionCoef.size() != this->GetInput()->GetNumberOfComponentsPerPixel() ) + { + itkExceptionMacro(<<"Filter Function and image channels mismatch."); + } + for(unsigned int i=0; i<this->GetInput()->GetNumberOfComponentsPerPixel(); i++) + { FilterFunctionValuesType::Pointer functionValues = FilterFunctionValuesType::New(); functionValues->SetFilterFunctionValues(m_FilterFunctionCoef[i]); - functionValues->SetMinSpectralValue(imageMetadataInterface->GetFirstWavelengths(dict)[i]); - functionValues->SetMaxSpectralValue(imageMetadataInterface->GetLastWavelengths(dict)[i]); - - m_CorrectionParameters->SetWavelenghtSpectralBandWithIndex(i, functionValues); + functionValues->SetMinSpectralValue(imageMetadataInterface->GetFirstWavelengths(dict)[i]); + functionValues->SetMaxSpectralValue(imageMetadataInterface->GetLastWavelengths(dict)[i]); + + m_CorrectionParameters->SetWavelenghtSpectralBandWithIndex(i, functionValues); + } } - - param2Terms->SetInput(m_CorrectionParameters); - param2Terms->Update(); - - m_AtmosphericRadiativeTerms = param2Terms->GetOutput(); + + + Parameters2RadiativeTermsPointerType param2Terms = Parameters2RadiativeTermsType::New(); + + param2Terms->SetInput(m_CorrectionParameters); + param2Terms->Update(); + m_AtmosphericRadiativeTerms = param2Terms->GetOutput(); } template <class TInputImage, class TOutputImage> void ReflectanceToSurfaceReflectanceImageFilter<TInputImage,TOutputImage> -::BeforeThreadedGenerateData() +::GenerateOutputInformation() { - if(m_BeforeDone == true) - return; - - std::cout<<"BeforeThreadedGenerateData "<<this->GetNumberOfThreads()<<std::endl; - if(m_IsSetAtmosphericRadiativeTerms==false) - this->UpdateAtmosphericRadiativeTerms(this->GetInput()->GetMetaDataDictionary()); - - std::cout<<"m_CorrectionParameters: "<<std::endl; - std::cout<<m_CorrectionParameters<<std::endl; - std::cout<<"m_AtmosphericRadiativeTerms: "<<std::endl; - std::cout<<m_AtmosphericRadiativeTerms<<std::endl; - + Superclass::GenerateOutputInformation(); + if(m_UseGenerateParameters) + this->GenerateParameters(); +} + +template <class TInputImage, class TOutputImage> +void +ReflectanceToSurfaceReflectanceImageFilter<TInputImage,TOutputImage> +::UpdateFunctors() +{ this->GetFunctorVector().clear(); + for (unsigned int i = 0;i<this->GetInput()->GetNumberOfComponentsPerPixel();++i) - { - double coef; - double res; - coef = static_cast<double>(m_AtmosphericRadiativeTerms->GetTotalGaseousTransmission(i) + { + double coef; + double res; + coef = static_cast<double>(m_AtmosphericRadiativeTerms->GetTotalGaseousTransmission(i) * m_AtmosphericRadiativeTerms->GetDownwardTransmittance(i) * m_AtmosphericRadiativeTerms->GetUpwardTransmittance(i) ); - coef = 1. / coef; - res = -m_AtmosphericRadiativeTerms->GetIntrinsicAtmosphericReflectance(i) * coef; - - FunctorType functor; - functor.SetCoefficient(coef); - functor.SetResidu(res); - functor.SetSphericalAlbedo(static_cast<double>(m_AtmosphericRadiativeTerms->GetSphericalAlbedo(i))); - - this->GetFunctorVector().push_back(functor); - } - m_BeforeDone = true; - std::cout<<"BeforeThreadedGenerateData FIN"<<std::endl; + coef = 1. / coef; + res = -m_AtmosphericRadiativeTerms->GetIntrinsicAtmosphericReflectance(i) * coef; + FunctorType functor; + functor.SetCoefficient(coef); + functor.SetResidu(res); + functor.SetSphericalAlbedo(static_cast<double>(m_AtmosphericRadiativeTerms->GetSphericalAlbedo(i))); + + this->GetFunctorVector().push_back(functor); + } } + + +template <class TInputImage, class TOutputImage> +void +ReflectanceToSurfaceReflectanceImageFilter<TInputImage,TOutputImage> +::GenerateParameters() +{ + if(m_IsSetAtmosphericRadiativeTerms==false) + { + this->UpdateAtmosphericRadiativeTerms(); + } + this->UpdateFunctors(); +} + } #endif diff --git a/Code/Radiometry/otbSoilIndicesFunctor.h b/Code/Radiometry/otbSoilIndicesFunctor.h index 1628e4ac52dc0f5ac109a631a905843d9b49033d..b65355266f75f0dec3e52a273ef12d4a07a261d6 100644 --- a/Code/Radiometry/otbSoilIndicesFunctor.h +++ b/Code/Radiometry/otbSoilIndicesFunctor.h @@ -185,7 +185,7 @@ public: /// Constructor IR() {}; /// Desctructor - ~IR() {}; + virtual ~IR() {}; // Operator on r and nir single pixel values protected: inline TOutput Evaluate(const TInput1 &pGreen, const TInput2 &pRed) const @@ -216,7 +216,7 @@ public: /// Constructor IC() {}; /// Desctructor - ~IC() {}; + virtual ~IC() {}; // Operator on r and nir single pixel values protected: inline TOutput Evaluate(const TInput1 &pGreen, const TInput2 &pRed) const @@ -247,7 +247,7 @@ public: /// Constructor IB() {}; /// Desctructor - ~IB() {}; + virtual ~IB() {}; // Operator on r and nir single pixel values protected: inline TOutput Evaluate(const TInput1 &pGreen, const TInput2 &pRed) const @@ -274,7 +274,7 @@ public: /// Constructor IB2() {}; /// Desctructor - ~IB2() {}; + virtual ~IB2() {}; // Operator on r and nir single pixel values protected: inline TOutput Evaluate(const TInput1 &pGreen, const TInput2 &pRed, const TInput2 &pNir) const diff --git a/Code/Radiometry/otbSurfaceAdjencyEffect6SCorrectionSchemeFilter.h b/Code/Radiometry/otbSurfaceAdjencyEffect6SCorrectionSchemeFilter.h index abadc5188d95fe314b3c7c5c56313b32dc5ac55e..8dc7dad340413aae054f8fc1dde2e344a3248746 100644 --- a/Code/Radiometry/otbSurfaceAdjencyEffect6SCorrectionSchemeFilter.h +++ b/Code/Radiometry/otbSurfaceAdjencyEffect6SCorrectionSchemeFilter.h @@ -45,7 +45,7 @@ class ComputeNeighborhoodContributionFunctor { public: ComputeNeighborhoodContributionFunctor() {}; - ~ComputeNeighborhoodContributionFunctor() {}; + virtual ~ComputeNeighborhoodContributionFunctor() {}; typedef itk::VariableSizeMatrix<double> WeightingMatrixType; typedef typename std::vector<WeightingMatrixType> WeightingValuesContainerType; diff --git a/Code/Radiometry/otbVegetationIndicesFunctor.h b/Code/Radiometry/otbVegetationIndicesFunctor.h index 8f78fd1bba4819a75377ce12191b56a5ac52f59c..953abad0074169c5e07764539d369ef711ef6c25 100644 --- a/Code/Radiometry/otbVegetationIndicesFunctor.h +++ b/Code/Radiometry/otbVegetationIndicesFunctor.h @@ -261,7 +261,7 @@ public: /// Constructor NDVI() {}; /// Desctructor - ~NDVI() {}; + virtual ~NDVI() {}; // Operator on r and nir single pixel values protected: inline TOutput Evaluate(const TInput1 &r, const TInput2 &nir) const @@ -290,7 +290,7 @@ class RVI : public RAndNIRIndexBase<TInput1, TInput2, TOutput> { public: RVI() {}; - ~RVI() {}; + virtual ~RVI() {}; protected: inline TOutput Evaluate(const TInput1 &r, const TInput2 &nir) const { @@ -317,7 +317,7 @@ class PVI : public RAndNIRIndexBase<TInput1, TInput2, TOutput> { public: PVI() {}; - ~PVI() {}; + virtual ~PVI() {}; /** Set/Get A and B parameters */ void SetA(const double A) { @@ -367,7 +367,7 @@ class SAVI : public RAndNIRIndexBase<TInput1, TInput2, TOutput> { public: SAVI() : m_L(0.5) {}; - ~SAVI() {}; + virtual ~SAVI() {}; /** Set/Get L correction */ void SetL(const double L) @@ -412,7 +412,7 @@ class TSAVI : public RAndNIRIndexBase<TInput1, TInput2, TOutput> { public: TSAVI() : m_A(0.7), m_S(0.9), m_X(0.08) {}; - ~TSAVI() {}; + virtual ~TSAVI() {}; /** Set/Get S and A parameters */ void SetS(const double S) @@ -477,7 +477,7 @@ class MSAVI2 : public RAndNIRIndexBase<TInput1, TInput2, TOutput> { public: MSAVI2() {}; - ~MSAVI2() {}; + virtual ~MSAVI2() {}; protected: inline TOutput Evaluate(const TInput1 &r, const TInput2 &nir) const @@ -507,7 +507,7 @@ class GEMI : public RAndNIRIndexBase<TInput1, TInput2, TOutput> { public: GEMI() {}; - ~GEMI() {}; + virtual ~GEMI() {}; protected: inline TOutput Evaluate(const TInput1 &r, const TInput2 &nir) const @@ -553,7 +553,7 @@ public: /// Constructor WDVI() : m_S(0.4) {}; /// Desctructor - ~WDVI() {}; + virtual ~WDVI() {}; // Operator on r and nir single pixel values /** Set/Get Slop of soil line */ void SetS( const double s) @@ -596,7 +596,7 @@ public: { m_WDVIfunctor.SetS(m_S); }; - ~MSAVI() {}; + virtual ~MSAVI() {}; /** Set/Get Slop of soil line */ void SetS( const double s) { @@ -660,7 +660,7 @@ class AVI : public RAndGAndNIRIndexBase<TInput1,TInput2,TInput3,TOutput> { public: AVI() : m_LambdaG(560.), m_LambdaR(660.), m_LambdaNir(830.) {}; - ~AVI() {}; + virtual ~AVI() {}; /** Set/Get Lambda red parameter*/ void SetLambdaR(const double lr) { @@ -747,7 +747,7 @@ class ARVI : public RAndBAndNIRIndexBase<TInput1,TInput2,TInput3,TOutput> { public: ARVI() : m_Gamma(0.5) {}; - ~ARVI() {}; + virtual ~ARVI() {}; /** Set/Get Gamma parameter */ void SetGamma(const double gamma) @@ -793,7 +793,7 @@ class TSARVI: public RAndBAndNIRIndexBase<TInput1,TInput2,TInput3,TOutput> { public: TSARVI() : m_X(0.08), m_Gamma(0.5) {}; - ~TSARVI() {}; + virtual ~TSARVI() {}; /** Set/Get A and B parameters */ void SetA(const double A) @@ -873,7 +873,7 @@ class EVI : public RAndBAndNIRIndexBase<TInput1,TInput2,TInput3,TOutput> { public: EVI() : m_G(2.5), m_C1(6.0), m_C2(7.5), m_L(1.0) {}; - ~EVI() {}; + virtual ~EVI() {}; /** Set/Get G parameter */ void SetG(const double g) { @@ -952,7 +952,7 @@ class IPVI : public RAndNIRIndexBase<TInput1, TInput2, TOutput> { public: IPVI() {}; - ~IPVI() {}; + virtual ~IPVI() {}; protected: inline TOutput Evaluate(const TInput1 &r, const TInput2 &nir) const @@ -984,7 +984,7 @@ class TNDVI : public RAndNIRIndexBase<TInput1, TInput2, TOutput> public: typedef NDVI<TInput1, TInput2, TOutput> NDVIFunctorType; TNDVI() {}; - ~TNDVI() {}; + virtual ~TNDVI() {}; NDVIFunctorType GetNDVI(void)const { diff --git a/Code/Radiometry/otbWaterIndicesFunctor.h b/Code/Radiometry/otbWaterIndicesFunctor.h index 422cb73f151cb3971e0950e106388f94c3e4a6e8..1b3828f5820c170a0e2b36749bb126cbc909295a 100644 --- a/Code/Radiometry/otbWaterIndicesFunctor.h +++ b/Code/Radiometry/otbWaterIndicesFunctor.h @@ -104,7 +104,7 @@ class WaterIndexFunctor : public WaterIndexBase<TInput1, TInput2, TOutput> { public: WaterIndexFunctor() {}; - ~WaterIndexFunctor() {}; + virtual ~WaterIndexFunctor() {}; protected: inline TOutput Evaluate(const TInput1 &id1, const TInput2 &id2) const { @@ -139,7 +139,7 @@ class SRWI : public WaterIndexBase<TInput1, TInput2, TOutput> { public: SRWI() {}; - ~SRWI() {}; + virtual ~SRWI() {}; protected: inline TOutput Evaluate(const TInput1 &rho860, const TInput2 &rho1240) const { @@ -174,7 +174,7 @@ public: /// Constructor NDWI() {}; /// Desctructor - ~NDWI() {}; + virtual ~NDWI() {}; WIFunctorType GetWIFunctor(void)const { return (m_WIFunctor); @@ -227,7 +227,7 @@ public: /// Constructor NDWI2() {}; /// Desctructor - ~NDWI2() {}; + virtual ~NDWI2() {}; WIFunctorType GetWIFunctor(void)const { return (m_WIFunctor); @@ -279,7 +279,7 @@ public: /// Constructor MNDWI() {}; /// Desctructor - ~MNDWI() {}; + virtual ~MNDWI() {}; WIFunctorType GetWIFunctor(void)const { return (m_WIFunctor); @@ -332,7 +332,7 @@ public: /// Constructor NDPI() {}; /// Desctructor - ~NDPI() {}; + virtual ~NDPI() {}; WIFunctorType GetWIFunctor(void)const { return (m_WIFunctor); @@ -385,7 +385,7 @@ public: /// Constructor NDTI() {}; /// Desctructor - ~NDTI() {}; + virtual ~NDTI() {}; WIFunctorType GetWIFunctor(void)const { return (m_WIFunctor); @@ -452,7 +452,7 @@ public: reference[0] = 136.0; reference[1] = 132.0; reference[2] = 47.0; reference[3] = 24.0; this->SetReferenceWaterPixel( reference ); }; - ~WaterSqrtSpectralAngleFunctor() {}; + virtual ~WaterSqrtSpectralAngleFunctor() {}; /** Set Reference Pixel */ void SetReferenceWaterPixel(InputVectorPixelType ref) diff --git a/Code/SpatialReasoning/otbImageMultiSegmentationToRCC8GraphFilter.h b/Code/SpatialReasoning/otbImageMultiSegmentationToRCC8GraphFilter.h index be9dfcd427ed7425b591a576f0c55547a6cacaf6..250cf7cd14f70ddcfadb8a4e9822559c012b82ba 100644 --- a/Code/SpatialReasoning/otbImageMultiSegmentationToRCC8GraphFilter.h +++ b/Code/SpatialReasoning/otbImageMultiSegmentationToRCC8GraphFilter.h @@ -79,7 +79,7 @@ protected: /** Constructor */ ImageMultiSegmentationToRCC8GraphFilter(); /** Destructor */ - ~ImageMultiSegmentationToRCC8GraphFilter(); + virtual ~ImageMultiSegmentationToRCC8GraphFilter(); /** Main computation method */ virtual void GenerateData(); /** PrintSelf method */ diff --git a/Code/SpatialReasoning/otbPolygonListToRCC8GraphFilter.h b/Code/SpatialReasoning/otbPolygonListToRCC8GraphFilter.h index 4057acc242441178fcf26a9e7f78a8d0135ac292..3211927cd6da6b46a800531094996bfadaf14801 100644 --- a/Code/SpatialReasoning/otbPolygonListToRCC8GraphFilter.h +++ b/Code/SpatialReasoning/otbPolygonListToRCC8GraphFilter.h @@ -117,7 +117,7 @@ protected: /** Constructor */ PolygonListToRCC8GraphFilter(); /** Destructor */ - ~PolygonListToRCC8GraphFilter(); + virtual ~PolygonListToRCC8GraphFilter(); /** Main computation method */ virtual void GenerateData(); diff --git a/Code/SpatialReasoning/otbRCC8GraphFileReader.h b/Code/SpatialReasoning/otbRCC8GraphFileReader.h index 72a3f0cd2e379361faba457eab378c70ad779df9..8ffe0302fb3de7af4ab967da56cd4df15d41fc4c 100644 --- a/Code/SpatialReasoning/otbRCC8GraphFileReader.h +++ b/Code/SpatialReasoning/otbRCC8GraphFileReader.h @@ -87,7 +87,7 @@ protected: /** Constructor */ RCC8GraphFileReader(); /** Destructor */ - ~RCC8GraphFileReader(); + virtual ~RCC8GraphFileReader(); /** Main computation method */ virtual void GenerateData(); /** diff --git a/Code/SpatialReasoning/otbRCC8VertexBase.h b/Code/SpatialReasoning/otbRCC8VertexBase.h index 324a3c340e4c809637c86868fdc17f5daa8553ba..a719e72c744f85cf293037957d2c6f9222c10a2e 100644 --- a/Code/SpatialReasoning/otbRCC8VertexBase.h +++ b/Code/SpatialReasoning/otbRCC8VertexBase.h @@ -77,7 +77,7 @@ protected: /** Constructor */ RCC8VertexBase(); /** Desctructor */ - ~RCC8VertexBase() {}; + virtual ~RCC8VertexBase() {}; /** PrintSelf method */ void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Visu/otbFixedSizeFullImageWidget.h b/Code/Visu/otbFixedSizeFullImageWidget.h index 8232299624b9cdadc6c5444c34bebd086f978e06..614283f39a1d34df76c894f3e253246855601fbb 100644 --- a/Code/Visu/otbFixedSizeFullImageWidget.h +++ b/Code/Visu/otbFixedSizeFullImageWidget.h @@ -67,7 +67,7 @@ protected: /** Constructor. */ FixedSizeFullImageWidget(); /** Destructor. */ - ~FixedSizeFullImageWidget(); + virtual ~FixedSizeFullImageWidget(); /** Return the width and heigh of the displayed image (overloaded for scroll)*/ int wDisplayed() diff --git a/Code/Visu/otbFullResolutionImageWidget.h b/Code/Visu/otbFullResolutionImageWidget.h index 1c474fa59f7fd5f522decd9fa8c7e351834f189a..0e0c55621f3784c15a608af4a23ef4d094e94cdf 100644 --- a/Code/Visu/otbFullResolutionImageWidget.h +++ b/Code/Visu/otbFullResolutionImageWidget.h @@ -72,7 +72,7 @@ protected: /** Constructor. */ FullResolutionImageWidget(); /** Destructor. */ - ~FullResolutionImageWidget(); + virtual ~FullResolutionImageWidget(); private: FullResolutionImageWidget(const Self&);// purposely not implemented diff --git a/Code/Visu/otbImageToGrayscaleAnaglyphImageFilter.h b/Code/Visu/otbImageToGrayscaleAnaglyphImageFilter.h index 216355463d9055b6f3709315ef45b5992e82c090..34c19572f2fa7dbe51020f2a2768e35d02750a90 100644 --- a/Code/Visu/otbImageToGrayscaleAnaglyphImageFilter.h +++ b/Code/Visu/otbImageToGrayscaleAnaglyphImageFilter.h @@ -42,7 +42,7 @@ public: /// Constructor GrayscaleAnaglyphFunctor() {}; /// Destructor - ~GrayscaleAnaglyphFunctor() {}; + virtual ~GrayscaleAnaglyphFunctor() {}; inline TOutputPixel operator()(const TInputPixel1& pixel1, const TInputPixel2& pixel2) diff --git a/Code/Visu/otbImageViewer.h b/Code/Visu/otbImageViewer.h index 7955bc21ba04fc810c0c8d6d984166ade413acdc..2b2873c8b49a1b0771fe18b2cce30611bf53d4de 100644 --- a/Code/Visu/otbImageViewer.h +++ b/Code/Visu/otbImageViewer.h @@ -82,7 +82,7 @@ protected: /**Constructor */ ImageViewer(); /** Destructor */ - ~ImageViewer(); + virtual ~ImageViewer(); private: ImageViewer(const Self&); //purposely not implemented diff --git a/Code/Visu/otbImageViewerBase.h b/Code/Visu/otbImageViewerBase.h index 79a6afdd6b1258ea23cc35574db1a0bdaa86d12c..d7faa3cf053bc4ba06622f9fbfea382dbbbf4148 100644 --- a/Code/Visu/otbImageViewerBase.h +++ b/Code/Visu/otbImageViewerBase.h @@ -423,7 +423,7 @@ protected: // Constructor and destructor ImageViewerBase(); - ~ImageViewerBase(); + virtual ~ImageViewerBase(); /** Line width*/ double m_LineWidth; diff --git a/Code/Visu/otbImageViewerFullResolutionEventsInterface.h b/Code/Visu/otbImageViewerFullResolutionEventsInterface.h index fd6a1a268ad8e766a29c02eecee8ba6025beb9cf..a1bf8d25390ca6c8c1ad50d48db39e4627d5f99f 100644 --- a/Code/Visu/otbImageViewerFullResolutionEventsInterface.h +++ b/Code/Visu/otbImageViewerFullResolutionEventsInterface.h @@ -63,7 +63,7 @@ protected: m_ForwardEvents = false; } /** Destructor */ - ~ImageViewerFullResolutionEventsInterface() {} + virtual ~ImageViewerFullResolutionEventsInterface() {} private: ImageViewerFullResolutionEventsInterface(const Self&); //purposely not implemented diff --git a/Code/Visu/otbImageViewerFullWidget.h b/Code/Visu/otbImageViewerFullWidget.h index a708a10229c57c78fe22a7668784bdc1437bf684..3b268963b4b76e6a45b1f67b7c49b3c1aa3e1ca3 100644 --- a/Code/Visu/otbImageViewerFullWidget.h +++ b/Code/Visu/otbImageViewerFullWidget.h @@ -502,7 +502,7 @@ protected: /** * Destructor. */ - ~ImageViewerFullWidget() + virtual ~ImageViewerFullWidget() { m_Parent = NULL; } diff --git a/Code/Visu/otbImageViewerScrollWidget.h b/Code/Visu/otbImageViewerScrollWidget.h index 77300a80c321efb52ac57ab2c586c2f2d55ab052..8657e23f09293f0fbf5dc02f977fb95dbf1356fc 100644 --- a/Code/Visu/otbImageViewerScrollWidget.h +++ b/Code/Visu/otbImageViewerScrollWidget.h @@ -143,7 +143,7 @@ protected: /** * Destructor. */ - ~ImageViewerScrollWidget() + virtual ~ImageViewerScrollWidget() { m_Parent = NULL; } diff --git a/Code/Visu/otbImageViewerZoomWidget.h b/Code/Visu/otbImageViewerZoomWidget.h index 3204083b83ab350756dc30484cb4848d079b5844..02ab3af841578dc6ffccd3b31c4302281b56e8ae 100644 --- a/Code/Visu/otbImageViewerZoomWidget.h +++ b/Code/Visu/otbImageViewerZoomWidget.h @@ -188,7 +188,7 @@ protected: /** * Destructor. */ - ~ImageViewerZoomWidget() + virtual ~ImageViewerZoomWidget() { m_Parent = NULL; } diff --git a/Code/Visu/otbImageWidgetBase.h b/Code/Visu/otbImageWidgetBase.h index b6c35a64bed2c87f6f2ab6d50022e559bb4bd573..92d606474542faf6c86832836aff8106ffce804d 100644 --- a/Code/Visu/otbImageWidgetBase.h +++ b/Code/Visu/otbImageWidgetBase.h @@ -180,7 +180,7 @@ protected: /** Constructor */ ImageWidgetBase(); /** Destructor */ - ~ImageWidgetBase(); + virtual ~ImageWidgetBase(); /** Draw the widget */ virtual void draw(void); diff --git a/Code/Visu/otbImageWidgetFormBase.h b/Code/Visu/otbImageWidgetFormBase.h index 8617b2ccaf3fcd6190eaff549a3fa7d8fe182790..b0d211f662b68dd6fa44677b9f7d652cc66edc74 100644 --- a/Code/Visu/otbImageWidgetFormBase.h +++ b/Code/Visu/otbImageWidgetFormBase.h @@ -101,7 +101,7 @@ protected: }; /** Destructor. */ - ~ImageWidgetFormBase() + virtual ~ImageWidgetFormBase() {}; ColorType m_Color; diff --git a/Code/Visu/otbImageWidgetTransferFunction.h b/Code/Visu/otbImageWidgetTransferFunction.h index 1619529c6d7d8462944fb7406be7d3bca842d2fb..e0cc3c8900e94ce43e160c7ff4f208a0ab800e6a 100644 --- a/Code/Visu/otbImageWidgetTransferFunction.h +++ b/Code/Visu/otbImageWidgetTransferFunction.h @@ -134,7 +134,7 @@ public: protected: /** Constructor and destructor */ ImageWidgetAffineTransferFunction() {} - ~ImageWidgetAffineTransferFunction() {} + virtual ~ImageWidgetAffineTransferFunction() {} private: ImageWidgetAffineTransferFunction(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented @@ -185,7 +185,7 @@ public: protected: /** Constructor and destructor */ ImageWidgetSquareRootTransferFunction() {} - ~ImageWidgetSquareRootTransferFunction() {} + virtual ~ImageWidgetSquareRootTransferFunction() {} private: ImageWidgetSquareRootTransferFunction(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented @@ -236,7 +236,7 @@ public: protected: /** Constructor and destructor */ ImageWidgetLogTransferFunction() {} - ~ImageWidgetLogTransferFunction() {} + virtual ~ImageWidgetLogTransferFunction() {} private: ImageWidgetLogTransferFunction(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented @@ -287,7 +287,7 @@ public: protected: /** Constructor and destructor */ ImageWidgetSquareTransferFunction() {} - ~ImageWidgetSquareTransferFunction() {} + virtual ~ImageWidgetSquareTransferFunction() {} private: ImageWidgetSquareTransferFunction(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented diff --git a/Code/Visu/otbVectorImageToColorAnaglyphVectorImageFilter.h b/Code/Visu/otbVectorImageToColorAnaglyphVectorImageFilter.h index 0169d46c1d1445d296b1b866f415073f489369be..b34988a2036fad4d27b74cbcbd792bb0cdb9286d 100644 --- a/Code/Visu/otbVectorImageToColorAnaglyphVectorImageFilter.h +++ b/Code/Visu/otbVectorImageToColorAnaglyphVectorImageFilter.h @@ -51,7 +51,7 @@ public: m_BlueChannelIndex = 2; }; /// Destructor - ~ColorAnaglyphFunctor() {}; + virtual ~ColorAnaglyphFunctor() {}; inline TOutputPixel operator()(const TInputPixel1& pixel1, const TInputPixel2& pixel2) { diff --git a/Code/Visu/otbZoomableImageWidget.h b/Code/Visu/otbZoomableImageWidget.h index cd2f762a358b5c62c80ec6dfcebf5fef8099498e..d06f1e57f99bbd29225b4104944d99f8804a8cd6 100644 --- a/Code/Visu/otbZoomableImageWidget.h +++ b/Code/Visu/otbZoomableImageWidget.h @@ -77,7 +77,7 @@ protected: /** Constructor. */ ZoomableImageWidget(); /** Destructor. */ - ~ZoomableImageWidget(); + virtual ~ZoomableImageWidget(); private: ZoomableImageWidget(const Self&);// purposely not implemented diff --git a/Code/Visualization/otbAlphaBlendingFunction.h b/Code/Visualization/otbAlphaBlendingFunction.h index 6018a527ab7dc927dad2effbf4e933ccebd0931a..4dc841de6af961bb0321ae615282d300cd7bb6c4 100644 --- a/Code/Visualization/otbAlphaBlendingFunction.h +++ b/Code/Visualization/otbAlphaBlendingFunction.h @@ -93,7 +93,7 @@ protected: /** Constructor */ AlphaBlendingFunction() : m_Alpha(1.0) {} /** Destructor */ - ~AlphaBlendingFunction() {} + virtual ~AlphaBlendingFunction() {} private: AlphaBlendingFunction(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented diff --git a/Code/Visualization/otbBlendingImageFilter.h b/Code/Visualization/otbBlendingImageFilter.h index 18cc92c26975fd85df8e22a121c1c7924061257e..c53ab0a911097455517ba4e118bf99c4e331d570 100644 --- a/Code/Visualization/otbBlendingImageFilter.h +++ b/Code/Visualization/otbBlendingImageFilter.h @@ -62,7 +62,7 @@ public: } /** Destructor */ - ~BlendingFunctor(){} + virtual ~BlendingFunctor(){} /** Set the rendering function * \param function the Blending function. diff --git a/Code/Visualization/otbCurves2DWidget.h b/Code/Visualization/otbCurves2DWidget.h index 8f4e5bd2a619c60b8831d82a648ee830c622aa8a..504cbe6f23795b62303bdb0e9523d5274ca87f81 100644 --- a/Code/Visualization/otbCurves2DWidget.h +++ b/Code/Visualization/otbCurves2DWidget.h @@ -124,7 +124,7 @@ protected: /** Constructor */ Curves2DWidget(); /** Destructor */ - ~Curves2DWidget(); + virtual ~Curves2DWidget(); /** Printself method */ void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Visualization/otbGlWidget.h b/Code/Visualization/otbGlWidget.h index 9b31185e1a264cb7fd2e0373f93d5a4952ad0d24..47c637d44262fb496d9ae4a6807ec4eade6d621b 100644 --- a/Code/Visualization/otbGlWidget.h +++ b/Code/Visualization/otbGlWidget.h @@ -104,7 +104,7 @@ protected: /** Constructor */ GlWidget(); /** Destructor */ - ~GlWidget(); + virtual ~GlWidget(); /** Printself method */ virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Actually render the buffer to the screen. This method is diff --git a/Code/Visualization/otbImageLayer.h b/Code/Visualization/otbImageLayer.h index 2448e08e98c8fbdd21e9d764a58d0c10ba7e8efa..85f6c97916688bd061c0c06d8bb0fac8f5e1317a 100644 --- a/Code/Visualization/otbImageLayer.h +++ b/Code/Visualization/otbImageLayer.h @@ -199,7 +199,7 @@ protected: /** Constructor */ ImageLayer(); /** Destructor */ - ~ImageLayer(); + virtual ~ImageLayer(); /** Printself method */ void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Visualization/otbImageLayerGenerator.h b/Code/Visualization/otbImageLayerGenerator.h index 57e0a9be39c1ea7c8ec039aafd43e84c71da1cc7..d169b9e2e661f117afba3b242e7880d0733a66b6 100644 --- a/Code/Visualization/otbImageLayerGenerator.h +++ b/Code/Visualization/otbImageLayerGenerator.h @@ -183,7 +183,7 @@ protected: /** Constructor */ ImageLayerGenerator(); /** Destructor */ - ~ImageLayerGenerator(); + virtual ~ImageLayerGenerator(); /** Printself method */ void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Visualization/otbImageLayerRenderingModel.h b/Code/Visualization/otbImageLayerRenderingModel.h index cb040493996a70c9d99ff372f4df0010f071d3c1..b9a7dfb5905ad31c27227a83fd7e4bf7a47705c4 100644 --- a/Code/Visualization/otbImageLayerRenderingModel.h +++ b/Code/Visualization/otbImageLayerRenderingModel.h @@ -18,12 +18,13 @@ #ifndef __otbImageLayerRenderingModel_h #define __otbImageLayerRenderingModel_h -#include "otbMVCModelBase.h" +#include "otbMVCModel.h" #include "otbLayerBasedModel.h" #include "otbImageLayerBase.h" #include "otbObjectList.h" #include "otbImageLayerRenderingModelListener.h" #include "otbBlendingImageFilter.h" +#include "otbListenerBase.h" namespace otb { @@ -43,7 +44,7 @@ namespace otb template <class TOutputImage = otb::Image<itk::RGBAPixel<unsigned char>,2 >, class TLayer = otb::ImageLayerBase<TOutputImage> > class ImageLayerRenderingModel - : public MVCModelBase<ImageLayerRenderingModelListener>, public LayerBasedModel< TLayer > + : public MVCModel<ListenerBase>, public LayerBasedModel< TLayer > { public: /** Standard class typedefs */ @@ -74,7 +75,8 @@ public: typedef typename LayerListType::ConstIterator LayerIteratorType; /** Listener typedef */ - typedef ImageLayerRenderingModelListener ListenerType; +// typedef ImageLayerRenderingModelListener ListenerType; + typedef ListenerBase ListenerType; /** Blending filter typedef */ typedef otb::BlendingImageFilter<OutputImageType> BlendingFilterType; @@ -109,46 +111,46 @@ public: /** Update will render all visible layers, rasterize all visible * layers and notify all listeners. */ - void Update(void); + virtual void Update(void); /** Change the Scaled extract region by giving the center of the * region */ - void SetScaledExtractRegionCenter(const IndexType & index); + virtual void SetScaledExtractRegionCenter(const IndexType & index); /** Change the extract region by giving the center of the * region */ - void SetExtractRegionCenter(const IndexType & index); + virtual void SetExtractRegionCenter(const IndexType & index); /** Change the extract region by giving the 2 points of the * region */ - void SetExtractRegionByIndex(const IndexType & startIndex, const IndexType & stopIndex ); + virtual void SetExtractRegionByIndex(const IndexType & startIndex, const IndexType & stopIndex ); /** Get the sumbsampling rate */ - unsigned int GetSubsamplingRate(); + virtual unsigned int GetSubsamplingRate(); /** Filters Initialisation. */ - void Init(); + virtual void Init(); protected: /** Constructor */ ImageLayerRenderingModel(); /** Destructor */ - ~ImageLayerRenderingModel(); + virtual ~ImageLayerRenderingModel(); /** Printself method */ - void PrintSelf(std::ostream& os, itk::Indent indent) const; + virtual void PrintSelf(std::ostream& os, itk::Indent indent) const; /** Renders all visible layers */ - void RenderVisibleLayers(void); + virtual void RenderVisibleLayers(void); /** Rasterize visible layers */ - void RasterizeVisibleLayers(void); + virtual void RasterizeVisibleLayers(void); /** Notify a registered listener */ - void Notify(ListenerType * listener); + virtual void Notify(ListenerType * listener); /** Constrains the given region to the largest possible one. */ - RegionType ConstrainRegion(const RegionType & region, const RegionType & largest); + virtual RegionType ConstrainRegion(const RegionType & region, const RegionType & largest); private: ImageLayerRenderingModel(const Self&); // purposely not implemented diff --git a/Code/Visualization/otbImageLayerRenderingModel.txx b/Code/Visualization/otbImageLayerRenderingModel.txx index f00ff1103f5553e662162604bdfd3397d00c37b6..29933ed0fb3bc4837032d84f6268ee9f0369b004 100644 --- a/Code/Visualization/otbImageLayerRenderingModel.txx +++ b/Code/Visualization/otbImageLayerRenderingModel.txx @@ -247,7 +247,7 @@ ImageLayerRenderingModel<TOutputImage, TLayer> { // Notify the listener otbMsgDevMacro(<<"ImageLayerRenderingModel::Notify(): Notifying listener"); - listener->ImageLayerRenderingModelNotify(); + listener->Notify(); } diff --git a/Code/Visualization/otbImageLayerRenderingModelListener.h b/Code/Visualization/otbImageLayerRenderingModelListener.h index ccdbb1ee563e7ef2ff3676ee91f5bfc364bcc30d..8a366574ec2ae98748496d0369489cea7a44c362 100644 --- a/Code/Visualization/otbImageLayerRenderingModelListener.h +++ b/Code/Visualization/otbImageLayerRenderingModelListener.h @@ -35,7 +35,7 @@ public: typedef ImageLayerRenderingModelListener Self; // Update the display - virtual void ImageLayerRenderingModelNotify() = 0; + virtual void Notify() = 0; protected: /** Constructor */ diff --git a/Code/Visualization/otbImageView.h b/Code/Visualization/otbImageView.h index ae5abf511d820a1fd5dcb345d554a32916c17634..6431554a0b5680a9f96c2b824cba951adc6c6eba 100644 --- a/Code/Visualization/otbImageView.h +++ b/Code/Visualization/otbImageView.h @@ -19,7 +19,8 @@ #define __otbImageView_h #include "otbImageWidget.h" -#include "otbImageLayerRenderingModelListener.h" +// #include "otbImageLayerRenderingModelListener.h" +#include "otbListenerBase.h" #include "otbImageWidgetController.h" #include "otbRegionGlComponent.h" @@ -34,7 +35,7 @@ namespace otb template <class TViewerModel > class ImageView - : public ImageLayerRenderingModelListener, public itk::Object + : public ListenerBase, public itk::Object { public: /** Standard class typedefs */ @@ -107,7 +108,7 @@ public: /** Constructor */ ImageView(); /** Destructor */ - ~ImageView(); + virtual ~ImageView(); /** Printself method */ void PrintSelf(std::ostream& os, itk::Indent indent) const; @@ -121,7 +122,7 @@ public: void UpdateZoomWidget(); /** Handle notification from the viewer */ - virtual void ImageLayerRenderingModelNotify(); + virtual void Notify(); private: ImageView(const Self&); // purposely not implemented diff --git a/Code/Visualization/otbImageView.txx b/Code/Visualization/otbImageView.txx index 511c294df5a3d3f6361eaec617260ba218b89e41..b0ef1beaee2d4732d57046ce1bd04619a3d6efa0 100644 --- a/Code/Visualization/otbImageView.txx +++ b/Code/Visualization/otbImageView.txx @@ -93,7 +93,7 @@ ImageView<TViewerModel> template < class TViewerModel > void ImageView<TViewerModel> -::ImageLayerRenderingModelNotify() +::Notify() { this->Update(); } diff --git a/Code/Visualization/otbImageWidget.h b/Code/Visualization/otbImageWidget.h index 9c3ea5be289a034c4e31d63c7578b2f8aa0054b4..97d7e3396c46ede75ccc2179f83751ef1f07f723 100644 --- a/Code/Visualization/otbImageWidget.h +++ b/Code/Visualization/otbImageWidget.h @@ -155,7 +155,7 @@ protected: /** Constructor */ ImageWidget(); /** Destructor */ - ~ImageWidget(); + virtual ~ImageWidget(); /** Printself method */ void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Visualization/otbImageWidgetController.h b/Code/Visualization/otbImageWidgetController.h index 81e1816100c6d24c6ef448d70d0e748434c7c5e5..addfbececdea37161c8c61d719d8383dcdd846d7 100644 --- a/Code/Visualization/otbImageWidgetController.h +++ b/Code/Visualization/otbImageWidgetController.h @@ -93,7 +93,7 @@ protected: /** Constructor */ ImageWidgetController(); /** Destructor */ - ~ImageWidgetController(); + virtual ~ImageWidgetController(); /** Printself method */ void PrintSelf(std::ostream& os, itk::Indent indent) const; diff --git a/Code/Visualization/otbListenerBase.h b/Code/Visualization/otbListenerBase.h new file mode 100644 index 0000000000000000000000000000000000000000..416df070e7e34f875eacac555a96c5c80ae667eb --- /dev/null +++ b/Code/Visualization/otbListenerBase.h @@ -0,0 +1,52 @@ +/*========================================================================= + +Program: ORFEO Toolbox +Language: C++ +Date: $Date$ +Version: $Revision$ + + +Copyright (c) Centre National d'Etudes Spatiales. All rights reserved. +See OTBCopyright.txt for details. + + +This software is distributed WITHOUT ANY WARRANTY; without even +the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR +PURPOSE. See the above copyright notices for more information. + +=========================================================================*/ +#ifndef __otbListenerBase_h +#define __otbListenerBase_h + +namespace otb +{ +/** + * \class ListenerBase + * + * Vectorization view interface specification for the model + * + * \ingroup Visualization + */ + +class ListenerBase +{ +public: + /** Standard class typedefs */ + typedef ListenerBase Self; + + // Update the display + virtual void Notify() = 0; + +protected: + /** Constructor */ + ListenerBase() {}; + /** Destructor */ + virtual ~ListenerBase() {}; + +private: + ListenerBase(const Self&); //purposely not implemented + void operator=(const Self&); //purposely not implemented +}; + +} // end namespace otb +#endif diff --git a/Code/Visualization/otbMVCModelBase.h b/Code/Visualization/otbMVCModel.h similarity index 73% rename from Code/Visualization/otbMVCModelBase.h rename to Code/Visualization/otbMVCModel.h index 4d3a586ff1ad238140c04e63087cf859a8b21a8f..2014766ff875d6b8e7dd8ec91e4d0c36226531ed 100644 --- a/Code/Visualization/otbMVCModelBase.h +++ b/Code/Visualization/otbMVCModel.h @@ -15,24 +15,31 @@ the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the above copyright notices for more information. =========================================================================*/ -#ifndef __otbMVCModelBase_h -#define __otbMVCModelBase_h +#ifndef __otbMVCModel_h +#define __otbMVCModel_h #include <set> +#include "itkObject.h" +#include "itkObjectFactory.h" namespace otb { -/** \class MVCModelBase - * \brief Interface class for MVC based modelling. - * Implements the registration and +/** \class MVCModel + * + * Base class for MVC based modelling. Implements the registration and * Unregistration of listeners, as well as the NotifyAll method. A valid listener must * implement a Notify() method. - * \ingroup Visualization */ template <class TListener> -class MVCModelBase +class MVCModel { public: + /** Standard class typedefs */ + typedef MVCModel Self; + typedef itk::Object Superclass; + typedef itk::SmartPointer<Self> Pointer; + typedef itk::SmartPointer<const Self> ConstPointer; + // Define the listener type typedef TListener ListenerType; @@ -68,15 +75,22 @@ public: } /** Notify changes to a given listerner */ - virtual void Notify(ListenerType * listener) {}; + virtual void Notify(ListenerType * listener) + { + listener->Notify(); + }; protected: /** Constructor */ - MVCModelBase() {} + MVCModel() {} /** Destructor */ - virtual ~MVCModelBase() {} + virtual ~MVCModel() {} private: + MVCModel(const Self&); //purposely not implemented + void operator=(const Self&); //purposely not implemented + + /** Registered liteners */ ListenersSetType m_RegisteredListeners; }; diff --git a/Code/Visualization/otbMultiplyBlendingFunction.h b/Code/Visualization/otbMultiplyBlendingFunction.h index b7e13e95ffdc125b414dada9fb1d1017cb867f5c..8771e4bef1beacc21ffcdd0feb6b842cf0f5206f 100644 --- a/Code/Visualization/otbMultiplyBlendingFunction.h +++ b/Code/Visualization/otbMultiplyBlendingFunction.h @@ -80,7 +80,7 @@ namespace Function /** Constructor */ MultiplyBlendingFunction() {} /** Destructor */ - ~MultiplyBlendingFunction() {} + virtual ~MultiplyBlendingFunction() {} private: MultiplyBlendingFunction(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented diff --git a/Code/Visualization/otbPixelDescriptionModel.h b/Code/Visualization/otbPixelDescriptionModel.h index 87b9412b4d8c3f45cb5749023fd9c42076071d3e..7e825368a9b9b6af29612162ca18a52c80e27789 100644 --- a/Code/Visualization/otbPixelDescriptionModel.h +++ b/Code/Visualization/otbPixelDescriptionModel.h @@ -18,7 +18,7 @@ #ifndef __otbPixelDescriptionModel_h #define __otbPixelDescriptionModel_h -#include "otbMVCModelBase.h" +#include "otbMVCModel.h" #include "otbLayerBasedModel.h" #include "otbPixelDescriptionModelListener.h" #include "otbImageLayerBase.h" @@ -35,7 +35,7 @@ namespace otb template <class TOutputImage > class PixelDescriptionModel - : public MVCModelBase<PixelDescriptionModelListener>, public LayerBasedModel< ImageLayerBase< TOutputImage > > + : public MVCModel<PixelDescriptionModelListener>, public LayerBasedModel< ImageLayerBase< TOutputImage > > { public: /** Standard class typedefs */ diff --git a/Code/Visualization/otbPixelDescriptionModel.txx b/Code/Visualization/otbPixelDescriptionModel.txx index ac20aecec746c8050d428582fc897fd288bca124..932c7768d685598814e08367b6ae8236d49e673d 100644 --- a/Code/Visualization/otbPixelDescriptionModel.txx +++ b/Code/Visualization/otbPixelDescriptionModel.txx @@ -81,7 +81,7 @@ void PixelDescriptionModel<TOutputImage> ::Notify(ListenerType * listener) { - listener->PixelDescriptionModelNotify(); + listener->Notify(); } } // end namespace otb diff --git a/Code/Visualization/otbPixelDescriptionModelListener.h b/Code/Visualization/otbPixelDescriptionModelListener.h index 383412433c240a027253401b33979675585567f6..6bb2f2279d8d633fef3a4076eaeccf23c5b77fbb 100644 --- a/Code/Visualization/otbPixelDescriptionModelListener.h +++ b/Code/Visualization/otbPixelDescriptionModelListener.h @@ -34,7 +34,7 @@ public: typedef PixelDescriptionModelListener Self; // Update the display - virtual void PixelDescriptionModelNotify() = 0; + virtual void Notify() = 0; protected: /** Constructor */ diff --git a/Code/Visualization/otbPixelDescriptionView.h b/Code/Visualization/otbPixelDescriptionView.h index 346ecd7c749ece8e166eb33b3c347077722e5c82..0559e735d4f4546ebd421d19527767540d7cace5 100644 --- a/Code/Visualization/otbPixelDescriptionView.h +++ b/Code/Visualization/otbPixelDescriptionView.h @@ -78,10 +78,10 @@ public: /** Constructor */ PixelDescriptionView(); /** Destructor */ - ~PixelDescriptionView(); + virtual ~PixelDescriptionView(); /** Handle notification from the viewer */ - virtual void PixelDescriptionModelNotify(); + virtual void Notify(); private: PixelDescriptionView(const Self&); // purposely not implemented diff --git a/Code/Visualization/otbPixelDescriptionView.txx b/Code/Visualization/otbPixelDescriptionView.txx index 5df637accf54c278fe4f5a031ad257cd50d15831..99642d6c41454e2a01ab7494b67902a4e41b9a21 100644 --- a/Code/Visualization/otbPixelDescriptionView.txx +++ b/Code/Visualization/otbPixelDescriptionView.txx @@ -65,7 +65,7 @@ PixelDescriptionView<TInputPixelDescription> template < class TInputPixelDescription > void PixelDescriptionView<TInputPixelDescription> -::PixelDescriptionModelNotify() +::Notify() { this->Update(); } diff --git a/Code/Visualization/otbRenderingImageFilter.h b/Code/Visualization/otbRenderingImageFilter.h index 6f5c865a0b025b00d048afe821bfd486a01c8ed5..c7845f6ae492e95bce3fe08fe8c99c92066684e5 100644 --- a/Code/Visualization/otbRenderingImageFilter.h +++ b/Code/Visualization/otbRenderingImageFilter.h @@ -79,7 +79,7 @@ public: } /** Destructor */ - ~RenderingFunctor(){} + virtual ~RenderingFunctor(){} /** Set the rendering function * \param function the Rendering function. diff --git a/Code/Visualization/otbStandardRenderingFunction.h b/Code/Visualization/otbStandardRenderingFunction.h index 0685608285d20453c4d24d2d9e80151ea715810b..ee1d178acc9af51c1a17de89e291e5566607b1a4 100644 --- a/Code/Visualization/otbStandardRenderingFunction.h +++ b/Code/Visualization/otbStandardRenderingFunction.h @@ -42,7 +42,7 @@ class Identity { public: Identity(){}; - ~Identity(){}; + virtual ~Identity(){}; bool operator !=(const Identity &) const { return false; @@ -347,7 +347,7 @@ protected: m_AutoMinMaxQuantile(0.02), m_DefaultChannelsAreSet(false), m_UTime() {} /** Destructor */ - ~StandardRenderingFunction() {} + virtual ~StandardRenderingFunction() {} /** Perform the computation for a single value (this is done in * order to have the same code for vector and scalar version) diff --git a/Code/Visualization/otbUniformAlphaBlendingFunction.h b/Code/Visualization/otbUniformAlphaBlendingFunction.h index 475db2dec3eeea57a938eee5cb8e5a77db62951d..44493a031a1a8b7018a14959eb323f7fd761cdb1 100644 --- a/Code/Visualization/otbUniformAlphaBlendingFunction.h +++ b/Code/Visualization/otbUniformAlphaBlendingFunction.h @@ -77,7 +77,7 @@ protected: /** Constructor */ UniformAlphaBlendingFunction() : m_Alpha(0.5) {} /** Destructor */ - ~UniformAlphaBlendingFunction() {} + virtual ~UniformAlphaBlendingFunction() {} private: UniformAlphaBlendingFunction(const Self&); //purposely not implemented void operator=(const Self&); //purposely not implemented diff --git a/Testing/Code/BasicFilters/CMakeLists.txt b/Testing/Code/BasicFilters/CMakeLists.txt index 830d474ffefa7d8e36a403042358f3b74d0c283c..ce2431ae98f06c004cf10e79c6ac3ba920740d2e 100644 --- a/Testing/Code/BasicFilters/CMakeLists.txt +++ b/Testing/Code/BasicFilters/CMakeLists.txt @@ -831,7 +831,9 @@ ${TEMP}/bfTvVectorImageToAmplitudeImageFilterOutput.tif otbFlexibleDistanceWithMissingValueNew) ADD_TEST(bfTuFlexibleDistanceWithMissingValue ${BASICFILTERS_TESTS8} - otbFlexibleDistanceWithMissingValue) + otbFlexibleDistanceWithMissingValue + 0.00000001 +) # ------- otb::LabelizeNeighborhoodConnectedImageFilter ---------------------------- diff --git a/Testing/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.cxx b/Testing/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.cxx index ab849101ba0127b6747c421a1433efd8a72c1157..36d6a5a0ac5d55176d8a28c6e9848846598f480b 100644 --- a/Testing/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.cxx +++ b/Testing/Code/BasicFilters/otbFlexibleDistanceWithMissingValue.cxx @@ -21,6 +21,7 @@ PURPOSE. See the above copyright notices for more information. #include <iostream> #include <cstdlib> +#include <iomanip> #include "itkVariableLengthVector.h" #include "otbFlexibleDistanceWithMissingValue.h" @@ -30,23 +31,29 @@ int otbFlexibleDistanceWithMissingValue( int argc, char * argv[] ) typedef itk::VariableLengthVector< double > VectorType; typedef otb::Statistics::FlexibleDistanceWithMissingValue< VectorType > DistanceType; - const double epsilon = 0.00000001; + const double epsilon(atof(argv[1])); float a = 2.0; float b = 0.5; + unsigned int dim = 3; DistanceType::SetAlphaBeta(a,b); - VectorType x(3); + VectorType x( dim ); x.Fill( 1. ); - VectorType y(3); + VectorType y( dim ); y.Fill( 2. ); DistanceType::Pointer dist = DistanceType::New(); double distanceValue = dist->Evaluate( x, y ); - std::cout << "Distance: " << distanceValue << std::endl; - - if ( (distanceValue - 3.*vcl_pow(3,b)) < epsilon ) + std::cout << std::setprecision(20)<< std::endl; + std::cout << "dim,a,b : " << dim<<","<<a<<","<<b<< std::endl; + std::cout << "dim*vcl_pow(3,b) : " << dim*vcl_pow(3,b) << std::endl; + std::cout << "Distance : " << distanceValue << std::endl; + std::cout << "Epsilon : " << epsilon << std::endl; + std::cout << "-> Tests diff : " << vcl_abs(distanceValue - dim*vcl_pow(3,b)) << std::endl; + + if ( vcl_abs(distanceValue - dim*vcl_pow(3,b)) < epsilon ) return EXIT_SUCCESS; else return EXIT_FAILURE; diff --git a/Testing/Code/Radiometry/otbAtmosphericCorrectionSequencement.cxx b/Testing/Code/Radiometry/otbAtmosphericCorrectionSequencement.cxx index d4cc59629953f58aedb6bb130443f5b1a50b7c2e..179bc6859d0da79863d9cecea03c3c7548d4ac76 100644 --- a/Testing/Code/Radiometry/otbAtmosphericCorrectionSequencement.cxx +++ b/Testing/Code/Radiometry/otbAtmosphericCorrectionSequencement.cxx @@ -197,7 +197,7 @@ int otbAtmosphericCorrectionSequencementTest( int argc, char *argv[] ) AtmosphericCorrectionParametersTo6SRadiativeTermsType::Pointer filterAtmosphericCorrectionParametersTo6SRadiativeTerms = AtmosphericCorrectionParametersTo6SRadiativeTermsType::New(); filterAtmosphericCorrectionParametersTo6SRadiativeTerms->SetInput( dataAtmosphericCorrectionParameters ); - + filterAtmosphericCorrectionParametersTo6SRadiativeTerms->Update(); //------------------------------- diff --git a/Testing/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.cxx b/Testing/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.cxx index 6dd59fafdbc07cfab67dcb7339f1f5505b043c64..47b5af37c05a591986a586b940566d795f54b53b 100644 --- a/Testing/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.cxx +++ b/Testing/Code/Radiometry/otbReflectanceToSurfaceReflectanceImageFilter.cxx @@ -28,7 +28,6 @@ int otbReflectanceToSurfaceReflectanceImageFilter(int argc, char * argv[]) const char * inputFileName = argv[1]; const char * outputFileName = argv[2]; - const unsigned int Dimension = 2; typedef double PixelType; typedef otb::VectorImage<PixelType,Dimension> InputImageType; @@ -54,7 +53,6 @@ int otbReflectanceToSurfaceReflectanceImageFilter(int argc, char * argv[]) DataVectorType downTrans; DataVectorType upTrans; - std::cout<<nbChannel<<std::endl; for ( unsigned int j=0; j<nbChannel; j++) { intrinsic.push_back(static_cast<double>(atof(argv[3+j]))); diff --git a/Testing/Code/Radiometry/otbRomaniaReflectanceToRomaniaSurfaceReflectanceImageFilter.cxx b/Testing/Code/Radiometry/otbRomaniaReflectanceToRomaniaSurfaceReflectanceImageFilter.cxx index 2200bd23dfb1283c1017f1b4eff7f08743064670..e0ebf526ed3ab5252d438e79151cb5f1a4aed4f6 100644 --- a/Testing/Code/Radiometry/otbRomaniaReflectanceToRomaniaSurfaceReflectanceImageFilter.cxx +++ b/Testing/Code/Radiometry/otbRomaniaReflectanceToRomaniaSurfaceReflectanceImageFilter.cxx @@ -146,6 +146,7 @@ int otbRomaniaReflectanceToRomaniaSurfaceReflectanceImageFilter(int argc, char * } corrToRadia->SetInput( param ); + corrToRadia->Update(); // Instantiating object ReflectanceToSurfaceReflectanceImageFilterType::Pointer filter = ReflectanceToSurfaceReflectanceImageFilterType::New(); diff --git a/Utilities/otbossim/CMakeLists.txt b/Utilities/otbossim/CMakeLists.txt index f66550abd22703f8ae7dda2fabf46a14cc5dd93a..273a712c07fc3dce1599441778a0beec18cb2717 100644 --- a/Utilities/otbossim/CMakeLists.txt +++ b/Utilities/otbossim/CMakeLists.txt @@ -107,7 +107,7 @@ IF(NOT OTB_DISABLE_UTILITIES_COMPILATION) ELSE("${CMAKE_MAJOR_VERSION}.${CMAKE_MINOR_VERSION}" MATCHES "^2\\.4$") ADD_CUSTOM_COMMAND( OUTPUT ${OTB_BINARY_DIR}/Utilities/otbossim/include/ossim/ossimVersion.h - COMMAND ${OTB_BINARY_DIR}/bin/version-config + COMMAND version-config ARGS "${OTB_BINARY_DIR}/Utilities/otbossim/include/ossim/ossimVersion.h" "${OSSIM_VERSION}" DEPENDS version-config COMMENT "Generating ossimVersion.h" )