Slicer  5.0
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
vtkMRMLMarkupsClosedCurveNode.h
Go to the documentation of this file.
1 /*==============================================================================
2 
3  Program: 3D Slicer
4 
5  Portions (c) Copyright Brigham and Women's Hospital (BWH) All Rights Reserved.
6 
7  See COPYRIGHT.txt
8  or http://www.slicer.org/copyright/copyright.txt for details.
9 
10  Unless required by applicable law or agreed to in writing, software
11  distributed under the License is distributed on an "AS IS" BASIS,
12  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13  See the License for the specific language governing permissions and
14  limitations under the License.
15 
16 ==============================================================================*/
17 
18 #ifndef __vtkMRMLMarkupsClosedCurveNode_h
19 #define __vtkMRMLMarkupsClosedCurveNode_h
20 
21 // MRML includes
22 #include "vtkMRMLDisplayableNode.h"
23 
24 // Markups includes
25 #include "vtkSlicerMarkupsModuleMRMLExport.h"
28 
36 class VTK_SLICER_MARKUPS_MODULE_MRML_EXPORT vtkMRMLMarkupsClosedCurveNode : public vtkMRMLMarkupsCurveNode
37 {
38 public:
41 
42  const char* GetIcon() override {return ":/Icons/MarkupsClosedCurve.png";}
43  const char* GetAddIcon() override {return ":/Icons/MarkupsClosedCurveMouseModePlace.png";}
44  const char* GetPlaceAddIcon() override {return ":/Icons/MarkupsClosedCurveMouseModePlaceAdd.png";}
45 
46  //--------------------------------------------------------------------------
47  // MRMLNode methods
48  //--------------------------------------------------------------------------
49 
50  vtkMRMLNode* CreateNodeInstance() override;
52  const char* GetNodeTagName() override {return "MarkupsClosedCurve";}
53 
55  const char* GetMarkupType() override {return "ClosedCurve";};
56 
57  // Get markup type GUI display name
58  const char* GetTypeDisplayName() override {return "Closed Curve";};
59 
61  const char* GetDefaultNodeNamePrefix() override {return "CC";};
62 
66 
67 
69  static double GetClosedCurveSurfaceArea(vtkMRMLMarkupsClosedCurveNode* curveNode, vtkPolyData* surface = nullptr, bool projectWarp = true);
73  static bool FitSurfaceProjectWarp(vtkPoints* curvePoints, vtkPolyData* surface, double radiusScalingFactor = 1.0, vtkIdType numberOfInternalGridPoints=225);
74  static bool FitSurfaceDiskWarp(vtkPoints* curvePoints, vtkPolyData* surface, double radiusScalingFactor = 1.0);
75  static bool IsPolygonClockwise(vtkPoints* points, vtkIdList* pointIds=nullptr);
77 
78 protected:
83 
84 };
85 
86 #endif
const char * GetMarkupType() override
Get markup type internal name.
MRML node to represent a curve markup Curve Markups nodes contain N control points. Visualization parameters are set in the vtkMRMLMarkupsDisplayNode class.
void operator=(const vtkMRMLMarkupsCurveNode &)
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
vtkMRMLNode * CreateNodeInstance() override
MRMLNode methods.
static vtkMRMLMarkupsCurveNode * New()
#define vtkMRMLCopyContentDefaultMacro(thisClassName)
Definition: vtkMRMLNode.h:155
Abstract Superclass for all specific types of MRML nodes.
Definition: vtkMRMLNode.h:167
const char * GetDefaultNodeNamePrefix() override
Get markup short name.
MRML node to represent a closed curve markup Closed Curve Markups nodes contain N control points...