5 #ifndef LODESTAR_SETEXPRESSION_HPP
6 #define LODESTAR_SETEXPRESSION_HPP
12 namespace primitives {
14 template<
typename TType>
25 template<
typename TElementType>
26 bool operator==(
const TElementType &el)
const
28 return static_cast<TType
const &
>(*this).operator==(el);
31 template<
typename TElementType>
32 bool operator!=(
const TElementType &el)
const
34 return static_cast<TType
const &
>(*this).operator!=(el);
37 template<
typename TElementType>
38 bool contains(
const TElementType &el)
const
40 return static_cast<TType
const &
>(*this).contains(el);
43 template<
typename TElementType>
44 bool isSubset(
const TElementType &el)
const
46 return static_cast<TType
const &
>(*this).isSubset(el);
49 template<
typename TElementType>
50 bool isSuperset(
const TElementType &el)
const
52 return static_cast<TType
const &
>(*this).isSuperset(el);
57 return static_cast<TType
const &
>(*this).isEmpty();
60 template<
typename TReturnType,
typename TElementType>
63 return static_cast<TType
const &
>(*this).relComplement(el);
66 template<
typename TReturnType,
typename TOtherExpr>
69 return static_cast<TType
const &
>(*this).unionize(expr);
72 template<
typename Derived>
73 double sdf(Eigen::MatrixBase<Derived> &p)
const
75 return static_cast<TType
const &
>(*this).sdf(p);
78 SetEnum getEnum()
const
90 #endif //LODESTAR_SETEXPRESSION_HPP