diff --git a/Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.cxx b/Modules/Loadable/Markups/MRML/vtkMRMLMarkupsNode.cxx index 5fb4fa255ab63f1d3b0af168f9804836d6041ac4..7bbf88afc6f63f4aca266cae78ed134643925be7 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 a01df2bfb1b92d3cc02e81665a0ceed8dd54dd76..6993ebb5a01041ef44a1261a3a5e56b29a35c9ca 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,