X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FHEXABLOCK%2FHexNewShape.cxx;h=7de14881d2cf56d074906498565a10aa3126b9dc;hb=b871c3e20e331915e4534dcaffc1f0eab8f809d5;hp=7f109cf802dd152380734da03a87095e1413402f;hpb=0879e5d5795d7427c0d525432a59492126cab4c7;p=modules%2Fhexablock.git diff --git a/src/HEXABLOCK/HexNewShape.cxx b/src/HEXABLOCK/HexNewShape.cxx index 7f109cf..7de1488 100755 --- a/src/HEXABLOCK/HexNewShape.cxx +++ b/src/HEXABLOCK/HexNewShape.cxx @@ -1,12 +1,12 @@ // C++ : Gestion des Shapes (Hexa v5) -// Copyright (C) 2009-2013 CEA/DEN, EDF R&D +// Copyright (C) 2009-2016 CEA/DEN, EDF R&D // // This library is free software; you can redistribute it and/or // modify it under the terms of the GNU Lesser General Public // License as published by the Free Software Foundation; either -// version 2.1 of the License. +// version 2.1 of the License, or (at your option) any later version. // // This library is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -17,8 +17,8 @@ // License along with this library; if not, write to the Free Software // Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA // -// See http://www.salome-platform.org/ -// or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com +// #include "HexNewShape.hxx" #include "HexSubShape.hxx" @@ -55,7 +55,6 @@ #include #include - BEGIN_NAMESPACE_HEXA static bool db = on_debug (); // == getenv ("HEXA_DB") > 0 @@ -178,8 +177,7 @@ int NewShape::transfoShape (Matrix& matrice, SubShape* shape) gp_Trsf transfo; double a11,a12,a13,a14, a21,a22,a23,a24, a31,a32,a33,a34; matrice.getCoeff (a11,a12,a13,a14, a21,a22,a23,a24, a31,a32,a33,a34); - transfo.SetValues (a11,a12,a13,a14, a21,a22,a23,a24, a31,a32,a33,a34, - Epsil2, Epsil2); + transfo.SetValues (a11,a12,a13,a14, a21,a22,a23,a24, a31,a32,a33,a34); TopoDS_Shape shape_orig = shape->getShape (); BRepBuilderAPI_Transform builder (shape_orig, transfo, Standard_True); @@ -291,6 +289,18 @@ VertexShape* NewShape::findVertex (int shid) } return NULL; } +// ====================================================== findVertex +VertexShape* NewShape::findVertex (double point[]) +{ + int nbre = tab_vertex.size (); + for (int nro=0 ; nro < nbre ; nro++) + { + VertexShape* shape = tab_vertex [nro]; + if (shape->definedBy (point)) + return shape; + } + return NULL; +} // ====================================================== findEdge EdgeShape* NewShape::findEdge (int shid) { @@ -303,6 +313,18 @@ EdgeShape* NewShape::findEdge (int shid) } return NULL; } +// ====================================================== findEdge +EdgeShape* NewShape::findEdge (double p1[], double p2[]) +{ + int nbre = tab_edge.size (); + for (int nro=0 ; nro < nbre ; nro++) + { + EdgeShape* shape = tab_edge [nro]; + if (shape->definedBy (p1, p2)) + return shape; + } + return NULL; +} // ====================================================== findFace FaceShape* NewShape::findFace (int shid) { @@ -439,6 +461,14 @@ int NewShape::saveBrep () fclose (fic); return HOK; } +// ===================================================== getBrep +cpchar NewShape::getBrep () +{ + int ier = updateBrep (); + if (ier != HOK) + return NULL; + return geo_brep.c_str(); +} // ====================================================== saveXml void NewShape::saveXml (XmlWriter* xml) {