Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
Loading...
Searching...
No Matches
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
23
24// Markups includes
25#include "vtkMRMLExport.h"
28
36{
37public:
40
41 const char* GetIcon() override { return ":/Icons/MarkupsClosedCurve.png"; }
42 const char* GetAddIcon() override { return ":/Icons/MarkupsClosedCurveMouseModePlace.png"; }
43 const char* GetPlaceAddIcon() override { return ":/Icons/MarkupsClosedCurveMouseModePlaceAdd.png"; }
44
45 //--------------------------------------------------------------------------
46 // MRMLNode methods
47 //--------------------------------------------------------------------------
48
51 const char* GetNodeTagName() override { return "MarkupsClosedCurve"; }
52
54 const char* GetMarkupType() override { return "ClosedCurve"; };
55
59
61
64 static double GetClosedCurveSurfaceArea(vtkMRMLMarkupsClosedCurveNode* curveNode, vtkPolyData* surface = nullptr, bool projectWarp = true);
65 static bool FitSurfaceProjectWarp(vtkPoints* curvePoints, vtkPolyData* surface, double radiusScalingFactor = 1.0, vtkIdType numberOfInternalGridPoints = 225);
66 static bool FitSurfaceDiskWarp(vtkPoints* curvePoints, vtkPolyData* surface, double radiusScalingFactor = 1.0);
67 static bool IsPolygonClockwise(vtkPoints* points, vtkIdList* pointIds = nullptr);
69
70protected:
75};
76
77#endif
void operator=(const vtkMRMLMarkupsClosedCurveNode &)
static bool IsPolygonClockwise(vtkPoints *points, vtkIdList *pointIds=nullptr)
static vtkMRMLMarkupsClosedCurveNode * New()
vtkMRMLNode * CreateNodeInstance() override
MRMLNode methods.
static bool FitSurfaceDiskWarp(vtkPoints *curvePoints, vtkPolyData *surface, double radiusScalingFactor=1.0)
static double GetClosedCurveSurfaceArea(vtkMRMLMarkupsClosedCurveNode *curveNode, vtkPolyData *surface=nullptr, bool projectWarp=true)
vtkMRMLCopyContentDefaultMacro(vtkMRMLMarkupsClosedCurveNode)
static bool FitSurfaceProjectWarp(vtkPoints *curvePoints, vtkPolyData *surface, double radiusScalingFactor=1.0, vtkIdType numberOfInternalGridPoints=225)
~vtkMRMLMarkupsClosedCurveNode() override
const char * GetNodeTagName() override
Get node XML tag name (like Volume, Model)
vtkMRMLMarkupsClosedCurveNode(const vtkMRMLMarkupsClosedCurveNode &)
const char * GetMarkupType() override
Get markup type internal name.
Abstract Superclass for all specific types of MRML nodes.