26 fig.draw_pie({0,0},x[0],x[1],s);
31 requires IsCtcBaseOrPtr<C,IntervalVector>
34 const PavingStyle& style)
36 assert_release(eps > 0.);
37 assert_release(c.size() >= 2 &&
"cannot reveal 1d contractors");
42 clock_t t_start = clock();
43 std::list<IntervalVector> l { x0 };
54 for(
const auto& bi : prev_x.diff(x))
59 if(x.max_diam() < eps)
67 auto p = x.bisect_largest();
68 l.push_back(p.first); l.push_back(p.second);
73 printf(
"Computation time: %.4fs, %ld boxes\n", (
double)(clock()-t_start)/CLOCKS_PER_SEC, n);
77 requires IsCtcBaseOrPtr<C,IntervalVector>
80 return pave(x0, c, eps, cartesian_drawing(), style);
84 requires IsSepBaseOrPtr<S>
87 const PavingStyle& style)
89 assert_release(eps > 0.);
90 assert_release(size_of(s) >= 2 &&
"cannot reveal 1d separators");
92 clock_t t_start = clock();
93 std::list<IntervalVector> l { x0 };
100 auto x_sep = sep(s).separate(x);
101 auto boundary = x_sep.inner & x_sep.outer;
103 for(
const auto& bi : x.diff(x_sep.inner))
106 for(
const auto& bi : x.diff(x_sep.outer))
109 if(!boundary.is_empty())
111 if(boundary.max_diam() <= eps)
112 draw_box(*
this, boundary, style.boundary);
116 auto p = boundary.bisect_largest();
117 l.push_back(p.first); l.push_back(p.second);
122 printf(
"Computation time: %.4fs\n", (
double)(clock()-t_start)/CLOCKS_PER_SEC);
126 requires IsSepBaseOrPtr<S>
128 const PavingStyle& style)
130 return pave(x0, s, eps, cartesian_drawing(), style);
Definition codac2_OctaSym.h:21
Eigen::Matrix< Interval,-1, 1 > IntervalVector
Alias for a dynamic-size column vector of intervals.
Definition codac2_IntervalVector.h:25
Style properties structure, to specify the style of a shape.
Definition codac2_StyleProperties.h:26