X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FINTERP_KERNEL%2FSplitterTetra.hxx;h=bbf39fd2afe15e497a89728bf9d208a4952bdda2;hb=07c8e8ff8efab9224c53b20bf63872110dea6ab6;hp=ccfa1d2563b19ff8dda4c2b8c8dadd0b459d2971;hpb=e215e6f76f706ca097b9fdca5665ec3f06237e69;p=tools%2Fmedcoupling.git diff --git a/src/INTERP_KERNEL/SplitterTetra.hxx b/src/INTERP_KERNEL/SplitterTetra.hxx index ccfa1d256..bbf39fd2a 100644 --- a/src/INTERP_KERNEL/SplitterTetra.hxx +++ b/src/INTERP_KERNEL/SplitterTetra.hxx @@ -1,9 +1,9 @@ -// Copyright (C) 2007-2013 CEA/DEN, EDF R&D +// Copyright (C) 2007-2014 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 @@ -20,6 +20,7 @@ #ifndef __SPLITTERTETRA_HXX__ #define __SPLITTERTETRA_HXX__ +#include "INTERPKERNELDefines.hxx" #include "TransformedTriangle.hxx" #include "TetraAffineTransform.hxx" #include "InterpolationOptions.hxx" @@ -199,10 +200,10 @@ namespace INTERP_KERNEL -19,-16,-11,-18,-17,-8,6,-12}; void SplitHexa8IntoTetras(SplittingPolicy policy, const int *nodalConnBg, const int *nodalConnEnd, const double *coords, - std::vector& tetrasNodalConn, std::vector& addCoords) throw(INTERP_KERNEL::Exception); + std::vector& tetrasNodalConn, std::vector& addCoords); - void SplitIntoTetras(SplittingPolicy policy, NormalizedCellType gt, const int *nodalConnBg, const int *nodalConnEnd, const double *coords, - std::vector& tetrasNodalConn, std::vector& addCoords) throw(INTERP_KERNEL::Exception); + INTERPKERNEL_EXPORT void SplitIntoTetras(SplittingPolicy policy, NormalizedCellType gt, const int *nodalConnBg, const int *nodalConnEnd, const double *coords, + std::vector& tetrasNodalConn, std::vector& addCoords); /** * \brief Class representing a triangular face, used as key in caching hash map in SplitterTetra. @@ -363,7 +364,7 @@ namespace INTERP_KERNEL SplitterTetra(const MyMeshType& srcMesh, const double** tetraCorners, const typename MyMeshType::MyConnType *nodesId); - SplitterTetra(const MyMeshType& srcMesh, const double tetraCorners[12]); + SplitterTetra(const MyMeshType& srcMesh, const double tetraCorners[12], const int *conn = 0); ~SplitterTetra(); @@ -388,8 +389,8 @@ namespace INTERP_KERNEL void clearVolumesCache(); private: - inline void checkIsOutside(const double* pt, bool* isOutside, const double errTol = DEFAULT_ABS_TOL) const; - inline void checkIsStrictlyOutside(const double* pt, bool* isStrictlyOutside, const double errTol = DEFAULT_ABS_TOL) const; + inline static void CheckIsOutside(const double* pt, bool* isOutside, const double errTol = DEFAULT_ABS_TOL); + inline static void CheckIsStrictlyOutside(const double* pt, bool* isStrictlyOutside, const double errTol = DEFAULT_ABS_TOL); inline void calculateNode(typename MyMeshType::MyConnType globalNodeNum); inline void calculateNode2(typename MyMeshType::MyConnType globalNodeNum, const double* node); inline void calculateVolume(TransformedTriangle& tri, const TriangleFaceKey& key); @@ -442,7 +443,7 @@ namespace INTERP_KERNEL * @param isOutside bool[8] which indicate the results of earlier checks. */ template - inline void SplitterTetra::checkIsOutside(const double* pt, bool* isOutside, const double errTol) const + inline void SplitterTetra::CheckIsOutside(const double* pt, bool* isOutside, const double errTol) { isOutside[0] = isOutside[0] && (pt[0] < errTol); isOutside[1] = isOutside[1] && (pt[0] > (1.0-errTol) ); @@ -455,7 +456,7 @@ namespace INTERP_KERNEL } template - inline void SplitterTetra::checkIsStrictlyOutside(const double* pt, bool* isStrictlyOutside, const double errTol) const + inline void SplitterTetra::CheckIsStrictlyOutside(const double* pt, bool* isStrictlyOutside, const double errTol) { isStrictlyOutside[0] = isStrictlyOutside[0] && (pt[0] < -errTol); isStrictlyOutside[1] = isStrictlyOutside[1] && (pt[0] > (1.0 + errTol));