19 Commits

Author SHA1 Message Date
eap
3a82c6685b 020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
* Cash GeomAPI_ProjectPointOnSurf's
 * Make applyFunc() public under name applyIn2D()


+   * \brief Define a pointer to wrapper over a function of gp_XY class,
+   *       suitable to pass as xyFunPtr to applyIn2D().
+   *       For exaple gp_XY_FunPtr(Added) defines pointer gp_XY_Added to function
+   *       calling gp_XY::Added(gp_XY), which is to be used like following
+   *       applyIn2D(surf, uv1, uv2, gp_XY_Added)
+   */
+#define gp_XY_FunPtr(meth) \
+  static gp_XY __gpXY_##meth (const gp_XY& uv1, const gp_XY& uv2) { return uv1.meth( uv2 ); } \
+  static xyFunPtr gp_XY_##meth = & __gpXY_##meth

+  /*!
+   * \brief Perform given operation on two 2d points in parameric space of given surface.
+   *        It takes into account period of the surface. Use gp_XY_FunPtr macro
+   *        to easily define pointer to function of gp_XY class.
+   */
+  static gp_XY applyIn2D(const Handle(Geom_Surface)& surface,
+                         const gp_XY&                uv1,
+                         const gp_XY&                uv2,
+                         xyFunPtr                    fun,
+                         const bool                  resultInPeriod=true);
+
2010-03-23 08:04:58 +00:00
eap
43cfddbeaa 0020771: EDF 1322 SMESH : Quadratic/Linear conversion with Medium Nodes on Geometry issue
* Care of period when performing operations on points in parametric space
2010-03-19 14:21:48 +00:00
eap
d5768a3f63 0020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
* fix pb of CheckNodeUV() with INTERNAL shapes

+  /*!
+   * \brief Return iterator on ancestors of the given type
+   */
+  static PShapeIteratorPtr GetAncestors(const TopoDS_Shape& shape,
+                                        const SMESH_Mesh&   mesh,
+                                        TopAbs_ShapeEnum    ancestorType);
2010-03-18 09:47:58 +00:00
eap
8baf98a974 +//=======================================================================
+/*!
+ * \brief SMESH_TLink knowing its orientation
+ */
+//=======================================================================
+
+struct SMESH_OrientedLink: public SMESH_TLink
+{
+  bool _reversed;
+  SMESH_OrientedLink(const SMDS_MeshNode* n1, const SMDS_MeshNode* n2 )
+    : SMESH_TLink( n1, n2 ), _reversed( n1 != node1() ) {}
+};
2010-03-12 08:30:20 +00:00
eap
f01d6dacd5 0020725: EDF 1242 SMESH : Crash avec Convert lin--> quad avec BLSURF/GHS3D on 64bits
0020721: EDF 1233 SMESH : Crash/bad behavior of 'Convert linear Quadratic with Medium Nodes on Geometry' feature with BLSurf/Ghs3D
* Fix GetNodeUV() for the case of surface both U and V periodic.
* Protect QFace::GetBoundaryLink() from infinite recursion.
* Protect QFace::GetLinkChain() from stack overflow.
2010-03-03 09:03:47 +00:00
eap
84dcc4efcf 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
* Add CheckNodeU()
* Compute parameters of created medium nodes even in force3d mode
* Leave doxygen-style comments of functions only in the header
2010-02-11 13:16:51 +00:00
vsr
2daa321efa Merge from V5_1_3_BR branch (07/12/09) 2009-12-08 13:11:42 +00:00
eap
6510081be2 020461: EDF 1102 GHS3DPLUGIN: Bad detection of volumes with Ghs3d mesh
SMESH_MesherHelper:

-  void SetCheckNodePosition(bool toCheck) { myCheckNodePos = toCheck; }
   /*!
+   * \brief Check and fix node UV on a face
+   *  \retval bool - false if UV is bad and could not be fixed
+   */
+  bool CheckNodeUV(const TopoDS_Face&   F,
+                   const SMDS_MeshNode* n,
+                   gp_XY&               uv,
+                   const double         tol) const;

-  bool            myCheckNodePos;
+  std::set< int > myOkNodePosShapes;
2009-10-02 16:20:31 +00:00
eap
525249fdfb unatbify 2009-09-10 11:06:18 +00:00
vsr
a4d61a7b6f Fix compilation problems on Windows 2009-07-31 13:52:22 +00:00
skl
55510e5ccd Implementation of Quadrangle (Mapping) for faces built on 3 edges (0018911 from Mantis). 2009-07-22 09:13:29 +00:00
adam
90c6367e0c Fix compilation of gcc 4.3.2 2009-07-20 13:11:57 +00:00
eap
8735b17bdc 0020128: EDF SMESH 926 : Quadratic conversion of BLSURF mesh
/*!
+   * \brief Move medium nodes of faces and volumes to fix distorted elements
+   * \param volumeOnly - fix nodes on faces or not if the shape is solid
+   */
+  void FixQuadraticElements(bool volumeOnly=true);
2009-06-18 12:44:50 +00:00
eap
b6c9c862b4 0020279: [CEA 334] control the "random" use when using mesh algorithms
fix IsQuadraticSubMesh() to work on mesh w/o shape
2009-05-19 15:19:52 +00:00
vsr
18711ecd04 Merge from BR_V5_DEV 17Feb09 2009-02-17 06:55:16 +00:00
vsr
0635c9fc80 Merge from BR_V5_DEV 16Feb09 2009-02-17 05:27:49 +00:00
jfa
79b1ac2b6d Join modifications from BR_Dev_For_4_0 tag V4_1_1. 2008-03-07 07:47:05 +00:00
jfa
c63ee099ad Join modifications from branch BR_DEBUG_3_2_0b1 2006-06-01 11:39:17 +00:00
jfa
57b43b4d01 Join modifications from branch OCC_debug_for_3_2_0b1 2006-05-06 08:51:48 +00:00