summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--include/astra/AstraObjectFactory.h17
-rw-r--r--src/AstraObjectFactory.cpp12
2 files changed, 13 insertions, 16 deletions
diff --git a/include/astra/AstraObjectFactory.h b/include/astra/AstraObjectFactory.h
index 91efa61..8d31b53 100644
--- a/include/astra/AstraObjectFactory.h
+++ b/include/astra/AstraObjectFactory.h
@@ -39,9 +39,7 @@ along with the ASTRA Toolbox. If not, see <http://www.gnu.org/licenses/>.
#include "AlgorithmTypelist.h"
-#ifdef ASTRA_PYTHON
#include "PluginAlgorithmFactory.h"
-#endif
namespace astra {
@@ -106,6 +104,9 @@ CAstraObjectFactory<T, TypeList>::~CAstraObjectFactory()
//----------------------------------------------------------------------------------------
// Hook for finding plugin in registered plugins.
+template <>
+CAlgorithm* CAstraObjectFactory<CAlgorithm, AlgorithmTypeList>::findPlugin(std::string _sType);
+
template <typename T, typename TypeList>
T* CAstraObjectFactory<T, TypeList>::findPlugin(std::string _sType)
{
@@ -135,18 +136,6 @@ T* CAstraObjectFactory<T, TypeList>::create(std::string _sType)
*/
class _AstraExport CAlgorithmFactory : public CAstraObjectFactory<CAlgorithm, AlgorithmTypeList> {};
-#ifdef ASTRA_PYTHON
-template <>
-inline CAlgorithm* CAstraObjectFactory<CAlgorithm, AlgorithmTypeList>::findPlugin(std::string _sType)
- {
- CPluginAlgorithmFactory *fac = CPluginAlgorithmFactory::getFactory();
- if (fac)
- return fac->getPlugin(_sType);
- else
- return 0;
- }
-#endif
-
/**
* Class used to create 2D projectors from a string or a config object
*/
diff --git a/src/AstraObjectFactory.cpp b/src/AstraObjectFactory.cpp
index 2ce7474..a103bc6 100644
--- a/src/AstraObjectFactory.cpp
+++ b/src/AstraObjectFactory.cpp
@@ -27,12 +27,20 @@ along with the ASTRA Toolbox. If not, see <http://www.gnu.org/licenses/>.
#include "astra/AstraObjectFactory.h"
-using namespace std;
-
namespace astra {
DEFINE_SINGLETON2(CAstraObjectFactory<CAlgorithm, AlgorithmTypeList>)
DEFINE_SINGLETON2(CAstraObjectFactory<CProjector2D, Projector2DTypeList>)
DEFINE_SINGLETON2(CAstraObjectFactory<CProjector3D, Projector3DTypeList>)
+template <>
+CAlgorithm* CAstraObjectFactory<CAlgorithm, AlgorithmTypeList>::findPlugin(std::string _sType)
+{
+ CPluginAlgorithmFactory *fac = CPluginAlgorithmFactory::getFactory();
+ if (fac)
+ return fac->getPlugin(_sType);
+ else
+ return 0;
+}
+
} // end namespace