Salome HOME
Clean-up deprecated OCCT-related code
[modules/hexablock.git] / src / HEXABLOCK / HexNewShape.cxx
index 7f109cf802dd152380734da03a87095e1413402f..7de14881d2cf56d074906498565a10aa3126b9dc 100755 (executable)
@@ -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 <gp_Lin.hxx>
 #include <gp_Circ.hxx>
 
-
 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)
 {