MCPcopy Create free account
hub / github.com/Geode-solutions/OpenGeode / segment_plane_intersection

Function segment_plane_intersection

src/geode/geometry/intersection.cpp:236–257  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

234 }
235
236 IntersectionResult< Point3D > segment_plane_intersection(
237 const Segment3D& segment, const Plane& plane )
238 {
239 auto line_plane_result =
240 line_plane_intersection( InfiniteLine3D{ segment }, plane );
241 if( line_plane_result )
242 {
243 if( point_segment_distance(
244 line_plane_result.result.value(), segment )
245 > GLOBAL_EPSILON )
246 {
247 return { INTERSECTION_TYPE::none };
248 }
249 const auto lambdas = safe_segment_barycentric_coordinates(
250 line_plane_result.result.value(), segment );
251 line_plane_result.correctness->first.second =
252 segment.vertices()[0].get() * lambdas[0]
253 + segment.vertices()[1].get() * lambdas[1];
254 return line_plane_result;
255 }
256 return line_plane_result.type;
257 }
258
259 IntersectionResult< Point3D > segment_triangle_intersection(
260 const Segment3D& segment, const Triangle3D& triangle )

Callers 1

Calls 5

line_plane_intersectionFunction · 0.85
point_segment_distanceFunction · 0.85
valueMethod · 0.45
getMethod · 0.45

Tested by 1