Version: 6.3.1
Public Member Functions | Protected Member Functions | Private Attributes

SMESHDS_Group Class Reference

#include <SMESHDS_Group.hxx>

Inheritance diagram for SMESHDS_Group:
Inheritance graph
[legend]

Public Member Functions

 SMESHDS_Group (const int theID, const SMESHDS_Mesh *theMesh, const SMDSAbs_ElementType theType)
virtual void SetType (SMDSAbs_ElementType theType)
virtual int Extent ()
virtual bool IsEmpty ()
virtual bool Contains (const int theID)
virtual bool Contains (const SMDS_MeshElement *elem)
virtual SMDS_ElemIteratorPtr GetElements () const
bool Add (const int theID)
bool Remove (const int theID)
void Clear ()
SMDS_MeshGroupSMDSGroup ()
int GetID () const
int GetID (const int theIndex)
const SMESHDS_MeshGetMesh () const
SMDSAbs_ElementType GetType () const
void SetStoreName (const char *theName)
const char * GetStoreName () const
void SetColor (const Quantity_Color &theColor)
Quantity_Color GetColor () const
void SetColorGroup (int theColorGroup)
int GetColorGroup () const

Protected Member Functions

const SMDS_MeshElementfindInMesh (const int theID) const
void resetIterator ()
 Internal method: resets cached iterator, should be called by ancestors when they are modified (ex: Add() or Remove() )

Private Attributes

SMDS_MeshGroup myGroup

Detailed Description

Definition at line 39 of file SMESHDS_Group.hxx.


Constructor & Destructor Documentation

SMESHDS_Group::SMESHDS_Group ( const int  theID,
const SMESHDS_Mesh theMesh,
const SMDSAbs_ElementType  theType 
)

Definition at line 39 of file SMESHDS_Group.cxx.

     : SMESHDS_GroupBase(theID,theMesh,theType),
       myGroup(theMesh,theType)
{
}

Member Function Documentation

bool SMESHDS_Group::Add ( const int  theID)
void SMESHDS_Group::Clear ( )
bool SMESHDS_Group::Contains ( const SMDS_MeshElement elem) [virtual]

Reimplemented from SMESHDS_GroupBase.

Definition at line 86 of file SMESHDS_Group.cxx.

References SMDS_MeshGroup.Contains(), and myGroup.

{
  if (elem)
    return myGroup.Contains(elem);
  return false;
}
bool SMESHDS_Group::Contains ( const int  theID) [virtual]

Reimplemented from SMESHDS_GroupBase.

Definition at line 73 of file SMESHDS_Group.cxx.

References SMDS_MeshGroup.Contains(), SMESHDS_GroupBase.findInMesh(), and myGroup.

Referenced by SMESH_MeshEditor.AddToSameGroups().

{
  const SMDS_MeshElement* aElem = findInMesh (theID);
  if (aElem)
    return myGroup.Contains(aElem);
  return false;
}
int SMESHDS_Group::Extent ( ) [virtual]

Reimplemented from SMESHDS_GroupBase.

Definition at line 52 of file SMESHDS_Group.cxx.

References SMDS_MeshGroup.Extent(), and myGroup.

{
  return myGroup.Extent();
}
const SMDS_MeshElement * SMESHDS_GroupBase::findInMesh ( const int  theID) const [protected, inherited]

Definition at line 76 of file SMESHDS_GroupBase.cxx.

References SMDS_Mesh.FindElement(), SMDS_Mesh.FindNode(), SMESHDS_GroupBase.GetMesh(), SMDS_MeshElement.GetType(), SMESHDS_GroupBase.GetType(), SMDSAbs_All, and SMDSAbs_Node.

Referenced by Add(), SMESHDS_GroupOnGeom.Contains(), Contains(), and Remove().

{
  SMDSAbs_ElementType aType = GetType();
  const SMDS_MeshElement* aElem = NULL;
  if (aType == SMDSAbs_Node) {
    aElem = GetMesh()->FindNode(theID);
  }
  else if (aType != SMDSAbs_All) {
    aElem = GetMesh()->FindElement(theID);
    if (aElem && aType != aElem->GetType())
      aElem = NULL;
  }
  return aElem;
}
Quantity_Color SMESHDS_GroupBase.GetColor ( ) const [inherited]
int SMESHDS_GroupBase::GetColorGroup ( ) const [inherited]

Definition at line 195 of file SMESHDS_GroupBase.cxx.

References SMESHDS_GroupBase.GetColor().

Referenced by SMESH_GroupBase_i.GetColorNumber().

{
  Quantity_Color aColor = GetColor();
  double aRed = aColor.Red();
  double aGreen = aColor.Green();
  double aBlue = aColor.Blue();
  int aR = int( aRed  *255 );
  int aG = int( aGreen*255 );
  int aB = int( aBlue *255 );
  int aRet = (int)(aR*1000000 + aG*1000 + aB);

  return aRet;
}
SMDS_ElemIteratorPtr SMESHDS_Group::GetElements ( ) const [virtual]

Implements SMESHDS_GroupBase.

Definition at line 159 of file SMESHDS_Group.cxx.

References myGroup.

int SMESHDS_GroupBase.GetID ( ) const [inherited]
int SMESHDS_GroupBase::GetID ( const int  theIndex) [inherited]

Definition at line 56 of file SMESHDS_GroupBase.cxx.

References SMESHDS_GroupBase.GetElements(), SMESHDS_GroupBase.myCurID, SMESHDS_GroupBase.myCurIndex, and SMESHDS_GroupBase.myIterator.

{
  if (myCurIndex < 1 || myCurIndex > theIndex) {
    myIterator = GetElements();
    myCurIndex = 0;
    myCurID = -1;
  }
  while (myCurIndex < theIndex && myIterator->more()) {
    myCurIndex++;
    myCurID = myIterator->next()->GetID();
  }
  return myCurIndex == theIndex ? myCurID : -1;
}
const SMESHDS_Mesh* SMESHDS_GroupBase.GetMesh ( ) const [inherited]
const char* SMESHDS_GroupBase.GetStoreName ( ) const [inherited]
SMDSAbs_ElementType SMESHDS_GroupBase.GetType ( ) const [inherited]
bool SMESHDS_Group::IsEmpty ( ) [virtual]
bool SMESHDS_Group::Remove ( const int  theID)

Definition at line 119 of file SMESHDS_Group.cxx.

References SMDS_MeshGroup.Contains(), SMESHDS_GroupBase.findInMesh(), myGroup, SMDS_MeshGroup.Remove(), and SMESHDS_GroupBase.resetIterator().

Referenced by SMESH_Group_i.Remove(), and SMESH_Group_i.RemoveByPredicate().

{
  const SMDS_MeshElement* aElem = findInMesh (theID);
  if (!aElem || !myGroup.Contains(aElem))
    return false;
  myGroup.Remove (aElem);
  resetIterator();
  return true;
}
void SMESHDS_GroupBase::resetIterator ( ) [protected, inherited]

Internal method: resets cached iterator, should be called by ancestors when they are modified (ex: Add() or Remove() )

Definition at line 97 of file SMESHDS_GroupBase.cxx.

References SMESHDS_GroupBase.myCurID, and SMESHDS_GroupBase.myCurIndex.

Referenced by Add(), Clear(), and Remove().

{
  myCurIndex = 0;
  myCurID = -1;
}
void SMESHDS_GroupBase.SetColor ( const Quantity_Color &  theColor) [inherited]
void SMESHDS_GroupBase::SetColorGroup ( int  theColorGroup) [inherited]

Definition at line 171 of file SMESHDS_GroupBase.cxx.

References SMESHDS_GroupBase.SetColor().

Referenced by DriverMED_R_SMESHDS_Mesh.GetGroup(), and SMESH_GroupBase_i.SetColorNumber().

{
  int aRed = ( theColorGroup/1000000 );
  int aGreen = ( theColorGroup -aRed*1000000)/1000;
  int aBlue = ( theColorGroup - aRed*1000000 - aGreen*1000 );
  double aR = aRed/255.0;
  double aG = aGreen/255.0;
  double aB = aBlue/255.0;
  if ( aR < 0. || aR > 1. || // PAL19395
       aG < 0. || aG > 1. ||
       aB < 0. || aB > 1. )
// #ifdef _DEBUG_
//     cout << "SMESHDS_GroupBase::SetColorGroup("<<theColorGroup<<"), invalid color ignored"<<endl;
// #endif
    return;
  Quantity_Color aColor( aR, aG, aB, Quantity_TOC_RGB );
  SetColor( aColor );
}
void SMESHDS_GroupBase.SetStoreName ( const char *  theName) [inherited]
void SMESHDS_Group::SetType ( SMDSAbs_ElementType  theType) [virtual]
SMDS_MeshGroup& SMESHDS_Group.SMDSGroup ( )

Field Documentation

Definition at line 69 of file SMESHDS_Group.hxx.

Referenced by Add(), Clear(), Contains(), Extent(), GetElements(), IsEmpty(), Remove(), and SetType().

Copyright © 2007-2011 CEA/DEN, EDF R&D, OPEN CASCADE
Copyright © 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS