|
NorMIT-nav
22.09
An IGT application
|
Go to the documentation of this file.
14 #include <ctkPluginContext.h>
52 return "accusurf_filter";
59 "<p>Filter to generate an ACCuSurf volume to be usen in navigated bronchoscopy."
60 "The ACCuSurf is generated based on a standard thorax CT and a route-to-target centerline."
76 centerline->setValueName(
"Route-to-Target");
77 centerline->setHelp(
"Select centerline");
82 image->setValueName(
"Input image");
83 image->setHelp(
"Select image input for ACCuSurf.");
94 image->setValueName(
"Output");
95 image->setHelp(
"Output ACCuSurf");
104 MeshPtr mesh = boost::dynamic_pointer_cast<StringPropertySelectMesh>(
mInputTypes[0])->getMesh();
110 vtkPolyDataPtr route_d_image = mesh->getTransformedPolyDataCopy((inputImage->get_rMd().inverse())*mesh->get_rMd());
111 mAccusurf->setRoutePositions(route_d_image);
112 mAccusurf->setInputImage(inputImage);
116 mAccusurf->setThickness(thicknessUp->getValue(), thicknessDown->getValue());
118 mAccusurfImage = mAccusurf->createAccusurfImage();
133 QString uid = input->getUid() +
"_ACCuSurf%1";
134 QString name = input->getName()+
" ACCuSurf%1";
137 mAccusurfImage, input);
138 output->mergevtkSettingsIntosscTransform();
140 mAccusurfImage = NULL;
144 mServices->patient()->insertData(output);
156 "Set slice thickness up in voxels", 0,
DoubleRange(0, 50, 1), 0,
165 "Set slice thickness down in voxels", 15,
DoubleRange(0, 50, 1), 0,
virtual QString getType() const
DoublePropertyPtr getAccusurfThicknessUp(QDomElement root)
static StringPropertySelectDataPtr New(PatientModelServicePtr patientModelService, QString typeRegexp=".*")
static StringPropertySelectMeshPtr New(PatientModelServicePtr patientModelService)
virtual bool postProcess()
Namespace for all CustusX production code.
virtual void createOptions()
boost::shared_ptr< class VisServices > VisServicesPtr
std::vector< SelectDataStringPropertyBasePtr > mOutputTypes
boost::shared_ptr< class StringPropertySelectMesh > StringPropertySelectMeshPtr
std::vector< SelectDataStringPropertyBasePtr > mInputTypes
ImagePtr getCopiedInputImage(int index=0)
static DoublePropertyPtr initialize(const QString &uid, QString name, QString help, double value, DoubleRange range, int decimals, QDomNode root=QDomNode())
boost::shared_ptr< class DoubleProperty > DoublePropertyPtr
boost::shared_ptr< class Mesh > MeshPtr
static StringPropertySelectImagePtr New(PatientModelServicePtr patientModelService)
boost::shared_ptr< class Image > ImagePtr
virtual QString getHelp() const
vtkSmartPointer< vtkPolyData > vtkPolyDataPtr
ImagePtr createDerivedImage(PatientModelServicePtr dataManager, QString uid, QString name, vtkImageDataPtr raw, ImagePtr parent)
virtual void createInputTypes()
Utility class for describing a bounded numeric range.
AccusurfFilter(VisServicesPtr services)
DoublePropertyPtr getAccusurfThicknessDown(QDomElement root)
std::vector< PropertyPtr > mOptionsAdapters
boost::shared_ptr< class SelectDataStringPropertyBase > SelectDataStringPropertyBasePtr
virtual void createOutputTypes()
virtual QString getName() const