Skip to content

Commit 96b6497

Browse files
fixed arc creation in simplify method
1 parent 3d78564 commit 96b6497

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

Security_Engine/Modify/SimplifyCameraFieldOfView.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,6 +52,7 @@ public static PolyCurve SimplifyCameraFieldOfView(this PolyCurve cameraFieldOfVi
5252

5353
//convert to polyline and simplify
5454
List<Line> cameraLines = new List<Line>();
55+
5556
foreach (ICurve curve in cameraFieldOfView.SubParts())
5657
{
5758
if (curve is Line)
@@ -62,6 +63,7 @@ public static PolyCurve SimplifyCameraFieldOfView(this PolyCurve cameraFieldOfVi
6263
cameraLines.Add(line);
6364
}
6465
}
66+
6567
Polyline cameraPolyline = Geometry.Create.Polyline(cameraLines);
6668
cameraPolyline = cameraPolyline.Simplify(distanceTolerance, angleTolerance);
6769

@@ -82,12 +84,17 @@ public static PolyCurve SimplifyCameraFieldOfView(this PolyCurve cameraFieldOfVi
8284
double p2Param = coneArc.ParameterAtPoint(endPoint, distanceTolerance);
8385
double p3Param = (p1Param + p2Param) / 2;
8486
Point pt3 = coneArc.PointAtParameter(p3Param);
87+
8588
if (!cameraFieldOfView.IsContaining(new List<Point>() { pt3 }, true, distanceTolerance))
8689
{
8790
simplifiedPolyCurve.Curves.Add(line);
8891
continue;
8992
}
90-
Arc newArc = BH.Engine.Geometry.Create.Arc(startPoint, pt3, endPoint, distanceTolerance);
93+
94+
double startAngle = coneArc.EndAngle * p1Param;
95+
double endAngle = coneArc.EndAngle * p2Param;
96+
Arc newArc = Geometry.Create.Arc(coneArc.CoordinateSystem, coneArc.Radius, startAngle, endAngle);
97+
9198
simplifiedPolyCurve.Curves.Add(newArc);
9299
}
93100
else

0 commit comments

Comments
 (0)