X-Git-Url: http://git.salome-platform.org/gitweb/?a=blobdiff_plain;f=src%2FStdMeshers%2FStdMeshers_Quadrangle_2D.hxx;h=ac7e63108909501b3c915216a6a1fff53233ed03;hb=0aa84210cf7da3868cc8eb26b17a2da8e046b3ae;hp=4d02719b09613ebbc630b44ec26c39c37425fa92;hpb=236b583d315b14278bda28e118748016d0e4f709;p=modules%2Fsmesh.git diff --git a/src/StdMeshers/StdMeshers_Quadrangle_2D.hxx b/src/StdMeshers/StdMeshers_Quadrangle_2D.hxx index 4d02719b0..ac7e63108 100644 --- a/src/StdMeshers/StdMeshers_Quadrangle_2D.hxx +++ b/src/StdMeshers/StdMeshers_Quadrangle_2D.hxx @@ -17,7 +17,7 @@ // 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.opencascade.org/SALOME/ or email : webmaster.salome@opencascade.org +// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com // // // @@ -30,11 +30,17 @@ #ifndef _SMESH_QUADRANGLE_2D_HXX_ #define _SMESH_QUADRANGLE_2D_HXX_ +#include "SMESH_StdMeshers.hxx" + #include "SMESH_2D_Algo.hxx" #include "SMESH_Mesh.hxx" #include "Utils_SALOME_Exception.hxx" -class SMDS_MeshNode; +#include "gp_XY.hxx" + +#include "SMESH_MesherHelper.hxx" + +//class SMDS_MeshNode; typedef struct uvPtStruct { @@ -59,7 +65,7 @@ typedef struct faceQuadStruct UVPtStruct* uv_grid; } FaceQuadStruct; -class StdMeshers_Quadrangle_2D: +class STDMESHERS_EXPORT StdMeshers_Quadrangle_2D: public SMESH_2D_Algo { public: @@ -75,11 +81,17 @@ public: throw (SALOME_Exception); FaceQuadStruct* CheckAnd2Dcompute(SMESH_Mesh& aMesh, - const TopoDS_Shape& aShape) + const TopoDS_Shape& aShape, + const bool CreateQuadratic) throw (SALOME_Exception); static void QuadDelete(FaceQuadStruct* quad); + /** + * Returns NLinkNodeMap from myTool + */ + const NLinkNodeMap& GetNLinkNodeMap() { return myTool->GetNLinkNodeMap(); } + ostream & SaveTo(ostream & save); istream & LoadFrom(istream & load); friend ostream & operator << (ostream & save, StdMeshers_Quadrangle_2D & hyp); @@ -87,11 +99,27 @@ public: protected: + FaceQuadStruct* CheckNbEdges(SMESH_Mesh& aMesh, + const TopoDS_Shape& aShape) + throw (SALOME_Exception); + void SetNormalizedGrid(SMESH_Mesh& aMesh, const TopoDS_Shape& aShape, FaceQuadStruct* quad) throw (SALOME_Exception); + /** + * Special function for creation only quandrangle faces + */ + bool ComputeQuadPref(SMESH_Mesh& aMesh, + const TopoDS_Shape& aShape, + FaceQuadStruct* quad) + throw (SALOME_Exception); + + UVPtStruct* LoadEdgePoints2(SMESH_Mesh& aMesh, + const TopoDS_Face& F, const TopoDS_Edge& E, + bool IsReverse); + UVPtStruct* LoadEdgePoints(SMESH_Mesh& aMesh, const TopoDS_Face& F, const TopoDS_Edge& E, double first, double last); @@ -104,6 +132,8 @@ protected: // construction of quadrangles if the number of nodes on opposite edges // is not the same in the case where the global number of nodes on edges is even bool myQuadranglePreference; + + SMESH_MesherHelper* myTool; // toll for working with quadratic elements }; #endif