-/*
- * SMDS_Downward.cxx
- *
- * Created on: Jun 3, 2010
- * Author: prascle
- */
+// Copyright (C) 2010-2012 CEA/DEN, EDF R&D, OPEN CASCADE
+//
+// 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.
+//
+// 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
+//
+
+// File: SMDS_Downward.cxx
+// Created: Jun 3, 2010
+// Author: prascle
#include "SMDS_Downward.hxx"
#include "SMDS_Mesh.hxx"
_cellDimension[VTK_QUADRATIC_TRIANGLE] = 2;
_cellDimension[VTK_QUAD] = 2;
_cellDimension[VTK_QUADRATIC_QUAD] = 2;
+ _cellDimension[VTK_BIQUADRATIC_QUAD] = 2;
_cellDimension[VTK_TETRA] = 3;
_cellDimension[VTK_QUADRATIC_TETRA] = 3;
_cellDimension[VTK_HEXAHEDRON] = 3;
_cellDimension[VTK_QUADRATIC_HEXAHEDRON] = 3;
+ _cellDimension[VTK_TRIQUADRATIC_HEXAHEDRON] = 3;
_cellDimension[VTK_WEDGE] = 3;
_cellDimension[VTK_QUADRATIC_WEDGE] = 3;
_cellDimension[VTK_PYRAMID] = 3;
_cellDimension[VTK_QUADRATIC_PYRAMID] = 3;
+ _cellDimension[VTK_HEXAGONAL_PRISM] = 3;
}
return _cellDimension[cellType];
}
this->_cellIds.clear();
this->_cellTypes.clear();
if (_cellDimension.empty())
- {
- _cellDimension.resize(VTK_MAXTYPE + 1, 0);
- _cellDimension[VTK_LINE] = 1;
- _cellDimension[VTK_QUADRATIC_EDGE] = 1;
- _cellDimension[VTK_TRIANGLE] = 2;
- _cellDimension[VTK_QUADRATIC_TRIANGLE] = 2;
- _cellDimension[VTK_QUAD] = 2;
- _cellDimension[VTK_QUADRATIC_QUAD] = 2;
- _cellDimension[VTK_TETRA] = 3;
- _cellDimension[VTK_QUADRATIC_TETRA] = 3;
- _cellDimension[VTK_HEXAHEDRON] = 3;
- _cellDimension[VTK_QUADRATIC_HEXAHEDRON] = 3;
- _cellDimension[VTK_WEDGE] = 3;
- _cellDimension[VTK_QUADRATIC_WEDGE] = 3;
- _cellDimension[VTK_PYRAMID] = 3;
- _cellDimension[VTK_QUADRATIC_PYRAMID] = 3;
- }
+ getCellDimension( VTK_LINE );
}
SMDS_Downward::~SMDS_Downward()
int SMDS_Down3D::FindFaceByNodes(int cellId, ElemByNodesType& faceByNodes)
{
int *faces = &_cellIds[_nbDownCells * cellId];
- int faceNodeSet[10];
int npoints = 0;
for (int i = 0; i < _nbDownCells; i++)
if ((faces[i] >= 0) && (faceByNodes.vtkType == _cellTypes[i]))
{
if (npoints == 0)
- {
- for (int j = 0; j < faceByNodes.nbNodes; j++)
- faceNodeSet[j] = faceByNodes.nodeIds[j];
- npoints = faceByNodes.nbNodes;
- }
+ npoints = faceByNodes.nbNodes;
int nodeSet[10];
int npts = this->_grid->getDownArray(faceByNodes.vtkType)->getNodeSet(faces[i], nodeSet);