
Hi guys,
I am trying to find the intersection points of GeometryModel3D and a plane. The model is STL file and loaded by the helix methods. I thought that I have all the triangles and with the implemented intersection of line and Plane3D i will find the points easily
but that's not true. I don't know why I find so many points on the plane but not only the intersection points  What I mean is that Plane3D.LineIntersection(...) every time return some points but not null. If someone have an idea it will be grateful :) Thanks
MeshGeometry3D modelGeometry = (MeshGeometry3D)hitgeo.Geometry;
for (int i = 0; i < modelGeometry.TriangleIndices.Count; i=i+3)
{
int index1 = modelGeometry.TriangleIndices[i];
int index2 = modelGeometry.TriangleIndices[i+1];
int index3 = modelGeometry.TriangleIndices[i+2];
Point3D point1 = modelGeometry.Positions[index1];
Point3D point2 = modelGeometry.Positions[index2];
Point3D point3 = modelGeometry.Positions[index3];
Point3D? intersection1 = p3d.LineIntersection(point1, point2);
Point3D? intersection2 = p3d.LineIntersection(point1, point3);
Point3D? intersection3 = p3d.LineIntersection(point2, point3);
if(intersection1 != null)
{
IntersectionPoints.Add(intersection1);
}
if(intersection2 != null)
{
IntersectionPoints.Add(intersection2);
}
if(intersection3 != null)
{
IntersectionPoints.Add(intersection3);
}
}



I found it ... the interesction is not line and plane its ray and plane, I had to check if the point is on the line :)


Coordinator
Feb 7, 2013 at 6:59 PM

Great! (For general use you may also need to account for transforms applied to your model)
Also see the contouring example in Source\Examples\ExampleBrowser\Examples\Contour

