diff --git a/Code/BasicFilters/otbBinaryImageMinimalBoundingRegionCalculator.h b/Code/BasicFilters/otbBinaryImageMinimalBoundingRegionCalculator.h index 154c1ba7d615391867cfeab790e713d4489388e1..d4790c5824bd6aa39dd5dd8d44007ca5ed49beb2 100644 --- a/Code/BasicFilters/otbBinaryImageMinimalBoundingRegionCalculator.h +++ b/Code/BasicFilters/otbBinaryImageMinimalBoundingRegionCalculator.h @@ -36,7 +36,7 @@ namespace otb * \sa ImageToImageRCC8Calculator */ template <class TInputImage> -class BinaryImageMinimalBoundingRegionCalculator +class ITK_EXPORT BinaryImageMinimalBoundingRegionCalculator : public itk::ImageToImageFilter<TInputImage,TInputImage> { public: diff --git a/Code/BasicFilters/otbClosingOpeningMorphologicalFilter.txx b/Code/BasicFilters/otbClosingOpeningMorphologicalFilter.txx index 3378eb4e584f9944343d52037d1d38c871c40d01..afee7d132e4b3fb7eeea5b278503ffc91d0048a0 100644 --- a/Code/BasicFilters/otbClosingOpeningMorphologicalFilter.txx +++ b/Code/BasicFilters/otbClosingOpeningMorphologicalFilter.txx @@ -31,35 +31,10 @@ namespace otb { template <class TInputImage,class TOuputImage, class TKernel> ClosingOpeningMorphologicalFilter<TInputImage, TOuputImage, TKernel> ::ClosingOpeningMorphologicalFilter() - : m_Kernel() -{} - - - -// /// Méthode standard pour la gestion du pipeline d'exécution -// template <class TInputImage,class TOuputImage, class TKernel> -// void -// ClosingOpeningMorphologicalFilter<TInputImage, TOuputImage, TKernel> -// ::GenerateInputRequestedRegion() -// { -// // Appel à l'implémentation de la classe supérieur -// Superclass::GenerateInputRequestedRegion(); -// // Réccupération de l'image en entrée -// InputImagePointer input = const_cast<InputImageType *>(this->GetInput()); -// input->SetRequestedRegion( input->GetLargestPossibleRegion()); -// } -// /// Méthode standard pour la gestion du pipeline d'exécution -// template <class TInputImage,class TOuputImage, class TKernel> -// void -// ClosingOpeningMorphologicalFilter<TInputImage, TOuputImage, TKernel> -// ::EnlargeOutputRequestedRegion(itk::DataObject *) -// { -// this->GetOutput()->SetRequestedRegion( this->GetOutput()->GetLargestPossibleRegion()); -// } - - - - +{ +m_Kernel.SetRadius(1); +m_Kernel.CreateStructuringElement(); +} /** * Main computation method */ diff --git a/Code/BasicFilters/otbOpeningClosingMorphologicalFilter.txx b/Code/BasicFilters/otbOpeningClosingMorphologicalFilter.txx index 2b315ea158ca99db0fe3ff1aacd0fcf24e818ce1..e02bac07345adf35ac1a106a80455f30212c2bec 100644 --- a/Code/BasicFilters/otbOpeningClosingMorphologicalFilter.txx +++ b/Code/BasicFilters/otbOpeningClosingMorphologicalFilter.txx @@ -31,8 +31,10 @@ namespace otb { template <class TInputImage,class TOuputImage, class TKernel> OpeningClosingMorphologicalFilter<TInputImage, TOuputImage, TKernel> ::OpeningClosingMorphologicalFilter() - : m_Kernel() -{} +{ + m_Kernel.SetRadius(1); + m_Kernel.CreateStructuringElement(); +} /** * Main computation method diff --git a/Code/Common/otbImageList.h b/Code/Common/otbImageList.h index e9f009c40dc3f28fc89da984a5d11a63210c2c0e..c8ce133a034ff4cb7930b77dcae2b75cd5cb84b1 100644 --- a/Code/Common/otbImageList.h +++ b/Code/Common/otbImageList.h @@ -31,7 +31,7 @@ namespace otb */ template <class TImage> -class ImageList +class ITK_EXPORT ImageList : public ObjectList<TImage> { public: diff --git a/Code/Common/otbObjectList.h b/Code/Common/otbObjectList.h index c977d4d5b0ea52eba760f7f41b7bb1abd1f4b37e..b1105a5ea41682306e9f7d8eee29811506a04426 100644 --- a/Code/Common/otbObjectList.h +++ b/Code/Common/otbObjectList.h @@ -31,7 +31,7 @@ namespace otb * methods and iterators interfaces. */ template <class TObject> -class ObjectList +class ITK_EXPORT ObjectList : public itk::DataObject { public: diff --git a/Code/MultiScale/otbMorphologicalPyramidAnalyseFilter.h b/Code/MultiScale/otbMorphologicalPyramidAnalyseFilter.h index 95629971003253681a2a5ca9c08790802dbeeb51..03079d73585063a0b0b5356b1d759c39f9804169 100644 --- a/Code/MultiScale/otbMorphologicalPyramidAnalyseFilter.h +++ b/Code/MultiScale/otbMorphologicalPyramidAnalyseFilter.h @@ -47,7 +47,7 @@ namespace otb * ClosingOpeningMorphologicalFilter */ template <class TInputImage, class TOutputImage, class TMorphoFilter> -class MorphologicalPyramidAnalyseFilter +class ITK_EXPORT MorphologicalPyramidAnalyseFilter : public ImageToImageListFilter<TInputImage,TOutputImage> { public: diff --git a/Code/MultiScale/otbMorphologicalPyramidMRToMSConverter.h b/Code/MultiScale/otbMorphologicalPyramidMRToMSConverter.h index 8178bb334410e3332f9f59d92d03e4a3f2172fa0..58c4407235cba041db3ceb819c860bc40dc628dd 100644 --- a/Code/MultiScale/otbMorphologicalPyramidMRToMSConverter.h +++ b/Code/MultiScale/otbMorphologicalPyramidMRToMSConverter.h @@ -36,7 +36,7 @@ namespace otb * \sa MorphologicalPyramidSynthesisFilter */ template <class TInputImage, class TOutputImage> - class MRToMSConverter + class ITK_EXPORT MRToMSConverter : public ImageListToImageListFilter<TInputImage,TOutputImage> { public : diff --git a/Code/MultiScale/otbMorphologicalPyramidResampler.h b/Code/MultiScale/otbMorphologicalPyramidResampler.h index 026f1871a700f66b5bd570012d115c8a0a09d2e8..631c4c0125a0f92070a4bb66996a2943dfe05217 100644 --- a/Code/MultiScale/otbMorphologicalPyramidResampler.h +++ b/Code/MultiScale/otbMorphologicalPyramidResampler.h @@ -41,7 +41,7 @@ namespace otb * \sa ScaleTransform */ template <class TInputImage, class TOutputImage> - class Resampler + class ITK_EXPORT Resampler : public itk::ImageToImageFilter<TInputImage,TOutputImage> { public : diff --git a/Code/MultiScale/otbMorphologicalPyramidResampler.txx b/Code/MultiScale/otbMorphologicalPyramidResampler.txx index b0de89ebd5db73ff8894f5e9a22c396449b2cd9b..3e64836844ec2a2d89cfd59aba38c76b22898e0c 100644 --- a/Code/MultiScale/otbMorphologicalPyramidResampler.txx +++ b/Code/MultiScale/otbMorphologicalPyramidResampler.txx @@ -35,7 +35,13 @@ namespace morphologicalPyramid */ template <class TInputImage,class TOuputImage> Resampler<TInputImage, TOuputImage> -::Resampler(){} +::Resampler() +{ + for(int i=0;i<InputImageType::ImageDimension;++i) + { + m_Size[i]=0; + } +} /** * Configure input requested region to be the largest possible region. */ diff --git a/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.h b/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.h index 8cb9aec0d60ef3542b1e6a98b43116e0f57d9a69..50ef8df02b4b993724ae7e9a80abf904e9f6527e 100644 --- a/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.h +++ b/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.h @@ -53,7 +53,7 @@ namespace otb * ClosingOpeningMorphologicalFilter, Segmenter, MRToMSConverter, Resampler */ template <class TInputImage, class TOutputImage> -class MorphologicalPyramidSegmentationFilter +class ITK_EXPORT MorphologicalPyramidSegmentationFilter : public ImageListToImageListFilter<TInputImage,TOutputImage> { public: diff --git a/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.txx b/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.txx index 30dcfe7bbad8a1f4b96ab35bafadf2f703a85e59..33e0953a652429b833aaba285b780e835f2fc254 100644 --- a/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.txx +++ b/Code/MultiScale/otbMorphologicalPyramidSegmentationFilter.txx @@ -34,6 +34,9 @@ MorphologicalPyramidSegmentationFilter<TInputImage,TOutputImage> ::MorphologicalPyramidSegmentationFilter() { this->SetNumberOfRequiredInputs(3); + m_MinimumObjectSize = 10; + m_SeedsQuantile = 0.9; + m_ConnectedThresholdQuantile = 0.9; } /** * Destructor diff --git a/Code/MultiScale/otbMorphologicalPyramidSegmenter.h b/Code/MultiScale/otbMorphologicalPyramidSegmenter.h index 0f8e402ca19b8b9a8f18895f71547e912d9cb180..b1e5cc7511c69a8a5890459ec9d69d9a017d7557 100644 --- a/Code/MultiScale/otbMorphologicalPyramidSegmenter.h +++ b/Code/MultiScale/otbMorphologicalPyramidSegmenter.h @@ -43,7 +43,7 @@ namespace otb * \sa ScaleTransform */ template <class TInputImage, class TOutputImage> - class Segmenter + class ITK_EXPORT Segmenter : public itk::ImageToImageFilter<TInputImage,TOutputImage> { public : diff --git a/Code/MultiScale/otbMorphologicalPyramidSegmenter.txx b/Code/MultiScale/otbMorphologicalPyramidSegmenter.txx index 6756b14aa882b93aa4d38c0af24d940d6eb71101..2546e8ad0c9552285fe205d8976033ba09035080 100644 --- a/Code/MultiScale/otbMorphologicalPyramidSegmenter.txx +++ b/Code/MultiScale/otbMorphologicalPyramidSegmenter.txx @@ -44,6 +44,11 @@ Segmenter<TInputImage, TOuputImage> ::Segmenter() { this->SetNumberOfRequiredInputs(2); + m_SeedsQuantile = 0.9; + m_MinimumObjectSize = 10; + m_SegmentDarkDetailsBool = false; + m_NumberOfObjects = 0; + m_ConnectedThresholdQuantile = 0.9; } /** * Set the details image. diff --git a/Code/MultiScale/otbMorphologicalPyramidSynthesisFilter.h b/Code/MultiScale/otbMorphologicalPyramidSynthesisFilter.h index 254f43dce99a2276498c66de00a452ac2ddaf62b..eb5b8320d295bca691ce5b9edd90e2c532d01d00 100644 --- a/Code/MultiScale/otbMorphologicalPyramidSynthesisFilter.h +++ b/Code/MultiScale/otbMorphologicalPyramidSynthesisFilter.h @@ -41,7 +41,7 @@ namespace otb * \sa MorphologicalPyramidResampler */ template <class TInputImage, class TOutputImage> -class MorphologicalPyramidSynthesisFilter +class ITK_EXPORT MorphologicalPyramidSynthesisFilter : public ImageToImageListFilter<TInputImage,TOutputImage> { public: diff --git a/Code/SpatialReasoning/otbImageListToRCC8GraphFilter.h b/Code/SpatialReasoning/otbImageListToRCC8GraphFilter.h index cfe1350e0abf49ebcb15f457efd0e5a35fe3ae3c..7523697800f938c5071dc8945acc216bc4d67916 100644 --- a/Code/SpatialReasoning/otbImageListToRCC8GraphFilter.h +++ b/Code/SpatialReasoning/otbImageListToRCC8GraphFilter.h @@ -27,7 +27,7 @@ namespace otb * produce a RCC8 graph. */ template <class TInputImage, class TOutputGraph> -class ImageListToRCC8GraphFilter +class ITK_EXPORT ImageListToRCC8GraphFilter : public RCC8GraphSource<TOutputGraph> { public: diff --git a/Code/SpatialReasoning/otbImageMultiSegmentationToRCC8GraphFilter.h b/Code/SpatialReasoning/otbImageMultiSegmentationToRCC8GraphFilter.h index 14d874ca404f727c38521bd36f9fd4b421b9f59e..630789233845ec660a54d27c017fb883bb3d7600 100644 --- a/Code/SpatialReasoning/otbImageMultiSegmentationToRCC8GraphFilter.h +++ b/Code/SpatialReasoning/otbImageMultiSegmentationToRCC8GraphFilter.h @@ -28,7 +28,7 @@ namespace otb * and build the RCC8 graph of the set of regions it represents. */ template <class TInputImage, class TOutputGraph> -class ImageMultiSegmentationToRCC8GraphFilter +class ITK_EXPORT ImageMultiSegmentationToRCC8GraphFilter : public ImageListToRCC8GraphFilter<TInputImage,TOutputGraph> { public: diff --git a/Code/SpatialReasoning/otbImageToImageRCC8Calculator.h b/Code/SpatialReasoning/otbImageToImageRCC8Calculator.h index 81b8c4d373c6513346ce1122c5450a07da218f67..6a49cd91d7d75f9352c6bbcbbdb0996c5634fe7f 100644 --- a/Code/SpatialReasoning/otbImageToImageRCC8Calculator.h +++ b/Code/SpatialReasoning/otbImageToImageRCC8Calculator.h @@ -47,7 +47,7 @@ namespace otb * to the smallest set needed to determine the relation. */ template <class TInputImage> - class ImageToImageRCC8Calculator : public itk::ImageToImageFilter<TInputImage,TInputImage> + class ITK_EXPORT ImageToImageRCC8Calculator : public itk::ImageToImageFilter<TInputImage,TInputImage> { public: /** Standard class typedefs. */ diff --git a/Code/SpatialReasoning/otbRCC8Edge.h b/Code/SpatialReasoning/otbRCC8Edge.h index fe5f2a498dfbacabe350272efa3beacd958ba252..e886b6e3648a21ddda066b9756ce3b6121af686a 100644 --- a/Code/SpatialReasoning/otbRCC8Edge.h +++ b/Code/SpatialReasoning/otbRCC8Edge.h @@ -29,7 +29,7 @@ namespace otb * * \sa RCC8Graph, RCC8VertexBase */ -class RCC8Edge : public itk::DataObject +class ITK_EXPORT RCC8Edge : public itk::DataObject { public: /** Standard class typedefs */ diff --git a/Code/SpatialReasoning/otbRCC8EdgeIterator.h b/Code/SpatialReasoning/otbRCC8EdgeIterator.h index 9ea0f5b50cc1426c26fbb4703e74127fd9dfef50..3a900fa2f9a16508667df93ff52f3eb42c5c7a03 100644 --- a/Code/SpatialReasoning/otbRCC8EdgeIterator.h +++ b/Code/SpatialReasoning/otbRCC8EdgeIterator.h @@ -27,7 +27,7 @@ namespace otb * \brief Iterates on the graph edges. */ template <class TGraph> -class RCC8EdgeIterator +class ITK_EXPORT RCC8EdgeIterator { public: /** self typedef */ diff --git a/Code/SpatialReasoning/otbRCC8EdgeIterator.txx b/Code/SpatialReasoning/otbRCC8EdgeIterator.txx index 486a6a07e97c0f397a21374f81ab5ed85d97101e..3072e74f02f0eb62e69a49b9e398272b9536a322 100644 --- a/Code/SpatialReasoning/otbRCC8EdgeIterator.txx +++ b/Code/SpatialReasoning/otbRCC8EdgeIterator.txx @@ -26,7 +26,10 @@ namespace otb template <class TGraph> RCC8EdgeIterator<TGraph> ::RCC8EdgeIterator() - {} + { + m_Graph = GraphType::New(); + tie(m_Iter,m_End)=edges(*m_Graph->GetGraph()); + } /** * Copy operator. */ diff --git a/Code/SpatialReasoning/otbRCC8Graph.h b/Code/SpatialReasoning/otbRCC8Graph.h index f16a7eee8abad0f4896a89fc021d6bf105b36c20..3d38f9b6bc8c455127adb3aa3118bb77d678362d 100644 --- a/Code/SpatialReasoning/otbRCC8Graph.h +++ b/Code/SpatialReasoning/otbRCC8Graph.h @@ -45,7 +45,8 @@ namespace otb * applications, one should provide a patch for this class including * the new functionnalities, for consistency reason. */ -template <class TVertex> class RCC8Graph : +template <class TVertex> +class ITK_EXPORT RCC8Graph : public itk::DataObject { public: diff --git a/Code/SpatialReasoning/otbRCC8GraphFileReader.h b/Code/SpatialReasoning/otbRCC8GraphFileReader.h index da278082226c32f98fc71c1db9b758519c1ce3b5..eef94a2ae1b9433e39e49d0e73fa8090e4e82df6 100644 --- a/Code/SpatialReasoning/otbRCC8GraphFileReader.h +++ b/Code/SpatialReasoning/otbRCC8GraphFileReader.h @@ -26,7 +26,7 @@ namespace otb /** \class RCC8GraphFileReaderException * \brief Base exception class for IO problems during reading. */ -class RCC8GraphFileReaderException +class ITK_EXPORT RCC8GraphFileReaderException : public itk::ExceptionObject { public: diff --git a/Code/SpatialReasoning/otbRCC8GraphFileWriter.h b/Code/SpatialReasoning/otbRCC8GraphFileWriter.h index 8eb234ce1e640390a058ba1c10f366b894439211..b1e3237f91c77b080697863e04bd8c068cd2feab 100644 --- a/Code/SpatialReasoning/otbRCC8GraphFileWriter.h +++ b/Code/SpatialReasoning/otbRCC8GraphFileWriter.h @@ -27,7 +27,7 @@ namespace otb /** \class RCC8GraphFileWriterException * \brief Base exception class for IO problems during writing. */ -class RCC8GraphFileWriterException +class ITK_EXPORT RCC8GraphFileWriterException : public itk::ExceptionObject { public: @@ -61,7 +61,7 @@ public: * \sa RCC8Graph */ template <class TInputGraph> -class RCC8GraphFileWriter +class ITK_EXPORT RCC8GraphFileWriter : public itk::ProcessObject { public: diff --git a/Code/SpatialReasoning/otbRCC8GraphSource.h b/Code/SpatialReasoning/otbRCC8GraphSource.h index d1c2ec5b8782099c275b6d3d92932c7af1d4b9f6..b1a58bb5d2f1bb82b37b0104343618a433fed583 100644 --- a/Code/SpatialReasoning/otbRCC8GraphSource.h +++ b/Code/SpatialReasoning/otbRCC8GraphSource.h @@ -28,7 +28,7 @@ namespace otb * \ingroup DataSources */ template <class TOutputGraph> -class RCC8GraphSource +class ITK_EXPORT RCC8GraphSource : public itk::ProcessObject { public: diff --git a/Code/SpatialReasoning/otbRCC8InEdgeIterator.h b/Code/SpatialReasoning/otbRCC8InEdgeIterator.h index 48583650c9af4a136e4399d3732a6eac933ab665..d6398224f400085646d2efe518425920708836e3 100644 --- a/Code/SpatialReasoning/otbRCC8InEdgeIterator.h +++ b/Code/SpatialReasoning/otbRCC8InEdgeIterator.h @@ -27,7 +27,7 @@ namespace otb * \brief Iterates on the graph in edges from a vertex. */ template <class TGraph> -class RCC8InEdgeIterator +class ITK_EXPORT RCC8InEdgeIterator { public: /** self typedef */ diff --git a/Code/SpatialReasoning/otbRCC8InEdgeIterator.txx b/Code/SpatialReasoning/otbRCC8InEdgeIterator.txx index 8180a704b467f25c933dd804423ba39f6b70716e..c611a7ec4751fd8175ba085e8f415c00e3bdca64 100644 --- a/Code/SpatialReasoning/otbRCC8InEdgeIterator.txx +++ b/Code/SpatialReasoning/otbRCC8InEdgeIterator.txx @@ -26,7 +26,10 @@ namespace otb template <class TGraph> RCC8InEdgeIterator<TGraph> ::RCC8InEdgeIterator() - {} + { + m_Graph = GraphType::New(); + tie(m_Iter,m_End)=in_edges(0,*m_Graph->GetGraph()); + } /** * Copy operator. */ diff --git a/Code/SpatialReasoning/otbRCC8OutEdgeIterator.h b/Code/SpatialReasoning/otbRCC8OutEdgeIterator.h index c6df3469c2daf31bf9659a13d602074b9ea589d9..17299fb2bff00e625dee7a2de0d61f3c480bfe9c 100644 --- a/Code/SpatialReasoning/otbRCC8OutEdgeIterator.h +++ b/Code/SpatialReasoning/otbRCC8OutEdgeIterator.h @@ -27,7 +27,7 @@ namespace otb * \brief Iterates on the graph out edges from a vertex. */ template <class TGraph> -class RCC8OutEdgeIterator +class ITK_EXPORT RCC8OutEdgeIterator { public: /** self typedef */ diff --git a/Code/SpatialReasoning/otbRCC8OutEdgeIterator.txx b/Code/SpatialReasoning/otbRCC8OutEdgeIterator.txx index 576b5c6a5bdd1315f4ab0b12278dd12f3e18bfb2..abb7e8830fc5ce4903b0cfd8c78fa1d28727b77b 100644 --- a/Code/SpatialReasoning/otbRCC8OutEdgeIterator.txx +++ b/Code/SpatialReasoning/otbRCC8OutEdgeIterator.txx @@ -26,7 +26,10 @@ namespace otb template <class TGraph> RCC8OutEdgeIterator<TGraph> ::RCC8OutEdgeIterator() - {} + { + m_Graph = GraphType::New(); + tie(m_Iter,m_End)=out_edges(0,*m_Graph->GetGraph()); + } /** * Copy operator. */ diff --git a/Code/SpatialReasoning/otbRCC8VertexBase.h b/Code/SpatialReasoning/otbRCC8VertexBase.h index 0c996fa620431cf18d215a56d43c7ae62a96c48d..42a7abe76375d8d88935513bbceb32cfd694eb99 100644 --- a/Code/SpatialReasoning/otbRCC8VertexBase.h +++ b/Code/SpatialReasoning/otbRCC8VertexBase.h @@ -32,7 +32,8 @@ namespace otb * \sa RCC8Graph, RCC8Edge */ template <class TLabel> -class RCC8VertexBase : public itk::DataObject +class ITK_EXPORT RCC8VertexBase +: public itk::DataObject { public: /** Standard class typedefs */ diff --git a/Code/SpatialReasoning/otbRCC8VertexIterator.h b/Code/SpatialReasoning/otbRCC8VertexIterator.h index 7c899c5465cadef21b46867901f9a9e669a97f2e..cc461e0c643c0fd412d36406aee3845a04cb3314 100644 --- a/Code/SpatialReasoning/otbRCC8VertexIterator.h +++ b/Code/SpatialReasoning/otbRCC8VertexIterator.h @@ -27,7 +27,7 @@ namespace otb * \brief Iterates on the graph vertices */ template <class TGraph> -class RCC8VertexIterator +class ITK_EXPORT RCC8VertexIterator { public: /** self typedef */ diff --git a/Code/SpatialReasoning/otbRCC8VertexIterator.txx b/Code/SpatialReasoning/otbRCC8VertexIterator.txx index 10ea406a40273903a81927e543866010629071d5..da9b604397285c45a8f13c8e4dbb4a3e994357c1 100644 --- a/Code/SpatialReasoning/otbRCC8VertexIterator.txx +++ b/Code/SpatialReasoning/otbRCC8VertexIterator.txx @@ -28,7 +28,10 @@ namespace otb template <class TGraph> RCC8VertexIterator<TGraph> ::RCC8VertexIterator() - {} + { + m_Graph = GraphType::New(); + tie(m_Iter,m_End)= vertices(*(m_Graph->GetGraph())); + } /** * Copy operator. */ diff --git a/Code/SpatialReasoning/otbRCC8VertexWithCompacity.h b/Code/SpatialReasoning/otbRCC8VertexWithCompacity.h index 167afc62a89a7960881bda2959db91331e88a1a7..23f123890d968e0c941195a905c5cfb4b1bf0944 100644 --- a/Code/SpatialReasoning/otbRCC8VertexWithCompacity.h +++ b/Code/SpatialReasoning/otbRCC8VertexWithCompacity.h @@ -30,7 +30,8 @@ namespace otb * \sa RCC8Graph, RCC8Edge, RCC8VertexBase */ template <class TLabel, class TPrecision = float> - class RCC8VertexWithCompacity : public RCC8VertexBase<TLabel> + class ITK_EXPORT RCC8VertexWithCompacity + : public RCC8VertexBase<TLabel> { public: /** Standard class typedefs */