26 #ifndef MLN_TOPO_N_FACES_SET_HH
27 # define MLN_TOPO_N_FACES_SET_HH
34 #include <mln/core/contract.hh>
35 #include <mln/topo/algebraic_n_face.hh>
47 template <
unsigned D>
class complex;
55 template <
unsigned N,
unsigned D>
70 typedef std::vector< algebraic_n_face<N, D> >
faces_type;
96 template <
unsigned N,
unsigned D>
101 template <
unsigned N,
unsigned D>
105 template <
unsigned N,
unsigned D>
109 template <
unsigned N,
unsigned D>
114 template <
unsigned N,
unsigned D>
118 template <
unsigned N,
unsigned D>
122 template <
unsigned N,
unsigned D>
129 template <
unsigned N,
unsigned D>
134 template <
unsigned N,
unsigned D>
138 template <
unsigned N,
unsigned D>
142 template <
unsigned N,
unsigned D>
147 template <
unsigned N,
unsigned D>
151 template <
unsigned N,
unsigned D>
155 template <
unsigned N,
unsigned D>
162 # ifndef MLN_INCLUDE_ONLY
168 template <
unsigned N,
unsigned D>
175 mln_precondition(faces_.front().cplx() == f.
cplx());
179 template <
unsigned N,
unsigned D>
187 template <
unsigned N,
unsigned D>
189 const std::vector< algebraic_n_face<N, D> >&
203 template <
unsigned N,
unsigned D>
215 template <
unsigned N,
unsigned D>
218 operator+(
const algebraic_n_face<N, D>& f1,
const n_face<N, D>& f2)
220 n_faces_set<N, D> fs;
226 template <
unsigned N,
unsigned D>
229 operator+(
const n_face<N, D>& f1,
const algebraic_n_face<N, D>& f2)
231 n_faces_set<N, D> fs;
237 template <
unsigned N,
unsigned D>
240 operator+(
const n_face<N, D>& f1,
const n_face<N, D>& f2)
242 n_faces_set<N, D> fs;
249 template <
unsigned N,
unsigned D>
252 operator+(
const n_faces_set<N, D>& fs,
const algebraic_n_face<N, D>& f)
254 n_faces_set<N, D> fs2(fs);
259 template <
unsigned N,
unsigned D>
262 operator+(
const n_faces_set<N, D>& fs,
const n_face<N, D>& f)
264 n_faces_set<N, D> fs2(fs);
269 template <
unsigned N,
unsigned D>
271 operator+=(n_faces_set<N, D>& fs,
const algebraic_n_face<N, D>& f)
281 template <
unsigned N,
unsigned D>
293 template <
unsigned N,
unsigned D>
296 operator-(
const algebraic_n_face<N, D>& f1,
const n_face<N, D>& f2)
298 n_faces_set<N, D> fs;
304 template <
unsigned N,
unsigned D>
307 operator-(
const n_face<N, D>& f1,
const algebraic_n_face<N, D>& f2)
309 n_faces_set<N, D> fs;
315 template <
unsigned N,
unsigned D>
318 operator-(
const n_face<N, D>& f1,
const n_face<N, D>& f2)
320 n_faces_set<N, D> fs;
327 template <
unsigned N,
unsigned D>
330 operator-(
const n_faces_set<N, D>& fs,
const algebraic_n_face<N, D>& f)
332 n_faces_set<N, D> fs2(fs);
337 template <
unsigned N,
unsigned D>
340 operator-(
const n_faces_set<N, D>& fs,
const n_face<N, D>& f)
342 n_faces_set<N, D> fs2(fs);
347 template <
unsigned N,
unsigned D>
349 operator-=(n_faces_set<N, D>& fs,
const algebraic_n_face<N, D>& f)
355 # endif // ! MLN_INCLUDE_ONLY
361 #endif // ! MLN_TOPO_N_FACES_SET_HH