- if(anEdgLeft.IsNull())
- return false;
-
- aBSpline.Nullify();
- aBSpline = buildInterpolationCurve (theArrayOfLPnt);
- if(aBSpline.IsNull())
- return false;
-
- aMakeEdge.Init(aBSpline);
- if(aMakeEdge.IsDone())
- anEdgRight = aMakeEdge.Edge();
-
- if(anEdgRight.IsNull())
- return false;
-
- BRep_Builder aBB;
- TopoDS_Compound aCmp;
- aBB.MakeCompound(aCmp);
- for (int i=1 ; i < theArrOfProfiles->Length() +1; i++ )
- aBB.Add(aCmp, theArrOfProfiles->Value(i));
-
- aBB.Add(aCmp,anEdgLeft);
- aBB.Add(aCmp,anEdgRight);
- BRepCheck_Analyzer aCh(aCmp);
- if(aCh.IsValid())
- thePrs.myPrs3D = aCmp;
-#ifdef DEB_UPDATE
- else {
- BRepTools::Write(aCmp, "str3d.brep");
- thePrs.myPrs3D = aCmp;
- }
-#endif
-
- // Construct the top presentation
- int aNbPoints = theArrayOfFPnt->Length();
- Handle(TColgp_HArray1OfPnt) anArrayOfFPnt = new TColgp_HArray1OfPnt(1, aNbPoints);
- Handle(TColgp_HArray1OfPnt) anArrayOfLPnt = new TColgp_HArray1OfPnt(1, aNbPoints);
- for( int i=1; i <= aNbPoints; i++ ) {
- gp_Pnt aPnt = theArrayOfFPnt->Value(i);
- aPnt.SetZ(.0); // make 2d
- anArrayOfFPnt->SetValue(i, aPnt);
- aPnt = theArrayOfLPnt->Value(i);
- aPnt.SetZ(.0);
- anArrayOfLPnt->SetValue(i, aPnt);
+ if (!ll.IsEmpty())
+ {
+ TopAbs_ShapeEnum ll1_sht = ll(1).ShapeType();
+ TopAbs_ShapeEnum ll2_sht = ll(2).ShapeType();
+ if ((ll1_sht == TopAbs_WIRE || ll1_sht == TopAbs_EDGE) &&
+ (ll2_sht == TopAbs_WIRE || ll2_sht == TopAbs_EDGE))
+ {
+ LB = ll(1);
+ RB = ll(2);
+ }