@@ -90,23 +90,6 @@ namespace LNLib
9090 }
9191 return ind;
9292 }
93-
94- XYZ LocalToWorld (const XYZ& localOrigin, const XYZ& localXdir, const XYZ& localYdir, const XYZ& localZdir, const XYZ& worldPoint)
95- {
96- double x = localXdir.GetX () * worldPoint.GetX () + localYdir.GetX () * worldPoint.GetY () + localZdir.GetX () * worldPoint.GetZ ();
97- double y = localXdir.GetY () * worldPoint.GetX () + localYdir.GetY () * worldPoint.GetY () + localZdir.GetY () * worldPoint.GetZ ();
98- double z = localXdir.GetZ () * worldPoint.GetX () + localYdir.GetZ () * worldPoint.GetY () + localZdir.GetZ () * worldPoint.GetZ ();
99- return XYZ (x, y, z) + localOrigin;
100- }
101-
102- XYZ WorldToLocal (const XYZ& localOrigin, const XYZ& localXdir, const XYZ& localYdir, const XYZ& localZdir, const XYZ& worldPoint)
103- {
104- XYZ traslation = (worldPoint - localOrigin);
105- double x = localXdir.GetX () * traslation.GetX () + localXdir.GetY () * traslation.GetY () + localXdir.GetZ () * traslation.GetZ ();
106- double y = localYdir.GetX () * traslation.GetX () + localYdir.GetY () * traslation.GetY () + localYdir.GetZ () * traslation.GetZ ();
107- double z = localZdir.GetX () * traslation.GetX () + localZdir.GetY () * traslation.GetY () + localZdir.GetZ () * traslation.GetZ ();
108- return XYZ (x, y, z);
109- }
11093}
11194
11295void LNLib::NurbsSurface::Check (const LN_NurbsSurface& surface)
@@ -2406,7 +2389,8 @@ void LNLib::NurbsSurface::CreateSweepSurface(const LN_NurbsCurve& profile, const
24062389 double w = wp.GetW ();
24072390 XYZ p = wp.ToXYZ (true );
24082391
2409- XYZ transformed = WorldToLocal (NurbsCurve::GetPointOnCurve (trajectoryCopy, vk[k]), xdir, ydir, zdir, p);
2392+ Matrix4d transform (xdir, ydir, zdir, NurbsCurve::GetPointOnCurve (trajectoryCopy, vk[k]));
2393+ XYZ transformed = transform.OfPoint (p);
24102394 transformedControlPoints[i] = XYZW (transformed, w);
24112395 }
24122396
@@ -2458,7 +2442,8 @@ void LNLib::NurbsSurface::CreateSweepSurface(const LN_NurbsCurve& profile, const
24582442 double w = wp.GetW ();
24592443 XYZ p = wp.ToXYZ (true );
24602444
2461- XYZ transformed = WorldToLocal (NurbsCurve::GetPointOnCurve (path, segments[k]), xdir, ydir, zdir, p);
2445+ Matrix4d transform (xdir, ydir, zdir, NurbsCurve::GetPointOnCurve (path, segments[k]));
2446+ XYZ transformed = transform.OfPoint (p);
24622447 transformedControlPoints[i] = XYZW (transformed, w);
24632448 }
24642449
0 commit comments