X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=common%2FclitkDicomRTStruct2ImageFilter.cxx;h=ad90bef4d56220dfff44e3f7dda190c75a0f9e87;hb=4288e22b0855b6c201333256629238795536032b;hp=1541cb28f46f794e1ad274e12cb8c94c33bf9313;hpb=2300716104b55267692efc2c0e506b3c5c45df38;p=clitk.git diff --git a/common/clitkDicomRTStruct2ImageFilter.cxx b/common/clitkDicomRTStruct2ImageFilter.cxx index 1541cb2..ad90bef 100644 --- a/common/clitkDicomRTStruct2ImageFilter.cxx +++ b/common/clitkDicomRTStruct2ImageFilter.cxx @@ -49,10 +49,22 @@ clitk::DicomRTStruct2ImageFilter::~DicomRTStruct2ImageFilter() } //-------------------------------------------------------------------- + +//-------------------------------------------------------------------- bool clitk::DicomRTStruct2ImageFilter::ImageInfoIsSet() const { return mSize.size() && mSpacing.size() && mOrigin.size(); } +//-------------------------------------------------------------------- + + +//-------------------------------------------------------------------- +void clitk::DicomRTStruct2ImageFilter::SetWriteOutputFlag(bool b) +{ + mWriteOutput = b; +} +//-------------------------------------------------------------------- + //-------------------------------------------------------------------- void clitk::DicomRTStruct2ImageFilter::SetROI(clitk::DicomRT_ROI * roi) @@ -79,6 +91,25 @@ void clitk::DicomRTStruct2ImageFilter::SetOutputImageFilename(std::string s) //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +void clitk::DicomRTStruct2ImageFilter::SetImage(vvImage::Pointer image) +{ + if (image->GetNumberOfDimensions() != 3) { + std::cerr << "Error. Please provide a 3D image." << std::endl; + exit(0); + } + mSpacing.resize(3); + mOrigin.resize(3); + mSize.resize(3); + for(unsigned int i=0; i<3; i++) { + mSpacing[i] = image->GetSpacing()[i]; + mOrigin[i] = image->GetOrigin()[i]; + mSize[i] = image->GetSize()[i]; + } +} +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- void clitk::DicomRTStruct2ImageFilter::SetImageFilename(std::string f) { @@ -101,20 +132,30 @@ void clitk::DicomRTStruct2ImageFilter::SetImageFilename(std::string f) } //-------------------------------------------------------------------- + +//-------------------------------------------------------------------- void clitk::DicomRTStruct2ImageFilter::SetOutputOrigin(const double* origin) { std::copy(origin,origin+3,std::back_inserter(mOrigin)); } +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- void clitk::DicomRTStruct2ImageFilter::SetOutputSpacing(const double* spacing) { std::copy(spacing,spacing+3,std::back_inserter(mSpacing)); } +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- void clitk::DicomRTStruct2ImageFilter::SetOutputSize(const unsigned long* size) { std::copy(size,size+3,std::back_inserter(mSize)); } +//-------------------------------------------------------------------- + //-------------------------------------------------------------------- void clitk::DicomRTStruct2ImageFilter::Update() @@ -129,13 +170,10 @@ void clitk::DicomRTStruct2ImageFilter::Update() } // Get Mesh - vtkPolyData * mesh = mROI->GetMesh(); + vtkPolyData * mesh = mROI->GetMesh(); // Get bounds double *bounds=mesh->GetBounds(); - // for(int i=0; i<6; i++){ -// DD(bounds[i]); -// } // Compute origin std::vector origin; @@ -169,11 +207,6 @@ void clitk::DicomRTStruct2ImageFilter::Update() 0, extend[2]); mBinaryImage->AllocateScalars(); - // for(int i=0; i<3; i++){ - // DD(origin[i]); - // DD(extend[i]); - // DD(mBinaryImage->GetDimensions()[i]); - // } memset(mBinaryImage->GetScalarPointer(), 0, mBinaryImage->GetDimensions()[0]*mBinaryImage->GetDimensions()[1]*mBinaryImage->GetDimensions()[2]*sizeof(unsigned char));