ShapeUnion< vec_t > add(const DomainShape &other) const
Returns a shape representing a union of *this and other.
Class representing domain discretization along with an associated shape.
RotatedShape< vec_t > rotate(const Eigen::Matrix< scalar_t, dim, dim > &Q)
Transform the shape by given orthogonal matrix Q.
Base class for geometric shapes of domains.
TranslatedShape< vec_t > translate(const vec_t &a)
Translate the shape by given vector a.
virtual DomainDiscretization< vec_t > discretizeWithDensity(const std::function< scalar_t(vec_t)> &dr, int internal_type, int boundary_type) const
Returns a discretization of the domain with spatially variable step.
ShapeDifference< vec_t > subtract(const DomainShape &other) const
Returns a shape representing a difference of *this and other.
virtual std::pair< bool, vec_t > projectPointToBoundary(const vec_t &point, const vec_t &unit_normal) const
Project point to boundary using bisection along the line define by unit_normal.
vec_t::Scalar scalar_t
Scalar data type used in computation.