From 070c2f3a88db1a69283485bb27bd72e1131cc5d7 Mon Sep 17 00:00:00 2001 From: Johan Andruejol Date: Fri, 17 Aug 2018 13:54:18 -0400 Subject: [PATCH] BUG: Ensure vtkMRMLMarkupsNode::AddPointToNthMarkup return value on failure The method never returned anything but 0 and would not trigger a modified when the point was added. --- Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.cxx | 11 ++++++++--- Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.h | 2 +- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.cxx b/Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.cxx index 5fb4fa255..7bbf88afc 100644 --- a/Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.cxx +++ b/Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.cxx @@ -532,11 +532,16 @@ int vtkMRMLMarkupsNode::AddPointWorldToNewMarkup(vtkVector3d pointWorld, std::st //----------------------------------------------------------- int vtkMRMLMarkupsNode::AddPointToNthMarkup(vtkVector3d point, int n) { - int pointIndex = 0; - if (this->MarkupExists(n)) + if (!this->MarkupExists(n)) { - this->Markups[n].points.push_back(point); + return -1; } + + this->Markups[n].points.push_back(point); + this->Modified(); + int pointIndex = static_cast(this->Markups[n].points.size() - 1); + this->InvokeCustomModifiedEvent( + vtkMRMLMarkupsNode::NthMarkupModifiedEvent, (void*)&pointIndex); return pointIndex; } diff --git a/Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.h b/Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.h index a01df2bfb..6993ebb5a 100644 --- a/Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.h +++ b/Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.h @@ -191,7 +191,7 @@ public: /// Create a new markup with one point, defined in the world coordinate system. /// Return index of new markup, -1 on failure. int AddPointWorldToNewMarkup(vtkVector3d point, std::string label = std::string()); - /// Add a point to the nth markup, returning the point index + /// Add a point to the nth markup, returning the point index, -1 on failure. int AddPointToNthMarkup(vtkVector3d point, int n); /// Get the position of the pointIndex'th point in markupIndex markup, -- GitLab