From c75e1317545b2098a70202498ecdd8d90797d21e Mon Sep 17 00:00:00 2001 From: admin Date: Mon, 3 May 2004 12:09:03 +0000 Subject: [PATCH] This commit was generated by cvs2git to create tag 'Ecole_Ete_a5'. Sprout from V1_4_1a 2004-05-03 12:09:00 UTC nri 'NRI : Merge from Event_Server. Add missing include QPushButton.' Delete: src/SMESH/SMESH_Hexa_3D.cxx src/SMESH/SMESH_Hexa_3D.hxx src/SMESH/SMESH_HypothesisCreator.hxx src/SMESH/SMESH_HypothesisFactory.cxx src/SMESH/SMESH_HypothesisFactory.hxx src/SMESH/SMESH_LengthFromEdges.cxx src/SMESH/SMESH_LengthFromEdges.hxx src/SMESH/SMESH_LocalLength.cxx src/SMESH/SMESH_LocalLength.hxx src/SMESH/SMESH_MEFISTO_2D.cxx src/SMESH/SMESH_MEFISTO_2D.hxx src/SMESH/SMESH_MaxElementArea.cxx src/SMESH/SMESH_MaxElementArea.hxx src/SMESH/SMESH_MaxElementVolume.cxx src/SMESH/SMESH_MaxElementVolume.hxx src/SMESH/SMESH_NETGEN_3D.cxx src/SMESH/SMESH_NETGEN_3D.hxx src/SMESH/SMESH_NumberOfSegments.cxx src/SMESH/SMESH_NumberOfSegments.hxx src/SMESH/SMESH_Quadrangle_2D.cxx src/SMESH/SMESH_Quadrangle_2D.hxx src/SMESH/SMESH_Regular_1D.cxx src/SMESH/SMESH_Regular_1D.hxx src/SMESH_I/SMESH_Hexa_3D_i.cxx src/SMESH_I/SMESH_Hexa_3D_i.hxx src/SMESH_I/SMESH_HypothesisFactory_i.cxx src/SMESH_I/SMESH_HypothesisFactory_i.hxx src/SMESH_I/SMESH_LengthFromEdges_i.cxx src/SMESH_I/SMESH_LengthFromEdges_i.hxx src/SMESH_I/SMESH_LocalLength_i.cxx src/SMESH_I/SMESH_LocalLength_i.hxx src/SMESH_I/SMESH_MEFISTO_2D_i.cxx src/SMESH_I/SMESH_MEFISTO_2D_i.hxx src/SMESH_I/SMESH_MaxElementArea_i.cxx src/SMESH_I/SMESH_MaxElementArea_i.hxx src/SMESH_I/SMESH_MaxElementVolume_i.cxx src/SMESH_I/SMESH_MaxElementVolume_i.hxx src/SMESH_I/SMESH_NETGEN_3D_i.cxx src/SMESH_I/SMESH_NETGEN_3D_i.hxx src/SMESH_I/SMESH_NumberOfSegments_i.cxx src/SMESH_I/SMESH_NumberOfSegments_i.hxx src/SMESH_I/SMESH_Quadrangle_2D_i.cxx src/SMESH_I/SMESH_Quadrangle_2D_i.hxx src/SMESH_I/SMESH_Regular_1D_i.cxx src/SMESH_I/SMESH_Regular_1D_i.hxx --- src/SMESH/SMESH_Hexa_3D.cxx | 1006 ------------------- src/SMESH/SMESH_Hexa_3D.hxx | 138 --- src/SMESH/SMESH_HypothesisCreator.hxx | 68 -- src/SMESH/SMESH_HypothesisFactory.cxx | 179 ---- src/SMESH/SMESH_HypothesisFactory.hxx | 69 -- src/SMESH/SMESH_LengthFromEdges.cxx | 136 --- src/SMESH/SMESH_LengthFromEdges.hxx | 56 -- src/SMESH/SMESH_LocalLength.cxx | 136 --- src/SMESH/SMESH_LocalLength.hxx | 54 -- src/SMESH/SMESH_MEFISTO_2D.cxx | 634 ------------ src/SMESH/SMESH_MEFISTO_2D.hxx | 86 -- src/SMESH/SMESH_MaxElementArea.cxx | 136 --- src/SMESH/SMESH_MaxElementArea.hxx | 54 -- src/SMESH/SMESH_MaxElementVolume.cxx | 137 --- src/SMESH/SMESH_MaxElementVolume.hxx | 56 -- src/SMESH/SMESH_NETGEN_3D.cxx | 1068 --------------------- src/SMESH/SMESH_NETGEN_3D.hxx | 42 - src/SMESH/SMESH_NumberOfSegments.cxx | 163 ---- src/SMESH/SMESH_NumberOfSegments.hxx | 62 -- src/SMESH/SMESH_Quadrangle_2D.cxx | 640 ------------ src/SMESH/SMESH_Quadrangle_2D.hxx | 100 -- src/SMESH/SMESH_Regular_1D.cxx | 322 ------- src/SMESH/SMESH_Regular_1D.hxx | 63 -- src/SMESH_I/SMESH_Hexa_3D_i.cxx | 80 -- src/SMESH_I/SMESH_Hexa_3D_i.hxx | 56 -- src/SMESH_I/SMESH_HypothesisFactory_i.cxx | 142 --- src/SMESH_I/SMESH_HypothesisFactory_i.hxx | 59 -- src/SMESH_I/SMESH_LengthFromEdges_i.cxx | 98 -- src/SMESH_I/SMESH_LengthFromEdges_i.hxx | 59 -- src/SMESH_I/SMESH_LocalLength_i.cxx | 98 -- src/SMESH_I/SMESH_LocalLength_i.hxx | 59 -- src/SMESH_I/SMESH_MEFISTO_2D_i.cxx | 80 -- src/SMESH_I/SMESH_MEFISTO_2D_i.hxx | 56 -- src/SMESH_I/SMESH_MaxElementArea_i.cxx | 98 -- src/SMESH_I/SMESH_MaxElementArea_i.hxx | 58 -- src/SMESH_I/SMESH_MaxElementVolume_i.cxx | 99 -- src/SMESH_I/SMESH_MaxElementVolume_i.hxx | 58 -- src/SMESH_I/SMESH_NETGEN_3D_i.cxx | 60 -- src/SMESH_I/SMESH_NETGEN_3D_i.hxx | 36 - src/SMESH_I/SMESH_NumberOfSegments_i.cxx | 133 --- src/SMESH_I/SMESH_NumberOfSegments_i.hxx | 63 -- src/SMESH_I/SMESH_Quadrangle_2D_i.cxx | 80 -- src/SMESH_I/SMESH_Quadrangle_2D_i.hxx | 56 -- src/SMESH_I/SMESH_Regular_1D_i.cxx | 80 -- src/SMESH_I/SMESH_Regular_1D_i.hxx | 56 -- 45 files changed, 7069 deletions(-) delete mode 100644 src/SMESH/SMESH_Hexa_3D.cxx delete mode 100644 src/SMESH/SMESH_Hexa_3D.hxx delete mode 100644 src/SMESH/SMESH_HypothesisCreator.hxx delete mode 100644 src/SMESH/SMESH_HypothesisFactory.cxx delete mode 100644 src/SMESH/SMESH_HypothesisFactory.hxx delete mode 100644 src/SMESH/SMESH_LengthFromEdges.cxx delete mode 100644 src/SMESH/SMESH_LengthFromEdges.hxx delete mode 100644 src/SMESH/SMESH_LocalLength.cxx delete mode 100644 src/SMESH/SMESH_LocalLength.hxx delete mode 100644 src/SMESH/SMESH_MEFISTO_2D.cxx delete mode 100644 src/SMESH/SMESH_MEFISTO_2D.hxx delete mode 100644 src/SMESH/SMESH_MaxElementArea.cxx delete mode 100644 src/SMESH/SMESH_MaxElementArea.hxx delete mode 100644 src/SMESH/SMESH_MaxElementVolume.cxx delete mode 100644 src/SMESH/SMESH_MaxElementVolume.hxx delete mode 100644 src/SMESH/SMESH_NETGEN_3D.cxx delete mode 100644 src/SMESH/SMESH_NETGEN_3D.hxx delete mode 100644 src/SMESH/SMESH_NumberOfSegments.cxx delete mode 100644 src/SMESH/SMESH_NumberOfSegments.hxx delete mode 100644 src/SMESH/SMESH_Quadrangle_2D.cxx delete mode 100644 src/SMESH/SMESH_Quadrangle_2D.hxx delete mode 100644 src/SMESH/SMESH_Regular_1D.cxx delete mode 100644 src/SMESH/SMESH_Regular_1D.hxx delete mode 100644 src/SMESH_I/SMESH_Hexa_3D_i.cxx delete mode 100644 src/SMESH_I/SMESH_Hexa_3D_i.hxx delete mode 100644 src/SMESH_I/SMESH_HypothesisFactory_i.cxx delete mode 100644 src/SMESH_I/SMESH_HypothesisFactory_i.hxx delete mode 100644 src/SMESH_I/SMESH_LengthFromEdges_i.cxx delete mode 100644 src/SMESH_I/SMESH_LengthFromEdges_i.hxx delete mode 100644 src/SMESH_I/SMESH_LocalLength_i.cxx delete mode 100644 src/SMESH_I/SMESH_LocalLength_i.hxx delete mode 100644 src/SMESH_I/SMESH_MEFISTO_2D_i.cxx delete mode 100644 src/SMESH_I/SMESH_MEFISTO_2D_i.hxx delete mode 100644 src/SMESH_I/SMESH_MaxElementArea_i.cxx delete mode 100644 src/SMESH_I/SMESH_MaxElementArea_i.hxx delete mode 100644 src/SMESH_I/SMESH_MaxElementVolume_i.cxx delete mode 100644 src/SMESH_I/SMESH_MaxElementVolume_i.hxx delete mode 100644 src/SMESH_I/SMESH_NETGEN_3D_i.cxx delete mode 100644 src/SMESH_I/SMESH_NETGEN_3D_i.hxx delete mode 100644 src/SMESH_I/SMESH_NumberOfSegments_i.cxx delete mode 100644 src/SMESH_I/SMESH_NumberOfSegments_i.hxx delete mode 100644 src/SMESH_I/SMESH_Quadrangle_2D_i.cxx delete mode 100644 src/SMESH_I/SMESH_Quadrangle_2D_i.hxx delete mode 100644 src/SMESH_I/SMESH_Regular_1D_i.cxx delete mode 100644 src/SMESH_I/SMESH_Regular_1D_i.hxx diff --git a/src/SMESH/SMESH_Hexa_3D.cxx b/src/SMESH/SMESH_Hexa_3D.cxx deleted file mode 100644 index ef661bc83..000000000 --- a/src/SMESH/SMESH_Hexa_3D.cxx +++ /dev/null @@ -1,1006 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Hexa_3D.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -#include "SMESH_Hexa_3D.hxx" -#include "SMESH_Quadrangle_2D.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_Mesh.hxx" - -#include "SMDS_MeshElement.hxx" -#include "SMDS_MeshNode.hxx" -#include "SMDS_FacePosition.hxx" - -#include -#include -#include -#include -#include - -#include -#include -#include -#include -#include -#include - -#include "utilities.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Hexa_3D::SMESH_Hexa_3D(int hypId, int studyId, - SMESH_Gen * gen):SMESH_3D_Algo(hypId, studyId, gen) -{ - MESSAGE("SMESH_Hexa_3D::SMESH_Hexa_3D"); - _name = "Hexa_3D"; -// _shapeType = TopAbs_SOLID; - _shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID); // 1 bit /shape type -// MESSAGE("_shapeType octal " << oct << _shapeType); - for (int i = 0; i < 6; i++) - _quads[i] = 0; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Hexa_3D::~SMESH_Hexa_3D() -{ - MESSAGE("SMESH_Hexa_3D::~SMESH_Hexa_3D"); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -bool SMESH_Hexa_3D::CheckHypothesis(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape) -{ - MESSAGE("SMESH_Hexa_3D::CheckHypothesis"); - - bool isOk = true; - - // nothing to check - - return isOk; -} - -//============================================================================= -/*! - * Hexahedron mesh on hexaedron like form - * -0. - shape and face mesh verification - * -1. - identify faces and vertices of the "cube" - * -2. - Algorithm from: - * "Application de l'interpolation transfinie à la création de maillages - * C0 ou G1 continus sur des triangles, quadrangles, tetraedres, pentaedres - * et hexaedres déformés." - * Alain PERONNET - 8 janvier 1999 - */ -//============================================================================= - -bool SMESH_Hexa_3D::Compute(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape)throw(SALOME_Exception) -{ - MESSAGE("SMESH_Hexa_3D::Compute"); - - bool isOk = false; - SMESHDS_Mesh * meshDS = aMesh.GetMeshDS(); - SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape); - //const SMESHDS_SubMesh *& subMeshDS = theSubMesh->GetSubMeshDS(); - - // 0. - shape and face mesh verification - // 0.1 - shape must be a solid (or a shell) with 6 faces - MESSAGE("---"); - - vector < SMESH_subMesh * >meshFaces; - for (TopExp_Explorer exp(aShape, TopAbs_FACE); exp.More(); exp.Next()) - { - SMESH_subMesh *aSubMesh = aMesh.GetSubMeshContaining(exp.Current()); - ASSERT(aSubMesh); - meshFaces.push_back(aSubMesh); - } - if (meshFaces.size() != 6) - { - SCRUTE(meshFaces.size()); - ASSERT(0); - return false; - } - - // 0.2 - is each face meshed with Quadrangle_2D? (so, with a wire of 4 edges) - MESSAGE("---"); - - for (int i = 0; i < 6; i++) - { - TopoDS_Shape aShape = meshFaces[i]->GetSubShape(); - SMESH_Algo *algo = _gen->GetAlgo(aMesh, aShape); - string algoName = algo->GetName(); - if (algoName != "Quadrangle_2D") - { - // *** delete _quads - SCRUTE(algoName); - ASSERT(0); - return false; - } - SMESH_Quadrangle_2D *quadAlgo = - dynamic_cast < SMESH_Quadrangle_2D * >(algo); - ASSERT(quadAlgo); - try - { - _quads[i] = quadAlgo->CheckAnd2Dcompute(aMesh, aShape); - // *** to delete after usage - } - catch(SALOME_Exception & S_ex) - { - // *** delete _quads - // *** throw exception - ASSERT(0); - } - } - - // 1. - identify faces and vertices of the "cube" - // 1.1 - ancestor maps vertex->edges in the cube - MESSAGE("---"); - - TopTools_IndexedDataMapOfShapeListOfShape MS; - TopExp::MapShapesAndAncestors(aShape, TopAbs_VERTEX, TopAbs_EDGE, MS); - - // 1.2 - first face is choosen as face Y=0 of the unit cube - MESSAGE("---"); - - const TopoDS_Shape & aFace = meshFaces[0]->GetSubShape(); - const TopoDS_Face & F = TopoDS::Face(aFace); - - // 1.3 - identify the 4 vertices of the face Y=0: V000, V100, V101, V001 - MESSAGE("---"); - - int i = 0; - TopoDS_Edge E = _quads[0]->edge[i]; //edge will be Y=0,Z=0 on unit cube - double f, l; - Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l); - TopoDS_Vertex VFirst, VLast; - TopExp::Vertices(E, VFirst, VLast); // corresponds to f and l - bool isForward = - (((l - f) * (_quads[0]->last[i] - _quads[0]->first[i])) > 0); - - if (isForward) - { - _cube.V000 = VFirst; // will be (0,0,0) on the unit cube - _cube.V100 = VLast; // will be (1,0,0) on the unit cube - } - else - { - _cube.V000 = VLast; - _cube.V100 = VFirst; - } - - i = 1; - E = _quads[0]->edge[i]; - C2d = BRep_Tool::CurveOnSurface(E, F, f, l); - TopExp::Vertices(E, VFirst, VLast); - isForward = (((l - f) * (_quads[0]->last[i] - _quads[0]->first[i])) > 0); - if (isForward) - _cube.V101 = VLast; // will be (1,0,1) on the unit cube - else - _cube.V101 = VFirst; - - i = 2; - E = _quads[0]->edge[i]; - C2d = BRep_Tool::CurveOnSurface(E, F, f, l); - TopExp::Vertices(E, VFirst, VLast); - isForward = (((l - f) * (_quads[0]->last[i] - _quads[0]->first[i])) > 0); - if (isForward) - _cube.V001 = VLast; // will be (0,0,1) on the unit cube - else - _cube.V001 = VFirst; - - // 1.4 - find edge X=0, Z=0 (ancestor of V000 not in face Y=0) - // - find edge X=1, Z=0 (ancestor of V100 not in face Y=0) - // - find edge X=1, Z=1 (ancestor of V101 not in face Y=0) - // - find edge X=0, Z=1 (ancestor of V001 not in face Y=0) - MESSAGE("---"); - - TopoDS_Edge E_0Y0 = EdgeNotInFace(aMesh, aShape, F, _cube.V000, MS); - ASSERT(!E_0Y0.IsNull()); - - TopoDS_Edge E_1Y0 = EdgeNotInFace(aMesh, aShape, F, _cube.V100, MS); - ASSERT(!E_1Y0.IsNull()); - - TopoDS_Edge E_1Y1 = EdgeNotInFace(aMesh, aShape, F, _cube.V101, MS); - ASSERT(!E_1Y1.IsNull()); - - TopoDS_Edge E_0Y1 = EdgeNotInFace(aMesh, aShape, F, _cube.V001, MS); - ASSERT(!E_0Y1.IsNull()); - - // 1.5 - identify the 4 vertices in face Y=1: V010, V110, V111, V011 - MESSAGE("---"); - - TopExp::Vertices(E_0Y0, VFirst, VLast); - if (VFirst.IsSame(_cube.V000)) - _cube.V010 = VLast; - else - _cube.V010 = VFirst; - - TopExp::Vertices(E_1Y0, VFirst, VLast); - if (VFirst.IsSame(_cube.V100)) - _cube.V110 = VLast; - else - _cube.V110 = VFirst; - - TopExp::Vertices(E_1Y1, VFirst, VLast); - if (VFirst.IsSame(_cube.V101)) - _cube.V111 = VLast; - else - _cube.V111 = VFirst; - - TopExp::Vertices(E_0Y1, VFirst, VLast); - if (VFirst.IsSame(_cube.V001)) - _cube.V011 = VLast; - else - _cube.V011 = VFirst; - - // 1.6 - find remaining faces given 4 vertices - MESSAGE("---"); - - _indY0 = 0; - _cube.quad_Y0 = _quads[_indY0]; - - _indY1 = GetFaceIndex(aMesh, aShape, meshFaces, - _cube.V010, _cube.V011, _cube.V110, _cube.V111); - _cube.quad_Y1 = _quads[_indY1]; - - _indZ0 = GetFaceIndex(aMesh, aShape, meshFaces, - _cube.V000, _cube.V010, _cube.V100, _cube.V110); - _cube.quad_Z0 = _quads[_indZ0]; - - _indZ1 = GetFaceIndex(aMesh, aShape, meshFaces, - _cube.V001, _cube.V011, _cube.V101, _cube.V111); - _cube.quad_Z1 = _quads[_indZ1]; - - _indX0 = GetFaceIndex(aMesh, aShape, meshFaces, - _cube.V000, _cube.V001, _cube.V010, _cube.V011); - _cube.quad_X0 = _quads[_indX0]; - - _indX1 = GetFaceIndex(aMesh, aShape, meshFaces, - _cube.V100, _cube.V101, _cube.V110, _cube.V111); - _cube.quad_X1 = _quads[_indX1]; - - MESSAGE("---"); - - // 1.7 - get convertion coefs from face 2D normalized to 3D normalized - - Conv2DStruct cx0; // for face X=0 - Conv2DStruct cx1; // for face X=1 - Conv2DStruct cy0; - Conv2DStruct cy1; - Conv2DStruct cz0; - Conv2DStruct cz1; - - GetConv2DCoefs(*_cube.quad_X0, meshFaces[_indX0]->GetSubShape(), - _cube.V000, _cube.V010, _cube.V011, _cube.V001, cx0); - GetConv2DCoefs(*_cube.quad_X1, meshFaces[_indX1]->GetSubShape(), - _cube.V100, _cube.V110, _cube.V111, _cube.V101, cx1); - GetConv2DCoefs(*_cube.quad_Y0, meshFaces[_indY0]->GetSubShape(), - _cube.V000, _cube.V100, _cube.V101, _cube.V001, cy0); - GetConv2DCoefs(*_cube.quad_Y1, meshFaces[_indY1]->GetSubShape(), - _cube.V010, _cube.V110, _cube.V111, _cube.V011, cy1); - GetConv2DCoefs(*_cube.quad_Z0, meshFaces[_indZ0]->GetSubShape(), - _cube.V000, _cube.V100, _cube.V110, _cube.V010, cz0); - GetConv2DCoefs(*_cube.quad_Z1, meshFaces[_indZ1]->GetSubShape(), - _cube.V001, _cube.V101, _cube.V111, _cube.V011, cz1); - - // 1.8 - create a 3D structure for normalized values - - MESSAGE("---"); - int nbx = _cube.quad_Y0->nbPts[0]; - int nby = _cube.quad_Y0->nbPts[1]; - int nbz; - if (cx0.a1 != 0) - nbz = _cube.quad_X0->nbPts[1]; - else - nbz = _cube.quad_X0->nbPts[0]; - //SCRUTE(nbx); - //SCRUTE(nby); - //SCRUTE(nbz); - int nbxyz = nbx * nby * nbz; - Point3DStruct *np = new Point3DStruct[nbxyz]; - - // 1.9 - store node indexes of faces - - { - const TopoDS_Face & F = TopoDS::Face(meshFaces[_indX0]->GetSubShape()); - - faceQuadStruct *quad = _cube.quad_X0; - int i = 0; // j = x/face , k = y/face - int nbdown = quad->nbPts[0]; - int nbright = quad->nbPts[1]; - - - SMDS_Iterator * itf= - aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes(); - - while(itf->more()) - { - const SMDS_MeshNode * node = itf->next(); - const SMDS_FacePosition* fpos - = static_cast(node->GetPosition()); - double ri = fpos->GetUParameter(); - double rj = fpos->GetVParameter(); - int i1 = int (ri); - int j1 = int (rj); - int ij1 = j1 * nbdown + i1; - quad->uv_grid[ij1].node = node; - } - delete itf; - - for (int i1 = 0; i1 < nbdown; i1++) - for (int j1 = 0; j1 < nbright; j1++) - { - int ij1 = j1 * nbdown + i1; - int j = cx0.ia * i1 + cx0.ib * j1 + cx0.ic; // j = x/face - int k = cx0.ja * i1 + cx0.jb * j1 + cx0.jc; // k = y/face - int ijk = k * nbx * nby + j * nbx + i; - //MESSAGE(" "<uv_grid[ij1].node; - //SCRUTE(np[ijk].nodeId); - } - } - - { - const TopoDS_Face & F = TopoDS::Face(meshFaces[_indX1]->GetSubShape()); - - SMDS_Iterator * itf= - aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes(); - - faceQuadStruct *quad = _cube.quad_X1; - int i = nbx - 1; // j = x/face , k = y/face - int nbdown = quad->nbPts[0]; - int nbright = quad->nbPts[1]; - - while(itf->more()) - { - const SMDS_MeshNode * node = itf->next(); - const SMDS_FacePosition* fpos - = static_cast(node->GetPosition()); - double ri = fpos->GetUParameter(); - double rj = fpos->GetVParameter(); - int i1 = int (ri); - int j1 = int (rj); - int ij1 = j1 * nbdown + i1; - quad->uv_grid[ij1].node = node; - } - delete itf; - - for (int i1 = 0; i1 < nbdown; i1++) - for (int j1 = 0; j1 < nbright; j1++) - { - int ij1 = j1 * nbdown + i1; - int j = cx1.ia * i1 + cx1.ib * j1 + cx1.ic; // j = x/face - int k = cx1.ja * i1 + cx1.jb * j1 + cx1.jc; // k = y/face - int ijk = k * nbx * nby + j * nbx + i; - //MESSAGE(" "<uv_grid[ij1].node; - //SCRUTE(np[ijk].nodeId); - } - } - - { - const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY0]->GetSubShape()); - - SMDS_Iterator * itf= - aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes(); - - faceQuadStruct *quad = _cube.quad_Y0; - int j = 0; // i = x/face , k = y/face - int nbdown = quad->nbPts[0]; - int nbright = quad->nbPts[1]; - - while(itf->more()) - { - const SMDS_MeshNode * node = itf->next(); - const SMDS_FacePosition * fpos - = static_cast(node->GetPosition()); - double ri = fpos->GetUParameter(); - double rj = fpos->GetVParameter(); - int i1 = int (ri); - int j1 = int (rj); - int ij1 = j1 * nbdown + i1; - quad->uv_grid[ij1].node = node; - } - delete itf; - - for (int i1 = 0; i1 < nbdown; i1++) - for (int j1 = 0; j1 < nbright; j1++) - { - int ij1 = j1 * nbdown + i1; - int i = cy0.ia * i1 + cy0.ib * j1 + cy0.ic; // i = x/face - int k = cy0.ja * i1 + cy0.jb * j1 + cy0.jc; // k = y/face - int ijk = k * nbx * nby + j * nbx + i; - //MESSAGE(" "<uv_grid[ij1].node; - //SCRUTE(np[ijk].nodeId); - } - } - - { - const TopoDS_Face & F = TopoDS::Face(meshFaces[_indY1]->GetSubShape()); - - SMDS_Iterator * itf= - aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes(); - - faceQuadStruct *quad = _cube.quad_Y1; - int j = nby - 1; // i = x/face , k = y/face - int nbdown = quad->nbPts[0]; - int nbright = quad->nbPts[1]; - - while(itf->more()) - { - const SMDS_MeshNode * node = itf->next(); - const SMDS_FacePosition* fpos = - static_cast(node->GetPosition()); - double ri = fpos->GetUParameter(); - double rj = fpos->GetVParameter(); - int i1 = int (ri); - int j1 = int (rj); - int ij1 = j1 * nbdown + i1; - quad->uv_grid[ij1].node = node; - } - - for (int i1 = 0; i1 < nbdown; i1++) - for (int j1 = 0; j1 < nbright; j1++) - { - int ij1 = j1 * nbdown + i1; - int i = cy1.ia * i1 + cy1.ib * j1 + cy1.ic; // i = x/face - int k = cy1.ja * i1 + cy1.jb * j1 + cy1.jc; // k = y/face - int ijk = k * nbx * nby + j * nbx + i; - //MESSAGE(" "<uv_grid[ij1].node; - //SCRUTE(np[ijk].nodeId); - } - } - - { - const TopoDS_Face & F = TopoDS::Face(meshFaces[_indZ0]->GetSubShape()); - - SMDS_Iterator * itf= - aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes(); - - faceQuadStruct *quad = _cube.quad_Z0; - int k = 0; // i = x/face , j = y/face - int nbdown = quad->nbPts[0]; - int nbright = quad->nbPts[1]; - - while(itf->more()) - { - const SMDS_MeshNode * node = itf->next(); - const SMDS_FacePosition * fpos - = static_cast(node->GetPosition()); - double ri = fpos->GetUParameter(); - double rj = fpos->GetVParameter(); - int i1 = int (ri); - int j1 = int (rj); - int ij1 = j1 * nbdown + i1; - quad->uv_grid[ij1].node = node; - } - - for (int i1 = 0; i1 < nbdown; i1++) - for (int j1 = 0; j1 < nbright; j1++) - { - int ij1 = j1 * nbdown + i1; - int i = cz0.ia * i1 + cz0.ib * j1 + cz0.ic; // i = x/face - int j = cz0.ja * i1 + cz0.jb * j1 + cz0.jc; // j = y/face - int ijk = k * nbx * nby + j * nbx + i; - //MESSAGE(" "<uv_grid[ij1].node; - //SCRUTE(np[ijk].nodeId); - } - } - - { - const TopoDS_Face & F = TopoDS::Face(meshFaces[_indZ1]->GetSubShape()); - - SMDS_Iterator * itf= - aMesh.GetSubMesh(F)->GetSubMeshDS()->GetNodes(); - - faceQuadStruct *quad = _cube.quad_Z1; - int k = nbz - 1; // i = x/face , j = y/face - int nbdown = quad->nbPts[0]; - int nbright = quad->nbPts[1]; - - while(itf->more()) - { - const SMDS_MeshNode * node = itf->next(); - const SMDS_FacePosition* fpos - = static_cast(node->GetPosition()); - double ri = fpos->GetUParameter(); - double rj = fpos->GetVParameter(); - int i1 = int (ri); - int j1 = int (rj); - int ij1 = j1 * nbdown + i1; - quad->uv_grid[ij1].node = node; - } - - for (int i1 = 0; i1 < nbdown; i1++) - for (int j1 = 0; j1 < nbright; j1++) - { - int ij1 = j1 * nbdown + i1; - int i = cz1.ia * i1 + cz1.ib * j1 + cz1.ic; // i = x/face - int j = cz1.ja * i1 + cz1.jb * j1 + cz1.jc; // j = y/face - int ijk = k * nbx * nby + j * nbx + i; - //MESSAGE(" "<uv_grid[ij1].node; - //SCRUTE(np[ijk].nodeId); - } - } - - // 2.0 - for each node of the cube: - // - get the 8 points 3D = 8 vertices of the cube - // - get the 12 points 3D on the 12 edges of the cube - // - get the 6 points 3D on the 6 faces with their ID - // - compute the point 3D - // - store the point 3D in SMESHDS, store its ID in 3D structure - - TopoDS_Shell aShell; - TopExp_Explorer exp(aShape, TopAbs_SHELL); - if (exp.More()) - { - aShell = TopoDS::Shell(exp.Current()); - } - else - { - MESSAGE("no shell..."); - ASSERT(0); - } - - Pt3 p000, p001, p010, p011, p100, p101, p110, p111; - Pt3 px00, px01, px10, px11; - Pt3 p0y0, p0y1, p1y0, p1y1; - Pt3 p00z, p01z, p10z, p11z; - Pt3 pxy0, pxy1, px0z, px1z, p0yz, p1yz; - - GetPoint(p000, 0, 0, 0, nbx, nby, nbz, np, meshDS); - GetPoint(p001, 0, 0, nbz - 1, nbx, nby, nbz, np, meshDS); - GetPoint(p010, 0, nby - 1, 0, nbx, nby, nbz, np, meshDS); - GetPoint(p011, 0, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS); - GetPoint(p100, nbx - 1, 0, 0, nbx, nby, nbz, np, meshDS); - GetPoint(p101, nbx - 1, 0, nbz - 1, nbx, nby, nbz, np, meshDS); - GetPoint(p110, nbx - 1, nby - 1, 0, nbx, nby, nbz, np, meshDS); - GetPoint(p111, nbx - 1, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS); - - for (int i = 1; i < nbx - 1; i++) - { - for (int j = 1; j < nby - 1; j++) - { - for (int k = 1; k < nbz - 1; k++) - { - // *** seulement maillage regulier - // 12 points on edges - GetPoint(px00, i, 0, 0, nbx, nby, nbz, np, meshDS); - GetPoint(px01, i, 0, nbz - 1, nbx, nby, nbz, np, meshDS); - GetPoint(px10, i, nby - 1, 0, nbx, nby, nbz, np, meshDS); - GetPoint(px11, i, nby - 1, nbz - 1, nbx, nby, nbz, np, meshDS); - - GetPoint(p0y0, 0, j, 0, nbx, nby, nbz, np, meshDS); - GetPoint(p0y1, 0, j, nbz - 1, nbx, nby, nbz, np, meshDS); - GetPoint(p1y0, nbx - 1, j, 0, nbx, nby, nbz, np, meshDS); - GetPoint(p1y1, nbx - 1, j, nbz - 1, nbx, nby, nbz, np, meshDS); - - GetPoint(p00z, 0, 0, k, nbx, nby, nbz, np, meshDS); - GetPoint(p01z, 0, nby - 1, k, nbx, nby, nbz, np, meshDS); - GetPoint(p10z, nbx - 1, 0, k, nbx, nby, nbz, np, meshDS); - GetPoint(p11z, nbx - 1, nby - 1, k, nbx, nby, nbz, np, meshDS); - - // 12 points on faces - GetPoint(pxy0, i, j, 0, nbx, nby, nbz, np, meshDS); - GetPoint(pxy1, i, j, nbz - 1, nbx, nby, nbz, np, meshDS); - GetPoint(px0z, i, 0, k, nbx, nby, nbz, np, meshDS); - GetPoint(px1z, i, nby - 1, k, nbx, nby, nbz, np, meshDS); - GetPoint(p0yz, 0, j, k, nbx, nby, nbz, np, meshDS); - GetPoint(p1yz, nbx - 1, j, k, nbx, nby, nbz, np, meshDS); - - int ijk = k * nbx * nby + j * nbx + i; - double x = double (i) / double (nbx - 1); // *** seulement - double y = double (j) / double (nby - 1); // *** maillage - double z = double (k) / double (nbz - 1); // *** regulier - - Pt3 X; - for (int i = 0; i < 3; i++) - { - X[i] = - (1 - x) * p0yz[i] + x * p1yz[i] - + (1 - y) * px0z[i] + y * px1z[i] - + (1 - z) * pxy0[i] + z * pxy1[i] - - (1 - x) * ((1 - y) * p00z[i] + y * p01z[i]) - - x * ((1 - y) * p10z[i] + y * p11z[i]) - - (1 - y) * ((1 - z) * px00[i] + z * px01[i]) - - y * ((1 - z) * px10[i] + z * px11[i]) - - (1 - z) * ((1 - x) * p0y0[i] + x * p1y0[i]) - - z * ((1 - x) * p0y1[i] + x * p1y1[i]) - + (1 - x) * ((1 - y) * ((1 - z) * p000[i] + z * p001[i]) - + y * ((1 - z) * p010[i] + z * p011[i])) - + x * ((1 - y) * ((1 - z) * p100[i] + z * p101[i]) - + y * ((1 - z) * p110[i] + z * p111[i])); - } - - SMDS_MeshNode * node = meshDS->AddNode(X[0], X[1], X[2]); - np[ijk].node = node; - //meshDS->SetNodeInVolume(node, TopoDS::Solid(aShape)); - meshDS->SetNodeInVolume(node, aShell); - } - } - } - - //2.1 - for each node of the cube (less 3 *1 Faces): - // - store hexahedron in SMESHDS - MESSAGE("Storing hexahedron into the DS"); - for (int i = 0; i < nbx - 1; i++) - for (int j = 0; j < nby - 1; j++) - for (int k = 0; k < nbz - 1; k++) - { - int n1 = k * nbx * nby + j * nbx + i; - int n2 = k * nbx * nby + j * nbx + i + 1; - int n3 = k * nbx * nby + (j + 1) * nbx + i + 1; - int n4 = k * nbx * nby + (j + 1) * nbx + i; - int n5 = (k + 1) * nbx * nby + j * nbx + i; - int n6 = (k + 1) * nbx * nby + j * nbx + i + 1; - int n7 = (k + 1) * nbx * nby + (j + 1) * nbx + i + 1; - int n8 = (k + 1) * nbx * nby + (j + 1) * nbx + i; - -// MESSAGE(" "<AddVolume(np[n1].node, - np[n2].node, - np[n3].node, - np[n4].node, - np[n5].node, - np[n6].node, - np[n7].node, - np[n8].node); - ; - meshDS->SetMeshElementOnShape(elt, aShell); - - // *** 5 tetrahedres ... verifier orientations, - // mettre en coherence &vec quadrangles-> triangles - // choisir afficher 1 parmi edges, face et volumes -// int tetra1 = meshDS->AddVolume(np[n1].nodeId, -// np[n2].nodeId, -// np[n4].nodeId, -// np[n5].nodeId); -// int tetra2 = meshDS->AddVolume(np[n2].nodeId, -// np[n3].nodeId, -// np[n4].nodeId, -// np[n7].nodeId); -// int tetra3 = meshDS->AddVolume(np[n5].nodeId, -// np[n6].nodeId, -// np[n7].nodeId, -// np[n2].nodeId); -// int tetra4 = meshDS->AddVolume(np[n5].nodeId, -// np[n7].nodeId, -// np[n8].nodeId, -// np[n4].nodeId); -// int tetra5 = meshDS->AddVolume(np[n5].nodeId, -// np[n7].nodeId, -// np[n2].nodeId, -// np[n4].nodeId); - - } - - MESSAGE("End of SMESH_Hexa_3D::Compute()"); - return true; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_Hexa_3D::GetPoint(Pt3 p, int i, int j, int k, int nbx, int nby, - int nbz, Point3DStruct * np, const SMESHDS_Mesh * meshDS) -{ - int ijk = k * nbx * nby + j * nbx + i; - const SMDS_MeshNode * node = np[ijk].node; - p[0] = node->X(); - p[1] = node->Y(); - p[2] = node->Z(); - //MESSAGE(" "<&meshFaces, - const TopoDS_Vertex & V0, - const TopoDS_Vertex & V1, - const TopoDS_Vertex & V2, const TopoDS_Vertex & V3) -{ - MESSAGE("SMESH_Hexa_3D::GetFaceIndex"); - int faceIndex = -1; - for (int i = 1; i < 6; i++) - { - const TopoDS_Shape & aFace = meshFaces[i]->GetSubShape(); - //const TopoDS_Face& F = TopoDS::Face(aFace); - TopTools_IndexedMapOfShape M; - TopExp::MapShapes(aFace, TopAbs_VERTEX, M); - bool verticesInShape = false; - if (M.Contains(V0)) - if (M.Contains(V1)) - if (M.Contains(V2)) - if (M.Contains(V3)) - verticesInShape = true; - if (verticesInShape) - { - faceIndex = i; - break; - } - } - ASSERT(faceIndex > 0); - SCRUTE(faceIndex); - return faceIndex; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -TopoDS_Edge - SMESH_Hexa_3D::EdgeNotInFace(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape, - const TopoDS_Face & aFace, - const TopoDS_Vertex & aVertex, - const TopTools_IndexedDataMapOfShapeListOfShape & MS) -{ - MESSAGE("SMESH_Hexa_3D::EdgeNotInFace"); - TopTools_IndexedDataMapOfShapeListOfShape MF; - TopExp::MapShapesAndAncestors(aFace, TopAbs_VERTEX, TopAbs_EDGE, MF); - const TopTools_ListOfShape & ancestorsInSolid = MS.FindFromKey(aVertex); - const TopTools_ListOfShape & ancestorsInFace = MF.FindFromKey(aVertex); - SCRUTE(ancestorsInSolid.Extent()); - SCRUTE(ancestorsInFace.Extent()); - ASSERT(ancestorsInSolid.Extent() == 6); // 6 (edges doublees) - ASSERT(ancestorsInFace.Extent() == 2); - - TopoDS_Edge E; - E.Nullify(); - TopTools_ListIteratorOfListOfShape its(ancestorsInSolid); - for (; its.More(); its.Next()) - { - TopoDS_Shape ancestor = its.Value(); - TopTools_ListIteratorOfListOfShape itf(ancestorsInFace); - bool isInFace = false; - for (; itf.More(); itf.Next()) - { - TopoDS_Shape ancestorInFace = itf.Value(); - if (ancestorInFace.IsSame(ancestor)) - { - isInFace = true; - break; - } - } - if (!isInFace) - { - E = TopoDS::Edge(ancestor); - break; - } - } - return E; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_Hexa_3D::GetConv2DCoefs(const faceQuadStruct & quad, - const TopoDS_Shape & aShape, - const TopoDS_Vertex & V0, - const TopoDS_Vertex & V1, - const TopoDS_Vertex & V2, const TopoDS_Vertex & V3, Conv2DStruct & conv) -{ - MESSAGE("SMESH_Hexa_3D::GetConv2DCoefs"); - const TopoDS_Face & F = TopoDS::Face(aShape); - TopoDS_Edge E = quad.edge[0]; - double f, l; - Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l); - TopoDS_Vertex VFirst, VLast; - TopExp::Vertices(E, VFirst, VLast); // corresponds to f and l - bool isForward = (((l - f) * (quad.last[0] - quad.first[0])) > 0); - TopoDS_Vertex VA, VB; - if (isForward) - { - VA = VFirst; - VB = VLast; - } - else - { - VA = VLast; - VB = VFirst; - } - int a1, b1, c1, a2, b2, c2; - if (VA.IsSame(V0)) - if (VB.IsSame(V1)) - { - a1 = 1; - b1 = 0; - c1 = 0; // x - a2 = 0; - b2 = 1; - c2 = 0; // y - } - else - { - ASSERT(VB.IsSame(V3)); - a1 = 0; - b1 = 1; - c1 = 0; // y - a2 = 1; - b2 = 0; - c2 = 0; // x - } - if (VA.IsSame(V1)) - if (VB.IsSame(V2)) - { - a1 = 0; - b1 = -1; - c1 = 1; // 1-y - a2 = 1; - b2 = 0; - c2 = 0; // x - } - else - { - ASSERT(VB.IsSame(V0)); - a1 = -1; - b1 = 0; - c1 = 1; // 1-x - a2 = 0; - b2 = 1; - c2 = 0; // y - } - if (VA.IsSame(V2)) - if (VB.IsSame(V3)) - { - a1 = -1; - b1 = 0; - c1 = 1; // 1-x - a2 = 0; - b2 = -1; - c2 = 1; // 1-y - } - else - { - ASSERT(VB.IsSame(V1)); - a1 = 0; - b1 = -1; - c1 = 1; // 1-y - a2 = -1; - b2 = 0; - c2 = 1; // 1-x - } - if (VA.IsSame(V3)) - if (VB.IsSame(V0)) - { - a1 = 0; - b1 = 1; - c1 = 0; // y - a2 = -1; - b2 = 0; - c2 = 1; // 1-x - } - else - { - ASSERT(VB.IsSame(V2)); - a1 = 1; - b1 = 0; - c1 = 0; // x - a2 = 0; - b2 = -1; - c2 = 1; // 1-y - } - MESSAGE("X = " << c1 << "+ " << a1 << "*x + " << b1 << "*y"); - MESSAGE("Y = " << c2 << "+ " << a2 << "*x + " << b2 << "*y"); - conv.a1 = a1; - conv.b1 = b1; - conv.c1 = c1; - conv.a2 = a2; - conv.b2 = b2; - conv.c2 = c2; - - int nbdown = quad.nbPts[0]; - int nbright = quad.nbPts[1]; - conv.ia = int (a1); - conv.ib = int (b1); - conv.ic = - int (c1 * a1 * a1) * (nbdown - 1) + int (c1 * b1 * b1) * (nbright - 1); - conv.ja = int (a2); - conv.jb = int (b2); - conv.jc = - int (c2 * a2 * a2) * (nbdown - 1) + int (c2 * b2 * b2) * (nbright - 1); - MESSAGE("I " << conv.ia << " " << conv.ib << " " << conv.ic); - MESSAGE("J " << conv.ja << " " << conv.jb << " " << conv.jc); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & SMESH_Hexa_3D::SaveTo(ostream & save) -{ - return save << this; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & SMESH_Hexa_3D::LoadFrom(istream & load) -{ - return load >> (*this); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & operator <<(ostream & save, SMESH_Hexa_3D & hyp) -{ - return save; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & operator >>(istream & load, SMESH_Hexa_3D & hyp) -{ - return load; -} diff --git a/src/SMESH/SMESH_Hexa_3D.hxx b/src/SMESH/SMESH_Hexa_3D.hxx deleted file mode 100644 index 0aa874c7a..000000000 --- a/src/SMESH/SMESH_Hexa_3D.hxx +++ /dev/null @@ -1,138 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Hexa_3D.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_HEXA_3D_HXX_ -#define _SMESH_HEXA_3D_HXX_ - -#include "SMESH_3D_Algo.hxx" -#include "SMESH_Mesh.hxx" -#include "SMESH_Quadrangle_2D.hxx" -#include "Utils_SALOME_Exception.hxx" - -typedef struct point3Dstruct -{ - const SMDS_MeshNode * node; -} Point3DStruct; - -typedef double Pt3[3]; - -typedef struct conv2dstruct -{ - double a1; // X = a1*x + b1*y + c1 - double b1; // Y = a2*x + b2*y + c2 - double c1; // a1, b1 a2, b2 in {-1,0,1} - double a2; // c1, c2 in {0,1} - double b2; - double c2; - int ia; // I = ia*i + ib*j + ic - int ib; - int ic; - int ja; // J = ja*i + jb*j + jc - int jb; - int jc; -} Conv2DStruct; - -typedef struct cubeStruct -{ - TopoDS_Vertex V000; - TopoDS_Vertex V001; - TopoDS_Vertex V010; - TopoDS_Vertex V011; - TopoDS_Vertex V100; - TopoDS_Vertex V101; - TopoDS_Vertex V110; - TopoDS_Vertex V111; - faceQuadStruct* quad_X0; - faceQuadStruct* quad_X1; - faceQuadStruct* quad_Y0; - faceQuadStruct* quad_Y1; - faceQuadStruct* quad_Z0; - faceQuadStruct* quad_Z1; - Point3DStruct* np; // normalised 3D coordinates -} CubeStruct; - -class SMESH_Hexa_3D: - public SMESH_3D_Algo -{ -public: - SMESH_Hexa_3D(int hypId, int studyId, SMESH_Gen* gen); - virtual ~SMESH_Hexa_3D(); - - virtual bool CheckHypothesis(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape); - - virtual bool Compute(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape) - throw (SALOME_Exception); - - ostream & SaveTo(ostream & save); - istream & LoadFrom(istream & load); - friend ostream & operator << (ostream & save, SMESH_Hexa_3D & hyp); - friend istream & operator >> (istream & load, SMESH_Hexa_3D & hyp); - -protected: - TopoDS_Edge - EdgeNotInFace(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape, - const TopoDS_Face& aFace, - const TopoDS_Vertex& aVertex, - const TopTools_IndexedDataMapOfShapeListOfShape& MS); - - int GetFaceIndex(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape, - const vector& meshFaces, - const TopoDS_Vertex& V0, - const TopoDS_Vertex& V1, - const TopoDS_Vertex& V2, - const TopoDS_Vertex& V3); - - void GetConv2DCoefs(const faceQuadStruct& quad, - const TopoDS_Shape& aShape, - const TopoDS_Vertex& V0, - const TopoDS_Vertex& V1, - const TopoDS_Vertex& V2, - const TopoDS_Vertex& V3, - Conv2DStruct& conv); - - void GetPoint(Pt3 p, - int i, int j, int k, - int nbx, int nby, int nbz, - Point3DStruct *np, - const SMESHDS_Mesh* meshDS); - - CubeStruct _cube; - FaceQuadStruct* _quads[6]; - int _indX0; - int _indX1; - int _indY0; - int _indY1; - int _indZ0; - int _indZ1; -}; - -#endif diff --git a/src/SMESH/SMESH_HypothesisCreator.hxx b/src/SMESH/SMESH_HypothesisCreator.hxx deleted file mode 100644 index 32d44487a..000000000 --- a/src/SMESH/SMESH_HypothesisCreator.hxx +++ /dev/null @@ -1,68 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_HypothesisCreator.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_HYPOTHESISCREATOR_HXX_ -#define _SMESH_HYPOTHESISCREATOR_HXX_ - -#include "SMESH_HypothesisFactory.hxx" - -class SMESH_gen; - -//============================================================================= -/*! - * Specific Hypothesis Creators are generated with a template which inherits a - * generic hypothesis creator. Each creator returns an hypothesis of the type - * given in the template. - */ -//============================================================================= - -template class SMESH_HypothesisCreator - : public GenericHypothesisCreator -{ -public: -// map _instances; - -// virtual T* GetInstance(int hypId) -// { -// if (_instances.find(hypId) != _instances.end()) -// return _instances[hypId]; -// else -// return NULL; -// } - - virtual T* Create (int hypId, int studyId, SMESH_Gen* gen) - { - T* anInstance= new T(hypId, studyId, gen); -// _gen->StoreHypothesisInstance(anInstance); -// _instances[hypId] = anInstance; - return anInstance; - }; -}; - - -#endif diff --git a/src/SMESH/SMESH_HypothesisFactory.cxx b/src/SMESH/SMESH_HypothesisFactory.cxx deleted file mode 100644 index 1373fae69..000000000 --- a/src/SMESH/SMESH_HypothesisFactory.cxx +++ /dev/null @@ -1,179 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_HypothesisFactory.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_HypothesisFactory.hxx" -#include "SMESH_Hypothesis.hxx" -#include "SMESH_HypothesisCreator.hxx" -#include "SMESH_Gen.hxx" - -#include "utilities.h" - -// Add new hypothesis here (include file) -//--------------------------------------- -#include "SMESH_LocalLength.hxx" -#include "SMESH_LengthFromEdges.hxx" -#include "SMESH_NumberOfSegments.hxx" -#include "SMESH_MaxElementArea.hxx" -#include "SMESH_MaxElementVolume.hxx" -#include "SMESH_Regular_1D.hxx" -#include "SMESH_MEFISTO_2D.hxx" -#include "SMESH_Quadrangle_2D.hxx" -#include "SMESH_Hexa_3D.hxx" -#ifdef HAVE_NETGEN -#include "SMESH_NETGEN_3D.hxx" -#endif -//--------------------------------------- - -//============================================================================= -/*! - * Specific Hypothesis Creators are generated with a template which inherits a - * generic hypothesis creator. Each creator returns an hypothesis of the type - * given in the template. - */ -//============================================================================= - -// template class HypothesisCreator: public GenericHypothesisCreator -// { -// public: -// virtual T* Create (int hypId) -// { -// // return new T(hypId); -// }; - -// }; - -//============================================================================= -/*! - * Constructor: instanciate specific hypothesis creators, fill a private map - * indexed by hypothesis names. THIS METHOD MUST BE COMPLETED WHEN A NEW - * HYPOTHESIS IS ADDED. - * Specific hypothesis creator are defined with the above template. - * Hypothesis names are related to the corresponding class names: - * prefix = SMESH_ ; suffix = . - */ -//============================================================================= - -SMESH_HypothesisFactory::SMESH_HypothesisFactory() -{ - _hypId = 0; - -// Add new hypothesis here (creators) -//--------------------------------------- -_creatorMap["LocalLength"] = new SMESH_HypothesisCreator; -_creatorMap["NumberOfSegments"] = new SMESH_HypothesisCreator; -_creatorMap["LengthFromEdges"] = new SMESH_HypothesisCreator; -_creatorMap["MaxElementArea"] = new SMESH_HypothesisCreator; -_creatorMap["MaxElementVolume"] = new SMESH_HypothesisCreator; -_creatorMap["Regular_1D"] = new SMESH_HypothesisCreator; -_creatorMap["MEFISTO_2D"] = new SMESH_HypothesisCreator; -_creatorMap["Quadrangle_2D"] = new SMESH_HypothesisCreator; -_creatorMap["Hexa_3D"] = new SMESH_HypothesisCreator; -#ifdef HAVE_NETGEN -_creatorMap["NETGEN_3D"] = new SMESH_HypothesisCreator; -#endif -//--------------------------------------- -} - -//============================================================================= -/*! - * Destructor: deletes specific hypothesis creators instanciated in the - * constructor. - */ -//============================================================================= - -SMESH_HypothesisFactory::~SMESH_HypothesisFactory() -{ - map::iterator it; - for (it = _creatorMap.begin(); it != _creatorMap.end(); it++) - { - delete (*it).second; - } - _creatorMap.clear(); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Hypothesis* SMESH_HypothesisFactory::Create(const char* anHypName, - int studyId) - throw (SALOME_Exception) -{ - MESSAGE("SMESH_HypothesisFactory::Create " << anHypName); - if (_creatorMap.find(anHypName) == _creatorMap.end()) - throw(SALOME_Exception(LOCALIZED("bad hypothesis type name"))); - SMESH_Hypothesis* myHyp = _creatorMap[anHypName]->Create(_hypId++, - studyId, - _gen); - return myHyp; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -GenericHypothesisCreator* -SMESH_HypothesisFactory::GetCreator(const char* anHypName) - throw (SALOME_Exception) -{ - MESSAGE("SMESH_HypothesisFactory::GetCreator " << anHypName); - if (_creatorMap.find(anHypName) == _creatorMap.end()) - throw(SALOME_Exception(LOCALIZED("bad hypothesis type name"))); - return _creatorMap[anHypName]; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -int SMESH_HypothesisFactory::GetANewId() -{ - //MESSAGE("SMESH_HypothesisFactory::GetANewId"); - return _hypId++; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_HypothesisFactory::SetGen(SMESH_Gen* gen) -{ - //MESSAGE("SMESH_HypothesisFactory::SetGen"); - _gen = gen; -} - diff --git a/src/SMESH/SMESH_HypothesisFactory.hxx b/src/SMESH/SMESH_HypothesisFactory.hxx deleted file mode 100644 index 9e4121c1e..000000000 --- a/src/SMESH/SMESH_HypothesisFactory.hxx +++ /dev/null @@ -1,69 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_HypothesisFactory.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_HYPOTHESISFACTORY_HXX_ -#define _SMESH_HYPOTHESISFACTORY_HXX_ - -#include "SMESH_Hypothesis.hxx" - -#include "Utils_SALOME_Exception.hxx" - -#include - -class SMESH_Gen; - -class GenericHypothesisCreator -{ -public: -// virtual SMESH_Hypothesis* GetInstance(int hypId) = 0; - virtual SMESH_Hypothesis* Create(int hypId, int studyId, SMESH_Gen* gen) = 0; -}; - -class SMESH_HypothesisFactory -{ -public: - SMESH_HypothesisFactory(); - virtual ~SMESH_HypothesisFactory(); - - void SetGen(SMESH_Gen* gen); - - SMESH_Hypothesis* Create(const char* anHypName, int studyId) - throw (SALOME_Exception); - - GenericHypothesisCreator* GetCreator(const char* anHypName) - throw (SALOME_Exception); - - int GetANewId(); - -private: - map _creatorMap; - int _hypId; - SMESH_Gen* _gen; -}; - -#endif diff --git a/src/SMESH/SMESH_LengthFromEdges.cxx b/src/SMESH/SMESH_LengthFromEdges.cxx deleted file mode 100644 index cccfa55ac..000000000 --- a/src/SMESH/SMESH_LengthFromEdges.cxx +++ /dev/null @@ -1,136 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_LengthFromEdges.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_LengthFromEdges.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_LengthFromEdges::SMESH_LengthFromEdges(int hypId, int studyId, SMESH_Gen* gen) - : SMESH_Hypothesis(hypId, studyId, gen) -{ - _mode =1; - _name = "LengthFromEdges"; -// SCRUTE(_name); -// SCRUTE(&_name); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_LengthFromEdges::~SMESH_LengthFromEdges() -{ -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_LengthFromEdges::SetMode(int mode) - throw (SALOME_Exception) -{ - int oldMode = _mode; - if (mode <= 0) - throw SALOME_Exception(LOCALIZED("mode must be positive")); - _mode = mode; - if (oldMode != _mode) - NotifySubMeshesHypothesisModification(); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -int SMESH_LengthFromEdges::GetMode() -{ - return _mode; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & SMESH_LengthFromEdges::SaveTo(ostream & save) -{ - return save << this; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & SMESH_LengthFromEdges::LoadFrom(istream & load) -{ - return load >> (*this); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & operator << (ostream & save, SMESH_LengthFromEdges & hyp) -{ - save << hyp._mode; - return save; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & operator >> (istream & load, SMESH_LengthFromEdges & hyp) -{ - bool isOK = true; - int a; - isOK = (load >> a); - if (isOK) hyp._mode = a; - else load.clear(ios::badbit | load.rdstate()); - return load; -} - diff --git a/src/SMESH/SMESH_LengthFromEdges.hxx b/src/SMESH/SMESH_LengthFromEdges.hxx deleted file mode 100644 index 41890e0e8..000000000 --- a/src/SMESH/SMESH_LengthFromEdges.hxx +++ /dev/null @@ -1,56 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_LengthFromEdges.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_LENGTHFROMEDGES_HXX_ -#define _SMESH_LENGTHFROMEDGES_HXX_ - -#include "SMESH_Hypothesis.hxx" -#include "Utils_SALOME_Exception.hxx" - -class SMESH_LengthFromEdges: - public SMESH_Hypothesis -{ -public: - SMESH_LengthFromEdges(int hypId, int studyId, SMESH_Gen* gen); - virtual ~SMESH_LengthFromEdges(); - - void SetMode(int mode) - throw (SALOME_Exception); - - int GetMode(); - - virtual ostream & SaveTo(ostream & save); - virtual istream & LoadFrom(istream & load); - friend ostream & operator << (ostream & save, SMESH_LengthFromEdges & hyp); - friend istream & operator >> (istream & load, SMESH_LengthFromEdges & hyp); - -protected: - int _mode; -}; - -#endif diff --git a/src/SMESH/SMESH_LocalLength.cxx b/src/SMESH/SMESH_LocalLength.cxx deleted file mode 100644 index 410ff1d2c..000000000 --- a/src/SMESH/SMESH_LocalLength.cxx +++ /dev/null @@ -1,136 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_LocalLength.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_LocalLength.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_LocalLength::SMESH_LocalLength(int hypId, int studyId, - SMESH_Gen * gen):SMESH_Hypothesis(hypId, studyId, gen) -{ - _length = 1.; - _name = "LocalLength"; -// SCRUTE(_name); -// SCRUTE(&_name); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_LocalLength::~SMESH_LocalLength() -{ -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_LocalLength::SetLength(double length) throw(SALOME_Exception) -{ - double oldLength = _length; - if (length <= 0) - throw SALOME_Exception(LOCALIZED("length must be positive")); - _length = length; - if (oldLength != _length) - NotifySubMeshesHypothesisModification(); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -double SMESH_LocalLength::GetLength() const -{ - return _length; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & SMESH_LocalLength::SaveTo(ostream & save) -{ - return save << this; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & SMESH_LocalLength::LoadFrom(istream & load) -{ - return load >> (*this); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & operator <<(ostream & save, SMESH_LocalLength & hyp) -{ - save << hyp._length; - return save; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & operator >>(istream & load, SMESH_LocalLength & hyp) -{ - bool isOK = true; - double a; - isOK = (load >> a); - if (isOK) - hyp._length = a; - else - load.clear(ios::badbit | load.rdstate()); - return load; -} diff --git a/src/SMESH/SMESH_LocalLength.hxx b/src/SMESH/SMESH_LocalLength.hxx deleted file mode 100644 index 7cb47251e..000000000 --- a/src/SMESH/SMESH_LocalLength.hxx +++ /dev/null @@ -1,54 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_LocalLength.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_LOCALLENGTH_HXX_ -#define _SMESH_LOCALLENGTH_HXX_ - -#include "SMESH_Hypothesis.hxx" -#include "Utils_SALOME_Exception.hxx" - -class SMESH_LocalLength:public SMESH_Hypothesis -{ - public: - SMESH_LocalLength(int hypId, int studyId, SMESH_Gen * gen); - virtual ~ SMESH_LocalLength(); - - void SetLength(double length) throw(SALOME_Exception); - - double GetLength() const; - - virtual ostream & SaveTo(ostream & save); - virtual istream & LoadFrom(istream & load); - friend ostream & operator <<(ostream & save, SMESH_LocalLength & hyp); - friend istream & operator >>(istream & load, SMESH_LocalLength & hyp); - - protected: - double _length; -}; - -#endif diff --git a/src/SMESH/SMESH_MEFISTO_2D.cxx b/src/SMESH/SMESH_MEFISTO_2D.cxx deleted file mode 100644 index 88257be18..000000000 --- a/src/SMESH/SMESH_MEFISTO_2D.cxx +++ /dev/null @@ -1,634 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MEFISTO_2D.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -#include "SMESH_MEFISTO_2D.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_Mesh.hxx" - -#include "SMESH_MaxElementArea.hxx" -#include "SMESH_LengthFromEdges.hxx" - -#include "Rn.h" -#include "aptrte.h" - -#include "SMDS_MeshElement.hxx" -#include "SMDS_MeshNode.hxx" -#include "SMDS_EdgePosition.hxx" -#include "SMDS_FacePosition.hxx" - -#include "utilities.h" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include -#include - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_MEFISTO_2D::SMESH_MEFISTO_2D(int hypId, int studyId, - SMESH_Gen * gen):SMESH_2D_Algo(hypId, studyId, gen) -{ - MESSAGE("SMESH_MEFISTO_2D::SMESH_MEFISTO_2D"); - _name = "MEFISTO_2D"; -// _shapeType = TopAbs_FACE; - _shapeType = (1 << TopAbs_FACE); - _compatibleHypothesis.push_back("MaxElementArea"); - _compatibleHypothesis.push_back("LengthFromEdges"); - - _edgeLength = 0; - _maxElementArea = 0; - _hypMaxElementArea = NULL; - _hypLengthFromEdges = NULL; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_MEFISTO_2D::~SMESH_MEFISTO_2D() -{ - MESSAGE("SMESH_MEFISTO_2D::~SMESH_MEFISTO_2D"); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -bool SMESH_MEFISTO_2D::CheckHypothesis(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape) -{ - //MESSAGE("SMESH_MEFISTO_2D::CheckHypothesis"); - - _hypMaxElementArea = NULL; - _hypLengthFromEdges = NULL; - - list ::const_iterator itl; - const SMESHDS_Hypothesis *theHyp; - - const list &hyps = GetUsedHypothesis(aMesh, aShape); - int nbHyp = hyps.size(); - if (nbHyp != 1) return false;// only one compatible hypothesis allowed - - itl = hyps.begin(); - theHyp = (*itl); - - string hypName = theHyp->GetName(); - int hypId = theHyp->GetID(); - //SCRUTE(hypName); - - bool isOk = false; - - if (hypName == "MaxElementArea") - { - _hypMaxElementArea = static_cast(theHyp); - ASSERT(_hypMaxElementArea); - _maxElementArea = _hypMaxElementArea->GetMaxArea(); - _edgeLength = 0; - isOk = true; - } - - if (hypName == "LengthFromEdges") - { - _hypLengthFromEdges = static_cast(theHyp); - ASSERT(_hypLengthFromEdges); - _edgeLength = 0; - _maxElementArea = 0; - isOk = true; - } - - if (isOk) - { - isOk = false; - if (_maxElementArea > 0) - { - _edgeLength = 2 * sqrt(_maxElementArea); // triangles : minorant - isOk = true; - } - else - isOk = (_hypLengthFromEdges != NULL); // **** check mode - } - - //SCRUTE(_edgeLength); - //SCRUTE(_maxElementArea); - return isOk; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -bool SMESH_MEFISTO_2D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape) -{ - MESSAGE("SMESH_MEFISTO_2D::Compute"); - - if (_hypLengthFromEdges) - _edgeLength = ComputeEdgeElementLength(aMesh, aShape); - - bool isOk = false; - const SMESHDS_Mesh * meshDS = aMesh.GetMeshDS(); - SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape); - - const TopoDS_Face & FF = TopoDS::Face(aShape); - bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD); - TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD)); - - Z nblf; //nombre de lignes fermees (enveloppe en tete) - Z *nudslf = NULL; //numero du dernier sommet de chaque ligne fermee - R2 *uvslf = NULL; - Z nbpti = 0; //nombre points internes futurs sommets de la triangulation - R2 *uvpti = NULL; - - Z nbst; - R2 *uvst = NULL; - Z nbt; - Z *nust = NULL; - Z ierr = 0; - - Z nutysu = 1; // 1: il existe un fonction areteideale_() - // Z nutysu=0; // 0: on utilise aretmx - R aretmx = _edgeLength; // longueur max aretes future triangulation - //SCRUTE(aretmx); - - nblf = NumberOfWires(F); - //SCRUTE(nblf); - - nudslf = new Z[1 + nblf]; - nudslf[0] = 0; - int iw = 1; - int nbpnt = 0; - - const TopoDS_Wire OW1 = BRepTools::OuterWire(F); - nbpnt += NumberOfPoints(aMesh, OW1); - nudslf[iw++] = nbpnt; - //SCRUTE(nbpnt); - - for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next()) - { - const TopoDS_Wire & W = TopoDS::Wire(exp.Current()); - if (!OW1.IsSame(W)) - { - nbpnt += NumberOfPoints(aMesh, W); - nudslf[iw++] = nbpnt; - //SCRUTE(nbpnt); - } - } - - uvslf = new R2[nudslf[nblf]]; - //SCRUTE(nudslf[nblf]); - int m = 0; - - map mefistoToDS; // correspondence mefisto index--> points IDNodes - TopoDS_Wire OW = BRepTools::OuterWire(F); - LoadPoints(aMesh, F, OW, uvslf, m, mefistoToDS); - //SCRUTE(m); - - for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next()) - { - const TopoDS_Wire & W = TopoDS::Wire(exp.Current()); - if (!OW.IsSame(W)) - { - LoadPoints(aMesh, F, W, uvslf, m, mefistoToDS); - //SCRUTE(m); - } - } -// SCRUTE(nudslf[nblf]); -// for (int i=0; i<=nblf; i++) -// { -// MESSAGE(" -+- " <&mefistoToDS) -{ - MESSAGE("SMESH_MEFISTO_2D::LoadPoints"); - - SMDS_Mesh * meshDS = aMesh.GetMeshDS(); - - double scalex; - double scaley; - TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD)); - ComputeScaleOnFace(aMesh, F, scalex, scaley); - - TopoDS_Wire W = TopoDS::Wire(WW.Oriented(TopAbs_FORWARD)); - BRepTools_WireExplorer wexp(W, F); - for (wexp.Init(W, F); wexp.More(); wexp.Next()) - { - const TopoDS_Edge & E = wexp.Current(); - - // --- IDNodes of first and last Vertex - - TopoDS_Vertex VFirst, VLast; - TopExp::Vertices(E, VFirst, VLast); // corresponds to f and l - - ASSERT(!VFirst.IsNull()); - SMDS_Iterator * lid= - aMesh.GetSubMesh(VFirst)->GetSubMeshDS()->GetNodes(); - const SMDS_MeshNode* idFirst = lid->next(); - delete lid; - - ASSERT(!VLast.IsNull()); - lid=aMesh.GetSubMesh(VLast)->GetSubMeshDS()->GetNodes(); - const SMDS_MeshNode* idLast = lid->next(); - delete lid; - - // --- edge internal IDNodes (relies on good order storage, not checked) - - int nbPoints = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes(); - //SCRUTE(nbPoints); - - double f, l; - Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l); - - SMDS_Iterator * ite= - aMesh.GetSubMesh(E)->GetSubMeshDS()->GetNodes(); - - bool isForward = (E.Orientation() == TopAbs_FORWARD); - map params; - - while(ite->more()) - { - const SMDS_MeshNode * node = ite->next(); - const SMDS_EdgePosition* epos - = static_cast(node->GetPosition()); - double param = epos->GetUParameter(); - params[param] = node; - } - delete ite; - // --- load 2D values into MEFISTO structure, - // add IDNodes in mefistoToDS map - - if (E.Orientation() == TopAbs_FORWARD) - { - gp_Pnt2d p = C2d->Value(f); // first point = Vertex Forward - uvslf[m].x = scalex * p.X(); - uvslf[m].y = scaley * p.Y(); - mefistoToDS[m + 1] = idFirst; - //MESSAGE(" "<::iterator itp = params.begin(); - for (int i = 1; i <= nbPoints; i++) // nbPoints internal - { - double param = (*itp).first; - gp_Pnt2d p = C2d->Value(param); - uvslf[m].x = scalex * p.X(); - uvslf[m].y = scaley * p.Y(); - mefistoToDS[m + 1] = (*itp).second; -// MESSAGE(" "<Value(l); // last point = Vertex Reversed - uvslf[m].x = scalex * p.X(); - uvslf[m].y = scaley * p.Y(); - mefistoToDS[m + 1] = idLast; -// MESSAGE(" "<::reverse_iterator itp = params.rbegin(); - for (int i = nbPoints; i >= 1; i--) - { - double param = (*itp).first; - gp_Pnt2d p = C2d->Value(param); - uvslf[m].x = scalex * p.X(); - uvslf[m].y = scaley * p.Y(); - mefistoToDS[m + 1] = (*itp).second; -// MESSAGE(" "<Value(param); - if (p.X() < xmin) - xmin = p.X(); - if (p.X() > xmax) - xmax = p.X(); - if (p.Y() < ymin) - ymin = p.Y(); - if (p.Y() > ymax) - ymax = p.Y(); -// MESSAGE(" "<< f<<" "<Value(xmin, ymoy); - gp_Pnt PY0 = S->Value(xmoy, ymin); - for (int i = 1; i <= nbp; i++) - { - double x = xmin + (double (i) / double (nbp))*(xmax - xmin); - gp_Pnt PX = S->Value(x, ymoy); - double y = ymin + (double (i) / double (nbp))*(ymax - ymin); - gp_Pnt PY = S->Value(xmoy, y); - length_x += PX.Distance(PX0); - length_y += PY.Distance(PY0); - PX0.SetCoord(PX.X(), PX.Y(), PX.Z()); - PY0.SetCoord(PY.X(), PY.Y(), PY.Z()); - } -// SCRUTE(length_x); -// SCRUTE(length_y); - scalex = length_x / (xmax - xmin); - scaley = length_y / (ymax - ymin); -// SCRUTE(scalex); -// SCRUTE(scaley); - ASSERT(scalex); - ASSERT(scaley); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_MEFISTO_2D::StoreResult(SMESH_Mesh & aMesh, - Z nbst, R2 * uvst, Z nbt, Z * nust, - const TopoDS_Face & F, bool faceIsForward, - map&mefistoToDS) -{ - double scalex; - double scaley; - ComputeScaleOnFace(aMesh, F, scalex, scaley); - - SMESHDS_Mesh * meshDS = aMesh.GetMeshDS(); - - Z n, m; - Handle(Geom_Surface) S = BRep_Tool::Surface(F); - - for (n = 0; n < nbst; n++) - { - double u = uvst[n][0] / scalex; - double v = uvst[n][1] / scaley; - gp_Pnt P = S->Value(u, v); - - if (mefistoToDS.find(n + 1) == mefistoToDS.end()) - { - SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z()); - meshDS->SetNodeOnFace(node, F); - - //MESSAGE(nodeId<<" "<(node->GetPosition()); - fpos->SetUParameter(u); - fpos->SetVParameter(v); - } - } - - m = 0; - int mt = 0; - - //SCRUTE(faceIsForward); - for (n = 1; n <= nbt; n++) - { - int inode1 = nust[m++]; - int inode2 = nust[m++]; - int inode3 = nust[m++]; - - const SMDS_MeshNode *n1, *n2, *n3; - n1 = mefistoToDS[inode1]; - n2 = mefistoToDS[inode2]; - n3 = mefistoToDS[inode3]; - //MESSAGE("-- "<AddFace(n1, n2, n3); - else - elt = meshDS->AddFace(n1, n3, n2); - - meshDS->SetMeshElementOnShape(elt, F); - m++; - } -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -double SMESH_MEFISTO_2D::ComputeEdgeElementLength(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape) -{ - MESSAGE("SMESH_MEFISTO_2D::ComputeEdgeElementLength"); - // **** a mettre dans SMESH_2D_Algo ? - - const TopoDS_Face & FF = TopoDS::Face(aShape); - bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD); - TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD)); - - double meanElementLength = 100; - double wireLength = 0; - int wireElementsNumber = 0; - for (TopExp_Explorer exp(F, TopAbs_WIRE); exp.More(); exp.Next()) - { - const TopoDS_Wire & W = TopoDS::Wire(exp.Current()); - for (TopExp_Explorer expe(W, TopAbs_EDGE); expe.More(); expe.Next()) - { - const TopoDS_Edge & E = TopoDS::Edge(expe.Current()); - int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes(); - double length = EdgeLength(E); - wireLength += length; - wireElementsNumber += nb; - } - } - if (wireElementsNumber) - meanElementLength = wireLength / wireElementsNumber; - //SCRUTE(meanElementLength); - return meanElementLength; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & SMESH_MEFISTO_2D::SaveTo(ostream & save) -{ - return save << this; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & SMESH_MEFISTO_2D::LoadFrom(istream & load) -{ - return load >> (*this); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & operator <<(ostream & save, SMESH_MEFISTO_2D & hyp) -{ - return save; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & operator >>(istream & load, SMESH_MEFISTO_2D & hyp) -{ - return load; -} diff --git a/src/SMESH/SMESH_MEFISTO_2D.hxx b/src/SMESH/SMESH_MEFISTO_2D.hxx deleted file mode 100644 index 7727a86e0..000000000 --- a/src/SMESH/SMESH_MEFISTO_2D.hxx +++ /dev/null @@ -1,86 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MEFISTO_2D.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_MEFISTO_2D_HXX_ -#define _SMESH_MEFISTO_2D_HXX_ - -#include "SMESH_2D_Algo.hxx" -#include "SMESH_MaxElementArea.hxx" -#include "SMESH_LengthFromEdges.hxx" -#include "Rn.h" - -class SMDS_MeshNode; -#include -#include - -class SMESH_MEFISTO_2D: - public SMESH_2D_Algo -{ -public: - SMESH_MEFISTO_2D(int hypId, int studyId, SMESH_Gen* gen); - virtual ~SMESH_MEFISTO_2D(); - - virtual bool CheckHypothesis(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape); - - virtual bool Compute(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape); - - double ComputeEdgeElementLength(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape); - - void LoadPoints(SMESH_Mesh& aMesh, - const TopoDS_Face& F, - const TopoDS_Wire& W, - R2* uvslf, - int& m, - map& mefistoToDS); - - void ComputeScaleOnFace(SMESH_Mesh& aMesh, - const TopoDS_Face& aFace, - double& scalex, - double& scaley); - - void StoreResult (SMESH_Mesh& aMesh, - Z nbst, R2* uvst, Z nbt, Z* nust, - const TopoDS_Face& F, bool faceIsForward, - map& mefistoToDS); - - ostream & SaveTo(ostream & save); - istream & LoadFrom(istream & load); - friend ostream & operator << (ostream & save, SMESH_MEFISTO_2D & hyp); - friend istream & operator >> (istream & load, SMESH_MEFISTO_2D & hyp); - -protected: - double _edgeLength; - double _maxElementArea; - const SMESH_MaxElementArea* _hypMaxElementArea; - const SMESH_LengthFromEdges* _hypLengthFromEdges; -}; - -#endif diff --git a/src/SMESH/SMESH_MaxElementArea.cxx b/src/SMESH/SMESH_MaxElementArea.cxx deleted file mode 100644 index b44efdcb0..000000000 --- a/src/SMESH/SMESH_MaxElementArea.cxx +++ /dev/null @@ -1,136 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MaxElementArea.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_MaxElementArea.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_MaxElementArea::SMESH_MaxElementArea(int hypId, int studyId, SMESH_Gen* gen) - : SMESH_Hypothesis(hypId, studyId, gen) -{ - _maxArea =1.; - _name = "MaxElementArea"; -// SCRUTE(_name); -// SCRUTE(&_name); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_MaxElementArea::~SMESH_MaxElementArea() -{ -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_MaxElementArea::SetMaxArea(double maxArea) - throw (SALOME_Exception) -{ - double oldArea = _maxArea; - if (maxArea <= 0) - throw SALOME_Exception(LOCALIZED("maxArea must be positive")); - _maxArea = maxArea; - if (_maxArea != oldArea) - NotifySubMeshesHypothesisModification(); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -double SMESH_MaxElementArea::GetMaxArea() const -{ - return _maxArea; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & SMESH_MaxElementArea::SaveTo(ostream & save) -{ - return save << this; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & SMESH_MaxElementArea::LoadFrom(istream & load) -{ - return load >> (*this); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & operator << (ostream & save, SMESH_MaxElementArea & hyp) -{ - save << hyp._maxArea; - return save; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & operator >> (istream & load, SMESH_MaxElementArea & hyp) -{ - bool isOK = true; - double a; - isOK = (load >> a); - if (isOK) hyp._maxArea = a; - else load.clear(ios::badbit | load.rdstate()); - return load; -} - diff --git a/src/SMESH/SMESH_MaxElementArea.hxx b/src/SMESH/SMESH_MaxElementArea.hxx deleted file mode 100644 index cb60c66c5..000000000 --- a/src/SMESH/SMESH_MaxElementArea.hxx +++ /dev/null @@ -1,54 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MaxElementArea.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_MAXELEMENTAREA_HXX_ -#define _SMESH_MAXELEMENTAREA_HXX_ - -#include "SMESH_Hypothesis.hxx" -#include "Utils_SALOME_Exception.hxx" - -class SMESH_MaxElementArea:public SMESH_Hypothesis -{ - public: - SMESH_MaxElementArea(int hypId, int studyId, SMESH_Gen * gen); - virtual ~ SMESH_MaxElementArea(); - - void SetMaxArea(double maxArea) throw(SALOME_Exception); - - double GetMaxArea() const; - - virtual ostream & SaveTo(ostream & save); - virtual istream & LoadFrom(istream & load); - friend ostream & operator <<(ostream & save, SMESH_MaxElementArea & hyp); - friend istream & operator >>(istream & load, SMESH_MaxElementArea & hyp); - - protected: - double _maxArea; -}; - -#endif diff --git a/src/SMESH/SMESH_MaxElementVolume.cxx b/src/SMESH/SMESH_MaxElementVolume.cxx deleted file mode 100644 index cb25383d7..000000000 --- a/src/SMESH/SMESH_MaxElementVolume.cxx +++ /dev/null @@ -1,137 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MaxElementVolume.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; - -#include "SMESH_MaxElementVolume.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_MaxElementVolume::SMESH_MaxElementVolume(int hypId, int studyId, SMESH_Gen* gen) - : SMESH_Hypothesis(hypId, studyId, gen) -{ - _maxVolume =1.; - _name = "MaxElementVolume"; -// SCRUTE(_name); - SCRUTE(&_name); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_MaxElementVolume::~SMESH_MaxElementVolume() -{ - MESSAGE("SMESH_MaxElementVolume::~SMESH_MaxElementVolume"); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_MaxElementVolume::SetMaxVolume(double maxVolume) - throw (SALOME_Exception) -{ - double oldVolume = _maxVolume; - if (maxVolume <= 0) - throw SALOME_Exception(LOCALIZED("maxVolume must be positive")); - _maxVolume = maxVolume; - if (_maxVolume != oldVolume) - NotifySubMeshesHypothesisModification(); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -double SMESH_MaxElementVolume::GetMaxVolume() const -{ - return _maxVolume; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & SMESH_MaxElementVolume::SaveTo(ostream & save) -{ - return save << this; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & SMESH_MaxElementVolume::LoadFrom(istream & load) -{ - return load >> (*this); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & operator << (ostream & save, SMESH_MaxElementVolume & hyp) -{ - save << hyp._maxVolume; - return save; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & operator >> (istream & load, SMESH_MaxElementVolume & hyp) -{ - bool isOK = true; - double a; - isOK = (load >> a); - if (isOK) hyp._maxVolume = a; - else load.clear(ios::badbit | load.rdstate()); - return load; -} - diff --git a/src/SMESH/SMESH_MaxElementVolume.hxx b/src/SMESH/SMESH_MaxElementVolume.hxx deleted file mode 100644 index f69fb7747..000000000 --- a/src/SMESH/SMESH_MaxElementVolume.hxx +++ /dev/null @@ -1,56 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MaxElementVolume.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_MAXELEMENTVOLUME_HXX_ -#define _SMESH_MAXELEMENTVOLUME_HXX_ - -#include "SMESH_Hypothesis.hxx" -#include "Utils_SALOME_Exception.hxx" - -class SMESH_MaxElementVolume: - public SMESH_Hypothesis -{ -public: - SMESH_MaxElementVolume(int hypId, int studyId, SMESH_Gen* gen); - virtual ~SMESH_MaxElementVolume(); - - void SetMaxVolume(double maxVolume) - throw (SALOME_Exception); - - double GetMaxVolume() const; - - virtual ostream & SaveTo(ostream & save); - virtual istream & LoadFrom(istream & load); - friend ostream & operator << (ostream & save, SMESH_MaxElementVolume & hyp); - friend istream & operator >> (istream & load, SMESH_MaxElementVolume & hyp); - -protected: - double _maxVolume; -}; - -#endif diff --git a/src/SMESH/SMESH_NETGEN_3D.cxx b/src/SMESH/SMESH_NETGEN_3D.cxx deleted file mode 100644 index a7fc6d04c..000000000 --- a/src/SMESH/SMESH_NETGEN_3D.cxx +++ /dev/null @@ -1,1068 +0,0 @@ -//============================================================================= -// File : SMESH_NETGEN_3D.cxx -// Created : lundi 27 Janvier 2003 -// Author : Nadir BOUHAMOU (CEA) -// Project : SALOME -// Copyright : CEA 2003 -// $Header$ -//============================================================================= -using namespace std; - -#include "SMESH_NETGEN_3D.hxx" -#include "SMESH_MEFISTO_2D.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_Mesh.hxx" - -#include "SMDS_MeshElement.hxx" -#include "SMDS_MeshNode.hxx" -#include "SMDS_FacePosition.hxx" - -#include -#include -#include -#include -#include - -#include -#include -#include -#include - -#include "utilities.h" - -/* - Netgen include files -*/ - -#include "nglib.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_NETGEN_3D::SMESH_NETGEN_3D(int hypId, int studyId, - SMESH_Gen* gen) - : SMESH_3D_Algo(hypId, studyId, gen) -{ - MESSAGE("SMESH_NETGEN_3D::SMESH_NETGEN_3D"); - _name = "NETGEN_3D"; -// _shapeType = TopAbs_SOLID; - _shapeType = (1 << TopAbs_SHELL) | (1 << TopAbs_SOLID);// 1 bit /shape type -// MESSAGE("_shapeType octal " << oct << _shapeType); - _compatibleHypothesis.push_back("MaxElementVolume"); - - _maxElementVolume = 0.; - - _hypMaxElementVolume = NULL; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_NETGEN_3D::~SMESH_NETGEN_3D() -{ - MESSAGE("SMESH_NETGEN_3D::~SMESH_NETGEN_3D"); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -bool SMESH_NETGEN_3D::CheckHypothesis(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape) -{ - MESSAGE("SMESH_NETGEN_3D::CheckHypothesis"); - - _hypMaxElementVolume = NULL; - - list::const_iterator itl; - const SMESHDS_Hypothesis* theHyp; - - const list& hyps = GetUsedHypothesis(aMesh, aShape); - int nbHyp = hyps.size(); - if (nbHyp != 1) return false; // only one compatible hypothesis allowed - - itl = hyps.begin(); - theHyp = (*itl); - - string hypName = theHyp->GetName(); - int hypId = theHyp->GetID(); - SCRUTE(hypName); - - bool isOk = false; - - if (hypName == "MaxElementVolume") - { - _hypMaxElementVolume = static_cast (theHyp); - ASSERT(_hypMaxElementVolume); - _maxElementVolume = _hypMaxElementVolume->GetMaxVolume(); - isOk =true; - } - - return isOk; -} - -//============================================================================= -/*! - *Here we are going to use the NETGEN mesher - */ -//============================================================================= - -bool SMESH_NETGEN_3D::Compute(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape) - throw (SALOME_Exception) -{ - MESSAGE("SMESH_NETGEN_3D::Compute with maxElmentsize = " << _maxElementVolume); - - bool isOk = false; - SMESHDS_Mesh* meshDS = aMesh.GetMeshDS(); - SMESH_subMesh* theSubMesh = aMesh.GetSubMesh(aShape); - //const Handle(SMESHDS_SubMesh)& subMeshDS = theSubMesh->GetSubMeshDS(); - - map netgenToDS; - - MESSAGE("SMESH_NETGEN_3D::Compute Checking the mesh Faces"); - - // check if all faces were meshed by a triangle mesher (here MESFISTO_2D) - - vector meshFaces; - vector shapeFaces; - - for (TopExp_Explorer exp(aShape,TopAbs_FACE);exp.More();exp.Next()) - { - TopoDS_Shape aShapeFace = exp.Current(); - SMESH_subMesh* aSubMesh = aMesh.GetSubMeshContaining(exp.Current()); - ASSERT (aSubMesh); - int internal_size = meshFaces.size(); - int index = 0; - for (int i = 0;iGetSubShape(); - TopoDS_Shape aFace = shapeFaces[i]; - SMESH_Algo* algoFace = _gen->GetAlgo(aMesh, aShapeFace); - string algoFaceName = algoFace->GetName(); - SCRUTE(algoFaceName); - if (algoFaceName != "MEFISTO_2D") - { - SCRUTE(algoFaceName); - ASSERT(0); - return false; - } - - bool orientationMeshFace = (aFace.Orientation() == aShapeFace.Orientation()); - - const SMESHDS_SubMesh* aSubMeshDSFace = meshFaces[i]->GetSubMeshDS(); - SCRUTE(aSubMeshDSFace); - - int nbNodes = aSubMeshDSFace->NbNodes(); - NbTotOfNodesFaces += nbNodes; - int nbTria = aSubMeshDSFace->NbElements(); - NbTotOfTria += nbTria; - int index = 0; - - MESSAGE("SMESH_NETGEN_3D::Compute The mesh Face " << (i+1) << " has " << nbNodes << " face internal Nodes, " << nbTria << " triangles"); - - SCRUTE(orientationMeshFace); - - if (orientationMeshFace) - { - MESSAGE("The mesh and face have the same orientation"); - } - else - { - MESSAGE("The mesh and face have different orientations"); - } - - SMDS_Iterator * iteratorNodes = aSubMeshDSFace->GetNodes(); - SCRUTE(nbNodes); - index = 0; - while(iteratorNodes->more()) - { - index++; - const SMDS_MeshNode * node = iteratorNodes->next(); -// int nodeId = node->GetID(); -// double nodeX = node->X(); -// double nodeY = node->Y(); -// double nodeZ = node->Z(); -// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); - } - delete iteratorNodes; - - SCRUTE(index); - - SMDS_Iterator * iteratorTriangle = aSubMeshDSFace->GetElements(); - - SCRUTE(nbTria); - index = 0; - int numberOfDegeneratedTriangle = 0; - while(iteratorTriangle->more()) - { - index++; - const SMDS_MeshElement * triangle = iteratorTriangle->next(); - int triangleId = triangle->GetID(); - - SMDS_Iterator * triangleNodesIt = triangle->nodesIterator(); - - const SMDS_MeshNode * node1 = static_cast(triangleNodesIt->next()); - double node1X = node1->X(); - double node1Y = node1->Y(); - double node1Z = node1->Z(); - - const SMDS_MeshNode * node2 = static_cast(triangleNodesIt->next()); - double node2X = node2->X(); - double node2Y = node2->Y(); - double node2Z = node2->Z(); - - const SMDS_MeshNode * node3 = static_cast(triangleNodesIt->next()); - double node3X = node3->X(); - double node3Y = node3->Y(); - double node3Z = node3->Z(); - - int triangleNode1 = node1->GetID(); - int triangleNode2 = node2->GetID(); - int triangleNode3 = node3->GetID(); - - // Compute the triangle surface - - double vect1 = ((node2Y - node1Y)*(node3Z - node1Z) - (node2Z - node1Z)*(node3Y - node1Y)); - double vect2 = - ((node2X - node1X)*(node3Z - node1Z) - (node2Z - node1Z)*(node3X - node1X)); - double vect3 = ((node2X - node1X)*(node3Y - node1Y) - (node2Y - node1Y)*(node3X - node1X)); - double epsilon = 1.0e-6; - - bool triangleIsDegenerated = ((abs(vect1) ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3 << " is degenerated"); -// MESSAGE("NODE -> ID = " << triangleNode1 << " X = " << node1X << " Y = " << node1Y << " Z = " << node1Z); -// MESSAGE("NODE -> ID = " << triangleNode2 << " X = " << node2X << " Y = " << node2Y << " Z = " << node2Z); -// MESSAGE("NODE -> ID = " << triangleNode3 << " X = " << node3X << " Y = " << node3Y << " Z = " << node3Z); - numberOfDegeneratedTriangle++; - } - else - { -// MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3 << " is normal"); - } - } - - delete iteratorTriangle; - - if (numberOfDegeneratedTriangle > 0) - MESSAGE("WARNING THERE IS(ARE) " << numberOfDegeneratedTriangle << " degenerated triangle on this face"); - - SCRUTE(index); - } - - - - SCRUTE(NbTotOfTria); - SCRUTE(NbTotOfNodesFaces); - - MESSAGE("SMESH_NETGEN_3D::Compute Checking the mesh Edges"); - - // check if all edges were meshed by a edge mesher (here Regular_1D) - - vector meshEdges; - for (TopExp_Explorer exp(aShape,TopAbs_EDGE);exp.More();exp.Next()) - { - SMESH_subMesh* aSubMesh = aMesh.GetSubMeshContaining(exp.Current()); - ASSERT (aSubMesh); - int internal_size = meshEdges.size(); - int index = 0; - for (int i = 0;iGetSubShape(); - SMESH_Algo* algoEdge = _gen->GetAlgo(aMesh, aShapeEdge); - string algoEdgeName = algoEdge->GetName(); - SCRUTE(algoEdgeName); - if (algoEdgeName != "Regular_1D") - { - SCRUTE(algoEdgeName); - ASSERT(0); - return false; - } - - const SMESHDS_SubMesh* aSubMeshDSEdge = meshEdges[i]->GetSubMeshDS(); - SCRUTE(aSubMeshDSEdge); - - int nbNodes = aSubMeshDSEdge->NbNodes(); - NbTotOfNodesEdges += nbNodes; - int nbSegs = aSubMeshDSEdge->NbElements(); - NbTotOfSegs += nbSegs; - - MESSAGE("SMESH_NETGEN_3D::Compute The mesh Edge " << (i+1) << " has " << nbNodes << " edge internal Nodes, " << nbSegs << " segments"); - - SMDS_Iterator * iteratorNodes = aSubMeshDSEdge->GetNodes(); - SCRUTE(nbNodes); - int index = 0; - while(iteratorNodes->more()) - { - index++; - const SMDS_MeshNode * node = iteratorNodes->next(); -// int nodeId = node->GetID(); -// double nodeX = node->X(); -// double nodeY = node->Y(); -// double nodeZ = node->Z(); -// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); - } - delete iteratorNodes; - - SCRUTE(index); - } - - SCRUTE(NbTotOfNodesEdges); - SCRUTE(NbTotOfSegs); - - MESSAGE("SMESH_NETGEN_3D::Compute Checking the mesh Vertices"); - - vector meshVertices; - for (TopExp_Explorer exp(aShape,TopAbs_VERTEX);exp.More();exp.Next()) - { - SMESH_subMesh* aSubMesh = aMesh.GetSubMeshContaining(exp.Current()); - ASSERT (aSubMesh); - int internal_size = meshVertices.size(); - int index = 0; - for (int i = 0;iGetSubShape(); - - const SMESHDS_SubMesh * aSubMeshDSVertex = meshVertices[i]->GetSubMeshDS(); - SCRUTE(aSubMeshDSVertex); - - int nbNodes = aSubMeshDSVertex->NbNodes(); - NbTotOfNodesVertices += nbNodes; - - MESSAGE("SMESH_NETGEN_3D::Compute The mesh Vertex " << (i+1) << " has " << nbNodes << " Nodes"); - - SMDS_Iterator * iteratorNodes = aSubMeshDSVertex->GetNodes(); - SCRUTE(nbNodes); - int index = 0; - while(iteratorNodes->more()) - { - index++; - const SMDS_MeshNode * node = iteratorNodes->next(); -// int nodeId = node->GetID(); -// double nodeX = node->X(); -// double nodeY = node->Y(); -// double nodeZ = node->Z(); -// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); - } - delete iteratorNodes; - - SCRUTE(index); - } - - SCRUTE(NbTotOfNodesVertices); - - MESSAGE("SMESH_NETGEN_3D::Compute --> Analysis of all shell mesh"); - - vector meshShells; - TopoDS_Shell aShell; - - for (TopExp_Explorer exp(aShape,TopAbs_SHELL);exp.More();exp.Next()) - { - SMESH_subMesh* aSubMesh = aMesh.GetSubMesh(exp.Current()); - ASSERT(aSubMesh); - SCRUTE(aSubMesh); - aShell = TopoDS::Shell(exp.Current()); - meshShells.push_back(aSubMesh); - } - - int numberOfShells = meshShells.size(); - SCRUTE(numberOfShells); - - if (numberOfShells == 1) - { - MESSAGE("SMESH_NETGEN_3D::Compute Only one shell --> generation of the mesh using directly Netgen"); - - /* - Prepare the Netgen surface mesh from the SMESHDS - */ - - MESSAGE("SMESH_NETGEN_3D::Compute Prepare the Netgen surface mesh from the SMESHDS"); - - int spaceDimension = 3; - int nbNodesByTri = 3; - int nbNodesByTetra = 4; - - int Netgen_NbOfNodes = NbTotOfNodesFaces + - NbTotOfNodesEdges + - NbTotOfNodesVertices; - int Netgen_NbOfTria = NbTotOfTria; - int Netgen_param2ndOrder = 0; - double Netgen_paramFine = 1.; - double Netgen_paramSize = _maxElementVolume; - - SCRUTE(Netgen_NbOfNodes); - SCRUTE(Netgen_NbOfTria); - - double * Netgen_Coordinates = new double [spaceDimension* - Netgen_NbOfNodes]; - int * listNodeCoresNetgenSmesh = new int [Netgen_NbOfNodes]; - int * Netgen_Connectivity = new int [nbNodesByTri*Netgen_NbOfTria]; - double * Netgen_point = new double [spaceDimension]; - int * Netgen_triangle = new int [nbNodesByTri]; - int * Netgen_tetrahedron = new int [nbNodesByTetra]; - - for (int i=0; iGetSubMeshDS(); - - SMDS_Iterator * iteratorNodes = aSubMeshDSVertex->GetNodes(); - - while(iteratorNodes->more()) - { - const SMDS_MeshNode * node = iteratorNodes->next(); - int nodeId = node->GetID(); - double nodeX = node->X(); - double nodeY = node->Y(); - double nodeZ = node->Z(); -// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); - listNodeCoresNetgenSmesh[indexNodes] = nodeId; - int index = indexNodes*spaceDimension; - Netgen_Coordinates[index] = nodeX; - Netgen_Coordinates[index+1] = nodeY; - Netgen_Coordinates[index+2] = nodeZ; - netgenToDS[indexNodes] = node; - indexNodes++; - } - delete iteratorNodes; - } - - for (int i=0; iGetSubMeshDS(); - - SMDS_Iterator * iteratorNodes = aSubMeshDSEdge->GetNodes(); - - while(iteratorNodes->more()) - { - const SMDS_MeshNode * node = iteratorNodes->next(); - int nodeId = node->GetID(); - double nodeX = node->X(); - double nodeY = node->Y(); - double nodeZ = node->Z(); -// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); - listNodeCoresNetgenSmesh[indexNodes] = node->GetID(); - int index = indexNodes*spaceDimension; - Netgen_Coordinates[index] = node->X(); - Netgen_Coordinates[index+1] = node->Y(); - Netgen_Coordinates[index+2] = node->Z(); - netgenToDS[indexNodes] = node; - indexNodes++; - } - delete iteratorNodes; - } - - for (int i=0; iGetSubMeshDS(); - - SMDS_Iterator * iteratorNodes = aSubMeshDSFace->GetNodes(); - - while(iteratorNodes->more()) - { - const SMDS_MeshNode * node = iteratorNodes->next(); - int nodeId = node->GetID(); - double nodeX = node->X(); - double nodeY = node->Y(); - double nodeZ = node->Z(); -// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); - listNodeCoresNetgenSmesh[indexNodes] = nodeId; - int index = indexNodes*spaceDimension; - Netgen_Coordinates[index] = nodeX; - Netgen_Coordinates[index+1] = nodeY; - Netgen_Coordinates[index+2] = nodeZ; - netgenToDS[indexNodes] = node; - indexNodes++; - } - delete iteratorNodes; - } - - SCRUTE(indexNodes); - - for (int i=0; iGetSubMeshDS(); - - TopoDS_Shape aFace = shapeFaces[i]; - - SMDS_Iterator * iteratorTriangle = aSubMeshDSFace->GetElements(); - - TopoDS_Shape aShapeFace = meshFaces[i]->GetSubShape(); - - bool orientationMeshFace = (aFace.Orientation() == aShapeFace.Orientation()); - - SCRUTE(orientationMeshFace); - - if (orientationMeshFace) - { - MESSAGE("The mesh and face have the same orientation"); - - while(iteratorTriangle->more()) - { - const SMDS_MeshElement * triangle = iteratorTriangle->next(); - int triangleId = triangle->GetID(); - - SMDS_Iterator * triangleNodesIt = triangle->nodesIterator(); - - int triangleNode1 = (triangleNodesIt->next())->GetID(); - int triangleNode2 = (triangleNodesIt->next())->GetID(); - int triangleNode3 = (triangleNodesIt->next())->GetID(); - -// MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3); - - int N1New = 0; - int N2New = 0; - int N3New = 0; - int index = indexTrias*nbNodesByTri; - - for (int j=0; jmore()) - { - const SMDS_MeshElement * triangle = iteratorTriangle->next(); - int triangleId = triangle->GetID(); - - SMDS_Iterator * triangleNodesIt = triangle->nodesIterator(); - - int triangleNode1 = (triangleNodesIt->next())->GetID(); - int triangleNode3 = (triangleNodesIt->next())->GetID(); - int triangleNode2 = (triangleNodesIt->next())->GetID(); - -// MESSAGE("TRIANGLE -> ID = " << triangleId << " N1 = " << triangleNode1 << " N2 = " << triangleNode2 << " N3 = " << triangleNode3); - - int N1New = 0; - int N2New = 0; - int N3New = 0; - int index = indexTrias*nbNodesByTri; - - for (int j=0; j=1) && (Nij<=Netgen_NbOfNodes)); - - nodesUsed[Nij-1] = 1; - Netgen_Connectivity[i*nbNodesByTri+j] = Nij; - } - - for (int i=0; i Adding the New Nodes to SMESHDS"); - - for (int i=0; iAddNode(Netgen_CoordinatesNew[index], - Netgen_CoordinatesNew[index+1], - Netgen_CoordinatesNew[index+2]); - - meshDS->SetNodeInVolume(node, aShell); - - index = i+Netgen_NbOfNodes; - netgenToDS[index] = node; - - listNodeShellCoresNetgenSmesh[i] = node->GetID(); - } - - SCRUTE(Netgen_NbOfNodesNew); - - SCRUTE(netgenToDS.size()); - - for (int i=0; i Adding the New elements (Tetrahedrons) to the SMESHDS"); - - for (int i=0; iAddVolume(node1,node2,node3,node4); - - meshDS->SetMeshElementOnShape(elt, aShell); - } - - /* - Free the memory needed by to generate the Netgen Mesh - */ - - MESSAGE("SMESH_NETGEN_3D::Compute Free the memory needed by to generate the Netgen Mesh"); - - delete [] Netgen_Coordinates; - delete [] Netgen_Connectivity; - delete [] Netgen_CoordinatesNew; - delete [] Netgen_ConnectivityNew; - delete [] Netgen_point; - delete [] Netgen_triangle; - delete [] Netgen_tetrahedron; - - delete [] listNodeCoresNetgenSmesh; - delete [] listNodeShellCoresNetgenSmesh; - - Ng_DeleteMesh(Netgen_mesh); - Ng_Exit(); - - /* - Verification - */ - - { - MESSAGE("SMESH_NETGEN_3D::Compute Verification of the Shell mesh"); - - TopoDS_Shape aShapeShell = meshShells[0]->GetSubShape(); - SMESH_Algo* algoShell = _gen->GetAlgo(aMesh, aShapeShell); - string algoShellName = algoShell->GetName(); - SCRUTE(algoShellName); - if (algoShellName != "NETGEN_3D") - { - SCRUTE(algoShellName); - ASSERT(0); - return false; - } - - const SMESHDS_SubMesh * aSubMeshDSShell = meshShells[0]->GetSubMeshDS(); - SCRUTE(&aSubMeshDSShell); - - int nbNodes = aSubMeshDSShell->NbNodes(); - int nbTetra = aSubMeshDSShell->NbElements(); - - MESSAGE("SMESH_NETGEN_3D::Compute The mesh Shell has " << nbNodes << " shell internal Nodes, " << nbTetra << " tetrahedrons"); - - SMDS_Iterator * iteratorNodes = aSubMeshDSShell->GetNodes(); - - SCRUTE(nbNodes); - - int index; - - index = 0; - - while(iteratorNodes->more()) - { - index++; - const SMDS_MeshNode * node = iteratorNodes->next(); - int nodeId = node->GetID(); - double nodeX = node->X(); - double nodeY = node->Y(); - double nodeZ = node->Z(); -// MESSAGE("NODE -> ID = " << nodeId << " X = " << nodeX << " Y = " << nodeY << " Z = " << nodeZ); - } - delete iteratorNodes; - - SCRUTE(index); - - SMDS_Iterator * iteratorTetra = aSubMeshDSShell->GetElements(); - - SCRUTE(nbTetra); - - index = 0; - while(iteratorTetra->more()) - { - index++; - const SMDS_MeshElement * tetra = iteratorTetra->next(); - int tetraId = tetra->GetID(); - - SMDS_Iterator * tetraNodesIt = tetra->nodesIterator(); - - int tetraNode1 = (tetraNodesIt->next())->GetID(); - int tetraNode2 = (tetraNodesIt->next())->GetID(); - int tetraNode3 = (tetraNodesIt->next())->GetID(); - int tetraNode4 = (tetraNodesIt->next())->GetID(); - -// MESSAGE("TETRAHEDRON -> ID = " << tetraId << " N1 = " << tetraNode1 << " N2 = " << tetraNode2 << " N3 = " << tetraNode3 << " N4 = " << tetraNode4); - - } - delete iteratorTetra; - - SCRUTE(index); - } - } - else - { - SCRUTE(numberOfShells); - MESSAGE("SMESH_NETGEN_3D::Compute ERROR More than one shell ????? "); - return false; - } - - return true; -} - - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & SMESH_NETGEN_3D::SaveTo(ostream & save) -{ - return save << this; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & SMESH_NETGEN_3D::LoadFrom(istream & load) -{ - return load >> (*this); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & operator << (ostream & save, SMESH_NETGEN_3D & hyp) -{ - return save; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & operator >> (istream & load, SMESH_NETGEN_3D & hyp) -{ - return load; -} diff --git a/src/SMESH/SMESH_NETGEN_3D.hxx b/src/SMESH/SMESH_NETGEN_3D.hxx deleted file mode 100644 index 9606eb010..000000000 --- a/src/SMESH/SMESH_NETGEN_3D.hxx +++ /dev/null @@ -1,42 +0,0 @@ -//============================================================================= -// File : SMESH_NETGEN_3D.hxx -// Created : lundi 27 Janvier 2003 -// Author : Nadir BOUHAMOU (CEA) -// Project : SALOME -// Copyright : CEA 2003 -// $Header$ -//============================================================================= - -#ifndef _SMESH_NETGEN_3D_HXX_ -#define _SMESH_NETGEN_3D_HXX_ - -#include "SMESH_3D_Algo.hxx" -#include "SMESH_Mesh.hxx" -#include "SMESH_MaxElementVolume.hxx" -#include "Utils_SALOME_Exception.hxx" - -class SMESH_NETGEN_3D: public SMESH_3D_Algo -{ -public: - SMESH_NETGEN_3D(int hypId, int studyId, SMESH_Gen* gen); - virtual ~SMESH_NETGEN_3D(); - - virtual bool CheckHypothesis(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape); - - virtual bool Compute(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape) - throw (SALOME_Exception); - - ostream & SaveTo(ostream & save); - istream & LoadFrom(istream & load); - friend ostream & operator << (ostream & save, SMESH_NETGEN_3D & hyp); - friend istream & operator >> (istream & load, SMESH_NETGEN_3D & hyp); - -protected: - double _maxElementVolume; - - const SMESH_MaxElementVolume* _hypMaxElementVolume; -}; - -#endif diff --git a/src/SMESH/SMESH_NumberOfSegments.cxx b/src/SMESH/SMESH_NumberOfSegments.cxx deleted file mode 100644 index 0e5d6c4d2..000000000 --- a/src/SMESH/SMESH_NumberOfSegments.cxx +++ /dev/null @@ -1,163 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_NumberOfSegments.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -#include "SMESH_NumberOfSegments.hxx" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_NumberOfSegments::SMESH_NumberOfSegments(int hypId, int studyId, - SMESH_Gen * gen):SMESH_Hypothesis(hypId, studyId, gen) -{ - _numberOfSegments = 1; - _scaleFactor = 1.0; - _name = "NumberOfSegments"; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_NumberOfSegments::~SMESH_NumberOfSegments() -{ -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_NumberOfSegments::SetNumberOfSegments(int segmentsNumber) -throw(SALOME_Exception) -{ - int oldNumberOfSegments = _numberOfSegments; - if (segmentsNumber <= 0) - throw - SALOME_Exception(LOCALIZED("number of segments must be positive")); - _numberOfSegments = segmentsNumber; - - if (oldNumberOfSegments != _numberOfSegments) - NotifySubMeshesHypothesisModification(); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -int SMESH_NumberOfSegments::GetNumberOfSegments() const -{ - return _numberOfSegments; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_NumberOfSegments::SetScaleFactor(double scaleFactor) -throw(SALOME_Exception) -{ - if (scaleFactor < 0) - throw SALOME_Exception(LOCALIZED("scale factor must be positive")); - _scaleFactor = scaleFactor; - - NotifySubMeshesHypothesisModification(); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -double SMESH_NumberOfSegments::GetScaleFactor() const -{ - return _scaleFactor; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & SMESH_NumberOfSegments::SaveTo(ostream & save) -{ - return save << this; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & SMESH_NumberOfSegments::LoadFrom(istream & load) -{ - return load >> (*this); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & operator <<(ostream & save, SMESH_NumberOfSegments & hyp) -{ - save << hyp._numberOfSegments; - return save; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & operator >>(istream & load, SMESH_NumberOfSegments & hyp) -{ - bool isOK = true; - int a; - isOK = (load >> a); - if (isOK) - hyp._numberOfSegments = a; - else - load.clear(ios::badbit | load.rdstate()); - return load; -} diff --git a/src/SMESH/SMESH_NumberOfSegments.hxx b/src/SMESH/SMESH_NumberOfSegments.hxx deleted file mode 100644 index 5071c92c2..000000000 --- a/src/SMESH/SMESH_NumberOfSegments.hxx +++ /dev/null @@ -1,62 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_NumberOfSegments.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_NUMBEROFSEGMENTS_HXX_ -#define _SMESH_NUMBEROFSEGMENTS_HXX_ - -#include "SMESH_Hypothesis.hxx" -#include "Utils_SALOME_Exception.hxx" - -class SMESH_NumberOfSegments: - public SMESH_Hypothesis -{ -public: - SMESH_NumberOfSegments(int hypId, int studyId, SMESH_Gen* gen); - virtual ~SMESH_NumberOfSegments(); - - void SetNumberOfSegments(int segmentsNumber) - throw (SALOME_Exception); - - int GetNumberOfSegments() const; - - void SetScaleFactor(double scaleFactor) - throw (SALOME_Exception); - - double GetScaleFactor() const; - - virtual ostream & SaveTo(ostream & save); - virtual istream & LoadFrom(istream & load); - friend ostream& operator << (ostream & save, SMESH_NumberOfSegments & hyp); - friend istream& operator >> (istream & load, SMESH_NumberOfSegments & hyp); - -protected: - int _numberOfSegments; - double _scaleFactor; -}; - -#endif diff --git a/src/SMESH/SMESH_Quadrangle_2D.cxx b/src/SMESH/SMESH_Quadrangle_2D.cxx deleted file mode 100644 index eab7b2838..000000000 --- a/src/SMESH/SMESH_Quadrangle_2D.cxx +++ /dev/null @@ -1,640 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Quadrangle_2D.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -#include "SMESH_Quadrangle_2D.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_Mesh.hxx" - -#include "SMDS_MeshElement.hxx" -#include "SMDS_MeshNode.hxx" -#include "SMDS_EdgePosition.hxx" -#include "SMDS_FacePosition.hxx" - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#include "utilities.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Quadrangle_2D::SMESH_Quadrangle_2D(int hypId, - int studyId, SMESH_Gen * gen):SMESH_2D_Algo(hypId, studyId, gen) -{ - MESSAGE("SMESH_Quadrangle_2D::SMESH_Quadrangle_2D"); - _name = "Quadrangle_2D"; - // _shapeType = TopAbs_FACE; - _shapeType = (1 << TopAbs_FACE); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Quadrangle_2D::~SMESH_Quadrangle_2D() -{ - MESSAGE("SMESH_Quadrangle_2D::~SMESH_Quadrangle_2D"); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -bool SMESH_Quadrangle_2D::CheckHypothesis(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape) -{ - //MESSAGE("SMESH_Quadrangle_2D::CheckHypothesis"); - - bool isOk = true; - - // nothing to check - - return isOk; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -bool SMESH_Quadrangle_2D::Compute(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape)throw(SALOME_Exception) -{ - //MESSAGE("SMESH_Quadrangle_2D::Compute"); - SMESHDS_Mesh * meshDS = aMesh.GetMeshDS(); - SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape); - - FaceQuadStruct *quad = CheckAnd2Dcompute(aMesh, aShape); - if (!quad) - return false; - - // --- compute 3D values on points, store points & quadrangles - - int nbdown = quad->nbPts[0]; - int nbright = quad->nbPts[1]; - int nbVertices = nbdown * nbright; - int nbQuad = (nbdown - 1) * (nbright - 1); - //SCRUTE(nbVertices); - //SCRUTE(nbQuad); - - // const TopoDS_Face& FF = TopoDS::Face(aShape); - // bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD); - // TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD)); - const TopoDS_Face & F = TopoDS::Face(aShape); - bool faceIsForward = (F.Orientation() == TopAbs_FORWARD); - Handle(Geom_Surface) S = BRep_Tool::Surface(F); - - for (int i = 1; i < nbdown - 1; i++) - for (int j = 1; j < nbright - 1; j++) // internal points - { - int ij = j * nbdown + i; - double u = quad->uv_grid[ij].u; - double v = quad->uv_grid[ij].v; - gp_Pnt P = S->Value(u, v); - SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z()); - meshDS->SetNodeOnFace(node, F); - quad->uv_grid[ij].node = node; -// Handle (SMDS_FacePosition) fpos -// = new SMDS_FacePosition(theSubMesh->GetId(),i,j); // easier than u,v -// node->SetPosition(fpos); - SMDS_FacePosition* fpos - = dynamic_cast(node->GetPosition()); - fpos->SetUParameter(i); - fpos->SetVParameter(j); - } - - // bool isQuadForward = ( faceIsForward == quad->isEdgeForward[0]); - for (int i = 0; i < nbdown - 1; i++) - for (int j = 0; j < nbright - 1; j++) // faces - { - const SMDS_MeshNode *a, *b, *c, *d; - a = quad->uv_grid[j * nbdown + i].node; - b = quad->uv_grid[j * nbdown + i + 1].node; - c = quad->uv_grid[(j + 1) * nbdown + i + 1].node; - d = quad->uv_grid[(j + 1) * nbdown + i].node; - // if (isQuadForward) faceId = meshDS->AddFace(a,b,c,d); - // else faceId = meshDS->AddFace(a,d,c,b); - SMDS_MeshFace * face = meshDS->AddFace(a, b, c, d); - meshDS->SetMeshElementOnShape(face, F); - } - - QuadDelete(quad); - bool isOk = true; - return isOk; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -FaceQuadStruct *SMESH_Quadrangle_2D::CheckAnd2Dcompute(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape)throw(SALOME_Exception) -{ - //MESSAGE("SMESH_Quadrangle_2D::ComputeWithoutStore"); - - SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape); - - // const TopoDS_Face& FF = TopoDS::Face(aShape); - // bool faceIsForward = (FF.Orientation() == TopAbs_FORWARD); - // TopoDS_Face F = TopoDS::Face(FF.Oriented(TopAbs_FORWARD)); - const TopoDS_Face & F = TopoDS::Face(aShape); - bool faceIsForward = (F.Orientation() == TopAbs_FORWARD); - - // verify 1 wire only, with 4 edges, same number of points on opposite edges - - if (NumberOfWires(F) != 1) - { - MESSAGE("only 1 wire by face (quadrangles)"); - return 0; - //throw SALOME_Exception(LOCALIZED("only 1 wire by face (quadrangles)")); - } - // const TopoDS_Wire WW = BRepTools::OuterWire(F); - // TopoDS_Wire W = TopoDS::Wire(WW.Oriented(TopAbs_FORWARD)); - const TopoDS_Wire & W = BRepTools::OuterWire(F); - BRepTools_WireExplorer wexp(W, F); - - FaceQuadStruct *quad = new FaceQuadStruct; - for (int i = 0; i < 4; i++) - quad->uv_edges[i] = 0; - quad->uv_grid = 0; - - int nbEdges = 0; - for (wexp.Init(W, F); wexp.More(); wexp.Next()) - { - // const TopoDS_Edge& EE = wexp.Current(); - // TopoDS_Edge E = TopoDS::Edge(EE.Oriented(TopAbs_FORWARD)); - const TopoDS_Edge & E = wexp.Current(); - int nb = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes(); - if (nbEdges < 4) - { - quad->edge[nbEdges] = E; - quad->nbPts[nbEdges] = nb + 2; // internal points + 2 extrema - } - nbEdges++; - } - - if (nbEdges != 4) - { - MESSAGE("face must have 4 edges /quadrangles"); - QuadDelete(quad); - return 0; - //throw SALOME_Exception(LOCALIZED("face must have 4 edges /quadrangles")); - } - - if (quad->nbPts[0] != quad->nbPts[2]) - { - MESSAGE("different point number-opposed edge"); - QuadDelete(quad); - return 0; - //throw SALOME_Exception(LOCALIZED("different point number-opposed edge")); - } - - if (quad->nbPts[1] != quad->nbPts[3]) - { - MESSAGE("different point number-opposed edge"); - QuadDelete(quad); - return 0; - //throw SALOME_Exception(LOCALIZED("different point number-opposed edge")); - } - - // set normalized grid on unit square in parametric domain - - SetNormalizedGrid(aMesh, F, quad); - - return quad; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_Quadrangle_2D::QuadDelete(FaceQuadStruct * quad) -{ - //MESSAGE("SMESH_Quadrangle_2D::QuadDelete"); - if (quad) - { - for (int i = 0; i < 4; i++) - { - if (quad->uv_edges[i]) - delete[]quad->uv_edges[i]; - quad->edge[i].Nullify(); - } - if (quad->uv_grid) - delete[]quad->uv_grid; - delete quad; - } -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_Quadrangle_2D::SetNormalizedGrid(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape, FaceQuadStruct * quad) throw(SALOME_Exception) -{ - // Algorithme décrit dans "Génération automatique de maillages" - // P.L. GEORGE, MASSON, § 6.4.1 p. 84-85 - // traitement dans le domaine paramétrique 2d u,v - // transport - projection sur le carré unité - - const TopoDS_Face & F = TopoDS::Face(aShape); - - // 1 --- find orientation of the 4 edges, by test on extrema - - // max min 0 x1 1 - // |<----north-2-------^ a3 -------------> a2 - // | | ^1 1^ - // west-3 east-1 =right | | - // | | ==> | | - // y0 | | y1 | | - // | | |0 0| - // v----south-0--------> a0 -------------> a1 - // min max 0 x0 1 - // =down - // - - Handle(Geom2d_Curve) c2d[4]; - gp_Pnt2d pf[4]; - gp_Pnt2d pl[4]; - for (int i = 0; i < 4; i++) - { - c2d[i] = BRep_Tool::CurveOnSurface(quad->edge[i], - F, quad->first[i], quad->last[i]); - pf[i] = c2d[i]->Value(quad->first[i]); - pl[i] = c2d[i]->Value(quad->last[i]); - quad->isEdgeForward[i] = false; - } - - double eps2d = 1.e-3; // *** utiliser plutot TopExp::CommonVertex, puis - // distances si piece fausse - int i = 0; - if ((pf[1].Distance(pl[0]) < eps2d) || (pl[1].Distance(pl[0]) < eps2d)) - { - quad->isEdgeForward[0] = true; - } - else - { - double tmp = quad->first[0]; - quad->first[0] = quad->last[0]; - quad->last[0] = tmp; - pf[0] = c2d[0]->Value(quad->first[0]); - pl[0] = c2d[0]->Value(quad->last[0]); - } - for (int i = 1; i < 4; i++) - { - quad->isEdgeForward[i] = (pf[i].Distance(pl[i - 1]) < eps2d); - if (!quad->isEdgeForward[i]) - { - double tmp = quad->first[i]; - quad->first[i] = quad->last[i]; - quad->last[i] = tmp; - pf[i] = c2d[i]->Value(quad->first[i]); - pl[i] = c2d[i]->Value(quad->last[i]); - //SCRUTE(pf[i].Distance(pl[i-1])); - ASSERT(pf[i].Distance(pl[i - 1]) < eps2d); - } - } - //SCRUTE(pf[0].Distance(pl[3])); - ASSERT(pf[0].Distance(pl[3]) < eps2d); - -// for (int i=0; i<4; i++) -// { -// SCRUTE(quad->isEdgeForward[i]); -// MESSAGE(" -first "<uv_edges[i] = LoadEdgePoints(aMesh, F, - quad->edge[i], quad->first[i], quad->last[i]); - - // quad->isEdgeForward[i]); - } - for (int i = 2; i < 4; i++) - { - quad->uv_edges[i] = LoadEdgePoints(aMesh, F, - quad->edge[i], quad->last[i], quad->first[i]); - - // !quad->isEdgeForward[i]); - } - - // 3 --- 2D normalized values on unit square [0..1][0..1] - - int nbdown = quad->nbPts[0]; - int nbright = quad->nbPts[1]; - quad->uv_grid = new UVPtStruct[nbright * nbdown]; - - UVPtStruct *uv_grid = quad->uv_grid; - UVPtStruct *uv_e0 = quad->uv_edges[0]; - UVPtStruct *uv_e1 = quad->uv_edges[1]; - UVPtStruct *uv_e2 = quad->uv_edges[2]; - UVPtStruct *uv_e3 = quad->uv_edges[3]; - gp_Pnt2d a0 = pf[0]; - gp_Pnt2d a1 = pf[1]; - gp_Pnt2d a2 = pf[2]; - gp_Pnt2d a3 = pf[3]; - - // nodes Id on edges - - int j = 0; - for (int i = 0; i < nbdown; i++) - { - int ij = j * nbdown + i; - uv_grid[ij].node = uv_e0[i].node; - } - i = nbdown - 1; - for (int j = 0; j < nbright; j++) - { - int ij = j * nbdown + i; - uv_grid[ij].node = uv_e1[j].node; - } - j = nbright - 1; - for (int i = 0; i < nbdown; i++) - { - int ij = j * nbdown + i; - uv_grid[ij].node = uv_e2[i].node; - } - i = 0; - for (int j = 0; j < nbright; j++) - { - int ij = j * nbdown + i; - uv_grid[ij].node = uv_e3[j].node; - } - - // normalized 2d values on grid - - for (int i = 0; i < nbdown; i++) - for (int j = 0; j < nbright; j++) - { - int ij = j * nbdown + i; - // --- droite i cste : x = x0 + y(x1-x0) - double x0 = uv_e0[i].normParam; // bas - sud - double x1 = uv_e2[i].normParam; // haut - nord - // --- droite j cste : y = y0 + x(y1-y0) - double y0 = uv_e3[j].normParam; // gauche-ouest - double y1 = uv_e1[j].normParam; // droite - est - // --- intersection : x=x0+(y0+x(y1-y0))(x1-x0) - double x = (x0 + y0 * (x1 - x0)) / (1 - (y1 - y0) * (x1 - x0)); - double y = y0 + x * (y1 - y0); - uv_grid[ij].x = x; - uv_grid[ij].y = y; - //MESSAGE("-xy-01 "<Value(param_0); - gp_Pnt2d p1 = c2d[1]->Value(param_1); - gp_Pnt2d p2 = c2d[2]->Value(param_2); - gp_Pnt2d p3 = c2d[3]->Value(param_3); - - double u = - (1 - y) * p0.X() + x * p1.X() + y * p2.X() + (1 - x) * p3.X(); - double v = - (1 - y) * p0.Y() + x * p1.Y() + y * p2.Y() + (1 - x) * p3.Y(); - - u -= (1 - x) * (1 - y) * a0.X() + x * (1 - y) * a1.X() + - x * y * a2.X() + (1 - x) * y * a3.X(); - v -= (1 - x) * (1 - y) * a0.Y() + x * (1 - y) * a1.Y() + - x * y * a2.Y() + (1 - x) * y * a3.Y(); - - uv_grid[ij].u = u; - uv_grid[ij].v = v; - - //MESSAGE("-uv- "< * lid= - aMesh.GetSubMesh(VFirst)->GetSubMeshDS()->GetNodes(); - const SMDS_MeshNode * idFirst = lid->next(); - delete lid; - - ASSERT(!VLast.IsNull()); - lid=aMesh.GetSubMesh(VLast)->GetSubMeshDS()->GetNodes(); - const SMDS_MeshNode * idLast = lid->next(); - delete lid; - - // --- edge internal IDNodes (relies on good order storage, not checked) - - int nbPoints = aMesh.GetSubMesh(E)->GetSubMeshDS()->NbNodes(); - //SCRUTE(nbPoints); - UVPtStruct *uvslf = new UVPtStruct[nbPoints + 2]; - - double f, l; - Handle(Geom2d_Curve) C2d = BRep_Tool::CurveOnSurface(E, F, f, l); - - map params; - SMDS_Iterator * ite= - aMesh.GetSubMesh(E)->GetSubMeshDS()->GetNodes(); - - while(ite->more()) - { - const SMDS_MeshNode * node = ite->next(); - const SMDS_EdgePosition* epos - = static_cast(node->GetPosition()); - double param = epos->GetUParameter(); - params[param] = node; - } - delete ite; - - bool isForward = (((l - f) * (last - first)) > 0); - double paramin = 0; - double paramax = 0; - if (isForward) - { - paramin = f; - paramax = l; - gp_Pnt2d p = C2d->Value(f); // first point = Vertex Forward - uvslf[0].x = p.X(); - uvslf[0].y = p.Y(); - uvslf[0].param = f; - uvslf[0].node = idFirst; - //MESSAGE("__ f "<::iterator itp = params.begin(); - for (int i = 1; i <= nbPoints; i++) // nbPoints internal - { - double param = (*itp).first; - gp_Pnt2d p = C2d->Value(param); - uvslf[i].x = p.X(); - uvslf[i].y = p.Y(); - uvslf[i].param = param; - uvslf[i].node = (*itp).second; - //MESSAGE("__ "<Value(l); // last point = Vertex Reversed - uvslf[nbPoints + 1].x = p.X(); - uvslf[nbPoints + 1].y = p.Y(); - uvslf[nbPoints + 1].param = l; - uvslf[nbPoints + 1].node = idLast; - //MESSAGE("__ l "<Value(l); // first point = Vertex Reversed - uvslf[0].x = p.X(); - uvslf[0].y = p.Y(); - uvslf[0].param = l; - uvslf[0].node = idLast; - //MESSAGE("__ l "<::reverse_iterator itp = params.rbegin(); - for (int j = nbPoints; j >= 1; j--) // nbPoints internal - { - double param = (*itp).first; - int i = nbPoints + 1 - j; - gp_Pnt2d p = C2d->Value(param); - uvslf[i].x = p.X(); - uvslf[i].y = p.Y(); - uvslf[i].param = param; - uvslf[i].node = (*itp).second; - //MESSAGE("__ "<Value(f); // last point = Vertex Forward - uvslf[nbPoints + 1].x = p.X(); - uvslf[nbPoints + 1].y = p.Y(); - uvslf[nbPoints + 1].param = f; - uvslf[nbPoints + 1].node = idFirst; - //MESSAGE("__ f "<> (*this); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & operator <<(ostream & save, SMESH_Quadrangle_2D & hyp) -{ - return save; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & operator >>(istream & load, SMESH_Quadrangle_2D & hyp) -{ - return load; -} diff --git a/src/SMESH/SMESH_Quadrangle_2D.hxx b/src/SMESH/SMESH_Quadrangle_2D.hxx deleted file mode 100644 index 59bc904e7..000000000 --- a/src/SMESH/SMESH_Quadrangle_2D.hxx +++ /dev/null @@ -1,100 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Quadrangle_2D.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_QUADRANGLE_2D_HXX_ -#define _SMESH_QUADRANGLE_2D_HXX_ - -#include "SMESH_2D_Algo.hxx" -#include "SMESH_Mesh.hxx" -#include "Utils_SALOME_Exception.hxx" - -typedef struct uvPtStruct -{ - double param; - double normParam; - double u; // original 2d parameter - double v; - double x; // 2d parameter, normalized [0,1] - double y; - const SMDS_MeshNode * node; -} UVPtStruct; - -typedef struct faceQuadStruct -{ - int nbPts[4]; - TopoDS_Edge edge[4]; - double first[4]; - double last[4]; - bool isEdgeForward[4]; - UVPtStruct* uv_edges[4]; - UVPtStruct* uv_grid; -} FaceQuadStruct; - -class SMESH_Quadrangle_2D: - public SMESH_2D_Algo -{ -public: - SMESH_Quadrangle_2D(int hypId, int studyId, SMESH_Gen* gen); - virtual ~SMESH_Quadrangle_2D(); - - virtual bool CheckHypothesis(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape); - - virtual bool Compute(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape) - throw (SALOME_Exception); - - FaceQuadStruct* CheckAnd2Dcompute(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape) - throw (SALOME_Exception); - - void QuadDelete(FaceQuadStruct* quad); - - ostream & SaveTo(ostream & save); - istream & LoadFrom(istream & load); - friend ostream & operator << (ostream & save, SMESH_Quadrangle_2D & hyp); - friend istream & operator >> (istream & load, SMESH_Quadrangle_2D & hyp); - -protected: - - void SetNormalizedGrid(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape, - FaceQuadStruct* quad) - throw (SALOME_Exception); - - UVPtStruct* LoadEdgePoints(SMESH_Mesh& aMesh, - const TopoDS_Face& F, - const TopoDS_Edge& E, - double first, - double last); -// bool isForward); - -// FaceQuadStruct _quadDesc; -}; - -#endif diff --git a/src/SMESH/SMESH_Regular_1D.cxx b/src/SMESH/SMESH_Regular_1D.cxx deleted file mode 100644 index 1f4e6ebfe..000000000 --- a/src/SMESH/SMESH_Regular_1D.cxx +++ /dev/null @@ -1,322 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Regular_1D.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; - -#include "SMESH_Regular_1D.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_Mesh.hxx" - -#include "SMESH_LocalLength.hxx" -#include "SMESH_NumberOfSegments.hxx" - -#include "SMDS_MeshElement.hxx" -#include "SMDS_MeshNode.hxx" -#include "SMDS_EdgePosition.hxx" - -#include "utilities.h" - -#include -#include -#include -#include -#include -#include - -#include -#include - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Regular_1D::SMESH_Regular_1D(int hypId, int studyId, - SMESH_Gen * gen):SMESH_1D_Algo(hypId, studyId, gen) -{ - MESSAGE("SMESH_Regular_1D::SMESH_Regular_1D"); - _name = "Regular_1D"; - // _shapeType = TopAbs_EDGE; - _shapeType = (1 << TopAbs_EDGE); - _compatibleHypothesis.push_back("LocalLength"); - _compatibleHypothesis.push_back("NumberOfSegments"); - - _localLength = 0; - _numberOfSegments = 0; - _hypLocalLength = NULL; - _hypNumberOfSegments = NULL; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Regular_1D::~SMESH_Regular_1D() -{ -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & SMESH_Regular_1D::SaveTo(ostream & save) -{ - return save << this; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & SMESH_Regular_1D::LoadFrom(istream & load) -{ - return load >> (*this); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -ostream & operator <<(ostream & save, SMESH_Regular_1D & hyp) -{ - return save; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -istream & operator >>(istream & load, SMESH_Regular_1D & hyp) -{ - return load; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -bool SMESH_Regular_1D::CheckHypothesis(SMESH_Mesh & aMesh, - const TopoDS_Shape & aShape) -{ - //MESSAGE("SMESH_Regular_1D::CheckHypothesis"); - - list ::const_iterator itl; - const SMESHDS_Hypothesis *theHyp; - - const list &hyps = GetUsedHypothesis(aMesh, aShape); - int nbHyp = hyps.size(); - if (nbHyp != 1) return false; // only one compatible hypothesis allowed - - itl = hyps.begin(); - theHyp = (*itl); - - string hypName = theHyp->GetName(); - int hypId = theHyp->GetID(); - //SCRUTE(hypName); - - bool isOk = false; - - if (hypName == "LocalLength") - { - _hypLocalLength = dynamic_cast (theHyp); - ASSERT(_hypLocalLength); - _localLength = _hypLocalLength->GetLength(); - _numberOfSegments = 0; - isOk = true; - } - - if (hypName == "NumberOfSegments") - { - _hypNumberOfSegments = - dynamic_cast (theHyp); - ASSERT(_hypNumberOfSegments); - _numberOfSegments = _hypNumberOfSegments->GetNumberOfSegments(); - _scaleFactor = _hypNumberOfSegments->GetScaleFactor(); - _localLength = 0; - isOk = true; - } - - //SCRUTE(_localLength); - //SCRUTE(_numberOfSegments); - - return isOk; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -bool SMESH_Regular_1D::Compute(SMESH_Mesh & aMesh, const TopoDS_Shape & aShape) -{ - MESSAGE("SMESH_Regular_1D::Compute"); - - SMESHDS_Mesh * meshDS = aMesh.GetMeshDS(); - SMESH_subMesh *theSubMesh = aMesh.GetSubMesh(aShape); - - const TopoDS_Edge & EE = TopoDS::Edge(aShape); - TopoDS_Edge E = TopoDS::Edge(EE.Oriented(TopAbs_FORWARD)); - - double f, l; - Handle(Geom_Curve) Curve = BRep_Tool::Curve(E, f, l); - - TopoDS_Vertex VFirst, VLast; - TopExp::Vertices(E, VFirst, VLast); // Vfirst corresponds to f and Vlast to l - - double length = EdgeLength(E); - //SCRUTE(length); - - double eltSize = 1; -// if (_localLength > 0) eltSize = _localLength; - if (_localLength > 0) - { - double nbseg = ceil(length / _localLength); // integer sup - if (nbseg <= 0) - nbseg = 1; // degenerated edge - eltSize = length / nbseg; - } - else - { - ASSERT(_numberOfSegments > 0); - eltSize = length / _numberOfSegments; - } - - ASSERT(!VFirst.IsNull()); - SMDS_Iterator * lid= - aMesh.GetSubMesh(VFirst)->GetSubMeshDS()->GetNodes(); - const SMDS_MeshNode * idFirst = lid->next(); - delete lid; - - ASSERT(!VLast.IsNull()); - lid=aMesh.GetSubMesh(VLast)->GetSubMeshDS()->GetNodes(); - const SMDS_MeshNode * idLast = lid->next(); - delete lid; - - if (!Curve.IsNull()) - { - GeomAdaptor_Curve C3d(Curve); - GCPnts_UniformAbscissa Discret(C3d, eltSize, f, l); - int NbPoints = Discret.NbPoints(); - //MESSAGE("nb points on edge : "< 1) - { - double epsilon = 0.001; - if (fabs(_scaleFactor - 1.0) > epsilon) - { - double alpha = - pow(_scaleFactor, 1.0 / (_numberOfSegments - 1)); - double d = - length * (1 - pow(alpha, i - 1)) / (1 - pow(alpha, - _numberOfSegments)); - param = d; - } - } - - gp_Pnt P = Curve->Value(param); - - //Add the Node in the DataStructure - //MESSAGE("point "<AddNode(P.X(), P.Y(), P.Z()); - meshDS->SetNodeOnEdge(node, E); - - // **** edgePosition associe au point = param. - SMDS_EdgePosition* epos=dynamic_cast(node->GetPosition()); - epos->SetUParameter(param); - - SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node); - meshDS->SetMeshElementOnShape(edge, E); - idPrev = node; - } - SMDS_MeshEdge* edge = meshDS->AddEdge(idPrev, idLast); - meshDS->SetMeshElementOnShape(edge, E); - } - else - { -// MESSAGE ("Edge Degeneree non traitee --- arret"); -// ASSERT(0); - if (BRep_Tool::Degenerated(E)) - { - // Edge is a degenerated Edge : We put n = 5 points on the edge. - int NbPoints = 5; - BRep_Tool::Range(E, f, l); - double du = (l - f) / (NbPoints - 1); - MESSAGE("************* Degenerated edge! *****************"); - - TopoDS_Vertex V1, V2; - TopExp::Vertices(E, V1, V2); - gp_Pnt P = BRep_Tool::Pnt(V1); - - const SMDS_MeshNode * idPrev = idFirst; - for (int i = 2; i < NbPoints; i++) - { - double param = f + (i - 1) * du; - SMDS_MeshNode * node = meshDS->AddNode(P.X(), P.Y(), P.Z()); - meshDS->SetNodeOnEdge(node, E); - -// Handle (SMDS_EdgePosition) epos -// = new SMDS_EdgePosition(theSubMesh->GetId(),param); -// node->SetPosition(epos); - SMDS_EdgePosition* epos - = dynamic_cast(node->GetPosition()); - epos->SetUParameter(param); - - SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, node); - meshDS->SetMeshElementOnShape(edge, E); - idPrev = node; - } - SMDS_MeshEdge * edge = meshDS->AddEdge(idPrev, idLast); - meshDS->SetMeshElementOnShape(edge, E); - } - else - ASSERT(0); - } - return true; -} diff --git a/src/SMESH/SMESH_Regular_1D.hxx b/src/SMESH/SMESH_Regular_1D.hxx deleted file mode 100644 index 09daed94e..000000000 --- a/src/SMESH/SMESH_Regular_1D.hxx +++ /dev/null @@ -1,63 +0,0 @@ -// SMESH SMESH : implementaion of SMESH idl descriptions -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Regular_1D.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_REGULAR_1D_HXX_ -#define _SMESH_REGULAR_1D_HXX_ - -#include "SMESH_1D_Algo.hxx" - -class SMESH_LocalLength; -class SMESH_NumberOfSegments; - -class SMESH_Regular_1D: - public SMESH_1D_Algo -{ -public: - SMESH_Regular_1D(int hypId, int studyId, SMESH_Gen* gen); - virtual ~SMESH_Regular_1D(); - - virtual bool CheckHypothesis(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape); - - virtual bool Compute(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape); - - ostream & SaveTo(ostream & save); - istream & LoadFrom(istream & load); - friend ostream & operator << (ostream & save, SMESH_Regular_1D & hyp); - friend istream & operator >> (istream & load, SMESH_Regular_1D & hyp); - -protected: - double _localLength; - int _numberOfSegments; - double _scaleFactor; - const SMESH_LocalLength* _hypLocalLength; - const SMESH_NumberOfSegments* _hypNumberOfSegments; -}; - -#endif diff --git a/src/SMESH_I/SMESH_Hexa_3D_i.cxx b/src/SMESH_I/SMESH_Hexa_3D_i.cxx deleted file mode 100644 index 1100e6ee6..000000000 --- a/src/SMESH_I/SMESH_Hexa_3D_i.cxx +++ /dev/null @@ -1,80 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Hexa_3D_i.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_Hexa_3D_i.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_HypothesisFactory.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Hexa_3D_i::SMESH_Hexa_3D_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) -{ - MESSAGE("SMESH_Hexa_3D_i::SMESH_Hexa_3D_i"); - _genImpl = genImpl; - ::SMESH_Hexa_3D* impl - = new ::SMESH_Hexa_3D(_genImpl->_hypothesisFactory.GetANewId(), - studyId, - genImpl); - SetImpl(impl); - _baseImpl = _impl; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Hexa_3D_i::~SMESH_Hexa_3D_i() -{ - MESSAGE("SMESH_Hexa_3D_i::~SMESH_Hexa_3D_i"); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_Hexa_3D_i::SetImpl(::SMESH_Hexa_3D* impl) -{ - MESSAGE("SMESH_Hexa_3D_i::SetImpl"); - SMESH_3D_Algo_i::SetImpl(impl); - _impl = impl; -} diff --git a/src/SMESH_I/SMESH_Hexa_3D_i.hxx b/src/SMESH_I/SMESH_Hexa_3D_i.hxx deleted file mode 100644 index 19c88b084..000000000 --- a/src/SMESH_I/SMESH_Hexa_3D_i.hxx +++ /dev/null @@ -1,56 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Hexa_3D_i.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_HEXA_3D_I_HXX_ -#define _SMESH_HEXA_3D_I_HXX_ - -#include -#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis) - -#include "SMESH_3D_Algo_i.hxx" - -#include "SMESH_Hexa_3D.hxx" - -class SMESH_Hexa_3D_i: - public POA_SMESH::SMESH_Hexa_3D, - public SMESH_3D_Algo_i -{ -public: - SMESH_Hexa_3D_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl); - - virtual ~SMESH_Hexa_3D_i(); - -protected: - virtual void SetImpl(::SMESH_Hexa_3D* impl); - - ::SMESH_Hexa_3D* _impl; -}; - -#endif diff --git a/src/SMESH_I/SMESH_HypothesisFactory_i.cxx b/src/SMESH_I/SMESH_HypothesisFactory_i.cxx deleted file mode 100644 index efb8134d5..000000000 --- a/src/SMESH_I/SMESH_HypothesisFactory_i.cxx +++ /dev/null @@ -1,142 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_HypothesisFactory_i.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -#include "SMESH_HypothesisFactory_i.hxx" -#include "SMESH_Hypothesis_i.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -// Add new hypothesis here (include file) -//--------------------------------------- -#include "SMESH_LocalLength_i.hxx" -#include "SMESH_NumberOfSegments_i.hxx" -#include "SMESH_LengthFromEdges_i.hxx" -#include "SMESH_MaxElementArea_i.hxx" -#include "SMESH_MaxElementVolume_i.hxx" -#include "SMESH_Regular_1D_i.hxx" -#include "SMESH_MEFISTO_2D_i.hxx" -#include "SMESH_Quadrangle_2D_i.hxx" -#include "SMESH_Hexa_3D_i.hxx" -#ifdef HAVE_NETGEN -#include "SMESH_NETGEN_3D_i.hxx" -#endif -//--------------------------------------- - -//============================================================================= -/*! - * Specific Hypothesis Creators are generated with a template which inherits a - * generic hypothesis creator. Each creator returns an hypothesis of the type - * given in the template. - */ -//============================================================================= - -template class HypothesisCreator_i: public GenericHypothesisCreator_i -{ -public: - virtual SMESH_Hypothesis_i* Create (const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) - { - return new T(anHyp, studyId, genImpl); - }; -}; - -//============================================================================= -/*! - * Constructor: instanciate specific hypothesis creators, fill a private map - * indexed by hypothesis names. THIS METHOD MUST BE COMPLETED WHEN A NEW - * HYPOTHESIS IS ADDED. - * Specific hypothesis creator are defined with the above template. - * Hypothesis names are related to the corresponding class names: - * prefix = SMESH_ ; suffix = _i . - */ -//============================================================================= - -SMESH_HypothesisFactory_i::SMESH_HypothesisFactory_i() -{ -// Add new hypothesis here (creators) -//--------------------------------------- -_creatorMap["LocalLength"] = new HypothesisCreator_i; -_creatorMap["NumberOfSegments"] = new HypothesisCreator_i; -_creatorMap["LengthFromEdges"] = new HypothesisCreator_i; -_creatorMap["MaxElementArea"] = new HypothesisCreator_i; -_creatorMap["MaxElementVolume"] = new HypothesisCreator_i; -_creatorMap["Regular_1D"] = new HypothesisCreator_i; -_creatorMap["MEFISTO_2D"] = new HypothesisCreator_i; -_creatorMap["Quadrangle_2D"] = new HypothesisCreator_i; -_creatorMap["Hexa_3D"] = new HypothesisCreator_i; -#ifdef HAVE_NETGEN -_creatorMap["NETGEN_3D"] = new HypothesisCreator_i; -#endif -//--------------------------------------- -} - -//============================================================================= -/*! - * Destructor: deletes specific hypothesis creators instanciated in the - * constructor. - */ -//============================================================================= - -SMESH_HypothesisFactory_i::~SMESH_HypothesisFactory_i() -{ - map::iterator it; - for (it = _creatorMap.begin(); it != _creatorMap.end(); it++) - { - delete (*it).second; - } - _creatorMap.clear(); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Hypothesis_i* SMESH_HypothesisFactory_i::Create(const char* anHyp, - CORBA::Long studyId, - ::SMESH_Gen* genImpl) - throw (SALOME::SALOME_Exception) -{ - MESSAGE("SMESH_HypothesisFactory::Create " << anHyp); - if (_creatorMap.find(anHyp) == _creatorMap.end()) - { - MESSAGE("levee exception CORBA"); - THROW_SALOME_CORBA_EXCEPTION("bad hypothesis type name", \ - SALOME::BAD_PARAM); - } - SMESH_Hypothesis_i* myHyp = _creatorMap[anHyp]->Create(anHyp, - studyId, - genImpl); - return myHyp; -} - - diff --git a/src/SMESH_I/SMESH_HypothesisFactory_i.hxx b/src/SMESH_I/SMESH_HypothesisFactory_i.hxx deleted file mode 100644 index a561a3c00..000000000 --- a/src/SMESH_I/SMESH_HypothesisFactory_i.hxx +++ /dev/null @@ -1,59 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_HypothesisFactory_i.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_HYPOTHESISFACTORY_I_HXX_ -#define _SMESH_HYPOTHESISFACTORY_I_HXX_ - -#include "SMESH_Hypothesis_i.hxx" -#include -#include - -class GenericHypothesisCreator_i -{ -public: - virtual SMESH_Hypothesis_i* Create(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) = 0; -}; - -class SMESH_HypothesisFactory_i -{ -public: - SMESH_HypothesisFactory_i(); - virtual ~SMESH_HypothesisFactory_i(); - - SMESH_Hypothesis_i* Create(const char* anHyp, - CORBA::Long studyId, - ::SMESH_Gen* genImpl) - throw (SALOME::SALOME_Exception); - -private: - map _creatorMap; -}; - -#endif diff --git a/src/SMESH_I/SMESH_LengthFromEdges_i.cxx b/src/SMESH_I/SMESH_LengthFromEdges_i.cxx deleted file mode 100644 index 1ab700fd2..000000000 --- a/src/SMESH_I/SMESH_LengthFromEdges_i.cxx +++ /dev/null @@ -1,98 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_LengthFromEdges_i.cxx -// Author : Nadir BOUHAMOU CEA/DEN, Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_LengthFromEdges_i.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_HypothesisFactory.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * Constructor: - * _name is related to the class name: prefix = SMESH_ ; suffix = _i . - */ -//============================================================================= - -SMESH_LengthFromEdges_i::SMESH_LengthFromEdges_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) -{ - MESSAGE("SMESH_LengthFromEdges_i::SMESH_LengthFromEdges_i"); - _impl = new ::SMESH_LengthFromEdges(genImpl->_hypothesisFactory.GetANewId(), - studyId, - genImpl); - _baseImpl = _impl; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_LengthFromEdges_i::~SMESH_LengthFromEdges_i() -{ -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_LengthFromEdges_i::SetMode(CORBA::Long mode) - throw (SALOME::SALOME_Exception) -{ - ASSERT(_impl); - try - { - _impl->SetMode(mode); - } - catch (SALOME_Exception& S_ex) - { - THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), \ - SALOME::BAD_PARAM); - } -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -CORBA::Long SMESH_LengthFromEdges_i::GetMode() -{ - ASSERT(_impl); - return _impl->GetMode(); -} - diff --git a/src/SMESH_I/SMESH_LengthFromEdges_i.hxx b/src/SMESH_I/SMESH_LengthFromEdges_i.hxx deleted file mode 100644 index d773fa0a5..000000000 --- a/src/SMESH_I/SMESH_LengthFromEdges_i.hxx +++ /dev/null @@ -1,59 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_LengthFromEdges_i.hxx -// Author : Nadir BOUHAMOU CEA/DEN, Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_LENGTHFROMEDGES_I_HXX_ -#define _SMESH_LENGTHFROMEDGES_I_HXX_ - -#include -#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis) - -#include "SMESH_Hypothesis_i.hxx" - -#include "SMESH_LengthFromEdges.hxx" - -class SMESH_LengthFromEdges_i: - public POA_SMESH::SMESH_LengthFromEdges, - public SMESH_Hypothesis_i -{ -public: - SMESH_LengthFromEdges_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl); - virtual ~SMESH_LengthFromEdges_i(); - - void SetMode(CORBA::Long mode) - throw (SALOME::SALOME_Exception); - - CORBA::Long GetMode(); - -protected: - ::SMESH_LengthFromEdges* _impl; -}; - -#endif - diff --git a/src/SMESH_I/SMESH_LocalLength_i.cxx b/src/SMESH_I/SMESH_LocalLength_i.cxx deleted file mode 100644 index 9dfccf119..000000000 --- a/src/SMESH_I/SMESH_LocalLength_i.cxx +++ /dev/null @@ -1,98 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_LocalLength_i.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_LocalLength_i.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_HypothesisFactory.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * Constructor: - * _name is related to the class name: prefix = SMESH_ ; suffix = _i . - */ -//============================================================================= - -SMESH_LocalLength_i::SMESH_LocalLength_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) -{ - MESSAGE("SMESH_LocalLength_i::SMESH_LocalLength_i"); - _impl = new ::SMESH_LocalLength(genImpl->_hypothesisFactory.GetANewId(), - studyId, - genImpl); - _baseImpl = _impl; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_LocalLength_i::~SMESH_LocalLength_i() -{ -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_LocalLength_i::SetLength(CORBA::Double length) - throw (SALOME::SALOME_Exception) -{ - ASSERT(_impl); - try - { - _impl->SetLength(length); - } - catch (SALOME_Exception& S_ex) - { - THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), \ - SALOME::BAD_PARAM); - } -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -CORBA::Double SMESH_LocalLength_i::GetLength() -{ - ASSERT(_impl); - return _impl->GetLength(); -} - diff --git a/src/SMESH_I/SMESH_LocalLength_i.hxx b/src/SMESH_I/SMESH_LocalLength_i.hxx deleted file mode 100644 index 18803a762..000000000 --- a/src/SMESH_I/SMESH_LocalLength_i.hxx +++ /dev/null @@ -1,59 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_LocalLength_i.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_LOCALLENGTH_I_HXX_ -#define _SMESH_LOCALLENGTH_I_HXX_ - -#include -#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis) - -#include "SMESH_Hypothesis_i.hxx" - -#include "SMESH_LocalLength.hxx" - -class SMESH_LocalLength_i: - public POA_SMESH::SMESH_LocalLength, - public SMESH_Hypothesis_i -{ -public: - SMESH_LocalLength_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl); - virtual ~SMESH_LocalLength_i(); - - void SetLength(CORBA::Double length) - throw (SALOME::SALOME_Exception); - - CORBA::Double GetLength(); - -protected: - ::SMESH_LocalLength* _impl; -}; - -#endif - diff --git a/src/SMESH_I/SMESH_MEFISTO_2D_i.cxx b/src/SMESH_I/SMESH_MEFISTO_2D_i.cxx deleted file mode 100644 index ceac666a2..000000000 --- a/src/SMESH_I/SMESH_MEFISTO_2D_i.cxx +++ /dev/null @@ -1,80 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MEFISTO_2D_i.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_MEFISTO_2D_i.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_HypothesisFactory.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_MEFISTO_2D_i::SMESH_MEFISTO_2D_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) -{ - MESSAGE("SMESH_MEFISTO_2D_i::SMESH_MEFISTO_2D_i"); - _genImpl = genImpl; - ::SMESH_MEFISTO_2D* impl - = new ::SMESH_MEFISTO_2D(_genImpl->_hypothesisFactory.GetANewId(), - studyId, - genImpl); - SetImpl(impl); - _baseImpl = _impl; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_MEFISTO_2D_i::~SMESH_MEFISTO_2D_i() -{ - MESSAGE("SMESH_MEFISTO_2D_i::~SMESH_MEFISTO_2D_i"); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_MEFISTO_2D_i::SetImpl(::SMESH_MEFISTO_2D* impl) -{ - MESSAGE("SMESH_MEFISTO_2D_i::SetImpl"); - SMESH_2D_Algo_i::SetImpl(impl); - _impl = impl; -} diff --git a/src/SMESH_I/SMESH_MEFISTO_2D_i.hxx b/src/SMESH_I/SMESH_MEFISTO_2D_i.hxx deleted file mode 100644 index f60e1305c..000000000 --- a/src/SMESH_I/SMESH_MEFISTO_2D_i.hxx +++ /dev/null @@ -1,56 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MEFISTO_2D_i.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_MEFISTO_2D_I_HXX_ -#define _SMESH_MEFISTO_2D_I_HXX_ - -#include -#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis) - -#include "SMESH_2D_Algo_i.hxx" - -#include "SMESH_MEFISTO_2D.hxx" - -class SMESH_MEFISTO_2D_i: - public POA_SMESH::SMESH_MEFISTO_2D, - public SMESH_2D_Algo_i -{ -public: - SMESH_MEFISTO_2D_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl); - - virtual ~SMESH_MEFISTO_2D_i(); - -protected: - virtual void SetImpl(::SMESH_MEFISTO_2D* impl); - - ::SMESH_MEFISTO_2D* _impl; -}; - -#endif diff --git a/src/SMESH_I/SMESH_MaxElementArea_i.cxx b/src/SMESH_I/SMESH_MaxElementArea_i.cxx deleted file mode 100644 index 2f557c3d4..000000000 --- a/src/SMESH_I/SMESH_MaxElementArea_i.cxx +++ /dev/null @@ -1,98 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MaxElementArea_i.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_MaxElementArea_i.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_HypothesisFactory.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * Constructor: - * _name is related to the class name: prefix = SMESH_ ; suffix = _i . - */ -//============================================================================= - -SMESH_MaxElementArea_i::SMESH_MaxElementArea_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) -{ - MESSAGE("SMESH_MaxElementArea_i::SMESH_MaxElementArea_i"); - _impl = new ::SMESH_MaxElementArea(genImpl->_hypothesisFactory.GetANewId(), - studyId, - genImpl); - _baseImpl = _impl; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_MaxElementArea_i::~SMESH_MaxElementArea_i() -{ -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_MaxElementArea_i::SetMaxElementArea(CORBA::Double area) - throw (SALOME::SALOME_Exception) -{ - ASSERT(_impl); - try - { - _impl->SetMaxArea(area); - } - catch (SALOME_Exception& S_ex) - { - THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), \ - SALOME::BAD_PARAM); - } -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -CORBA::Double SMESH_MaxElementArea_i::GetMaxElementArea() -{ - ASSERT(_impl); - return _impl->GetMaxArea(); -} - diff --git a/src/SMESH_I/SMESH_MaxElementArea_i.hxx b/src/SMESH_I/SMESH_MaxElementArea_i.hxx deleted file mode 100644 index 3195b4e4c..000000000 --- a/src/SMESH_I/SMESH_MaxElementArea_i.hxx +++ /dev/null @@ -1,58 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MaxElementArea_i.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_MAXELEMENTAREA_I_HXX_ -#define _SMESH_MAXELEMENTAREA_I_HXX_ - -#include -#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis) - -#include "SMESH_Hypothesis_i.hxx" - -#include "SMESH_MaxElementArea.hxx" - -class SMESH_MaxElementArea_i: - public POA_SMESH::SMESH_MaxElementArea, - public SMESH_Hypothesis_i -{ -public: - SMESH_MaxElementArea_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl); - virtual ~SMESH_MaxElementArea_i(); - - void SetMaxElementArea(CORBA::Double area) - throw (SALOME::SALOME_Exception); - - CORBA::Double GetMaxElementArea(); - -protected: - ::SMESH_MaxElementArea* _impl; -}; - -#endif diff --git a/src/SMESH_I/SMESH_MaxElementVolume_i.cxx b/src/SMESH_I/SMESH_MaxElementVolume_i.cxx deleted file mode 100644 index 9ed53a08d..000000000 --- a/src/SMESH_I/SMESH_MaxElementVolume_i.cxx +++ /dev/null @@ -1,99 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MaxElementVolume_i.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; - -#include "SMESH_MaxElementVolume_i.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_HypothesisFactory.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * Constructor: - * _name is related to the class name: prefix = SMESH_ ; suffix = _i . - */ -//============================================================================= - -SMESH_MaxElementVolume_i::SMESH_MaxElementVolume_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) -{ - MESSAGE("SMESH_MaxElementVolume_i::SMESH_MaxElementVolume_i"); - _impl = new ::SMESH_MaxElementVolume(genImpl->_hypothesisFactory.GetANewId(), - studyId, - genImpl); - _baseImpl = _impl; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_MaxElementVolume_i::~SMESH_MaxElementVolume_i() -{ - MESSAGE("SMESH_MaxElementVolume_i::~SMESH_MaxElementVolume_i()"); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_MaxElementVolume_i::SetMaxElementVolume(CORBA::Double volume) - throw (SALOME::SALOME_Exception) -{ - ASSERT(_impl); - try - { - _impl->SetMaxVolume(volume); - } - catch (SALOME_Exception& S_ex) - { - THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), \ - SALOME::BAD_PARAM); - } -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -CORBA::Double SMESH_MaxElementVolume_i::GetMaxElementVolume() -{ - ASSERT(_impl); - return _impl->GetMaxVolume(); -} - diff --git a/src/SMESH_I/SMESH_MaxElementVolume_i.hxx b/src/SMESH_I/SMESH_MaxElementVolume_i.hxx deleted file mode 100644 index c59fd65b1..000000000 --- a/src/SMESH_I/SMESH_MaxElementVolume_i.hxx +++ /dev/null @@ -1,58 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_MaxElementVolume_i.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_MAXELEMENTVOLUME_I_HXX_ -#define _SMESH_MAXELEMENTVOLUME_I_HXX_ - -#include -#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis) - -#include "SMESH_Hypothesis_i.hxx" - -#include "SMESH_MaxElementVolume.hxx" - -class SMESH_MaxElementVolume_i: - public POA_SMESH::SMESH_MaxElementVolume, - public SMESH_Hypothesis_i -{ -public: - SMESH_MaxElementVolume_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl); - virtual ~SMESH_MaxElementVolume_i(); - - void SetMaxElementVolume(CORBA::Double volume) - throw (SALOME::SALOME_Exception); - - CORBA::Double GetMaxElementVolume(); - -protected: - ::SMESH_MaxElementVolume* _impl; -}; - -#endif diff --git a/src/SMESH_I/SMESH_NETGEN_3D_i.cxx b/src/SMESH_I/SMESH_NETGEN_3D_i.cxx deleted file mode 100644 index 720ccefa5..000000000 --- a/src/SMESH_I/SMESH_NETGEN_3D_i.cxx +++ /dev/null @@ -1,60 +0,0 @@ -//============================================================================= -// File : SMESH_NETGEN_3D_i.cxx -// Created : Jeudi 31 Janvier 2003 -// Author : Nadir Bouhamou CEA -// Project : SALOME -// Copyright : CEA 2003 -// $Header$ -//============================================================================= -using namespace std; - -#include "SMESH_NETGEN_3D_i.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_HypothesisFactory.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_NETGEN_3D_i::SMESH_NETGEN_3D_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) -{ - MESSAGE("SMESH_NETGEN_3D_i::SMESH_NETGEN_3D_i"); - _genImpl = genImpl; - ::SMESH_NETGEN_3D* impl - = new ::SMESH_NETGEN_3D(_genImpl->_hypothesisFactory.GetANewId(), - studyId, - genImpl); - SetImpl(impl); - _baseImpl = _impl; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_NETGEN_3D_i::~SMESH_NETGEN_3D_i() -{ - MESSAGE("SMESH_NETGEN_3D_i::~SMESH_NETGEN_3D_i"); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_NETGEN_3D_i::SetImpl(::SMESH_NETGEN_3D* impl) -{ - MESSAGE("SMESH_NETGEN_3D_i::SetImpl"); - SMESH_3D_Algo_i::SetImpl(impl); - _impl = impl; -} diff --git a/src/SMESH_I/SMESH_NETGEN_3D_i.hxx b/src/SMESH_I/SMESH_NETGEN_3D_i.hxx deleted file mode 100644 index 68f4dd789..000000000 --- a/src/SMESH_I/SMESH_NETGEN_3D_i.hxx +++ /dev/null @@ -1,36 +0,0 @@ -//============================================================================= -// File : SMESH_NETGEN_3D_i.hxx -// Created : Jeudi 31 Janvier 2003 -// Author : Nadir Bouhamou CEA -// Project : SALOME -// Copyright : CEA 2003 -// $Header$ -//============================================================================= -#ifndef _SMESH_NETGEN_3D_I_HXX_ -#define _SMESH_NETGEN_3D_I_HXX_ - -#include -#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis) - -#include "SMESH_3D_Algo_i.hxx" - -#include "SMESH_NETGEN_3D.hxx" - -class SMESH_NETGEN_3D_i: - public POA_SMESH::SMESH_NETGEN_3D, - public SMESH_3D_Algo_i -{ -public: - SMESH_NETGEN_3D_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl); - - virtual ~SMESH_NETGEN_3D_i(); - -protected: - virtual void SetImpl(::SMESH_NETGEN_3D* impl); - - ::SMESH_NETGEN_3D* _impl; -}; - -#endif diff --git a/src/SMESH_I/SMESH_NumberOfSegments_i.cxx b/src/SMESH_I/SMESH_NumberOfSegments_i.cxx deleted file mode 100644 index 74bff913d..000000000 --- a/src/SMESH_I/SMESH_NumberOfSegments_i.cxx +++ /dev/null @@ -1,133 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_NumberOfSegments_i.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_NumberOfSegments_i.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_HypothesisFactory.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * Constructor: - * _name is related to the class name: prefix = SMESH_ ; suffix = _i . - */ -//============================================================================= - -SMESH_NumberOfSegments_i::SMESH_NumberOfSegments_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) -{ - MESSAGE("SMESH_NumberOfSegments_i::SMESH_NumberOfSegments_i"); - _impl= new ::SMESH_NumberOfSegments(genImpl->_hypothesisFactory.GetANewId(), - studyId, - genImpl); - _baseImpl = _impl; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_NumberOfSegments_i::~SMESH_NumberOfSegments_i() -{ -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void -SMESH_NumberOfSegments_i::SetNumberOfSegments(CORBA::Long segmentsNumber) - throw (SALOME::SALOME_Exception) -{ - ASSERT(_impl); - try - { - _impl->SetNumberOfSegments(segmentsNumber); - } - catch (SALOME_Exception& S_ex) - { - THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), \ - SALOME::BAD_PARAM); - } -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -CORBA::Long SMESH_NumberOfSegments_i::GetNumberOfSegments() -{ - ASSERT(_impl); - return _impl->GetNumberOfSegments(); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void -SMESH_NumberOfSegments_i::SetScaleFactor(CORBA::Double scaleFactor) - throw (SALOME::SALOME_Exception) -{ - ASSERT(_impl); - try - { - _impl->SetScaleFactor(scaleFactor); - } - catch (SALOME_Exception& S_ex) - { - THROW_SALOME_CORBA_EXCEPTION(S_ex.what(), \ - SALOME::BAD_PARAM); - } -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -CORBA::Double SMESH_NumberOfSegments_i::GetScaleFactor() -{ - ASSERT(_impl); - return _impl->GetScaleFactor(); -} - diff --git a/src/SMESH_I/SMESH_NumberOfSegments_i.hxx b/src/SMESH_I/SMESH_NumberOfSegments_i.hxx deleted file mode 100644 index 85482fa57..000000000 --- a/src/SMESH_I/SMESH_NumberOfSegments_i.hxx +++ /dev/null @@ -1,63 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_NumberOfSegments_i.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_NUMBEROFSEGMENTS_I_HXX_ -#define _SMESH_NUMBEROFSEGMENTS_I_HXX_ - -#include -#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis) - -#include "SMESH_Hypothesis_i.hxx" - -#include "SMESH_NumberOfSegments.hxx" - -class SMESH_NumberOfSegments_i: - public POA_SMESH::SMESH_NumberOfSegments, - public SMESH_Hypothesis_i -{ -public: - SMESH_NumberOfSegments_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl); - virtual ~SMESH_NumberOfSegments_i(); - - void SetNumberOfSegments(CORBA::Long segmentsNumber) - throw (SALOME::SALOME_Exception); - - CORBA::Long GetNumberOfSegments(); - - void SetScaleFactor(CORBA::Double scaleFactor) - throw (SALOME::SALOME_Exception); - - CORBA::Double GetScaleFactor(); - -protected: - ::SMESH_NumberOfSegments* _impl; -}; - -#endif diff --git a/src/SMESH_I/SMESH_Quadrangle_2D_i.cxx b/src/SMESH_I/SMESH_Quadrangle_2D_i.cxx deleted file mode 100644 index 73b5728d5..000000000 --- a/src/SMESH_I/SMESH_Quadrangle_2D_i.cxx +++ /dev/null @@ -1,80 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Quadrangle_2D_i.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_Quadrangle_2D_i.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_HypothesisFactory.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Quadrangle_2D_i::SMESH_Quadrangle_2D_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) -{ - MESSAGE("SMESH_Quadrangle_2D_i::SMESH_Quadrangle_2D_i"); - _genImpl = genImpl; - ::SMESH_Quadrangle_2D* impl - = new ::SMESH_Quadrangle_2D(_genImpl->_hypothesisFactory.GetANewId(), - studyId, - genImpl); - SetImpl(impl); - _baseImpl = _impl; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Quadrangle_2D_i::~SMESH_Quadrangle_2D_i() -{ - MESSAGE("SMESH_Quadrangle_2D_i::~SMESH_Quadrangle_2D_i"); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_Quadrangle_2D_i::SetImpl(::SMESH_Quadrangle_2D* impl) -{ - MESSAGE("SMESH_Quadrangle_2D_i::SetImpl"); - SMESH_2D_Algo_i::SetImpl(impl); - _impl = impl; -} diff --git a/src/SMESH_I/SMESH_Quadrangle_2D_i.hxx b/src/SMESH_I/SMESH_Quadrangle_2D_i.hxx deleted file mode 100644 index c68fc0c1a..000000000 --- a/src/SMESH_I/SMESH_Quadrangle_2D_i.hxx +++ /dev/null @@ -1,56 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Quadrangle_2D_i.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_QUADRANGLE_2D_I_HXX_ -#define _SMESH_QUADRANGLE_2D_I_HXX_ - -#include -#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis) - -#include "SMESH_2D_Algo_i.hxx" - -#include "SMESH_Quadrangle_2D.hxx" - -class SMESH_Quadrangle_2D_i: - public POA_SMESH::SMESH_Quadrangle_2D, - public SMESH_2D_Algo_i -{ -public: - SMESH_Quadrangle_2D_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl); - - virtual ~SMESH_Quadrangle_2D_i(); - -protected: - virtual void SetImpl(::SMESH_Quadrangle_2D* impl); - - ::SMESH_Quadrangle_2D* _impl; -}; - -#endif diff --git a/src/SMESH_I/SMESH_Regular_1D_i.cxx b/src/SMESH_I/SMESH_Regular_1D_i.cxx deleted file mode 100644 index bd8e1b1d5..000000000 --- a/src/SMESH_I/SMESH_Regular_1D_i.cxx +++ /dev/null @@ -1,80 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Regular_1D_i.cxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -using namespace std; -using namespace std; -#include "SMESH_Regular_1D_i.hxx" -#include "SMESH_Gen.hxx" -#include "SMESH_HypothesisFactory.hxx" - -#include "Utils_CorbaException.hxx" -#include "utilities.h" - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Regular_1D_i::SMESH_Regular_1D_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl) -{ - MESSAGE("SMESH_Regular_1D_i::SMESH_Regular_1D_i"); - _genImpl = genImpl; - ::SMESH_Regular_1D* impl - = new ::SMESH_Regular_1D(_genImpl->_hypothesisFactory.GetANewId(), - studyId, - genImpl); - SetImpl(impl); - _baseImpl = _impl; -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -SMESH_Regular_1D_i::~SMESH_Regular_1D_i() -{ - MESSAGE("SMESH_Regular_1D_i::~SMESH_Regular_1D_i"); -} - -//============================================================================= -/*! - * - */ -//============================================================================= - -void SMESH_Regular_1D_i::SetImpl(::SMESH_Regular_1D* impl) -{ - MESSAGE("SMESH_Regular_1D_i::SetImpl"); - SMESH_1D_Algo_i::SetImpl(impl); - _impl = impl; -} diff --git a/src/SMESH_I/SMESH_Regular_1D_i.hxx b/src/SMESH_I/SMESH_Regular_1D_i.hxx deleted file mode 100644 index e1a58a0b9..000000000 --- a/src/SMESH_I/SMESH_Regular_1D_i.hxx +++ /dev/null @@ -1,56 +0,0 @@ -// SMESH SMESH_I : idl implementation based on 'SMESH' unit's calsses -// -// Copyright (C) 2003 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 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org -// -// -// -// File : SMESH_Regular_1D_i.hxx -// Author : Paul RASCLE, EDF -// Module : SMESH -// $Header$ - -#ifndef _SMESH_REGULAR_1D_I_HXX_ -#define _SMESH_REGULAR_1D_I_HXX_ - -#include -#include CORBA_SERVER_HEADER(SMESH_BasicHypothesis) - -#include "SMESH_1D_Algo_i.hxx" - -#include "SMESH_Regular_1D.hxx" - -class SMESH_Regular_1D_i: - public POA_SMESH::SMESH_Regular_1D, - public SMESH_1D_Algo_i -{ -public: - SMESH_Regular_1D_i(const char* anHyp, - int studyId, - ::SMESH_Gen* genImpl); - - virtual ~SMESH_Regular_1D_i(); - -protected: - virtual void SetImpl(::SMESH_Regular_1D* impl); - - ::SMESH_Regular_1D* _impl; -}; - -#endif -- 2.30.2