Slicer 5.9
Slicer is a multi-platform, free and open source software package for visualization and medical image computing
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Modules Pages
qSlicerSubjectHierarchySegmentationsPlugin.h
Go to the documentation of this file.
1/*==============================================================================
2
3 Copyright (c) Laboratory for Percutaneous Surgery (PerkLab)
4 Queen's University, Kingston, ON, Canada. All Rights Reserved.
5
6 See COPYRIGHT.txt
7 or http://www.slicer.org/copyright/copyright.txt for details.
8
9 Unless required by applicable law or agreed to in writing, software
10 distributed under the License is distributed on an "AS IS" BASIS,
11 WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 See the License for the specific language governing permissions and
13 limitations under the License.
14
15 This file was originally developed by Csaba Pinter, PerkLab, Queen's University
16 and was supported through the Applied Cancer Research Unit program of Cancer Care
17 Ontario with funds provided by the Ontario Ministry of Health and Long-Term Care
18
19==============================================================================*/
20
21#ifndef __qSlicerSubjectHierarchySegmentationsPlugin_h
22#define __qSlicerSubjectHierarchySegmentationsPlugin_h
23
24// Subject Hierarchy includes
26
27#include "qSlicerSegmentationsSubjectHierarchyPluginsExport.h"
28
29class qSlicerSubjectHierarchySegmentationsPluginPrivate;
31
33{
34public:
35 Q_OBJECT
36
37public:
41
42public:
51
53 bool addNodeToSubjectHierarchy(vtkMRMLNode* node, vtkIdType parentItemID) override;
54
63 double canReparentItemInsideSubjectHierarchy(vtkIdType itemID, vtkIdType parentItemID)const override;
64
67 bool reparentItemInsideSubjectHierarchy(vtkIdType itemID, vtkIdType parentItemID) override;
68
75 double canOwnSubjectHierarchyItem(vtkIdType itemID)const override;
76
79 Q_INVOKABLE const QString roleForPlugin()const override;
80
82 QString tooltip(vtkIdType itemID)const override;
83
85 const QString helpText()const override;
86
89 QIcon icon(vtkIdType itemID) override;
90
92 QIcon visibilityIcon(int visible) override;
93
95 void setDisplayVisibility(vtkIdType itemID, int visible) override;
96
99 int getDisplayVisibility(vtkIdType itemID)const override;
100
103
106 void showContextMenuActionsForItem(vtkIdType itemID) override;
107
111
114 void showVisibilityContextMenuActionsForItem(vtkIdType itemID) override;
115
119 bool showItemInView(vtkIdType itemID, vtkMRMLAbstractViewNode* viewNode, vtkIdList* allItemsToShow) override;
120
121public slots:
124 void onSegmentAdded(vtkObject* caller, void* callData);
125
128 void onSegmentRemoved(vtkObject* caller, void* callData);
129
132 void onSegmentModified(vtkObject* caller, void* callData);
133
135 void onDisplayNodeModified(vtkObject* caller);
136
139 void onSubjectHierarchyItemModified(vtkObject* caller, void* callData);
140
143 void onSubjectHierarchyItemAboutToBeRemoved(vtkObject* caller, void* callData);
144
145protected slots:
148
151
154
157
160
163
166
171
172protected:
173 QScopedPointer<qSlicerSubjectHierarchySegmentationsPluginPrivate> d_ptr;
174
176
179 void updateRepresentation(const QString& representationName, bool create);
180
181private:
184};
185
186#endif
qSlicerSubjectHierarchyAbstractPlugin(QObject *parent=nullptr)
QIcon icon(vtkIdType itemID) override
double canOwnSubjectHierarchyItem(vtkIdType itemID) const override
void onSegmentModified(vtkObject *caller, void *callData)
void toggle2DFillVisibility(bool)
Toggle 2D fill visibility for the current segmentation.
bool reparentItemInsideSubjectHierarchy(vtkIdType itemID, vtkIdType parentItemID) override
QIcon visibilityIcon(int visible) override
Get visibility icon for a visibility state.
void onSegmentAdded(vtkObject *caller, void *callData)
void onSubjectHierarchyItemModified(vtkObject *caller, void *callData)
double canReparentItemInsideSubjectHierarchy(vtkIdType itemID, vtkIdType parentItemID) const override
bool showItemInView(vtkIdType itemID, vtkMRMLAbstractViewNode *viewNode, vtkIdList *allItemsToShow) override
void convertModelsToSegmentation()
Convert model hierarchy to segmentation node.
void showVisibilityContextMenuActionsForItem(vtkIdType itemID) override
void exportToBinaryLabelmap()
Export to binary labelmap.
void updateRepresentation(const QString &representationName, bool create)
const QString helpText() const override
Get help text for plugin to be added in subject hierarchy module widget help box.
Q_INVOKABLE const QString roleForPlugin() const override
void exportToClosedSurface()
Export to closed surface.
void convertLabelmapToSegmentation()
Convert labelmap to segmentation node.
void updateAllSegmentsFromMRML(vtkMRMLSegmentationNode *segmentationNode)
void showContextMenuActionsForItem(vtkIdType itemID) override
void onSubjectHierarchyItemAboutToBeRemoved(vtkObject *caller, void *callData)
bool addNodeToSubjectHierarchy(vtkMRMLNode *node, vtkIdType parentItemID) override
Creates subject hierarchy item using default method and updates all segments.
QScopedPointer< qSlicerSubjectHierarchySegmentationsPluginPrivate > d_ptr
QList< QAction * > itemContextMenuActions() const override
Get item context menu item actions to add to tree view.
void convertModelToSegmentation()
Convert model to segmentation node.
QList< QAction * > visibilityContextMenuActions() const override
void toggle2DOutlineVisibility(bool)
Toggle 2D outline visibility for the current segmentation.
qSlicerSubjectHierarchySegmentationsPlugin(QObject *parent=nullptr)
double canAddNodeToSubjectHierarchy(vtkMRMLNode *node, vtkIdType parentItemID=vtkMRMLSubjectHierarchyNode::INVALID_ITEM_ID) const override
QString tooltip(vtkIdType itemID) const override
Generate tooltip for a owned subject hierarchy item.
void onDisplayNodeModified(vtkObject *caller)
Called when segmentation display node is modified.
void setDisplayVisibility(vtkIdType itemID, int visible) override
Set display visibility of a owned subject hierarchy item.
int getDisplayVisibility(vtkIdType itemID) const override
void onSegmentRemoved(vtkObject *caller, void *callData)
Abstract MRML node to represent a view. The class holds the properties common to any view type (3D,...
Abstract Superclass for all specific types of MRML nodes.
MRML node containing segmentations.