Commit Graph

221 Commits

Author SHA1 Message Date
eap
7b7daf5e4b + SMDS_MeshFace* AddPolygonalFace (const std::vector<const SMDS_MeshNode*>& nodes,
+  SMDS_MeshVolume* AddPolyhedralVolume (const std::vector<const SMDS_MeshNode*>& nodes,
2010-10-04 11:25:52 +00:00
eap
679fca4c8a 0020889: EDF 1433 SMESH: SplitHexaToTetra: add the 24 tetras mode
* Add HEXA_TO_24 splitting mode
 * Fix ConvertToQuadratic() to avoid disappearance of poly elements
2010-10-04 11:24:14 +00:00
eap
ee86814502 0021015: EDF 1578 SMESH: Free nodes are removed when translating a mesh
* Treate orphan nodes in Transform()
 * Remove Scale() as being a paricular case of Transform()
2010-10-01 12:48:49 +00:00
eap
56d3c935a8 0021006: EDF 1546 SMESH : Convert To Quadratic fails
+  const SMDS_MeshNode* getMediumNodeOnComposedWire(const SMDS_MeshNode* n1,
+                                                   const SMDS_MeshNode* n2,
+                                                   bool                 force3d);
2010-09-28 11:29:20 +00:00
eap
c9ba971509 issue 0020959: HEXA_3D fails on shell
Fix DependsOn() for a not-closed SHELL not in SOLID
2010-09-22 11:41:25 +00:00
eap
8ca5200ec2 0020986: EDF 1557 SMESH: Convert to quadratic with medium node on geometry fails on a GHS3D mesh
Optimize FixQuadraticElements()
2010-09-22 11:24:21 +00:00
gdd
5fbfcdf41e GDD:
- fix documentation of ConvertToQuadratic (inform about theForce3d parameter)
- New function PrintDoubleValue added in PluginUtils
2010-09-21 13:48:27 +00:00
eap
631ad5cae2 Correct name of an argument
static int GetOrderedEdges (const TopoDS_Face&        theFace,
                               TopoDS_Vertex             theFirstVertex,
                               std::list< TopoDS_Edge >& theEdges,
-                              std::list< int >  &       theNbVertexInWires,
+                              std::list< int >  &       theNbEdgesInWires,
                               const bool                theShapeAnalysisAlgo=false);
2010-09-21 07:48:09 +00:00
eap
e0baca518c 0020982: EDF 1547 SMESH: Creation of non-conformal quadratic pyramids
Fix fillAncestorsMap(theShape) for the case if a sub-shape of
   theShape is not in _mapAncestors
2010-09-17 05:35:42 +00:00
eap
b166f12b58 Use TIDSortedNodeSet instead of set< const SMDS_MeshNode*> when looking for coincident nodes
+typedef std::set< const SMDS_MeshNode*,    TIDCompare >      TIDSortedNodeSet;
2010-09-15 11:41:11 +00:00
eap
ea6aa32f23 0020968: EDF1545 SMESH: Problem in de creation of a mesh group on geometry
Detect not computed sub-shapes in case if algo computes many
   submeshes at once
2010-09-03 14:19:16 +00:00
eap
fe8da0148d improve comment 2010-09-02 06:26:55 +00:00
eap
59f4ea94a3 bool SMESH_HypoFilter::IsMoreLocalThanPredicate::IsOk(const SMESH_Hypothesis* aHyp,
const TopoDS_Shape&     aShape) const
 {
+  // issue 0020963
+  // if aShape is COMPOUND (i.e. most probably a GEOM group) then
+  // it is more local if it contains shapes of less dimension than _shapeType
+  ...
2010-09-02 06:26:23 +00:00
eap
b539de9f45 0020959: EDF 1531: HEXA_3D fails on shell
in DependsOn(), do not make a sub-mesh of a not closed SHELL
2010-09-01 11:00:43 +00:00
eap
3a69b3ea0f 0020958: EDF 1529 SMESH : If some faces have been meshed with small
quadrangles Netgen 3D creates pyramids with volume zero and fails

struct SMESH_ElementSearcher
{
+  /*!
+   * \brief Return elements possibly intersecting the line
+   */
+  virtual void GetElementsNearLine( const gp_Ax1&                           line,
+                                    SMDSAbs_ElementType                     type,
+                                    std::vector< const SMDS_MeshElement* >& foundElems)=0;
2010-08-19 09:19:49 +00:00
eap
758a69ebf0 0020951: EDF 1501 SMESH: Conversion linear/quadratic with medium nodes on geometry fails with GHS3D
* Fix splitTrianglesIntoChains()
2010-08-04 12:05:37 +00:00
eap
52be03b564 0020951: EDF 1501 SMESH: Conversion linear/quadratic with medium nodes on geometry fails with GHS3D
* Fix GetNodeUV() for a node on seam edge: enable projection of node in face
 * Fix GetMediumNode(): set a node in volume #1 as well
 * Fix QFace::GetLinkChain(), case of triangles
2010-07-27 13:05:28 +00:00
eap
4ea8012155 0020920: EDF 1478 SMESH: Conversion linear to quadratic fails (BLSURF Mesh)
* fix FixQuadraticElements(): ignore internal chains
2010-07-21 05:45:17 +00:00
eap
cc0f9654b4 0020919: EDF 1472 SMESH: Linear to quadratic conversion fails with hexaedron algorithm
* fix FixQuadraticElements()
2010-07-20 06:06:38 +00:00
eap
90bfbd9c1e improve comment 2010-07-20 06:05:22 +00:00
eap
99adc043fe untabify 2010-07-19 07:57:32 +00:00
vsr
420d105fdb Issue 0020921: EDF 1462 SMESH: Regression in 5.1.4. a quadrangle meshing fails 2010-07-08 06:51:11 +00:00
vsr
32a86c1f4a 0020742: EDF 1270 SMESH : Delete Group with contents and remove Orphan Nodes 2010-07-07 05:32:15 +00:00
vsr
2343a5b385 Fix bug of NodeSearcher: search fails if point is outside the mesh on the distance more than octree node precision value. Version 2 with improved performance. 2010-06-21 07:29:04 +00:00
vsr
97577f2731 Fix bug of NodeSearcher: search fails if point is outside the mesh on the distance more than octree node precision value 2010-06-17 19:00:18 +00:00
vsr
6ea1e8f320 Merge from V5_1_4_BR (5_1_4rc2) 09/06/2010 2010-06-10 06:51:07 +00:00
eap
d0e4aacc56 0020693: EDF 1288 SMESH: Problem to recompute a mesh with a sub-mesh and a conversion linear-quadratic
+  void SetIsModified(bool isModified);
+  bool GetIsModified() const { return _isModified; }
+  bool HasModificationsToDiscard() const;
+  bool                       _isModified; //!< modified since last total re-compute, issue 0020693
2010-05-13 06:18:02 +00:00
vsr
6650dea1f8 Merge from V5_1_4_BR 07/05/2010 2010-05-07 15:08:23 +00:00
eap
a232cd7e03 0020672: EDF 1243 SMESH : Be able to transform mixed mesh
+    void SplitVolumesIntoTetra(in SMESH_IDSource elems, in short methodFlags)
2010-03-30 12:38:16 +00:00
eap
8951a46238 Move from StdMeshers_ProjectionUtils
+  static bool IsSubShape( const TopoDS_Shape& shape, const TopoDS_Shape& mainShape );
+
+  static bool IsSubShape( const TopoDS_Shape& shape, SMESH_Mesh* aMesh );
2010-03-23 14:32:26 +00:00
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
vsr
db9ba2e978 0020801: EDF 1343 SMESH : Segmentation violation during compound od Mesh with 0D elements 2010-03-22 14:30:36 +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
b51a02ed24 0020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
-  TopoDS_Shape GetSubShape() const  { return myShape; }
+  const TopoDS_Shape& GetSubShape() const  { return myShape; }

+typedef SMDS_Iterator<const TopoDS_Shape*>  PShapeIterator;
+typedef boost::shared_ptr< PShapeIterator > PShapeIteratorPtr;

+  /*!
+   * \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:46:14 +00:00
eap
331cc524a8 0020676: EDF 1212 GEOM: Partition operation creates vertices which causes mesh computation to fail with netgen
* In GetOrderedEdges(), preview presence of the internal vertex within the face
2010-03-18 09:42:08 +00:00
ana
1839653e13 Windows compatibility 2010-03-16 13:04:00 +00:00
ana
a4a1062443 Windows compatibility 2010-03-15 14:45:59 +00:00
vsr
e2018c0393 Fix compilation problem on Debian Sarge 2010-03-15 09:31:54 +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
22395fddea /*!
* \brief High level util for effective file reading and other file operations
 */
2010-03-12 08:26:13 +00:00
skl
25722a6cdd Changes for bug 0020734. 2010-03-11 09:36:56 +00:00
eap
78364113e1 0020714: EDF GHS3DPLUGIN: shapeToMesh when creating 3D mesh from 2D mesh
* Fix GetPointState()
2010-03-05 11:13:07 +00:00
eap
8781de04b7 set Kernel_Utils::Localizer before calling algo->Compute() 2010-03-05 07:42:20 +00:00
eap
e1e680f157 0020714: EDF GHS3DPLUGIN: shapeToMesh when creating 3D mesh from 2D mesh
* Add function to find out if the given point is out of closed 2D mesh.

+  virtual TopAbs_State GetPointState(const gp_Pnt& point);
2010-03-04 14:05:05 +00:00
eap
4fadfe037a 0020714: EDF GHS3DPLUGIN: shapeToMesh when creating 3D mesh from 2D mesh
* Fix FaceNormal()
* Add
+  static std::vector< const SMDS_MeshNode*> GetCommonNodes(const SMDS_MeshElement* e1,
+                                                           const SMDS_MeshElement* e2);
2010-03-04 13:57:50 +00:00
eap
8ac52f19a5 remove commented code 2010-03-04 09:59:01 +00:00
eap
859674eaf0 prevent MakeMesh() from crash if myShapeIDMap.IsEmpty() 2010-03-03 13:58:32 +00:00
skl
00c9fb50be Changes for bug 0020753. 2010-03-03 11:01:36 +00:00
eap
f4222ec705 roll back 2010-03-03 09:07:23 +00:00