File convex_body.h

template<typename Point>
class ConvexBody
#include <convex_body.h>

This class represents a general convex body 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, Eigen::Dynamic> MT
typedef Eigen::Matrix<NT, Eigen::Dynamic, 1> VT
typedef std::function<NT(const Point&)> func
typedef std::function<Point(const Point&)> grad

Public Functions

inline ConvexBody()
inline ConvexBody(std::vector<func> gs_, std::vector<grad> grad_gs_, unsigned int dim_)
inline unsigned int dimension()
inline std::pair<NT, int> line_positive_intersect(Point const &x, Point const &v) const
inline NT binary_search(Point const &x, Point const &v, func const &f) const
inline Point unit_normal(Point const &p, int const &constraint) const
inline void compute_reflection(Point &v, Point const &p, int const &constraint) const
inline int is_in(Point const &p, NT tol = NT(0))

Private Members

unsigned int dim
std::vector<func> gs
std::vector<grad> grad_gs
unsigned int m
NT tol = NT(1e-4)