X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=vv%2FvvLandmarks.cxx;h=682398f49deca17954a5dc95ed25a8364a17c699;hb=66d644a09be8cbd79cbda488e22337bf60d65303;hp=d9dfa65ed47f13b55eac96de6b1699c463817b33;hpb=3e42f6f79b50fb2eed087ea54aefb5c0fbd535c5;p=clitk.git diff --git a/vv/vvLandmarks.cxx b/vv/vvLandmarks.cxx index d9dfa65..682398f 100644 --- a/vv/vvLandmarks.cxx +++ b/vv/vvLandmarks.cxx @@ -3,7 +3,7 @@ Authors belong to: - University of LYON http://www.universite-lyon.fr/ - - Léon Bérard cancer center http://oncora1.lyon.fnclcc.fr + - Léon Bérard cancer center http://www.centreleonberard.fr - CREATIS CNRS laboratory http://www.creatis.insa-lyon.fr This software is distributed WITHOUT ANY WARRANTY; without even @@ -14,7 +14,7 @@ - BSD See included LICENSE.txt file - CeCILL-B http://www.cecill.info/licences/Licence_CeCILL-B_V1-en.html - ======================================================================-====*/ + ===========================================================================**/ #include "vvLandmarks.h" #include @@ -73,13 +73,17 @@ void vvLandmarks::AddLandmark(float x,float y,float z,float t,double value) point.pixel_value=value; mLandmarks.push_back(point); mPoints[int(t)]->InsertNextPoint(x,y,z); + + std::stringstream numberVal; + numberVal << (mLandmarks.size()-1); + /* + vvLandmarksGlyph *number = vvLandmarksGlyph::New(); + number->SetText(numberVal.str().c_str()); + number->BackingOff(); + DD(numberVal.str().c_str()); + mText.push_back(number); + */ - /*std::stringstream numberVal; - numberVal << (mLandmarks.size()-1); - vvLandmarksGlyph *number = vvLandmarksGlyph::New(); - number->SetText(numberVal.str().c_str()); - number->BackingOff(); - mText.push_back(number);*/ mIds->InsertNextTuple1(0.55); //mIds->InsertTuple1(mLandmarks.size(),mLandmarks.size()); SetTime(int(t)); @@ -93,13 +97,32 @@ void vvLandmarks::RemoveLastLandmark() mPoints[mLandmarks.back().coordinates[3]]->SetNumberOfPoints( mPoints[mLandmarks.back().coordinates[3]]->GetNumberOfPoints()-1); mPolyData->Modified(); - //mText.pop_back(); + // mText.pop_back(); mLandmarks.pop_back(); mIds->RemoveLastTuple(); } //-------------------------------------------------------------------- +//-------------------------------------------------------------------- +void vvLandmarks::RemoveLandmark(int index) +{ + // erase a vtkPoint by shifiting the array . + // not a problem here because there are no + // pologyons linking the points + int npoints = mPoints[mLandmarks[index].coordinates[3]]->GetNumberOfPoints(); + int t = mLandmarks[index].coordinates[3]; + for (int i = index; i < npoints - 1; i++) + mPoints[t]->InsertPoint(i, mPoints[t]->GetPoint(i+1)); + mPoints[t]->SetNumberOfPoints(npoints-1); + mPolyData->Modified(); + + mLandmarks.erase(mLandmarks.begin() + index); + mIds->RemoveLastTuple(); +} +//-------------------------------------------------------------------- + + //-------------------------------------------------------------------- void vvLandmarks::ChangeComments(int index, std::string comments) {