CXC not like rg.Intersect.Intersection.CurveCurve()

rhinocommon
python

#1

Do you (@DavidRutten) perhaps know how I need to use RC to get the result CXC gives here? cxc.gh (8.9 KB)


(Giulio Piacentino) #2

Did you find a solution, @MarcusStrube? David does not usually offer Python support.


#4

No, I still don’t know what David’s CXC component finally does. I always thought it’s just calling rg.Intersect.Intersection.CurveCurve, but obviously it doesn’t. But it’s not a Python question, either. Using C# the result would be the same different one…


(David Rutten) #5

Your code is fairly similar to what I do, except I specifically handle overlaps:

  CurveIntersections x = Intersection.CurveCurve(A, B, DocumentTolerance(), 5 * DocumentTolerance());
  List<Point3d> xM = new List<Point3d>(x.Count);
  List<double> xA = new List<double>(x.Count);
  List<double> xB = new List<double>(x.Count);
  for (int i = 0; i < x.Count; i++)
  {
    Interval lapA = x[i].OverlapA;
    Interval lapB = x[i].OverlapB;

    xM.Add(0.5 * (x[i].PointA + x[i].PointB));
    xA.Add(lapA.T0);
    xB.Add(lapB.T0);

    if (x[i].IsOverlap)
    {
      xM.Add(0.5 * (x[i].PointA2 + x[i].PointB2));
      xA.Add(lapA.T1);
      xB.Add(lapB.T1);
    }
  }