27 const std::vector<const Surface*>& surfaces)
28 : m_surfaces(surfaces) {
34 const std::vector<std::shared_ptr<const Surface>>& surfaces)
54 return 0.5 * (
min(bval, addenv) +
max(bval, addenv));
58 return std::abs(
max(bval, addenv) -
min(bval, addenv));
62 sl <<
"ProtoLayer with dimensions (min/max)" << std::endl;
68 const std::vector<const Surface*>& surfaces) {
69 for (
const auto& sf : surfaces) {
70 auto sfPolyhedron = sf->polyhedronRepresentation(gctx, 1);
72 if (element !=
nullptr) {
76 Vector3 sfNormal = sf->normal(gctx, sf->center(gctx));
77 std::vector<double> deltaT = {-0.5 *
thickness, 0.5 * thickness};
78 for (
const auto& dT : deltaT) {
79 Transform3 dtransform = Transform3::Identity();
80 dtransform.pretranslate(dT * sfNormal);