Class BallIntersectPolytope

template<typename Polytope, typename CBall>
class BallIntersectPolytope

This class represents a polytope intersected with a ball

Template Parameters:
  • Polytope – Polytope Type

  • CBallBall Type

Public Types

typedef Polytope::MT MT
typedef Polytope::VT VT
typedef CBall::NT NT
typedef CBall::PointType PointType

Public Functions

inline BallIntersectPolytope()
inline BallIntersectPolytope(Polytope &PP, CBall &BB)
inline Polytope first() const
inline CBall second() const
inline std::pair<PointType, NT> InnerBall() const
inline MT get_mat() const
inline MT get_T() const
inline MT get_vec() const
inline bool is_normalized()
inline void normalize()
inline int is_in(PointType const &p) const
inline int num_of_hyperplanes() const
inline unsigned int dimension() const
inline NT radius() const
inline std::pair<NT, NT> line_intersect(PointType const &r, PointType const &v) const
inline std::pair<NT, NT> line_intersect(PointType const &r, PointType const &v, VT &Ar, VT &Av) const
inline std::pair<NT, NT> line_intersect(PointType const &r, PointType const &v, VT &Ar, VT &Av, NT &lambda_prev) const
inline std::pair<NT, int> line_positive_intersect(PointType const &r, PointType const &v, VT &Ar, VT &Av)
inline std::pair<NT, int> line_positive_intersect(PointType const &r, PointType const &v, VT &Ar, VT &Av, NT &lambda_prev)
template<typename update_parameters>
inline std::pair<NT, int> line_first_positive_intersect(PointType const &r, PointType const &v, VT &Ar, VT &Av, update_parameters &params)
template<typename update_parameters>
inline std::pair<NT, int> line_positive_intersect(PointType const &r, PointType const &v, VT &Ar, VT &Av, NT const &lambda_prev, MT const &AA, update_parameters &params)
template<typename update_parameters>
inline std::pair<NT, int> line_positive_intersect(PointType const &r, PointType const &v, VT &Ar, VT &Av, NT const &lambda_prev, update_parameters &params)
inline std::pair<NT, NT> line_intersect_coord(PointType const &r, unsigned int const &rand_coord, VT &lamdas) const
inline std::pair<NT, NT> line_intersect_coord(PointType const &r, PointType const &r_prev, unsigned int const &rand_coord, unsigned int const &rand_coord_prev, VT &lamdas) const
inline std::pair<NT, NT> query_dual(PointType const &p, unsigned int const &rand_coord)
inline void compute_reflection(PointType &v, PointType const &p, int &facet)
template<typename update_parameters>
inline void compute_reflection(PointType &v, PointType const &p, update_parameters &params)