25 if (pair.first)
return (
const CylinderSurface *) &pair.first->surfaceRepresentation();
29 if (pair.second)
return (
const DiscSurface *) &pair.second->surfaceRepresentation();
38 if (std::abs(cyl1->
center().z() - cyl2->center().z()) > 1.) {
39 return (std::abs(cyl1->
center().z()) < std::abs(cyl2->center().z()));
41 return (cyl1->
bounds().
r() < cyl2->bounds().r());
43 if (disc1 and disc2) {
46 if (discbounds1->
rMax() < discbounds2->
rMin() + 1) {
49 if (discbounds1->
rMin() > discbounds2->
rMax() - 1) {
52 return (std::abs(disc1->
center().z()) < std::abs(disc2->center().z()));
55 if ((cyl1 !=
nullptr) && (disc2 !=
nullptr)) {
63 return (std::abs(cyl1->
center().z()) < std::abs(disc2->center().z()));
66 if ((disc1 ==
nullptr) || (cyl2 ==
nullptr)) {
67 throw std::logic_error(
"Unhandled surface combination.");
72 if (cyl2->bounds().r() > discbounds->
rMax() - 1) {
76 if (cyl2->bounds().r() < discbounds->
rMin() + 1) {
80 return (std::abs(cyl2->center().z()) > std::abs(disc1->
center().z()));
88 return static_cast<const CylinderSurface *
>(&pLayer->surfaceRepresentation());
93 return static_cast<const DiscSurface *
>(&pLayer->surfaceRepresentation());
100 return (cyl1->
bounds().
r() < cyl2->bounds().r());
104 if (disc1 and disc2) {
105 return (std::abs(disc1->
center().z()) < std::abs(disc2->center().z()));