Sat, 03/30/2013 - 18:21
Hi gays,
I'm trying to upgrade OCCT to version 6.5.4 for my software, but I found that all CAD operations take 10x longer time than version 6.5.1.
Compares the changes between version 6.5.1 and version 6.5.4, I found that triangles of the shape will be clean before the re-computation of shape triangulation.
Industry geometries are usually not fine for triangulation, I think that user is unable to wait for such a long time.
Following lines please found the changes:
- OCCT 6.5.1: Prs3d_ShadedShape::Add
Standard_Real aDeflection = GetDeflection(aShape, aDrawer);
//using of plugin
BRepMesh_PDiscretRoot pAlgo;
pAlgo=BRepMesh_DiscretFactory::Get().Discret(aShape,
aDeflection,
aDrawer->HLRAngle());
if (pAlgo)
pAlgo->Perform();
- OCCT 6.5.4:
Standard_Real aDeflection = GetDeflection (theShape, theDrawer);
// Check if it is possible to avoid unnecessary recomputation
// of shape triangulation
if (!BRepTools::Triangulation (theShape, aDeflection))
{
BRepTools::Clean (theShape);
// retrieve meshing tool from Factory
Handle(BRepMesh_DiscretRoot) aMeshAlgo = BRepMesh_DiscretFactory::Get().Discret (theShape,
aDeflection,
theDrawer->HLRAngle());
if (!aMeshAlgo.IsNull())
aMeshAlgo->Perform();
}
Wed, 04/03/2013 - 14:46
Hello heyuqi,
I can confirm the problem.
I guess the triangulation is also performed many times on the same shape because the criteria cannot be fulfilled for some shapes (but they get triangulated every time the method is called). See the issue:
http://tracker.dev.opencascade.org/view.php?id=23200
As a workaround I have commented out the offending code portion and have to make sure the shape triangulation is made before it gets visualized.
Pawel
Sat, 04/06/2013 - 22:51
Hello Pawel,
Thanks for your reply!
I will try to apply changes from your branches and found out which improvements will work.