X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FINTERP_KERNEL%2FTransformedTriangle.hxx;h=f77cf30f5f271940e5fedaf8a9277ab155680030;hb=d426837c21eca9b56b9b8a7a7434aaf3969c8977;hp=f8933724caebc395292a2b076555c70c29c0f72a;hpb=48782c06022ca2caa36f849cb5a29ea4fe2aaa83;p=tools%2Fmedcoupling.git diff --git a/src/INTERP_KERNEL/TransformedTriangle.hxx b/src/INTERP_KERNEL/TransformedTriangle.hxx index f8933724c..f77cf30f5 100644 --- a/src/INTERP_KERNEL/TransformedTriangle.hxx +++ b/src/INTERP_KERNEL/TransformedTriangle.hxx @@ -1,21 +1,22 @@ -// Copyright (C) 2007-2008 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 -// License as published by the Free Software Foundation; either -// version 2.1 of the License. +// 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, 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 -// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -// Lesser General Public License for more details. +// 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 +// 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.salome-platform.org/ or email : webmaster.salome@opencascade.com +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // + #ifndef __TRANSFORMED_TRIANGLE_HXX__ #define __TRANSFORMED_TRIANGLE_HXX__ @@ -32,6 +33,10 @@ #include "Log.hxx" +#ifdef WIN32 +#pragma warning(disable:4251) +#endif + namespace INTERP_TEST { class TransformedTriangleTest; @@ -41,6 +46,7 @@ namespace INTERP_TEST namespace INTERP_KERNEL { + class TetraAffineTransform; /** \class TransformedTriangle * \brief Class representing one of the faces of the triangulated source polyhedron after having been transformed @@ -132,6 +138,7 @@ namespace INTERP_KERNEL ~TransformedTriangle(); double calculateIntersectionVolume(); + double calculateIntersectionSurface(TetraAffineTransform* tat); void dumpCoords() const; @@ -150,7 +157,7 @@ namespace INTERP_KERNEL // ---------------------------------------------------------------------------------- // High-level methods called directly by calculateIntersectionVolume() // ---------------------------------------------------------------------------------- - void calculateIntersectionPolygons(); + void calculateIntersectionAndProjectionPolygons(); void calculatePolygonBarycenter(const IntersectionPolygon poly, double* barycenter); @@ -158,6 +165,13 @@ namespace INTERP_KERNEL double calculateVolumeUnderPolygon(IntersectionPolygon poly, const double* barycenter); + // ---------------------------------------------------------------------------------- + // High-level methods called directly by calculateIntersectionSurface() + // ---------------------------------------------------------------------------------- + void calculateIntersectionPolygon(); + + double calculateSurfacePolygon(); + // ---------------------------------------------------------------------------------- // Detection of degenerate triangles // ---------------------------------------------------------------------------------- @@ -224,7 +238,7 @@ namespace INTERP_KERNEL // Double and triple product calculations // ---------------------------------------------------------------------------------- - + void resetNearZeroCoordinates(); bool areDoubleProductsConsistent(const TriSegment seg) const;