//===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== #ifndef __bbitkvtkGeodesicMeshDeformation_h_INCLUDED__ #define __bbitkvtkGeodesicMeshDeformation_h_INCLUDED__ #include "bbitkvtk_EXPORT.h" #include "bbtkAtomicBlackBox.h" #include "iostream" #include "vtkPolyData.h" #include "itkQuadEdgeMesh.h" #include "itkFastMarchingThresholdStoppingCriterion.h" //#include "itkFastMarchingQuadEdgeMeshFilterBase.h" #include "itkFastMarchingQuadEdgeMeshFilterResultsBase.h" namespace bbitkvtk { class bbitkvtk_EXPORT GeodesicMeshDeformation : public bbtk::AtomicBlackBox { BBTK_BLACK_BOX_INTERFACE(GeodesicMeshDeformation,bbtk::AtomicBlackBox); //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== BBTK_DECLARE_INPUT(Active, bool); BBTK_DECLARE_INPUT(TypeIn, int); BBTK_DECLARE_INPUT(In,vtkPolyData*); BBTK_DECLARE_INPUT(EdgeId, long); BBTK_DECLARE_INPUT(S, double); BBTK_DECLARE_INPUT(Center, std::vector); BBTK_DECLARE_INPUT(Direction, std::vector); //BBTK_DECLARE_OUTPUT(Out,double); BBTK_PROCESS(Process); void Process(); using MeshType = itk::QuadEdgeMesh; //This is not the FastMarchingQuadEdge filter from ITK, this is a modified version to increase performance in our use using FastMarchingType = itk::FastMarchingQuadEdgeMeshFilterResultsBase; long EdgeIdBack; std::vector voiIdPoints; std::vector backLstCenter; vtkPolyData *polydata; MeshType::Pointer quadEdgeMesh; double sCurrent; FastMarchingType::Pointer fmmFilter; bool firstTime; //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== }; BBTK_BEGIN_DESCRIBE_BLACK_BOX(GeodesicMeshDeformation,bbtk::AtomicBlackBox); BBTK_NAME("GeodesicMeshDeformation"); BBTK_AUTHOR("InfoDev"); BBTK_DESCRIPTION("No Description."); BBTK_CATEGORY("empty"); BBTK_INPUT(GeodesicMeshDeformation,Active,"(default true) true/false",bool,""); BBTK_INPUT(GeodesicMeshDeformation,TypeIn,"(default 0) 0:Direction 1:Center",int,""); BBTK_INPUT(GeodesicMeshDeformation,In,"vtk PolyData",vtkPolyData*,""); BBTK_INPUT(GeodesicMeshDeformation,EdgeId,"Edge Id",long,""); BBTK_INPUT(GeodesicMeshDeformation,S,"Deformation",double,""); BBTK_INPUT(GeodesicMeshDeformation,Center,"[X,Y,Z]",std::vector,""); BBTK_INPUT(GeodesicMeshDeformation,Direction,"(default [1,0,0]) [X,Y,Z]",std::vector,""); BBTK_END_DESCRIBE_BLACK_BOX(GeodesicMeshDeformation); //===== // Before editing this file, make sure it's a file of your own (i.e.: it wasn't generated from xml description; if so : your modifications will be lost) //===== } // EO namespace bbitkvtk #endif // __bbitkvtkGeodesicMeshDeformation_h_INCLUDED__