File ball.h

template<typename Point>
class Ball
#include <ball.h>

This class represents a ball parameterized by a point type

Template Parameters:

Point – Point Type

Public Types

typedef Point PointType
typedef Point::FT NT
typedef std::vector<NT>::iterator viterator
typedef Eigen::Matrix<NT, Eigen::Dynamic, 1> VT
typedef Eigen::Matrix<NT, Eigen::Dynamic, Eigen::Dynamic> MT

Public Functions

inline Ball()
inline Ball(Point cc, NT RR)
inline std::pair<Point, NT> InnerBall() const
inline Point center() const
inline NT squared_radius() const
inline NT radius() const
inline int dimension() const
inline int is_in(Point const &p) const
inline std::pair<NT, NT> line_intersect(Point const &r, Point const &v) const
inline std::pair<NT, NT> line_intersect(Point const &r, Point const &v, const VT &Ar, const VT &Av) const
inline std::pair<NT, NT> line_intersect(Point const &r, Point const &v, const VT &Ar, const VT &Av, NT &lambda_prev) const
inline std::pair<NT, int> line_positive_intersect(Point const &r, Point const &v) const
inline std::pair<NT, int> line_positive_intersect(Point const &r, Point const &v, const VT &Ar, const VT &Av) const
inline std::pair<NT, int> line_positive_intersect(Point const &r, Point const &v, const VT &Ar, const VT &Av, NT &lambda_prev) const
inline std::pair<NT, NT> line_intersect_coord(Point const &r, unsigned int const &rand_coord) const
inline std::pair<NT, NT> line_intersect_coord(Point const &r, unsigned int const &rand_coord, const VT &lamdas) const
inline std::pair<NT, NT> line_intersect_coord(Point const &r, Point const &r_prev, unsigned int const &rand_coord, unsigned int const &rand_coord_prev, const VT &lamdas) const
inline int num_of_hyperplanes() const
inline void compute_reflection(Point &v, Point const &p) const
template<typename update_parameters>
inline void compute_reflection(Point &v, Point const &p, update_parameters &params) const

Private Members

Point c
NT R