1
0
mirror of https://git.dev.opencascade.org/repos/occt.git synced 2025-08-14 13:30:48 +03:00

0025364: BRepMesh is not able to triangulate the shape with fine deflection

Don't create data structures for whole set of faces. Necessary structures are created directly in BRepMesh_FastDiscret.
Don't copy nodes data during scaling, single structure is used.

Remove lines used for debug

Fix sphere: resolve problem came from merging.

Keep code clean - remove unnecessary logic, expected to be used for complicated restoration process.

Test cases for issue CR25364
This commit is contained in:
oan
2014-11-05 17:57:41 +03:00
committed by bugmaster
parent e3573bb9ec
commit 2caff0b32f
23 changed files with 602 additions and 421 deletions

View File

@@ -124,12 +124,6 @@ public: //! @name plugin API
//! Discret() static method (thus applied only to Mesh Factories).
Standard_EXPORT static void SetParallelDefault(const Standard_Boolean isInParallel);
//! Returns mesh tool storing mesh data.
inline const Handle(BRepMesh_FastDiscret)& Mesh() const
{
return myMesh;
}
DEFINE_STANDARD_RTTI(BRepMesh_IncrementalMesh)
protected:
@@ -191,6 +185,9 @@ private:
//! Stores mesh of internal edges to the face.
void commitEdges(const TopoDS_Face& theFace);
//! Clears internal data structures.
void clear();
protected:
@@ -202,7 +199,7 @@ protected:
TopTools_DataMapOfShapeReal myEdgeDeflection;
Standard_Real myMaxShapeSize;
Standard_Integer myStatus;
std::vector<TopoDS_Face> myFaces;
NCollection_Vector<TopoDS_Face> myFaces;
};
DEFINE_STANDARD_HANDLE(BRepMesh_IncrementalMesh,BRepMesh_DiscretRoot)