X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FSMDS%2FSMDS_Downward.cxx;h=b36078f422e81430c47f14cc282de50b9446b7bb;hb=da78b9467b74750ae0f1c17c3fdc814d4abbc43e;hp=67ff05ffc8d5076dfc687d3af2e367d9377a0585;hpb=bd4e115a78b52e3fbc016e5e30bb0e19b2a9e7d6;p=modules%2Fsmesh.git diff --git a/src/SMDS/SMDS_Downward.cxx b/src/SMDS/SMDS_Downward.cxx index 67ff05ffc..b36078f42 100644 --- a/src/SMDS/SMDS_Downward.cxx +++ b/src/SMDS/SMDS_Downward.cxx @@ -1,9 +1,9 @@ -// Copyright (C) 2010-2012 CEA/DEN, EDF R&D, OPEN CASCADE +// Copyright (C) 2010-2014 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. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -50,6 +50,7 @@ int SMDS_Downward::getCellDimension(unsigned char cellType) _cellDimension[VTK_QUADRATIC_EDGE] = 1; _cellDimension[VTK_TRIANGLE] = 2; _cellDimension[VTK_QUADRATIC_TRIANGLE] = 2; + _cellDimension[VTK_BIQUADRATIC_TRIANGLE] = 2; _cellDimension[VTK_QUAD] = 2; _cellDimension[VTK_QUADRATIC_QUAD] = 2; _cellDimension[VTK_BIQUADRATIC_QUAD] = 2; @@ -1362,6 +1363,7 @@ void SMDS_DownPyramid::getOrderedNodesOfFace(int cellId, std::vector& set tofind; int ids[16] = { 0, 1, 2, 3, 0, 3, 4, 3, 2, 4, 2, 1, 4, 1, 0, 4 }; + // Quadrangular face tofind.clear(); for (int i = 0; i < 4; i++) tofind.insert(nodes[ids[i]]); @@ -1371,6 +1373,7 @@ void SMDS_DownPyramid::getOrderedNodesOfFace(int cellId, std::vector& orderedNodes[i] = nodes[ids[i]]; return; } + // Triangular faces for (int k = 0; k < 4; k++) { tofind.clear(); @@ -1489,6 +1492,7 @@ SMDS_DownQuadPyramid::~SMDS_DownQuadPyramid() void SMDS_DownQuadPyramid::getOrderedNodesOfFace(int cellId, std::vector& orderedNodes) { +// MESSAGE("SMDS_DownQuadPyramid::getOrderedNodesOfFace cellId = " << cellId); set setNodes; setNodes.clear(); for (int i = 0; i < orderedNodes.size(); i++) @@ -1503,8 +1507,9 @@ void SMDS_DownQuadPyramid::getOrderedNodesOfFace(int cellId, std::vector_mesh->fromVtkToSmds(_vtkCellIds[cellId])); - MESSAGE(orderedNodes[0] << " " << orderedNodes[1] << " " << orderedNodes[2]); + MESSAGE(orderedNodes[0] << " " << orderedNodes[1] << " " << orderedNodes[2] << " " << orderedNodes[3]); MESSAGE(nodes[0] << " " << nodes[1] << " " << nodes[2] << " " << nodes[3]); } @@ -1661,6 +1667,7 @@ void SMDS_DownPenta::getOrderedNodesOfFace(int cellId, std::vector& o //int ids[18] = { 0, 2, 1, 3, 4, 5, 0, 1, 4, 3, 1, 2, 5, 4, 2, 0, 3, 5 }; int ids[18] = { 0, 1, 2, 3, 5, 4, 0, 3, 4, 1, 1, 4, 5, 2, 2, 5, 3, 0 }; + // Triangular faces for (int k = 0; k < 2; k++) { tofind.clear(); @@ -1673,6 +1680,7 @@ void SMDS_DownPenta::getOrderedNodesOfFace(int cellId, std::vector& o return; } } + // Quadrangular faces for (int k = 0; k < 3; k++) { tofind.clear(); @@ -1810,6 +1818,7 @@ void SMDS_DownQuadPenta::getOrderedNodesOfFace(int cellId, std::vector