]> Creatis software - cpPlugins.git/blobdiff - plugins/cpExtensions/PolyLineParametricPathToSimple3DCurve.cxx
yet another refactoring
[cpPlugins.git] / plugins / cpExtensions / PolyLineParametricPathToSimple3DCurve.cxx
diff --git a/plugins/cpExtensions/PolyLineParametricPathToSimple3DCurve.cxx b/plugins/cpExtensions/PolyLineParametricPathToSimple3DCurve.cxx
new file mode 100644 (file)
index 0000000..21760ce
--- /dev/null
@@ -0,0 +1,46 @@
+#include <cpExtensions/PolyLineParametricPathToSimple3DCurve.h>
+#include <cpInstances/DataObjects/PolyLineParametricPath.h>
+#include <cpInstances/DataObjects/Simple3DCurve.h>
+
+#include <cpExtensions/DataStructures/PolyLineParametricPath.h>
+#include <cpExtensions/DataStructures/Simple3DCurve.h>
+#include <cpExtensions/Algorithms/PolyLineParametricPathToSimple3DCurve.h>
+
+// -------------------------------------------------------------------------
+cpPluginscpExtensions::PolyLineParametricPathToSimple3DCurve::
+PolyLineParametricPathToSimple3DCurve( )
+  : Superclass( )
+{
+  this->_ConfigureInput< cpInstances::PolyLineParametricPath >(
+    "Input", true, false
+    );
+  this->_ConfigureOutput< cpInstances::Simple3DCurve >( "Output" );
+  this->m_Parameters.ConfigureAsUint( "NumberOfSamples", 0 );
+}
+
+// -------------------------------------------------------------------------
+cpPluginscpExtensions::PolyLineParametricPathToSimple3DCurve::
+~PolyLineParametricPathToSimple3DCurve( )
+{
+}
+
+// -------------------------------------------------------------------------
+void cpPluginscpExtensions::PolyLineParametricPathToSimple3DCurve::
+_GenerateData( )
+{
+  typedef cpExtensions::DataStructures::PolyLineParametricPath< 3 > _TPath;
+  typedef cpExtensions::DataStructures::Simple3DCurve< double > _TCurve;
+  typedef cpExtensions::Algorithms::PolyLineParametricPathToSimple3DCurve< _TPath, _TCurve > _TFilter;
+
+  auto in = this->GetInputData< _TPath >( "Input" );
+  if( in == NULL )
+    this->_Error( "Invalid input path." );
+
+  auto filter = this->_CreateITK< _TFilter >( );
+  filter->SetInput( in );
+  filter->SetNumberOfSamples( this->m_Parameters.GetUint( "NumberOfSamples" ) );
+  filter->Update( );
+  this->GetOutput( "Output" )->SetITK( filter->GetOutput( ) );
+}
+
+// eof - $RCSfile$