cgal/QP_solver/documentation/PD_D_iterator_example.cpp

37 lines
1.1 KiB
C++

template < class Point >
class PD_D_iterator {
// ...
// data members
Point_it points; // iterator referring to C matrix
int i; // row index
public:
PD_D_iterator( Point_it it) : points( it), i( 0) { }
Row_it operator * ( ) { return Row_it( points, i);}
// other operators required for random access iterators
// ...
};
typedef CGAL::QP_transform_iterator_1< Matrix::const_iterator>
Vector_iterator;
struct QPSolverTraits {
typedef GMP::Double ET;
typedef Vector_iterator A_iterator;
typedef CGAL::QP_const_value_iterator<IT> B_iterator;
typedef CGAL::QP_const_value_iterator<IT> C_iterator;
typedef PD_D_iterator<Point> D_iterator;
enum Row_type { LESS_EQUAL, EQUAL, GREATER_EQUAL};
typedef CGAL::QP_const_value_iterator<Row_type> Row_type_iterator;
typedef CGAL::Tag_false Is_linear;
typedef CGAL::Tag_true Is_symmetric;
typedef CGAL::Tag_true Has_full_row_rank;
typedef CGAL::Tag_false Use_perturbation;
};