25 #include <QInputDialog> 26 #include <QPushButton> 27 #include <QStringList> 37 m_lastSelectedItem(nullptr),
38 m_lastAffineObserver(0),
40 m_BoundingObjectCounter(1)
42 QBoxLayout *mainLayout =
new QVBoxLayout(
this);
44 QHBoxLayout *buttonLayout =
new QHBoxLayout();
47 boList << tr(
"add") << tr(
"cube") << tr(
"cone") << tr(
"ellipse") << tr(
"cylinder");
50 m_addComboBox->setItemIcon(1, QIcon(
":/QmitkWidgetsExt/btnCube.xpm"));
51 m_addComboBox->setItemIcon(2, QIcon(
":/QmitkWidgetsExt/btnPyramid.xpm"));
52 m_addComboBox->setItemIcon(3, QIcon(
":/QmitkWidgetsExt/btnEllipsoid.xpm"));
53 m_addComboBox->setItemIcon(4, QIcon(
":/QmitkWidgetsExt/btnCylinder.xpm"));
71 sList << tr(
"name") << tr(
"inverted") << tr(
"visible");
77 m_TreeWidget->setSelectionMode(QAbstractItemView::SingleSelection);
80 mainLayout->addLayout(buttonLayout);
87 SIGNAL(itemDoubleClicked(QTreeWidgetItem *,
int)),
104 QTreeWidgetItem *item = it->first;
113 QWidget::setEnabled(flag);
119 QList<QTreeWidgetItem *> selectedItems =
m_TreeWidget->selectedItems();
120 if (selectedItems.size() < 1)
123 QTreeWidgetItem *selectedItem = selectedItems.first();
144 ItemNodeMapType::iterator it =
m_ItemNodeMap.find(selectedItem);
153 affineDataInteractor->SetDataNode(new_node);
157 itk::ReceptorMemberCommand<QmitkBoundingObjectWidget>::Pointer command =
158 itk::ReceptorMemberCommand<QmitkBoundingObjectWidget>::New();
176 QTreeWidgetItem *item =
new QTreeWidgetItem();
177 item->setData(0, Qt::EditRole, QString::fromLocal8Bit(name.c_str()));
178 item->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled | Qt::ItemIsUserCheckable);
181 item->setData(1, Qt::CheckStateRole, tr(
""));
182 item->setCheckState(1, Qt::Unchecked);
185 item->setData(2, Qt::CheckStateRole, tr(
""));
186 item->setCheckState(2, Qt::Checked);
193 QList<QTreeWidgetItem *> items =
m_TreeWidget->selectedItems();
194 for (
int i = 0; i < items.size(); i++)
202 MITK_ERROR << name <<
" is not a bounding object or does not exist in data storage" << endl;
228 node->
SetName(item->text(0).toLocal8Bit().data());
235 boundingObject->
SetPositive(!(item->checkState(1)));
250 QList<QTreeWidgetItem *> selectedItems =
m_TreeWidget->selectedItems();
251 QTreeWidgetItem *item = selectedItems.first();
252 QString str = item->text(0);
299 return boundingObject;
335 if ((plane1 !=
nullptr) && (plane2 !=
nullptr) && (plane1->
IntersectionLine(plane2, line)))
353 name.prepend(
"Cube_");
357 name.prepend(
"Cone_");
361 name.prepend(
"Ellipse_");
365 name.prepend(
"Cylinder_");
377 boundingObject->GetGeometry()->SetSpacing(size);
379 boundingObject->GetGeometry()->Translate(pos.GetVectorFromOrigin());
380 boundingObject->GetTimeGeometry()->Update();
384 node->SetData(boundingObject);
411 for (mitk::DataStorage::SetOfObjects::const_iterator it = allBO->begin(); it != allBO->end(); ++it)
416 boundingObjectGroup->AddBoundingObject(boundingObject);
419 boundingObjectGroupNode->SetData(boundingObjectGroup);
421 if (boundingObjectGroup->GetCount() > 0)
422 return boundingObjectGroupNode;
429 QList<QTreeWidgetItem *> selectedItems =
m_TreeWidget->selectedItems();
430 if (selectedItems.size() < 1)
433 QTreeWidgetItem *item = selectedItems.first();
Data management class that handles 'was created by' relations.
void SetVisibility(bool visible, const mitk::BaseRenderer *renderer=nullptr, const char *propertyKey="visible")
Convenience method for setting visibility properties (instances of BoolProperty)
static BaseRenderer * GetInstance(vtkRenderWindow *renWin)
bool GetStringProperty(const char *propertyKey, std::string &string, const mitk::BaseRenderer *renderer=nullptr) const
Convenience access method for string properties (instances of StringProperty)
static Module * GetModule(long id)
bool IntersectionPoint(const Line3D &line, Point3D &intersectionPoint) const
Calculate intersection point between the plane and a line.
virtual void Add(DataNode *node, const DataStorage::SetOfObjects *parents=nullptr)=0
Adds a DataNode containing a data object to its internal storage.
superclass of all bounding objects (cylinder, cuboid,...)
bool IntersectionLine(const PlaneGeometry *plane, Line3D &crossline) const
Calculate the intersecting line of two planes.
virtual void SetPositive(bool _arg)
BaseData * GetData() const
Get the data object (instance of BaseData, e.g., an Image) managed by this DataNode.
mitk::DataStorage::Pointer m_DataStorage
static RenderingManager * GetInstance()
SetOfObjects::ConstPointer GetSubset(const NodePredicateBase *condition) const
returns a set of data objects that meet the given condition(s)
virtual void SetName(const char *name)
Extra convenience access method to set the name of an object.
std::vector< vtkRenderWindow * > RenderWindowVector
static Pointer New(const char *_arg)
void SetBoolProperty(const char *propertyKey, bool boolValue, const mitk::BaseRenderer *renderer=nullptr)
Convenience method for setting boolean properties (instances of BoolProperty)
virtual void Remove(const DataNode *node)=0
Removes node from the DataStorage.
Describes a two-dimensional, rectangular plane.
virtual void SetDataInteractor(const DataInteractor::Pointer interactor)
Set the Interactor.
const RenderWindowVector & GetAllRegisteredRenderWindows()
void RequestUpdateAll(RequestType type=REQUEST_UPDATE_ALL)
Class for nodes of the DataTree.