View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0008722 | Community | OCCT:Visualization | public | 2005-04-28 13:16 | 2011-12-15 16:36 |
Reporter | Assigned To | ||||
Priority | normal | Severity | feature | ||
Status | closed | Resolution | fixed | ||
OS | All | ||||
Fixed in Version | 5.2.3 | ||||
Summary | 0008722: Optimization of StdPrs_ToolRFace::Next() method | ||||
Description | It is proposed to improve StdPrs_ToolRFace::Next() method, so as to avoid unnecessary recursion. ******************** Original message posted by Ernest at www.opencascade.org forum: http://www.opencascade.org/org/forum/thread_8054/ some optimization ( StdPrs_ToolRFace) instead of void StdPrs_ToolRFace::Next() { myExplorer.Next(); if (myExplorer.More()) { // skip INTERNAL and EXTERNAL edges if (myExplorer.Current().Orientation() == TopAbs_INTERNAL) Next(); if (myExplorer.Current().Orientation() == TopAbs_EXTERNAL) Next(); if (myExplorer.More()) { Standard_Real U1,U2; const Handle(Geom2d_Curve)& C = BRep_Tool::CurveOnSurface(TopoDS::Edge(myExplorer.Current()), myFace, U1,U2); #ifdef OCC316 if ( !C.IsNull() ) #endif DummyCurve.Load(C,U1,U2); } } } it looks much better as: (less stack usage) void StdPrs_ToolRFace::Next() { myExplorer.Next(); if (myExplorer.More()) { // skip INTERNAL and EXTERNAL edges while (myExpolrer.More() && (myExplorer.Current().Orientation() == TopAbs_INTERNAL || myExplorer.Current().Orientation() == TopAbs_EXTERNAL)) myExplorer.Next(); if (myExplorer.More()) { Standard_Real U1,U2; const Handle(Geom2d_Curve)& C = BRep_Tool::CurveOnSurface(TopoDS::Edge(myExplorer.Current()), myFace, U1,U2); #ifdef OCC316 if ( !C.IsNull() ) #endif DummyCurve.Load(C,U1,U2); } } } at least i'd prefer the second code. | ||||
Additional information and documentation updates | Documentation remark, added by san 2005-06-07 08:40:05: Changes: StdPrs_ToolRFace::Next() was improved to avoid unnecessary recursion. | ||||
Tags | No tags attached. | ||||
Test case number | |||||
2005-04-28 11:22
|
patch.tar.gz (777 bytes) |
|
Dear APV, Please prepare testing workbench for attached : Created an attachment (patch.tar.gz) Corrected source file Bugmaster |
|
Dear BugMaster, Workbench KAS:dev:OCC8722-opt has been created and compiled on SUN and LIN. |
|
Dear QAContact, Please, test the workbench KAS:dev:OCC8722-opt and compare testing results of workbenches KAS:dev:Products and KAS:dev:OCC8722-opt. Libraries for SUN and LIN are available. |
|
No regress in dev:OCC8722-opt regarding to Products on sun or lin. |
|
Dear APV, Please raise dev:OCC8722-opt to KAS:dev:ros Bugmaster |
|
Dear BugMaster, Source file for fixing OCC8722 has been put to the queue KAS:dev:ros. |
Date Modified | Username | Field | Change |
---|---|---|---|
2005-05-04 11:02 | bugmaster | Assigned To | bugmaster => san |
2005-05-04 11:02 | bugmaster | Status | new => assigned |
2005-05-05 13:56 |
|
CC | => apv, aki |
2005-06-07 10:40 |
|
Status | assigned => resolved |
2005-06-27 10:01 | bugmaster | Status | resolved => verified |
2005-08-03 15:19 | bugmaster | Status | verified => closed |
2005-08-03 15:19 | bugmaster | Resolution | @0@ => fixed |
2011-08-02 11:24 | bugmaster | Category | OCCT:VIZ => OCCT:Visualization |
2011-12-15 16:36 |
|
Description Updated | |
2011-12-15 16:36 |
|
Additional Information Updated | |
2011-12-15 16:36 |
|
Project | Open CASCADE => Community |