File indexing completed on 2025-12-16 10:23:48
0001
0002
0003
0004
0005
0006
0007 #pragma once
0008
0009 #include <string>
0010 #include <string_view>
0011
0012 #include "../CsgTypes.hh"
0013
0014 namespace celeritas
0015 {
0016 namespace orangeinp
0017 {
0018 class IntersectRegionInterface;
0019 namespace detail
0020 {
0021 class VolumeBuilder;
0022
0023
0024
0025 [[nodiscard]] NodeId
0026 build_intersect_region(VolumeBuilder& vb,
0027 std::string&& label,
0028 std::string&& face_prefix,
0029 IntersectRegionInterface const& region);
0030
0031
0032 [[nodiscard]] inline NodeId
0033 build_intersect_region(VolumeBuilder& vb,
0034 std::string&& label,
0035 IntersectRegionInterface const& region)
0036 {
0037 return build_intersect_region(vb, std::move(label), {}, region);
0038 }
0039
0040
0041 [[nodiscard]] inline NodeId
0042 build_intersect_region(VolumeBuilder& vb,
0043 std::string_view label,
0044 std::string&& face_prefix,
0045 IntersectRegionInterface const& region)
0046 {
0047 return build_intersect_region(
0048 vb, std::string{label}, std::move(face_prefix), region);
0049 }
0050
0051
0052 }
0053 }
0054 }