X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMESH_I%2FSMESH_Mesh_i.hxx;h=b274e33f66a3457068d53811dfd921541ec20c36;hp=41bbce48b96c2038c4cc1dfa790cd0bd738cfb1c;hb=refs%2Ftags%2FV9_7_0b1;hpb=a63fc78c25199b018fae4f5b182e6a348be0abf2 diff --git a/src/SMESH_I/SMESH_Mesh_i.hxx b/src/SMESH_I/SMESH_Mesh_i.hxx index 41bbce48b..b274e33f6 100644 --- a/src/SMESH_I/SMESH_Mesh_i.hxx +++ b/src/SMESH_I/SMESH_Mesh_i.hxx @@ -1,4 +1,4 @@ -// Copyright (C) 2007-2016 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2021 CEA/DEN, EDF R&D, OPEN CASCADE // // Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, // CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS @@ -65,124 +65,100 @@ public: // --- CORBA - void SetShape( GEOM::GEOM_Object_ptr theShapeObject ) - throw (SALOME::SALOME_Exception); + void SetShape( GEOM::GEOM_Object_ptr theShapeObject ); - CORBA::Boolean HasShapeToMesh() - throw (SALOME::SALOME_Exception); + CORBA::Boolean HasShapeToMesh(); - GEOM::GEOM_Object_ptr GetShapeToMesh() - throw (SALOME::SALOME_Exception); + GEOM::GEOM_Object_ptr GetShapeToMesh(); - CORBA::Boolean IsLoaded() - throw (SALOME::SALOME_Exception); + virtual void ReplaceShape(GEOM::GEOM_Object_ptr theNewGeom); - void Load() - throw (SALOME::SALOME_Exception); + CORBA::Boolean IsLoaded(); - void Clear() - throw (SALOME::SALOME_Exception); + void Load(); - void ClearSubMesh(CORBA::Long ShapeID) - throw (SALOME::SALOME_Exception); + void Clear(); + + void ClearSubMesh(CORBA::Long ShapeID); SMESH::Hypothesis_Status AddHypothesis(GEOM::GEOM_Object_ptr aSubShape, SMESH::SMESH_Hypothesis_ptr anHyp, - CORBA::String_out anErrorText) - throw (SALOME::SALOME_Exception); + CORBA::String_out anErrorText); SMESH::Hypothesis_Status RemoveHypothesis(GEOM::GEOM_Object_ptr aSubShape, - SMESH::SMESH_Hypothesis_ptr anHyp) - throw (SALOME::SALOME_Exception); + SMESH::SMESH_Hypothesis_ptr anHyp); - SMESH::ListOfHypothesis* GetHypothesisList(GEOM::GEOM_Object_ptr aSubShape) - throw (SALOME::SALOME_Exception); + SMESH::ListOfHypothesis* GetHypothesisList(GEOM::GEOM_Object_ptr aSubShape); - SMESH::submesh_array* GetSubMeshes() - throw (SALOME::SALOME_Exception); + SMESH::submesh_array* GetSubMeshes(); - SMESH::SMESH_subMesh_ptr GetSubMesh(GEOM::GEOM_Object_ptr aSubShape, const char* theName) - throw (SALOME::SALOME_Exception); + SMESH::SMESH_subMesh_ptr GetSubMesh(GEOM::GEOM_Object_ptr aSubShape, const char* theName); - void RemoveSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh ) - throw (SALOME::SALOME_Exception); + void RemoveSubMesh( SMESH::SMESH_subMesh_ptr theSubMesh ); - SMESH::SMESH_Group_ptr CreateGroup( SMESH::ElementType theElemType, const char* theName ) - throw (SALOME::SALOME_Exception); + SMESH::SMESH_Group_ptr CreateGroup( SMESH::ElementType theElemType, const char* theName ); SMESH::SMESH_GroupOnGeom_ptr CreateGroupFromGEOM(SMESH::ElementType theElemType, const char* theName, - GEOM::GEOM_Object_ptr theGeomObj ) - throw (SALOME::SALOME_Exception); + GEOM::GEOM_Object_ptr theGeomObj ); SMESH::SMESH_GroupOnFilter_ptr CreateGroupFromFilter(SMESH::ElementType theElemType, const char* theName, - SMESH::Filter_ptr theFilter ) - throw (SALOME::SALOME_Exception); + SMESH::Filter_ptr theFilter ); - void RemoveGroup( SMESH::SMESH_GroupBase_ptr theGroup ) - throw (SALOME::SALOME_Exception); + void RemoveGroup( SMESH::SMESH_GroupBase_ptr theGroup ); - void RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup ) - throw (SALOME::SALOME_Exception); + void RemoveGroupWithContents( SMESH::SMESH_GroupBase_ptr theGroup ); - SMESH::ListOfGroups* GetGroups() - throw (SALOME::SALOME_Exception); + SMESH::ListOfGroups* GetGroups(); - CORBA::Long NbGroups() - throw (SALOME::SALOME_Exception); + CORBA::Long NbGroups(); SMESH::SMESH_Group_ptr UnionGroups( SMESH::SMESH_GroupBase_ptr theGroup1, SMESH::SMESH_GroupBase_ptr theGroup2, - const char* theName ) - throw (SALOME::SALOME_Exception); + const char* theName ); SMESH::SMESH_Group_ptr UnionListOfGroups( const SMESH::ListOfGroups& theGroups, - const char* theName) - throw (SALOME::SALOME_Exception); + const char* theName); SMESH::SMESH_Group_ptr IntersectGroups( SMESH::SMESH_GroupBase_ptr theGroup1, SMESH::SMESH_GroupBase_ptr theGroup2, - const char* theName ) - throw (SALOME::SALOME_Exception); + const char* theName ); SMESH::SMESH_Group_ptr IntersectListOfGroups( const SMESH::ListOfGroups& theGroups, - const char* theName ) - throw (SALOME::SALOME_Exception); + const char* theName ); SMESH::SMESH_Group_ptr CutGroups( SMESH::SMESH_GroupBase_ptr theGroup1, SMESH::SMESH_GroupBase_ptr theGroup2, - const char* theName ) - throw (SALOME::SALOME_Exception); + const char* theName ); SMESH::SMESH_Group_ptr CutListOfGroups( const SMESH::ListOfGroups& theMainGroups, const SMESH::ListOfGroups& theToolGroups, - const char* theName ) - throw (SALOME::SALOME_Exception); + const char* theName ); SMESH::SMESH_Group_ptr CreateDimGroup( const SMESH::ListOfIDSources& theGroups, SMESH::ElementType theElemType, const char* theName, SMESH::NB_COMMON_NODES_ENUM theNbCommonNodes, - CORBA::Boolean theUnderlyingOnly ) - throw (SALOME::SALOME_Exception); + CORBA::Boolean theUnderlyingOnly ); + SMESH::ListOfGroups* FaceGroupsSeparatedByEdges( CORBA::Double theSharpAngle, + CORBA::Boolean theCreateEdges, + CORBA::Boolean theUseExistingEdges ); - SMESH::SMESH_Group_ptr ConvertToStandalone( SMESH::SMESH_GroupBase_ptr theGroupOn ) - throw (SALOME::SALOME_Exception); + SMESH::SMESH_Group_ptr ConvertToStandalone( SMESH::SMESH_GroupBase_ptr theGroupOn ); - SMESH::log_array* GetLog(CORBA::Boolean clearAfterGet) - throw (SALOME::SALOME_Exception); + SMESH::log_array* GetLog(CORBA::Boolean clearAfterGet); - SMESH::SMESH_MeshEditor_ptr GetMeshEditor() throw (SALOME::SALOME_Exception); + SMESH::SMESH_MeshEditor_ptr GetMeshEditor(); - SMESH::SMESH_MeshEditor_ptr GetMeshEditPreviewer() throw (SALOME::SALOME_Exception); + SMESH::SMESH_MeshEditor_ptr GetMeshEditPreviewer(); - CORBA::Boolean HasModificationsToDiscard() throw (SALOME::SALOME_Exception); + CORBA::Boolean HasModificationsToDiscard(); - void ClearLog() throw (SALOME::SALOME_Exception); + void ClearLog(); - CORBA::Long GetId() throw (SALOME::SALOME_Exception); + CORBA::Long GetId(); // --- C++ interface @@ -191,35 +167,28 @@ public: SMESH_Gen_i* GetGen() { return _gen_i; } - int ImportUNVFile( const char* theFileName ) - throw (SALOME::SALOME_Exception); + int ImportUNVFile( const char* theFileName ); - int ImportSTLFile( const char* theFileName ) - throw (SALOME::SALOME_Exception); + int ImportSTLFile( const char* theFileName ); SMESH::ComputeError* ImportGMFFile( const char* theFileName, - bool theMakeRequiredGroups) - throw (SALOME::SALOME_Exception); + bool theMakeRequiredGroups); /*! * consult DriverMED_R_SMESHDS_Mesh::ReadStatus for returned value */ - SMESH::DriverMED_ReadStatus ImportMEDFile( const char* theFileName, const char* theMeshName ) - throw (SALOME::SALOME_Exception); + SMESH::DriverMED_ReadStatus ImportMEDFile( const char* theFileName, const char* theMeshName ); SMESH::DriverMED_ReadStatus ImportCGNSFile( const char* theFileName, const int theMeshIndex, - std::string& theMeshName) - throw (SALOME::SALOME_Exception); + std::string& theMeshName); /*! * Auto color */ - void SetAutoColor(CORBA::Boolean theAutoColor) - throw (SALOME::SALOME_Exception); + void SetAutoColor(CORBA::Boolean theAutoColor); - CORBA::Boolean GetAutoColor() - throw (SALOME::SALOME_Exception); + CORBA::Boolean GetAutoColor(); /*! Check group names for duplications. * Consider maximum group name length stored in MED file. @@ -241,20 +210,20 @@ public: CORBA::Boolean auto_groups, CORBA::Long version, CORBA::Boolean overwrite, - CORBA::Boolean autoDimension = true) throw (SALOME::SALOME_Exception); + CORBA::Boolean autoDimension = true); - void ExportSAUV( const char* file, CORBA::Boolean auto_groups ) throw (SALOME::SALOME_Exception); + void ExportSAUV( const char* file, CORBA::Boolean auto_groups ); - void ExportDAT( const char* file ) throw (SALOME::SALOME_Exception); - void ExportUNV( const char* file ) throw (SALOME::SALOME_Exception); - void ExportSTL( const char* file, bool isascii ) throw (SALOME::SALOME_Exception); + void ExportDAT( const char* file ); + void ExportUNV( const char* file ); + void ExportSTL( const char* file, bool isascii ); void ExportCGNS(SMESH::SMESH_IDSource_ptr meshPart, const char* file, CORBA::Boolean overwrite, - CORBA::Boolean groupElemsByType) throw (SALOME::SALOME_Exception); + CORBA::Boolean groupElemsByType); void ExportGMF(SMESH::SMESH_IDSource_ptr meshPart, const char* file, - CORBA::Boolean withRequiredGroups) throw (SALOME::SALOME_Exception); + CORBA::Boolean withRequiredGroups); void ExportPartToMED(SMESH::SMESH_IDSource_ptr meshPart, const char* file, @@ -263,151 +232,112 @@ public: CORBA::Boolean overwrite, CORBA::Boolean autoDim, const GEOM::ListOfFields& fields, - const char* geomAssocFields) throw (SALOME::SALOME_Exception); + const char* geomAssocFields, + CORBA::Double ZTolerance); void ExportPartToDAT(SMESH::SMESH_IDSource_ptr meshPart, - const char* file) throw (SALOME::SALOME_Exception); + const char* file); void ExportPartToUNV(SMESH::SMESH_IDSource_ptr meshPart, - const char* file) throw (SALOME::SALOME_Exception); + const char* file); void ExportPartToSTL(SMESH::SMESH_IDSource_ptr meshPart, const char* file, - CORBA::Boolean isascii) throw (SALOME::SALOME_Exception); + CORBA::Boolean isascii); CORBA::Double GetComputeProgress(); - CORBA::Long NbNodes() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbNodes(); - CORBA::Long NbElements() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbElements(); - CORBA::Long Nb0DElements() - throw (SALOME::SALOME_Exception); + SMESH::smIdType Nb0DElements(); - CORBA::Long NbBalls() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbBalls(); - CORBA::Long NbEdges() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbEdges(); - CORBA::Long NbEdgesOfOrder(SMESH::ElementOrder order) - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbEdgesOfOrder(SMESH::ElementOrder order); - CORBA::Long NbFaces() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbFaces(); - CORBA::Long NbFacesOfOrder(SMESH::ElementOrder order) - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbFacesOfOrder(SMESH::ElementOrder order); - CORBA::Long NbTriangles() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbTriangles(); - CORBA::Long NbTrianglesOfOrder(SMESH::ElementOrder order) - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbTrianglesOfOrder(SMESH::ElementOrder order); - CORBA::Long NbBiQuadTriangles() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbBiQuadTriangles(); - CORBA::Long NbQuadrangles() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbQuadrangles(); - CORBA::Long NbQuadranglesOfOrder(SMESH::ElementOrder order) - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbQuadranglesOfOrder(SMESH::ElementOrder order); - CORBA::Long NbBiQuadQuadrangles() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbBiQuadQuadrangles(); - CORBA::Long NbPolygons() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbPolygons(); - CORBA::Long NbPolygonsOfOrder(SMESH::ElementOrder order = SMESH::ORDER_ANY) - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbPolygonsOfOrder(SMESH::ElementOrder order = SMESH::ORDER_ANY); - CORBA::Long NbVolumes() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbVolumes(); - CORBA::Long NbVolumesOfOrder(SMESH::ElementOrder order) - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbVolumesOfOrder(SMESH::ElementOrder order); - CORBA::Long NbTetras() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbTetras(); - CORBA::Long NbTetrasOfOrder(SMESH::ElementOrder order) - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbTetrasOfOrder(SMESH::ElementOrder order); - CORBA::Long NbHexas() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbHexas(); - CORBA::Long NbHexasOfOrder(SMESH::ElementOrder order) - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbHexasOfOrder(SMESH::ElementOrder order); - CORBA::Long NbTriQuadraticHexas() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbTriQuadraticHexas(); - CORBA::Long NbPyramids() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbPyramids(); - CORBA::Long NbPyramidsOfOrder(SMESH::ElementOrder order) - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbPyramidsOfOrder(SMESH::ElementOrder order); - CORBA::Long NbPrisms() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbPrisms(); - CORBA::Long NbPrismsOfOrder(SMESH::ElementOrder order) - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbPrismsOfOrder(SMESH::ElementOrder order); - CORBA::Long NbHexagonalPrisms() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbHexagonalPrisms(); - CORBA::Long NbPolyhedrons() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbPolyhedrons(); - CORBA::Long NbSubMesh() - throw (SALOME::SALOME_Exception); + SMESH::smIdType NbSubMesh(); - SMESH::long_array* GetElementsId() - throw (SALOME::SALOME_Exception); + SMESH::smIdType_array* GetElementsId(); - SMESH::long_array* GetElementsByType( SMESH::ElementType theElemType ) - throw (SALOME::SALOME_Exception); + SMESH::smIdType_array* GetElementsByType( SMESH::ElementType theElemType ); - SMESH::long_array* GetNodesId() - throw (SALOME::SALOME_Exception); + SMESH::smIdType_array* GetNodesId(); - SMESH::ElementType GetElementType( CORBA::Long id, bool iselem ) - throw (SALOME::SALOME_Exception); + SMESH::ElementType GetElementType( SMESH::smIdType id, bool iselem ); - SMESH::EntityType GetElementGeomType( CORBA::Long id ) - throw (SALOME::SALOME_Exception); + SMESH::EntityType GetElementGeomType( SMESH::smIdType id ); - SMESH::GeometryType GetElementShape( CORBA::Long id ) - throw (SALOME::SALOME_Exception); + SMESH::GeometryType GetElementShape( SMESH::smIdType id ); /*! * Returns ID of elements for given submesh */ - SMESH::long_array* GetSubMeshElementsId(CORBA::Long ShapeID) - throw (SALOME::SALOME_Exception); + SMESH::smIdType_array* GetSubMeshElementsId(CORBA::Long ShapeID); /*! * Returns ID of nodes for given submesh * If param all==true - returns all nodes, else - * returns only nodes on shapes. */ - SMESH::long_array* GetSubMeshNodesId(CORBA::Long ShapeID, CORBA::Boolean all) - throw (SALOME::SALOME_Exception); + SMESH::smIdType_array* GetSubMeshNodesId(CORBA::Long ShapeID, CORBA::Boolean all); /*! * Returns type of elements for given submesh */ - SMESH::ElementType GetSubMeshElementType(CORBA::Long ShapeID) - throw (SALOME::SALOME_Exception); + SMESH::ElementType GetSubMeshElementType(CORBA::Long ShapeID); char* Dump(); // Create groups of elements preventing computation of a sub-shape SMESH::ListOfGroups* MakeGroupsOfBadInputElements( int theSubShapeID, - const char* theGroupName) - throw (SALOME::SALOME_Exception); + const char* theGroupName); // =================================================== // Internal methods not available through CORBA @@ -435,6 +365,7 @@ public: SMESH::SMESH_GroupBase_ptr createGroup(SMESH::ElementType theElemType, const char* theName, + const int theID = -1, const TopoDS_Shape& theShape = TopoDS_Shape(), const SMESH_PredicatePtr& thePred = SMESH_PredicatePtr()); @@ -446,17 +377,15 @@ public: const std::map& getGroups() { return _mapGroups; } // return existing group objects - void onHypothesisModified(int theHypID); + void onHypothesisModified(int theHypID, bool updateIcons); // callback from _impl to forget not loaded mesh data (issue 0021208) - void checkMeshLoaded(); - /*! * \brief Update data if geometry changes * * Issue 0022501 */ - void CheckGeomModif(); + void CheckGeomModif( bool isBreakLink = false ); /*! * \brief Update hypotheses assigned to geom groups if the latter change * @@ -490,81 +419,82 @@ public: * Get XYZ coordinates of node as list of double * If there is not node for given ID - returns empty list */ - SMESH::double_array* GetNodeXYZ(CORBA::Long id); + SMESH::double_array* GetNodeXYZ(SMESH::smIdType id); /*! * For given node returns list of IDs of inverse elements * If there is not node for given ID - returns empty list */ - SMESH::long_array* GetNodeInverseElements(CORBA::Long id); + SMESH::smIdType_array* GetNodeInverseElements(SMESH::smIdType id, + SMESH::ElementType elemType); /*! * \brief Return position of a node on shape */ - SMESH::NodePosition* GetNodePosition(CORBA::Long NodeID); + SMESH::NodePosition* GetNodePosition(SMESH::smIdType NodeID); /*! * \brief Return position of an element on shape */ - SMESH::ElementPosition GetElementPosition(CORBA::Long ElemID); + SMESH::ElementPosition GetElementPosition(SMESH::smIdType ElemID); /*! * If given element is node returns IDs of shape from position * If there is not node for given ID - returns -1 */ - CORBA::Long GetShapeID(CORBA::Long id); + CORBA::Long GetShapeID(SMESH::smIdType id); /*! * For given element returns ID of result shape after * ::FindShape() from SMESH_MeshEditor * If there is not element for given ID - returns -1 */ - CORBA::Long GetShapeIDForElem(CORBA::Long id); + CORBA::Long GetShapeIDForElem(SMESH::smIdType id); /*! * Returns number of nodes for given element * If there is not element for given ID - returns -1 */ - CORBA::Long GetElemNbNodes(CORBA::Long id); + CORBA::Short GetElemNbNodes(SMESH::smIdType id); /*! * Returns IDs of nodes of given element */ - SMESH::long_array* GetElemNodes(CORBA::Long id); + SMESH::smIdType_array* GetElemNodes(SMESH::smIdType id); /*! * Returns ID of node by given index for given element * If there is not element for given ID - returns -1 * If there is not node for given index - returns -2 */ - CORBA::Long GetElemNode(CORBA::Long id, CORBA::Long index); + SMESH::smIdType GetElemNode(SMESH::smIdType id, CORBA::Short index); /*! * Returns true if given node is medium node * in given quadratic element */ - CORBA::Boolean IsMediumNode(CORBA::Long ide, CORBA::Long idn); + CORBA::Boolean IsMediumNode(SMESH::smIdType ide, SMESH::smIdType idn); /*! * Returns true if given node is medium node * in one of quadratic elements */ - CORBA::Boolean IsMediumNodeOfAnyElem(CORBA::Long idn, + CORBA::Boolean IsMediumNodeOfAnyElem(SMESH::smIdType idn, SMESH::ElementType elemType); /*! * Returns number of edges for given element */ - CORBA::Long ElemNbEdges(CORBA::Long id); + CORBA::Long ElemNbEdges(SMESH::smIdType id); /*! * Returns number of faces for given element */ - CORBA::Long ElemNbFaces(CORBA::Long id); + CORBA::Long ElemNbFaces(SMESH::smIdType id); /*! * Returns nodes of given face (counted from zero) for given element. */ - SMESH::long_array* GetElemFaceNodes(CORBA::Long elemId, CORBA::Short faceIndex); + SMESH::smIdType_array* GetElemFaceNodes(SMESH::smIdType elemId, CORBA::Short faceIndex); /*! * Returns three components of normal of given mesh face (or an empty array in KO case) @@ -574,33 +504,33 @@ public: /*! * Returns an element based on all given nodes. */ - CORBA::Long FindElementByNodes(const SMESH::long_array& nodes); + SMESH::smIdType FindElementByNodes(const SMESH::smIdType_array& nodes); /*! * Return elements including all given nodes. */ - SMESH::long_array* GetElementsByNodes(const SMESH::long_array& nodes, + SMESH::smIdType_array* GetElementsByNodes(const SMESH::smIdType_array& nodes, SMESH::ElementType elemType); /*! * Returns true if given element is polygon */ - CORBA::Boolean IsPoly(CORBA::Long id); + CORBA::Boolean IsPoly(SMESH::smIdType id); /*! * Returns true if given element is quadratic */ - CORBA::Boolean IsQuadratic(CORBA::Long id); + CORBA::Boolean IsQuadratic(SMESH::smIdType id); /*! * Returns diameter of ball discrete element or zero in case of an invalid \a id */ - CORBA::Double GetBallDiameter(CORBA::Long id); + CORBA::Double GetBallDiameter(SMESH::smIdType id); /*! * Returns bary center for given element */ - SMESH::double_array* BaryCenter(CORBA::Long id); + SMESH::double_array* BaryCenter(SMESH::smIdType id); /*! * Returns information about imported MED file @@ -613,6 +543,12 @@ public: std::string FileInfoToString(); void FileInfoFromString(const std::string& info); + /*! + * Persistence of geometry tick + */ + int& MainShapeTick() { return _mainShapeTick; } + + /*! * Sets list of notebook variables used for Mesh operations separated by ":" symbol */ @@ -646,7 +582,7 @@ public: * Collect statistic of mesh elements given by iterator */ static void CollectMeshInfo(const SMDS_ElemIteratorPtr theItr, - SMESH::long_array& theInfo); + SMESH::smIdType_array& theInfo); /*! * \brief Return iterator on elements of given type in given object */ @@ -657,17 +593,17 @@ public: // SMESH_IDSource interface // ========================= - virtual SMESH::long_array* GetIDs(); + virtual SMESH::smIdType_array* GetIDs(); /*! * Returns number of mesh elements of each \a EntityType * Result array of number of elements per \a EntityType * Inherited from SMESH_IDSource */ - virtual SMESH::long_array* GetMeshInfo(); + virtual SMESH::smIdType_array* GetMeshInfo(); /*! * Returns number of mesh elements of each \a ElementType */ - virtual SMESH::long_array* GetNbElementsByType(); + virtual SMESH::smIdType_array* GetNbElementsByType(); /*! * Returns types of elements it contains */ @@ -717,12 +653,13 @@ private: */ TListOfListOfInt findConcurrentSubMeshes(); -private: + private: static int _idGenerator; ::SMESH_Mesh* _impl; // :: force no namespace here SMESH_Gen_i* _gen_i; int _id; // id given by creator (unique within the creator instance) + int _nbInvalidHypos; std::map _mapSubMeshIor; std::map _mapGroups; std::map _mapHypo; @@ -759,7 +696,7 @@ private: /*! * Return new group contents if it has been changed and update group data */ - TopoDS_Shape newGroupShape( TGeomGroupData & groupData); + TopoDS_Shape newGroupShape( TGeomGroupData & groupData, int how ); };