Skip to content

Commit 70a3c8c

Browse files
committed
even more drunk?
1 parent 827f910 commit 70a3c8c

File tree

1 file changed

+145
-147
lines changed

1 file changed

+145
-147
lines changed

Core/include/Acts/Geometry/BlueprintBuilder.hpp

Lines changed: 145 additions & 147 deletions
Original file line numberDiff line numberDiff line change
@@ -420,35 +420,35 @@ class ElementLayerAssembler {
420420
/// @param customizer Callback applied to each created layer node.
421421
/// @return `*this` (rvalue).
422422
template <typename CustomizerT>
423-
[[nodiscard]] ElementLayerAssembler&& onLayer(CustomizerT customizer) &&
424-
requires(detail::LayerNodeReturningCallable<Element,
425-
std::decay_t<CustomizerT>> ||
426-
detail::LayerNodeReplacingCallable<Element,
427-
std::decay_t<CustomizerT>>) {
428-
if constexpr (detail::LayerNodeReturningCallable<
429-
Element, std::decay_t<CustomizerT>>) {
430-
m_onLayer = std::move(customizer);
431-
} else {
432-
m_onLayer =
433-
[customizer = std::move(customizer)](
434-
const std::optional<Element> & layerElement,
435-
std::shared_ptr<Acts::Experimental::LayerBlueprintNode>
436-
layer) mutable {
437-
customizer(layerElement, *layer);
438-
return layer;
439-
};
440-
}
441-
return std::move(*this);
442-
}
423+
[[nodiscard]] ElementLayerAssembler&& onLayer(CustomizerT customizer) &&
424+
requires(
425+
detail::LayerNodeReturningCallable<Element,
426+
std::decay_t<CustomizerT>> ||
427+
detail::LayerNodeReplacingCallable<Element, std::decay_t<CustomizerT>>)
428+
{
429+
if constexpr (detail::LayerNodeReturningCallable<
430+
Element, std::decay_t<CustomizerT>>) {
431+
m_onLayer = std::move(customizer);
432+
} else {
433+
m_onLayer = [customizer = std::move(customizer)](
434+
const std::optional<Element>& layerElement,
435+
std::shared_ptr<Acts::Experimental::LayerBlueprintNode>
436+
layer) mutable {
437+
customizer(layerElement, *layer);
438+
return layer;
439+
};
440+
}
441+
return std::move(*this);
442+
}
443443

444-
/// @brief Override the attachment strategy for the container node.
445-
///
446-
/// When unset the backend's default strategy is used.
447-
/// @param strategy Optional attachment strategy; pass `std::nullopt` to
448-
/// reset to the default.
449-
/// @return `*this` (rvalue).
450-
[[nodiscard]] ElementLayerAssembler&& setAttachmentStrategy(
451-
std::optional<Acts::VolumeAttachmentStrategy> strategy) &&;
444+
/// @brief Override the attachment strategy for the container node.
445+
///
446+
/// When unset the backend's default strategy is used.
447+
/// @param strategy Optional attachment strategy; pass `std::nullopt` to
448+
/// reset to the default.
449+
/// @return `*this` (rvalue).
450+
[[nodiscard]] ElementLayerAssembler&& setAttachmentStrategy(
451+
std::optional<Acts::VolumeAttachmentStrategy> strategy) &&;
452452

453453
/// @brief Build and return the assembled container node.
454454
///
@@ -617,37 +617,37 @@ class SensorLayerAssembler {
617617
/// @param customizer Callback applied to each created layer node.
618618
/// @return `*this` (rvalue).
619619
template <typename CustomizerT>
620-
[[nodiscard]] SensorLayerAssembler&& onLayer(CustomizerT customizer) &&
621-
requires(detail::LayerNodeReturningCallable<Element,
622-
std::decay_t<CustomizerT>> ||
623-
detail::LayerNodeReplacingCallable<Element,
624-
std::decay_t<CustomizerT>>) {
625-
if constexpr (detail::LayerNodeReturningCallable<
626-
Element, std::decay_t<CustomizerT>>) {
627-
m_onLayer = std::move(customizer);
628-
} else {
629-
m_onLayer =
630-
[customizer = std::move(customizer)](
631-
const std::optional<Element> & elem,
632-
std::shared_ptr<Acts::Experimental::LayerBlueprintNode>
633-
layer) mutable {
634-
customizer(elem, *layer);
635-
return layer;
636-
};
637-
}
638-
return std::move(*this);
639-
}
620+
[[nodiscard]] SensorLayerAssembler&& onLayer(CustomizerT customizer) &&
621+
requires(
622+
detail::LayerNodeReturningCallable<Element,
623+
std::decay_t<CustomizerT>> ||
624+
detail::LayerNodeReplacingCallable<Element, std::decay_t<CustomizerT>>)
625+
{
626+
if constexpr (detail::LayerNodeReturningCallable<
627+
Element, std::decay_t<CustomizerT>>) {
628+
m_onLayer = std::move(customizer);
629+
} else {
630+
m_onLayer = [customizer = std::move(customizer)](
631+
const std::optional<Element>& elem,
632+
std::shared_ptr<Acts::Experimental::LayerBlueprintNode>
633+
layer) mutable {
634+
customizer(elem, *layer);
635+
return layer;
636+
};
637+
}
638+
return std::move(*this);
639+
}
640640

641-
/// @brief Build and return the assembled container node.
642-
///
643-
/// @throws std::runtime_error if the layer type is not set, if the backend
644-
/// requires axes and none were provided, if sensors are not set,
645-
/// if
646-
/// the container name is not set, or if @ref groupBy has not been
647-
/// configured.
648-
/// @return Shared pointer to the assembled container node.
649-
[[nodiscard]] std::shared_ptr<
650-
Acts::Experimental::ContainerBlueprintNode> build() const;
641+
/// @brief Build and return the assembled container node.
642+
///
643+
/// @throws std::runtime_error if the layer type is not set, if the backend
644+
/// requires axes and none were provided, if sensors are not set,
645+
/// if
646+
/// the container name is not set, or if @ref groupBy has not been
647+
/// configured.
648+
/// @return Shared pointer to the assembled container node.
649+
[[nodiscard]] std::shared_ptr<Acts::Experimental::ContainerBlueprintNode>
650+
build() const;
651651

652652
/// @brief Build the container node and attach it as a child of @p node.
653653
///
@@ -769,36 +769,36 @@ class SensorLayer {
769769
/// @param customizer Callback applied to the created layer node.
770770
/// @return `*this` (rvalue).
771771
template <typename CustomizerT>
772-
[[nodiscard]] SensorLayer&& onLayer(CustomizerT customizer) &&
773-
requires(detail::LayerNodeReturningCallable<Element,
774-
std::decay_t<CustomizerT>> ||
775-
detail::LayerNodeReplacingCallable<Element,
776-
std::decay_t<CustomizerT>>) {
777-
if constexpr (detail::LayerNodeReturningCallable<
778-
Element, std::decay_t<CustomizerT>>) {
779-
m_onLayer = std::move(customizer);
780-
} else {
781-
m_onLayer =
782-
[customizer = std::move(customizer)](
783-
const std::optional<Element> & elem,
784-
std::shared_ptr<Acts::Experimental::LayerBlueprintNode>
785-
layer) mutable {
786-
customizer(elem, *layer);
787-
return layer;
788-
};
789-
}
790-
return std::move(*this);
791-
}
772+
[[nodiscard]] SensorLayer&& onLayer(CustomizerT customizer) &&
773+
requires(
774+
detail::LayerNodeReturningCallable<Element,
775+
std::decay_t<CustomizerT>> ||
776+
detail::LayerNodeReplacingCallable<Element, std::decay_t<CustomizerT>>)
777+
{
778+
if constexpr (detail::LayerNodeReturningCallable<
779+
Element, std::decay_t<CustomizerT>>) {
780+
m_onLayer = std::move(customizer);
781+
} else {
782+
m_onLayer = [customizer = std::move(customizer)](
783+
const std::optional<Element>& elem,
784+
std::shared_ptr<Acts::Experimental::LayerBlueprintNode>
785+
layer) mutable {
786+
customizer(elem, *layer);
787+
return layer;
788+
};
789+
}
790+
return std::move(*this);
791+
}
792792

793-
/// @brief Build and return the assembled layer node.
794-
///
795-
/// @throws std::runtime_error if the layer type is not set, if the backend
796-
/// requires axes and none were provided, if sensors are not set,
797-
/// or
798-
/// if @ref setLayerName has not been called.
799-
/// @return Shared pointer to the assembled @ref LayerBlueprintNode.
800-
[[nodiscard]] std::shared_ptr<
801-
Acts::Experimental::LayerBlueprintNode> build() const;
793+
/// @brief Build and return the assembled layer node.
794+
///
795+
/// @throws std::runtime_error if the layer type is not set, if the backend
796+
/// requires axes and none were provided, if sensors are not set,
797+
/// or
798+
/// if @ref setLayerName has not been called.
799+
/// @return Shared pointer to the assembled @ref LayerBlueprintNode.
800+
[[nodiscard]] std::shared_ptr<Acts::Experimental::LayerBlueprintNode> build()
801+
const;
802802

803803
/// @brief Build the layer node and attach it as a child of @p node.
804804
///
@@ -901,65 +901,63 @@ class BarrelEndcapAssembler {
901901
/// @param customizer Callback applied to each created layer node.
902902
/// @return `*this` (rvalue).
903903
template <typename CustomizerT>
904-
[[nodiscard]] BarrelEndcapAssembler&& onLayer(CustomizerT customizer) &&
905-
requires(detail::LayerNodeReturningCallable<Element,
906-
std::decay_t<CustomizerT>> ||
907-
detail::LayerNodeReplacingCallable<Element,
908-
std::decay_t<CustomizerT>>) {
909-
if constexpr (detail::LayerNodeReturningCallable<
910-
Element, std::decay_t<CustomizerT>>) {
911-
m_onLayer = std::move(customizer);
912-
} else {
913-
m_onLayer =
914-
[customizer = std::move(customizer)](
915-
const std::optional<Element> & elem,
916-
std::shared_ptr<Acts::Experimental::LayerBlueprintNode>
917-
layer) mutable {
918-
customizer(elem, *layer);
919-
return layer;
920-
};
921-
}
922-
return std::move(*this);
923-
}
924-
925-
/// @brief Register a callback invoked for each barrel or endcap container
926-
/// node.
927-
///
928-
/// The callback may either return a (possibly replaced/wrapped) container
929-
/// node, or mutate a container node in-place and return `void`.
930-
/// @param customizer Callback applied to each created barrel or endcap
931-
/// container node.
932-
/// @return `*this` (rvalue).
933-
template <typename CustomizerT>
934-
[[nodiscard]] BarrelEndcapAssembler&& onContainer(
935-
CustomizerT customizer) &&
936-
requires(
937-
detail::ContainerNodeReturningCallable<Element,
938-
std::decay_t<CustomizerT>> ||
939-
detail::ContainerNodeReplacingCallable<Element,
940-
std::decay_t<CustomizerT>>) {
941-
if constexpr (detail::ContainerNodeReturningCallable<
942-
Element, std::decay_t<CustomizerT>>) {
943-
m_onContainer = std::move(customizer);
944-
} else {
945-
m_onContainer =
946-
[customizer = std::move(customizer)](
947-
const Element & elem,
948-
std::shared_ptr<Acts::Experimental::ContainerBlueprintNode>
949-
node) mutable {
950-
customizer(elem, *node);
951-
return node;
952-
};
953-
}
954-
return std::move(*this);
955-
}
904+
[[nodiscard]] BarrelEndcapAssembler&& onLayer(CustomizerT customizer) &&
905+
requires(
906+
detail::LayerNodeReturningCallable<Element,
907+
std::decay_t<CustomizerT>> ||
908+
detail::LayerNodeReplacingCallable<Element, std::decay_t<CustomizerT>>)
909+
{
910+
if constexpr (detail::LayerNodeReturningCallable<
911+
Element, std::decay_t<CustomizerT>>) {
912+
m_onLayer = std::move(customizer);
913+
} else {
914+
m_onLayer = [customizer = std::move(customizer)](
915+
const std::optional<Element>& elem,
916+
std::shared_ptr<Acts::Experimental::LayerBlueprintNode>
917+
layer) mutable {
918+
customizer(elem, *layer);
919+
return layer;
920+
};
921+
}
922+
return std::move(*this);
923+
}
956924

957-
/// @brief Set the top-level detector element whose subtree is searched for
958-
/// barrel and endcap elements.
959-
/// @param assembly Root element of the barrel+endcap sub-detector.
960-
/// @return `*this` (rvalue).
961-
[[nodiscard]] BarrelEndcapAssembler&& setAssembly(
962-
const Element& assembly) &&;
925+
/// @brief Register a callback invoked for each barrel or endcap container
926+
/// node.
927+
///
928+
/// The callback may either return a (possibly replaced/wrapped) container
929+
/// node, or mutate a container node in-place and return `void`.
930+
/// @param customizer Callback applied to each created barrel or endcap
931+
/// container node.
932+
/// @return `*this` (rvalue).
933+
template <typename CustomizerT>
934+
[[nodiscard]] BarrelEndcapAssembler&& onContainer(CustomizerT customizer) &&
935+
requires(detail::ContainerNodeReturningCallable<
936+
Element, std::decay_t<CustomizerT>> ||
937+
detail::ContainerNodeReplacingCallable<Element,
938+
std::decay_t<CustomizerT>>)
939+
{
940+
if constexpr (detail::ContainerNodeReturningCallable<
941+
Element, std::decay_t<CustomizerT>>) {
942+
m_onContainer = std::move(customizer);
943+
} else {
944+
m_onContainer =
945+
[customizer = std::move(customizer)](
946+
const Element& elem,
947+
std::shared_ptr<Acts::Experimental::ContainerBlueprintNode>
948+
node) mutable {
949+
customizer(elem, *node);
950+
return node;
951+
};
952+
}
953+
return std::move(*this);
954+
}
955+
956+
/// @brief Set the top-level detector element whose subtree is searched for
957+
/// barrel and endcap elements.
958+
/// @param assembly Root element of the barrel+endcap sub-detector.
959+
/// @return `*this` (rvalue).
960+
[[nodiscard]] BarrelEndcapAssembler&& setAssembly(const Element& assembly) &&;
963961

964962
/// @brief Set the axis definitions for both barrel and endcap layers at once.
965963
///
@@ -972,7 +970,7 @@ class BarrelEndcapAssembler {
972970
/// @return `*this` (rvalue).
973971
[[nodiscard]] BarrelEndcapAssembler&& setSensorAxes(AxisDefinition barrel,
974972
AxisDefinition endcap) &&
975-
requires(detail::HasAxisDefinition<BackendT>);
973+
requires(detail::HasAxisDefinition<BackendT>);
976974

977975
/// @brief Set the axis definition used for endcap layers only.
978976
///
@@ -982,7 +980,7 @@ class BarrelEndcapAssembler {
982980
/// @ref ElementLayerAssembler s.
983981
/// @return `*this` (rvalue).
984982
[[nodiscard]] BarrelEndcapAssembler&& setEndcapAxes(AxisDefinition axes) &&
985-
requires(detail::HasAxisDefinition<BackendT>);
983+
requires(detail::HasAxisDefinition<BackendT>);
986984

987985
/// @brief Set the regex filter used to select individual layer elements
988986
/// within each barrel or endcap container.

0 commit comments

Comments
 (0)