solidcore

Units / intersect

intersect.ray_tracer partial

Layer
32
Upstream lines
1,246
Functions
13
Rust module
intersect::ray_tracer

Source: crates/solidcore/src/intersect/ray_tracer.rs

Upstream: source/SMLib/inc/SmRayTracer.h, source/SMLib/src/SmRayTracer.cpp

Notes

partial: 421 cases, 310 pass, 0 fail, 111 deferred (surface.surface_p8 SmSurface::LocalLineIntersect x108, surface.surface_p6 SmSurface::CalculateContinuities x3 via the surface cache); surface_leaf matches upstream SE on degenerate patches (2 fixtures); SmSurface::EvaluateNormalSection wired to surface.surface_p3 (no case reaches it yet past the deferrals); UNPORTED stubs also for SmFace::PointClassify (query.face_p2), poly types (query.poly); CO-PORTED in intersect.ray_tracer (PR #48): SmSurfaceGridElement data members -> geom::grid::SurfaceGridElement (+ Grid::add_surface_element), SmRayRenderer/SmLightSource -> intersect::ray_tracer; 13 fns; largest: SmLSI3LocalSolver::LocalSolve, SmRayTracer::FireRay, sm_FindAdditionalTangentGuess, sm_FindPolyHit; cycle back-edges (call into later units; stub or co-port): query.poly(7), topology.topology(2), query.face_p2(1); unit-SCC #22 (220 units); 317 upstream test entry points reach this unit Re-run (PR #118, LocalLineIntersect wired by surface.surface_p8): 421 cases, 415 pass, 6 deferred (surface.surface_p2). LocalSolve sets the solution node marker as upstream does.

Difftest

Cases
421
Passed
415
Deferred
6
Failed
0
Both errored
0
Max rel. error
0.0
Tolerance
1e-09 rel.
Seeds
16

Blocked by

Unported unitDeferred cases
surface.surface_p2 partial6

Report JSON (per-case results)

Dependencies

Depends on: geom.context green geom.extent1d green geom.extent2d green geom.extent3d green geom.geom_utility_p1 green geom.grid partial geom.object partial geom.pseudo_box green geom.vector2d green geom.vector3d green intersect.point_class partial surface.surface_p2 partial

Soft dependencies: curve.curve_p2 green curve.line green geom.polar_box green geom.solution_array partial geom.tol green geom.tree partial surface.surface_cache_p3 partial surface.surface_p1 partial surface.surface_p3 green surface.surface_p7 partial surface.surface_p8 partial

Dependents: blend.hcr claimed

Soft dependents: none

Upstream functions

Upstream functionDefined atLinesRust (from the file header)
SmLightSource::~SmLightSourceSmRayTracer.h:681Drop (implicit)
SmRayTracer::SetSolverToleranceSmRayTracer.h:1661[RayTracer::set_solver_tolerance]
sm_LinePlaneIntersectSmRayTracer.cpp:5428line_plane_intersect (private)
SmRayRenderer::~SmRayRendererSmRayTracer.cpp:11415Drop (implicit)
sm_IsPointValidSmRayTracer.cpp:43551is_point_valid (private)
sm_ConvertToParameterDeltaSmRayTracer.cpp:54111convert_to_parameter_delta (private)
sm_FindAdditionalTangentGuessSmRayTracer.cpp:558201find_additional_tangent_guess (private)
SmRayTracer::SmRayTracerSmRayTracer.cpp:76819[RayTracer], [RayTracer::new]
SmRayTracer::~SmRayTracerSmRayTracer.cpp:7936Drop (implicit)
SmLSI3LocalSolver::LocalSolveSmRayTracer.cpp:841386[Lsi3LocalSolver::local_solve], [LocalSolveResult]
sm_FindPolyHitSmRayTracer.cpp:123490find_poly_hit (private)
SmRayTracer::FireRaySmRayTracer.cpp:1332369[RayTracer::fire_ray], [RayHit]
SmRayTracer::AddSurfaceToGridSmRayTracer.cpp:171168[RayTracer::add_surface_to_grid], [RayTracer::add_surface_with_bbox]
Module file-header table (21 rows)
RustUpstream
[LightSource], [LightSource::new]SmLightSource, its constructor
Drop (implicit)~SmLightSource
[Lsi3LocalSolver], [Lsi3LocalSolver::new]SmLSI3LocalSolver, its constructors
[Lsi3LocalSolver::local_solve], [LocalSolveResult]SmLSI3LocalSolver::LocalSolve
[RayTracer], [RayTracer::new]SmRayTracer, SmRayTracer::SmRayTracer
Drop (implicit)~SmRayTracer
[RayTracer::set_solver_tolerance]SmRayTracer::SetSolverTolerance
[RayTracer::fire_ray], [RayHit]SmRayTracer::FireRay
[RayTracer::add_surface_to_grid], [RayTracer::add_surface_with_bbox]SmRayTracer::AddSurfaceToGrid
[RayTracer::add_poly_brep_to_grid]SmRayTracer::AddPolyBrepToGrid
[RayRenderer], [RayRenderer::new]SmRayRenderer, SmRayRenderer::SmRayRenderer
Drop (implicit)~SmRayRenderer
[RayRenderer::do_render], [RayRenderer::render_pixel], [RayRenderer::render_ray]SmRayRenderer::DoRender, RenderPixel, RenderRay
[RayRenderer::set_sample_rate], [RayRenderer::add_light_source], [RayRenderer::pixels_shaded]SetSampleRate, AddLightSource, GetPixelsShaded
[RayObject]the SmObject* of SmSolution::m_apObjects
[surface_leaf]SmSurfaceGridElement::Init (the part after the Bezier patch data)
line_plane_intersect (private)sm_LinePlaneIntersect
is_point_valid (private)sm_IsPointValid
convert_to_parameter_delta (private)sm_ConvertToParameterDelta
find_additional_tangent_guess (private)sm_FindAdditionalTangentGuess
find_poly_hit (private)sm_FindPolyHit

Upstream tests reaching this unit

prog_test:my_test_surface_closest_point, prog_test:my_test_drop_point, prog_test:my_test_matrix, prog_test:my_test_reversed_line_join, SM_API_test:TestSmCreateRectangle, SM_API_test:TestSmCreateRegularPolygon