diff --git a/Code/IO/otbKMLVectorDataIOFactory.txx b/Code/IO/otbKMLVectorDataIOFactory.txx index e90ea721555bd4ac662088499f13881ee9ad0333..f40c6cf69f011027af482aae3db8ab73a3b0a0ad 100644 --- a/Code/IO/otbKMLVectorDataIOFactory.txx +++ b/Code/IO/otbKMLVectorDataIOFactory.txx @@ -29,22 +29,28 @@ namespace otb template<class TData> KMLVectorDataIOFactory<TData>::KMLVectorDataIOFactory() { - this->RegisterOverride("otbVectorDataIOBase", - "otbKMLVectorDataIO", + static std::string classOverride = std::string("otbVectorDataIOBase<") + typeid(TData).name() + ">"; + static std::string subclass = std::string("otbKMLVectorDataIO<") + typeid(TData).name() + ">"; + + this->RegisterOverride(classOverride.c_str(), + subclass.c_str(), "KML Vectordata IO", 1, itk::CreateObjectFunction<KMLVectorDataIO<TData> >::New()); } + template<class TData> KMLVectorDataIOFactory<TData>::~KMLVectorDataIOFactory() { } + template<class TData> const char* KMLVectorDataIOFactory<TData>::GetITKSourceVersion(void) const { return ITK_SOURCE_VERSION; } + template<class TData> const char* KMLVectorDataIOFactory<TData>::GetDescription() const diff --git a/Code/IO/otbOGRVectorDataIOFactory.txx b/Code/IO/otbOGRVectorDataIOFactory.txx index 301d976e0a362d04456a28c188553bd403ec05cc..80b84e422d9d84c3c8d75a3d44fa374ce95e686a 100644 --- a/Code/IO/otbOGRVectorDataIOFactory.txx +++ b/Code/IO/otbOGRVectorDataIOFactory.txx @@ -29,8 +29,11 @@ namespace otb template<class TData> OGRVectorDataIOFactory<TData>::OGRVectorDataIOFactory() { - this->RegisterOverride("otbVectorDataIOBase", - "otbOGRVectorDataIO", + static std::string classOverride = std::string("otbVectorDataIOBase<") + typeid(TData).name() + ">"; + static std::string subclass = std::string("otbOGRVectorDataIO<") + typeid(TData).name() + ">"; + + this->RegisterOverride(classOverride.c_str(), + subclass.c_str(), "OGR Vectordata IO", 1, itk::CreateObjectFunction<OGRVectorDataIO<TData> >::New()); diff --git a/Code/IO/otbVectorDataIOFactory.txx b/Code/IO/otbVectorDataIOFactory.txx index 5e904f6d9eb1ef4a8dc3f3d25c8ca49de968ee10..b77c363cbb83a8c34d561f14d8756c3858c869ce 100644 --- a/Code/IO/otbVectorDataIOFactory.txx +++ b/Code/IO/otbVectorDataIOFactory.txx @@ -38,10 +38,12 @@ VectorDataIOFactory<TData> ::CreateVectorDataIO(const char* path, FileModeType mode) { RegisterBuiltInFactories(); + + std::string baseclassID = std::string("otbVectorDataIOBase<") + typeid(TData).name() + ">"; std::list<VectorDataIOBasePointerType> possibleVectorDataIO; std::list<itk::LightObject::Pointer> allobjects = - itk::ObjectFactoryBase::CreateAllInstance("otbVectorDataIOBase"); + itk::ObjectFactoryBase::CreateAllInstance(baseclassID.c_str()); for (std::list<itk::LightObject::Pointer>::iterator i = allobjects.begin(); i != allobjects.end(); ++i) {