Salome HOME
warning hunting in medcoupling to ease template action in DataArrays
[tools/medcoupling.git] / src / MEDCoupling / MEDCouplingCurveLinearMesh.cxx
index 92c9c96d486df92f9db61c03b248f816b0073c67..b321f93eca4f5662bcea762c4dd8ebf91a27d348 100644 (file)
@@ -1,4 +1,4 @@
-// Copyright (C) 2007-2015  CEA/DEN, EDF R&D
+// Copyright (C) 2007-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
@@ -16,7 +16,7 @@
 //
 // See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
-// Author : Anthony Geay (CEA/DEN)
+// Author : Anthony Geay (EDF R&D)
 
 #include "MEDCouplingCurveLinearMesh.hxx"
 #include "MEDCouplingPointSet.hxx"
@@ -37,9 +37,9 @@ MEDCouplingCurveLinearMesh::MEDCouplingCurveLinearMesh():_coords(0),_structure(0
 {
 }
 
-MEDCouplingCurveLinearMesh::MEDCouplingCurveLinearMesh(const MEDCouplingCurveLinearMesh& other, bool deepCopy):MEDCouplingStructuredMesh(other,deepCopy),_structure(other._structure)
+MEDCouplingCurveLinearMesh::MEDCouplingCurveLinearMesh(const MEDCouplingCurveLinearMesh& other, bool deepCpy):MEDCouplingStructuredMesh(other,deepCpy),_structure(other._structure)
 {
-  if(deepCopy)
+  if(deepCpy)
     {
       if((const DataArrayDouble *)other._coords)
         _coords=other._coords->deepCopy();
@@ -270,6 +270,11 @@ std::string MEDCouplingCurveLinearMesh::advancedRepr() const
   return simpleRepr();
 }
 
+const DataArrayDouble *MEDCouplingCurveLinearMesh::getDirectAccessOfCoordsArrIfInStructure() const
+{
+  return _coords;
+}
+
 DataArrayDouble *MEDCouplingCurveLinearMesh::getCoords()
 {
   return _coords;
@@ -629,6 +634,12 @@ int MEDCouplingCurveLinearMesh::getCellContainingPoint(const double *pos, double
   }
 }
 
+void MEDCouplingCurveLinearMesh::getCellsContainingPoint(const double *pos, double eps, std::vector<int>& elts) const
+{
+  int ret(getCellContainingPoint(pos,eps));
+  elts.push_back(ret);
+}
+
 void MEDCouplingCurveLinearMesh::rotate(const double *center, const double *vector, double angle)
 {
   if(!((DataArrayDouble *)_coords))
@@ -637,9 +648,9 @@ void MEDCouplingCurveLinearMesh::rotate(const double *center, const double *vect
   int nbNodes=_coords->getNumberOfTuples();
   double *coords=_coords->getPointer();
   if(spaceDim==3)
-    MEDCouplingPointSet::Rotate3DAlg(center,vector,angle,nbNodes,coords);
+    DataArrayDouble::Rotate3DAlg(center,vector,angle,nbNodes,coords,coords);
   else if(spaceDim==2)
-    MEDCouplingPointSet::Rotate2DAlg(center,angle,nbNodes,coords);
+    DataArrayDouble::Rotate2DAlg(center,angle,nbNodes,coords,coords);
   else
     throw INTERP_KERNEL::Exception("MEDCouplingCurveLinearMesh::rotate : invalid space dim for rotation must be 2 or 3");
   _coords->declareAsNew();