33 template <
typename stepper_t>
35 const stepper_t&
stepper,
typename stepper_t::State&
state,
39 "Update single surface status for surface: " << surface.
geometryId());
42 state.geoContext, stepper.position(state),
43 navDir * stepper.direction(state), bcheck, surfaceTolerance);
46 if (sIntersection.closest().status() == Intersection3D::Status::onSurface) {
50 return Intersection3D::Status::onSurface;
55 const double oLimit = stepper.overstepLimit(state);
57 for (
const auto& intersection : sIntersection.split()) {
60 surfaceTolerance,
logger)) {
62 stepper.setStepSize(state, intersection.pathLength());
63 return Intersection3D::Status::reachable;
68 return Intersection3D::Status::unreachable;
79 template <
typename stepper_t,
typename object_
intersection_t>
81 const object_intersection_t& oIntersection,
82 bool release =
true) {
83 double stepSize = oIntersection.pathLength();