File indexing completed on 2026-06-06 08:36:31
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016 #ifndef _MeshVS_Mesh_HeaderFile
0017 #define _MeshVS_Mesh_HeaderFile
0018
0019 #include <MeshVS_SequenceOfPrsBuilder.hxx>
0020 #include <MeshVS_DataMapOfIntegerOwner.hxx>
0021 #include <MeshVS_MeshSelectionMethod.hxx>
0022 #include <AIS_InteractiveObject.hxx>
0023 #include <SelectMgr_SequenceOfOwner.hxx>
0024
0025 class MeshVS_PrsBuilder;
0026 class TColStd_HPackedMapOfInteger;
0027 class MeshVS_DataSource;
0028 class MeshVS_Drawer;
0029 class SelectMgr_EntityOwner;
0030
0031 DEFINE_STANDARD_HANDLE(MeshVS_Mesh, AIS_InteractiveObject)
0032
0033
0034 class MeshVS_Mesh : public AIS_InteractiveObject
0035 {
0036
0037 public:
0038
0039
0040
0041 Standard_EXPORT MeshVS_Mesh(const Standard_Boolean theIsAllowOverlapped = Standard_False);
0042
0043
0044 Standard_EXPORT virtual Standard_Boolean AcceptDisplayMode(const Standard_Integer theMode) const
0045 Standard_OVERRIDE;
0046
0047
0048
0049 Standard_EXPORT virtual void Compute(const Handle(PrsMgr_PresentationManager)& thePrsMgr,
0050 const Handle(Prs3d_Presentation)& thePrs,
0051 const Standard_Integer theDispMode) Standard_OVERRIDE;
0052
0053
0054 Standard_EXPORT virtual void ComputeSelection(const Handle(SelectMgr_Selection)& theSel,
0055 const Standard_Integer theSelMode)
0056 Standard_OVERRIDE;
0057
0058
0059 Standard_EXPORT virtual void HilightSelected(const Handle(PrsMgr_PresentationManager)& thePrsMgr,
0060 const SelectMgr_SequenceOfOwner& theOwners)
0061 Standard_OVERRIDE;
0062
0063
0064 Standard_EXPORT virtual void HilightOwnerWithColor(
0065 const Handle(PrsMgr_PresentationManager)& thePM,
0066 const Handle(Prs3d_Drawer)& theColor,
0067 const Handle(SelectMgr_EntityOwner)& theOwner) Standard_OVERRIDE;
0068
0069
0070 Standard_EXPORT virtual void ClearSelected() Standard_OVERRIDE;
0071
0072
0073 Standard_EXPORT Standard_Integer GetBuildersCount() const;
0074
0075
0076 Standard_EXPORT Handle(MeshVS_PrsBuilder) GetBuilder(const Standard_Integer Index) const;
0077
0078
0079 Standard_EXPORT Handle(MeshVS_PrsBuilder) GetBuilderById(const Standard_Integer Id) const;
0080
0081
0082
0083 Standard_EXPORT Standard_Integer GetFreeId() const;
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093 Standard_EXPORT void AddBuilder(const Handle(MeshVS_PrsBuilder)& Builder,
0094 const Standard_Boolean TreatAsHilighter = Standard_False);
0095
0096
0097 Standard_EXPORT void SetHilighter(const Handle(MeshVS_PrsBuilder)& Builder);
0098
0099
0100 Standard_EXPORT Standard_Boolean SetHilighter(const Standard_Integer Index);
0101
0102
0103 Standard_EXPORT Standard_Boolean SetHilighterById(const Standard_Integer Id);
0104
0105
0106 Standard_EXPORT Handle(MeshVS_PrsBuilder) GetHilighter() const;
0107
0108
0109
0110 Standard_EXPORT void RemoveBuilder(const Standard_Integer Index);
0111
0112
0113 Standard_EXPORT void RemoveBuilderById(const Standard_Integer Id);
0114
0115
0116 Standard_DEPRECATED("This method will be removed right after 7.9 release. \
0117 Use FindBuilder(const Handle(Standard_Type)&) instead \
0118 or directly iterate under sequence of builders.")
0119 Standard_EXPORT Handle(MeshVS_PrsBuilder) FindBuilder(const Standard_CString TypeString) const;
0120
0121
0122 Standard_EXPORT Handle(MeshVS_PrsBuilder) FindBuilder(
0123 const Handle(Standard_Type)& TypeString) const;
0124
0125
0126 Standard_EXPORT const MeshVS_DataMapOfIntegerOwner& GetOwnerMaps(
0127 const Standard_Boolean IsElement);
0128
0129
0130 Standard_EXPORT Handle(MeshVS_DataSource) GetDataSource() const;
0131
0132
0133 Standard_EXPORT void SetDataSource(const Handle(MeshVS_DataSource)& aDataSource);
0134
0135
0136 Standard_EXPORT Handle(MeshVS_Drawer) GetDrawer() const;
0137
0138
0139 Standard_EXPORT void SetDrawer(const Handle(MeshVS_Drawer)& aDrawer);
0140
0141
0142
0143 Standard_EXPORT Standard_Boolean IsHiddenElem(const Standard_Integer ID) const;
0144
0145
0146
0147 Standard_EXPORT Standard_Boolean IsHiddenNode(const Standard_Integer ID) const;
0148
0149
0150 Standard_EXPORT Standard_Boolean IsSelectableElem(const Standard_Integer ID) const;
0151
0152
0153 Standard_EXPORT Standard_Boolean IsSelectableNode(const Standard_Integer ID) const;
0154
0155
0156 Standard_EXPORT const Handle(TColStd_HPackedMapOfInteger)& GetHiddenNodes() const;
0157
0158
0159
0160
0161 Standard_EXPORT void SetHiddenNodes(const Handle(TColStd_HPackedMapOfInteger)& Ids);
0162
0163
0164 Standard_EXPORT const Handle(TColStd_HPackedMapOfInteger)& GetHiddenElems() const;
0165
0166
0167 Standard_EXPORT void SetHiddenElems(const Handle(TColStd_HPackedMapOfInteger)& Ids);
0168
0169
0170 Standard_EXPORT const Handle(TColStd_HPackedMapOfInteger)& GetSelectableNodes() const;
0171
0172
0173 Standard_EXPORT void SetSelectableNodes(const Handle(TColStd_HPackedMapOfInteger)& Ids);
0174
0175
0176
0177
0178
0179
0180 Standard_EXPORT void UpdateSelectableNodes();
0181
0182
0183 Standard_EXPORT MeshVS_MeshSelectionMethod GetMeshSelMethod() const;
0184
0185
0186 Standard_EXPORT void SetMeshSelMethod(const MeshVS_MeshSelectionMethod M);
0187
0188
0189 Standard_EXPORT virtual Standard_Boolean IsWholeMeshOwner(
0190 const Handle(SelectMgr_EntityOwner)& theOwner) const;
0191
0192 friend class MeshVS_PrsBuilder;
0193
0194 DEFINE_STANDARD_RTTIEXT(MeshVS_Mesh, AIS_InteractiveObject)
0195
0196 protected:
0197
0198
0199
0200
0201 Standard_EXPORT void scanFacesForSharedNodes(const TColStd_PackedMapOfInteger& theAllElements,
0202 const Standard_Integer theNbMaxFaceNodes,
0203 TColStd_PackedMapOfInteger& theSharedNodes) const;
0204
0205 protected:
0206 MeshVS_DataMapOfIntegerOwner myNodeOwners;
0207 MeshVS_DataMapOfIntegerOwner myElementOwners;
0208 MeshVS_DataMapOfIntegerOwner my0DOwners;
0209 MeshVS_DataMapOfIntegerOwner myLinkOwners;
0210 MeshVS_DataMapOfIntegerOwner myFaceOwners;
0211 MeshVS_DataMapOfIntegerOwner myVolumeOwners;
0212 MeshVS_DataMapOfIntegerOwner myGroupOwners;
0213 MeshVS_DataMapOfIntegerOwner myMeshOwners;
0214 Handle(MeshVS_Drawer) myCurrentDrawer;
0215 Handle(MeshVS_Drawer) mySelectionDrawer;
0216 Handle(MeshVS_Drawer) myHilightDrawer;
0217 Handle(SelectMgr_EntityOwner) myWholeMeshOwner;
0218
0219 private:
0220 MeshVS_SequenceOfPrsBuilder myBuilders;
0221 Handle(MeshVS_PrsBuilder) myHilighter;
0222 Handle(TColStd_HPackedMapOfInteger) myHiddenElements;
0223 Handle(TColStd_HPackedMapOfInteger) myHiddenNodes;
0224 Handle(TColStd_HPackedMapOfInteger) mySelectableNodes;
0225 Handle(MeshVS_DataSource) myDataSource;
0226 MeshVS_MeshSelectionMethod mySelectionMethod;
0227 };
0228
0229 #endif