Version: 9.16.0
SMESHDS_GroupBase.hxx
Go to the documentation of this file.
1// Copyright (C) 2007-2026 CEA, EDF, OPEN CASCADE
2//
3// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
4// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
5//
6// This library is free software; you can redistribute it and/or
7// modify it under the terms of the GNU Lesser General Public
8// License as published by the Free Software Foundation; either
9// version 2.1 of the License, or (at your option) any later version.
10//
11// This library is distributed in the hope that it will be useful,
12// but WITHOUT ANY WARRANTY; without even the implied warranty of
13// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14// Lesser General Public License for more details.
15//
16// You should have received a copy of the GNU Lesser General Public
17// License along with this library; if not, write to the Free Software
18// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
19//
20// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
21//
22
23// SMESH SMESHDS : management of mesh data and SMESH document
24// File : SMESHDS_Group.hxx
25// Module : SMESH
26// $Header$
27//
28#ifndef _SMESHDS_GroupBase_HeaderFile
29#define _SMESHDS_GroupBase_HeaderFile
30
31#include "SMESH_SMESHDS.hxx"
32
33#include <string>
35#include "SMDS_MeshElement.hxx"
36
37#include <Quantity_Color.hxx>
38
39class SMESHDS_Mesh;
40
42{
43 public:
44
45 SMESHDS_GroupBase (const int theID,
46 const SMESHDS_Mesh* theMesh,
47 const SMDSAbs_ElementType theType);
48
49 int GetID() const { return myID; }
50
51 const SMESHDS_Mesh* GetMesh() const { return myMesh; }
52
53 virtual void SetType(SMDSAbs_ElementType theType);
54
55 SMDSAbs_ElementType GetType() const { return myType; }
56
57 void SetStoreName (const char* theName) { myStoreName = theName; }
58
59 const char* GetStoreName () const { return myStoreName.c_str(); }
60
61 virtual smIdType Extent() const;
62
63 virtual bool IsEmpty();
64
65 virtual bool Contains (const smIdType theID);
66
67 virtual bool Contains (const SMDS_MeshElement* elem);
68
69 virtual SMDS_ElemIteratorPtr GetElements() const = 0;
70
71 virtual smIdType GetID (const int theIndex);
72 // DON'T use it for iterations 1..Extent()
73
74 virtual int GetTic() const = 0;
75
76 virtual ~SMESHDS_GroupBase() {}
77
78 void SetColor (const Quantity_Color& theColor)
79 { myColor = theColor;}
80
81 Quantity_Color GetColor() const
82 { return myColor;}
83
84 void SetColorGroup (int theColorGroup);
85
86 int GetColorGroup() const;
87
88 static void SetDefaultColor (const Quantity_Color& theColor)
89 { myDefaultColor = theColor;}
90
91 protected:
92 const SMDS_MeshElement* findInMesh (const smIdType theID) const;
93 void resetIterator();
94
95 private:
97 // prohibited copy constructor
98 SMESHDS_GroupBase& operator = (const SMESHDS_GroupBase& theOther);
99 // prohibited assign operator
100
101 int myID;
104 std::string myStoreName;
105 Quantity_Color myColor;
106
107 // for GetID()
108 smIdType myCurIndex;
109 smIdType myCurID;
111
112 static Quantity_Color myDefaultColor;
113};
114
115#endif
SMDSAbs_ElementType
Type (node, edge, face or volume) of elements.
Definition: SMDSAbs_ElementType.hxx:34
boost::shared_ptr< SMDS_Iterator< const SMDS_MeshElement * > > SMDS_ElemIteratorPtr
Definition: SMDS_ElemIterator.hxx:43
#define SMESHDS_EXPORT
Definition: SMESH_SMESHDS.hxx:37
Base class for elements.
Definition: SMDS_MeshElement.hxx:56
Definition: SMESHDS_GroupBase.hxx:42
SMESHDS_GroupBase(const SMESHDS_GroupBase &theOther)
std::string myStoreName
Definition: SMESHDS_GroupBase.hxx:104
void SetStoreName(const char *theName)
Definition: SMESHDS_GroupBase.hxx:57
const SMESHDS_Mesh * myMesh
Definition: SMESHDS_GroupBase.hxx:102
SMDSAbs_ElementType myType
Definition: SMESHDS_GroupBase.hxx:103
int GetID() const
Definition: SMESHDS_GroupBase.hxx:49
virtual SMDS_ElemIteratorPtr GetElements() const =0
int myID
Definition: SMESHDS_GroupBase.hxx:101
Quantity_Color GetColor() const
Definition: SMESHDS_GroupBase.hxx:81
virtual int GetTic() const =0
SMDSAbs_ElementType GetType() const
Definition: SMESHDS_GroupBase.hxx:55
const char * GetStoreName() const
Definition: SMESHDS_GroupBase.hxx:59
void SetColor(const Quantity_Color &theColor)
Definition: SMESHDS_GroupBase.hxx:78
SMDS_ElemIteratorPtr myIterator
Definition: SMESHDS_GroupBase.hxx:110
smIdType myCurID
Definition: SMESHDS_GroupBase.hxx:109
static Quantity_Color myDefaultColor
Definition: SMESHDS_GroupBase.hxx:112
virtual ~SMESHDS_GroupBase()
Definition: SMESHDS_GroupBase.hxx:76
smIdType myCurIndex
Definition: SMESHDS_GroupBase.hxx:108
Quantity_Color myColor
Definition: SMESHDS_GroupBase.hxx:105
const SMESHDS_Mesh * GetMesh() const
Definition: SMESHDS_GroupBase.hxx:51
static void SetDefaultColor(const Quantity_Color &theColor)
Definition: SMESHDS_GroupBase.hxx:88
Definition: SMESHDS_Mesh.hxx:98