mirror of
https://git.dev.opencascade.org/repos/occt.git
synced 2025-04-21 10:13:43 +03:00
Correction of OCCT for ACIS22398
This commit is contained in:
parent
69538a2229
commit
d30c4db93b
@ -1463,8 +1463,17 @@ Standard_Boolean ShapeFix_ComposeShell::SplitByLine (ShapeFix_WireSegment &wire,
|
|||||||
// Two consecutive tangential segments are considered as one, merge them.
|
// Two consecutive tangential segments are considered as one, merge them.
|
||||||
for ( i=1; i <= IntEdgePar.Length(); i++ ) {
|
for ( i=1; i <= IntEdgePar.Length(); i++ ) {
|
||||||
j = ( i > 1 ? i-1 : IntEdgePar.Length() );
|
j = ( i > 1 ? i-1 : IntEdgePar.Length() );
|
||||||
|
|
||||||
|
int k = ( i < IntEdgePar.Length() ? i + 1 : 1 ); // [ACIS22539]
|
||||||
|
|
||||||
if ( SegmentCodes(j) == IOR_UNDEF &&
|
if ( SegmentCodes(j) == IOR_UNDEF &&
|
||||||
SegmentCodes(i) == IOR_UNDEF ) {
|
SegmentCodes(i) == IOR_UNDEF ) {
|
||||||
|
|
||||||
|
// Very specific case when the constructed seam edge
|
||||||
|
// overlaps with spur edge [ACIS22539]
|
||||||
|
if (myClosedMode && (IntLinePar(i) - IntLinePar(j)) * (IntLinePar(k) - IntLinePar(i)) <= 0. )
|
||||||
|
continue;
|
||||||
|
|
||||||
IntEdgeInd.Remove(i);
|
IntEdgeInd.Remove(i);
|
||||||
IntEdgePar.Remove(i);
|
IntEdgePar.Remove(i);
|
||||||
IntLinePar.Remove(i);
|
IntLinePar.Remove(i);
|
||||||
|
@ -2986,7 +2986,9 @@ Standard_Boolean ShapeFix_Wire::FixNotchedEdges()
|
|||||||
if ( ! Context().IsNull() ) UpdateWire();
|
if ( ! Context().IsNull() ) UpdateWire();
|
||||||
Handle(ShapeExtend_WireData) sewd = WireData();
|
Handle(ShapeExtend_WireData) sewd = WireData();
|
||||||
|
|
||||||
for (Standard_Integer i = 1; i <= NbEdges() && NbEdges() > 2; i++ ) {
|
for (Standard_Integer i = 1; i <= NbEdges() && NbEdges() >= 2; i++) {
|
||||||
|
// NbEdges >= 2 -- equality also acceptable (ssv; 16.06.2011; ACIS22569)
|
||||||
|
|
||||||
Standard_Real param;
|
Standard_Real param;
|
||||||
Standard_Integer toRemove;
|
Standard_Integer toRemove;
|
||||||
if(theAdvAnalyzer->CheckNotchedEdges(i,toRemove,param,MinTolerance())){
|
if(theAdvAnalyzer->CheckNotchedEdges(i,toRemove,param,MinTolerance())){
|
||||||
|
Loading…
x
Reference in New Issue
Block a user