Version: 9.16.0
SMDS_MeshFace.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 SMDS : implementation of Salome mesh data structure
24// File : SMDS_MeshFace.hxx
25// Module : SMESH
26//
27#ifndef _SMDS_MeshFace_HeaderFile
28#define _SMDS_MeshFace_HeaderFile
29
30#include "SMESH_SMDS.hxx"
31
32#include "SMDS_MeshCell.hxx"
33
34#include "Utils_SALOME_Exception.hxx"
35
41{
42 void init( const std::vector<vtkIdType>& vtkNodeIds )
43 {
45 switch ( vtkNodeIds.size())
46 {
47 case 3: entity = SMDSEntity_Triangle; break;
48 case 4: entity = SMDSEntity_Quadrangle; break;
49 case 6: entity = SMDSEntity_Quad_Triangle; break;
50 case 8: entity = SMDSEntity_Quad_Quadrangle; break;
51 case 7: entity = SMDSEntity_BiQuad_Triangle; break;
52 case 9: entity = SMDSEntity_BiQuad_Quadrangle; break;
53 default: throw SALOME_Exception("wrong face nodes");
54 }
55 SMDS_MeshCell::init( entity, vtkNodeIds );
56 }
57
58 friend class SMDS_Mesh;
59
60 public:
61
62 virtual SMDSAbs_ElementType GetType() const { return SMDSAbs_Face; }
63
65};
66
67#endif
SMDSAbs_ElementType
Type (node, edge, face or volume) of elements.
Definition: SMDSAbs_ElementType.hxx:34
@ SMDSAbs_Face
Definition: SMDSAbs_ElementType.hxx:38
SMDSAbs_EntityType
Enumeration of entity type used in mesh info array.
Definition: SMDSAbs_ElementType.hxx:79
@ SMDSEntity_Quad_Triangle
Definition: SMDSAbs_ElementType.hxx:85
@ SMDSEntity_Quadrangle
Definition: SMDSAbs_ElementType.hxx:87
@ SMDSEntity_BiQuad_Triangle
Definition: SMDSAbs_ElementType.hxx:86
@ SMDSEntity_Triangle
Definition: SMDSAbs_ElementType.hxx:84
@ SMDSEntity_Quad_Quadrangle
Definition: SMDSAbs_ElementType.hxx:88
@ SMDSEntity_BiQuad_Quadrangle
Definition: SMDSAbs_ElementType.hxx:89
#define SMDS_EXPORT
Definition: SMESH_SMDS.hxx:37
Base class for all cells.
Definition: SMDS_MeshCell.hxx:32
void init(SMDSAbs_EntityType entityType, int nbNodes,...)
Definition: SMDS_MeshCell.cxx:436
Mesh face.
Definition: SMDS_MeshFace.hxx:41
static SMDSAbs_ElementType Type()
Definition: SMDS_MeshFace.hxx:64
void init(const std::vector< vtkIdType > &vtkNodeIds)
Definition: SMDS_MeshFace.hxx:42
virtual SMDSAbs_ElementType GetType() const
Definition: SMDS_MeshFace.hxx:62
Definition: SMDS_Mesh.hxx:53