X-Git-Url: http://git.salome-platform.org/gitweb/?p=modules%2Fsmesh.git;a=blobdiff_plain;f=src%2FSMDS%2FSMDS_VolumeOfFaces.cxx;h=e5aa46096702d8ab9cf73c53489511f38ca3a505;hp=c993dcc66f56132add69211e51d2dbd50c4f3a07;hb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6;hpb=0635c9fc80f67d1e5dc0e94ec85f487286a92070 diff --git a/src/SMDS/SMDS_VolumeOfFaces.cxx b/src/SMDS/SMDS_VolumeOfFaces.cxx index c993dcc66..e5aa46096 100644 --- a/src/SMDS/SMDS_VolumeOfFaces.cxx +++ b/src/SMDS/SMDS_VolumeOfFaces.cxx @@ -1,24 +1,25 @@ -// Copyright (C) 2007-2008 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2007-2012 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 +// Copyright (C) 2003-2007 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN, +// CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS // -// This library is free software; you can redistribute it and/or -// modify it under the terms of the GNU Lesser General Public -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// This library is free software; you can redistribute it and/or +// modify it under the terms of the GNU Lesser General Public +// License as published by the Free Software Foundation; either +// version 2.1 of the License. // -// This library is distributed in the hope that it will be useful, -// but WITHOUT ANY WARRANTY; without even the implied warranty of -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// This library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. // -// You should have received a copy of the GNU Lesser General Public -// License along with this library; if not, write to the Free Software -// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +// You should have received a copy of the GNU Lesser General Public +// License along with this library; if not, write to the Free Software +// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + // SMESH SMDS : implementaion of Salome mesh data structure // File : SMDS_VolumeOfFaces.cxx // Author : Jean-Michel BOULCOURT @@ -30,6 +31,7 @@ #include "SMDS_VolumeOfFaces.hxx" #include "SMDS_IteratorOfElements.hxx" +#include "utilities.h" using namespace std; @@ -40,16 +42,16 @@ using namespace std; void SMDS_VolumeOfFaces::Print(ostream & OS) const { - OS << "volume <" << GetID() << "> : "; - int i; - for (i = 0; i < NbFaces()-1; ++i) OS << myFaces[i] << ","; - OS << myFaces[i]<< ") " << endl; + OS << "volume <" << GetID() << "> : "; + int i; + for (i = 0; i < NbFaces()-1; ++i) OS << myFaces[i] << ","; + OS << myFaces[i]<< ") " << endl; } int SMDS_VolumeOfFaces::NbFaces() const { - return myNbFaces; + return myNbFaces; } class SMDS_VolumeOfFaces_MyIterator:public SMDS_ElemIterator @@ -74,7 +76,7 @@ class SMDS_VolumeOfFaces_MyIterator:public SMDS_ElemIterator }; SMDS_ElemIteratorPtr SMDS_VolumeOfFaces:: - elementsIterator(SMDSAbs_ElementType type) const + elementsIterator(SMDSAbs_ElementType type) const { switch(type) { @@ -95,13 +97,14 @@ SMDS_VolumeOfFaces::SMDS_VolumeOfFaces(const SMDS_MeshFace * face1, const SMDS_MeshFace * face3, const SMDS_MeshFace * face4) { - myNbFaces = 4; - myFaces[0]=face1; - myFaces[1]=face2; - myFaces[2]=face3; - myFaces[3]=face4; - myFaces[4]=0; - myFaces[5]=0; + //MESSAGE("****************************************************** SMDS_VolumeOfFaces"); + myNbFaces = 4; + myFaces[0]=face1; + myFaces[1]=face2; + myFaces[2]=face3; + myFaces[3]=face4; + myFaces[4]=0; + myFaces[5]=0; } SMDS_VolumeOfFaces::SMDS_VolumeOfFaces(const SMDS_MeshFace * face1, @@ -110,13 +113,14 @@ SMDS_VolumeOfFaces::SMDS_VolumeOfFaces(const SMDS_MeshFace * face1, const SMDS_MeshFace * face4, const SMDS_MeshFace * face5) { - myNbFaces = 5; - myFaces[0]=face1; - myFaces[1]=face2; - myFaces[2]=face3; - myFaces[3]=face4; - myFaces[4]=face5; - myFaces[5]=0; + //MESSAGE("****************************************************** SMDS_VolumeOfFaces"); + myNbFaces = 5; + myFaces[0]=face1; + myFaces[1]=face2; + myFaces[2]=face3; + myFaces[3]=face4; + myFaces[4]=face5; + myFaces[5]=0; } SMDS_VolumeOfFaces::SMDS_VolumeOfFaces(const SMDS_MeshFace * face1, @@ -126,12 +130,40 @@ SMDS_VolumeOfFaces::SMDS_VolumeOfFaces(const SMDS_MeshFace * face1, const SMDS_MeshFace * face5, const SMDS_MeshFace * face6) { - myNbFaces = 6; - myFaces[0]=face1; - myFaces[1]=face2; - myFaces[2]=face3; - myFaces[3]=face4; - myFaces[4]=face5; - myFaces[5]=face6; + //MESSAGE("****************************************************** SMDS_VolumeOfFaces"); + myNbFaces = 6; + myFaces[0]=face1; + myFaces[1]=face2; + myFaces[2]=face3; + myFaces[3]=face4; + myFaces[4]=face5; + myFaces[5]=face6; +} + +SMDSAbs_EntityType SMDS_VolumeOfFaces::GetEntityType() const +{ + SMDSAbs_EntityType aType = SMDSEntity_Tetra; + switch(myNbFaces) + { + case 4: aType = SMDSEntity_Tetra; break; + case 5: aType = SMDSEntity_Pyramid; break; + case 6: aType = SMDSEntity_Penta; break; + case 8: + default: aType = SMDSEntity_Hexa; break; + } + return aType; } +SMDSAbs_GeometryType SMDS_VolumeOfFaces::GetGeomType() const +{ + SMDSAbs_GeometryType aType = SMDSGeom_NONE; + switch(myNbFaces) + { + case 4: aType = SMDSGeom_TETRA; break; + case 5: aType = SMDSGeom_PYRAMID; break; + case 6: aType = SMDSGeom_PENTA; break; + case 8: + default: aType = SMDSGeom_HEXA; break; + } + return aType; +}