std::set<Swc_Tree_Node*> ZSwcNodeObjsModel::getSwcTreeNodeSet( const QModelIndex &index) const { std::set<Swc_Tree_Node*> nodeSet; if (index.isValid()) { ZObjsItem *item = static_cast<ZObjsItem*>(index.internalPointer()); if (item->parent() == m_rootItem) { int childNumber = item->childCount(); for (int i = 0; i < childNumber; ++i) { ZObjsItem *childItem = item->child(i); Swc_Tree_Node *tn = static_cast<Swc_Tree_Node*>(childItem->getActuralData()); if (tn != NULL) { nodeSet.insert(tn); } } } else { Swc_Tree_Node *tn = getSwcTreeNode(index); if (tn != NULL) { nodeSet.insert(tn); } } } return nodeSet; }
Swc_Tree_Node *ZSwcNodeObjsModel::getSwcTreeNode(const QModelIndex &index) const { if (!index.isValid()) return NULL; ZObjsItem *item = static_cast<ZObjsItem*>(index.internalPointer()); if (item->parent() && item->parent()->parent() == m_rootItem) return static_cast<Swc_Tree_Node*>(item->getActuralData()); else return NULL; }
ZStroke2d* ZStroke2dObjsModel::getStroke2d(const QModelIndex &index) const { ZStroke2d *stroke = NULL; if (index.isValid()) { ZObjsItem *item = static_cast<ZObjsItem*>(index.internalPointer()); if (item->parent() == m_rootItem) { stroke = ZStackObject::CastVoidPointer<ZStroke2d>(item->getActuralData()); } } return stroke; }