11 #include <QAbstractItemModel>
19 #include <unordered_set>
22 class QStandardItemModel;
61 const QModelIndex& index,
const QEvent*
event =
nullptr)
const;
75 QTreeView* propertiesTreeWidget,
76 QObject*
parent =
nullptr);
138 virtual QVariant
data(
const QModelIndex&
index,
int role)
const override;
139 virtual QModelIndex
index(
142 const QModelIndex& parentIndex = QModelIndex())
const override;
144 virtual QModelIndex
parent(
const QModelIndex&
index)
const override;
146 const QModelIndex&
parent = QModelIndex())
const override;
148 const QModelIndex&
parent = QModelIndex())
const override;
149 virtual Qt::ItemFlags
flags(
const QModelIndex&
index)
const override;
151 const QVariant& value,
152 int role = Qt::EditRole)
override;
155 Qt::DropAction action,
158 const QModelIndex&
parent)
override;
159 virtual QMap<int, QVariant>
itemData(
160 const QModelIndex&
index)
const override;
162 return Qt::MoveAction;
167 const QItemSelection& deselected);
194 bool incremental =
false);
278 bool typeIsExclusive =
true,
279 QString
name = QString(),
280 bool nameIsRegex =
false);
int64_t CV_CLASS_ENUM
Type of object type flags (64 bits)
Custom QTreeView widget (for advanced selection behavior)
virtual QItemSelectionModel::SelectionFlags selectionCommand(const QModelIndex &index, const QEvent *event=nullptr) const
ccCustomQTreeView(QWidget *parent)
Default constructor.
ccPropertiesTreeDelegate * getPropertiesDelegate()
Get properties tree delegate.
QAction * m_alignCameraWithEntity
Context menu action: use 3-points labels or planes to orient camera.
void updatePropertiesView()
Updates properties view.
QAction * m_sortChildrenType
Context menu action: sort children by type.
void toggleSelectedEntitiesMat()
void editLabelScalarValue()
void hidePropertiesView()
Hides properties view.
void expandElement(ccHObject *object, bool state)
Expands tree at a given node.
virtual QModelIndex index(int row, int column, const QModelIndex &parentIndex=QModelIndex()) const override
void dbIsNotEmptyAnymore()
int countSelectedEntities(CV_CLASS_ENUM filter=CV_TYPES::OBJECT)
QAction * m_enableBubbleViewMode
Context menu action: enable bubble-view (on a sensor)
virtual int columnCount(const QModelIndex &parent=QModelIndex()) const override
QAction * m_sortChildrenZA
Context menu action: sort children in reverse alphabetical order.
void updateCCObject(ccHObject *object)
QAction * m_gatherInformation
Context menu action: gather (recursive) information on selected entities.
QAction * m_editLabelScalarValue
Context menu action: change current scalar value (via a 2D label)
void gatherRecursiveInformation()
ccDBRoot(ccCustomQTreeView *dbTreeWidget, QTreeView *propertiesTreeWidget, QObject *parent=nullptr)
Default constructor.
virtual bool setData(const QModelIndex &index, const QVariant &value, int role=Qt::EditRole) override
QAction * m_toggleSelectedEntities
Context menu action: enabled/disable selected entities.
void unselectEntity(ccHObject *obj)
Unselects a given entity.
virtual ~ccDBRoot() override
Destructor.
void toggleSelectedEntities()
QTreeView * m_dbTreeWidget
Associated widget for DB tree.
virtual QModelIndex parent(const QModelIndex &index) const override
QAction * m_deleteSelectedEntities
Context menu action: delete selected entities.
void toggleSelectedEntities3DName()
QAction * m_toggleSelectedEntitiesNormals
Context menu action: hide/show selected entities normals.
QPoint m_contextMenuPos
Last context menu pos.
void toggleSelectedEntitiesVisibility()
QAction * m_selectByTypeAndName
Context menu action: select object by type and/or by name.
virtual bool dropMimeData(const QMimeData *data, Qt::DropAction action, int row, int column, const QModelIndex &parent) override
void removeElements(ccHObject::Container &objects)
Removes several elements at once from the DB tree.
void alignCameraWithEntityIndirect()
QAction * m_addEmptyGroup
Context menu action: add empty group.
void redrawCCObjectAndChildren(ccHObject *object, bool forceRedraw=true)
void toggleSelectedEntitiesSF()
ccHObject * m_treeRoot
Associated DB root.
virtual QVariant data(const QModelIndex &index, int role) const override
void selectEntity(ccHObject *obj, bool forceAdditiveSelection=false)
Selects a given entity.
virtual Qt::DropActions supportedDropActions() const override
void selectEntities(std::unordered_set< int > entIDs)
Selects multiple entities at once (shortcut to the other version)
QAction * m_toggleSelectedEntitiesMat
Context menu action: hide/show selected entities materials/textures.
ccHObject * getRootEntity()
Returns associated root object.
void redrawCCObject(ccHObject *object, bool forceRedraw=true)
void selectChildrenByTypeAndName(CV_CLASS_ENUM type, bool typeIsExclusive=true, QString name=QString(), bool nameIsRegex=false)
Selects objects by type and/or name.
QAction * m_alignCameraWithEntityReverse
Context menu action: reverse of m_alignCameraWithEntity.
size_t getSelectedEntities(ccHObject::Container &selectedEntities, CV_CLASS_ENUM filter=CV_TYPES::OBJECT, dbTreeSelectionInfo *info=nullptr)
void selectByTypeAndName()
virtual int rowCount(const QModelIndex &parent=QModelIndex()) const override
QAction * m_toggleSelectedEntitiesColor
Context menu action: hide/show selected entities color.
SortRules
Entities sorting schemes.
ccHObject * find(int uniqueID) const
Finds an element in DB.
void alignCameraWithEntity(bool reverse)
Aligns the camera with the currently selected entity.
void showPropertiesView(ccHObject *obj)
Shows properties view for a given element.
virtual QMap< int, QVariant > itemData(const QModelIndex &index) const override
void reflectObjectPropChange(ccHObject *obj)
void expandOrCollapseHoveredBranch(bool expand)
Expands or collapses hovered item.
QAction * m_sortChildrenAZ
Context menu action: sort children in alphabetical order.
void unselectAllEntities()
Unselects all entities.
void toggleSelectedEntitiesColor()
QAction * m_toggleSelectedEntities3DName
Context menu action: hide/show selected entities 3D name.
void unloadAll()
Unloads all entities.
TOGGLE_PROPERTY
Entity property that can be toggled.
void toggleSelectedEntitiesProperty(TOGGLE_PROPERTY prop)
void enableBubbleViewMode()
QStandardItemModel * m_propertiesModel
Selected entity's properties data model.
void changeSelection(const QItemSelection &selected, const QItemSelection &deselected)
void removeElement(ccHObject *object)
Removes an element from the DB tree.
virtual Qt::ItemFlags flags(const QModelIndex &index) const override
void sortSelectedEntitiesChildren(SortRules rule)
Sorts selected entities children.
QAction * m_expandBranch
Context menu action: expand tree branch.
QTreeView * m_propertiesTreeWidget
Associated widget for selected entity's properties tree.
void showContextMenu(const QPoint &)
void toggleSelectedEntitiesNormals()
QAction * m_collapseBranch
Context menu action: collapse tree branch.
QAction * m_exportImages
Context menu action: export images.
ccPropertiesTreeDelegate * m_ccPropDelegate
Selected entity's properties delegate.
void alignCameraWithEntityDirect()
QAction * m_toggleSelectedEntitiesSF
Context menu action: hide/show selected entities SF.
QAction * m_toggleSelectedEntitiesVisibility
Context menu action: hide/show selected entities.
void deleteSelectedEntities()
void addElement(ccHObject *object, bool autoExpand=true)
Adds an element to the DB tree.
virtual Qt::DropActions supportedDragActions() const override
Hierarchical CLOUDVIEWER Object.
std::vector< ccHObject * > Container
Standard instances container (for children, etc.)
GUI properties list dialog element.
Precise statistics about current selection.