bool ArcInlet::validateBox(const AlignedBox3r& b) { for(const auto& c:{AlignedBox3r::BottomLeftFloor,AlignedBox3r::BottomRightFloor,AlignedBox3r::TopLeftFloor,AlignedBox3r::TopRightFloor,AlignedBox3r::BottomLeftCeil,AlignedBox3r::BottomRightCeil,AlignedBox3r::TopLeftCeil,AlignedBox3r::TopRightCeil}){ // FIXME: all boxes fail?! if(!CompUtils::cylCoordBox_contains_cartesian(cylBox,node->glob2loc(b.corner(c)))) return false; } return true; }
bool CylinderInlet::validateBox(const AlignedBox3r& b) { if(!node) throw std::runtime_error("CylinderInlet.node==None."); /* check all corners are inside the cylinder */ #if 0 boxesTried.push_back(b); #endif for(AlignedBox3r::CornerType c:{AlignedBox3r::BottomLeft,AlignedBox3r::BottomRight,AlignedBox3r::TopLeft,AlignedBox3r::TopRight,AlignedBox3r::BottomLeftCeil,AlignedBox3r::BottomRightCeil,AlignedBox3r::TopLeftCeil,AlignedBox3r::TopRightCeil}){ Vector3r p=node->glob2loc(b.corner(c)); if(p[0]<0. || p[0]>height) return false; if(Vector2r(p[1],p[2]).squaredNorm()>pow(radius,2)) return false; } return true; }