OpenMesh
Loading...
Searching...
No Matches
Circulator.hh
1#ifndef OPENMESH_PYTHON_CIRCULATOR_HH
2#define OPENMESH_PYTHON_CIRCULATOR_HH
3
4#include "Python/Bindings.hh"
5
6namespace OpenMesh {
7namespace Python {
8
18template<class Circulator, class CenterEntityHandle>
20 public:
21
28 CirculatorWrapperT(PolyMesh& _mesh, CenterEntityHandle _center) :
29 circulator_(_mesh, _center) {
30 }
31
38 CirculatorWrapperT(TriMesh& _mesh, CenterEntityHandle _center) :
39 circulator_(_mesh, _center) {
40 }
41
48 return *this;
49 }
50
57 typename Circulator::value_type next() {
58 if (circulator_.is_valid()) {
59 typename Circulator::value_type res = *circulator_;
60 ++circulator_;
61 return res;
62 }
63 else {
64 PyErr_SetString(PyExc_StopIteration, "No more data.");
65 boost::python::throw_error_already_set();
66 }
67 return typename Circulator::value_type();
68 }
69
70 private:
71 Circulator circulator_;
72};
73
85template<class Circulator, class CenterEntityHandle>
86void expose_circulator(const char *_name) {
87 class_<CirculatorWrapperT<Circulator, CenterEntityHandle> >(_name, init<TriMesh&, CenterEntityHandle>())
88 .def(init<PolyMesh&, CenterEntityHandle>())
92 ;
93}
94
95} // namespace OpenMesh
96} // namespace Python
97
98#endif
Contains all the mesh ingredients like the polygonal mesh, the triangle mesh, different mesh kernels ...
Definition MeshItems.hh:64
This namespace contains classes and functions that are used to expose OpenMesh to Python.
Definition Bindings.cc:11
void expose_circulator(const char *_name)
Expose a circulator type to Python.
Definition Circulator.hh:86
CirculatorWrapperT iter() const
Implementation of Python's __iter__ magic method.
Definition Circulator.hh:47
CirculatorWrapperT(PolyMesh &_mesh, CenterEntityHandle _center)
Constructor.
Definition Circulator.hh:28
Circulator::value_type next()
Implementation of Python's __next__ magic method.
Definition Circulator.hh:57
CirculatorWrapperT(TriMesh &_mesh, CenterEntityHandle _center)
Constructor.
Definition Circulator.hh:38

Project OpenMesh, ©  Computer Graphics Group, RWTH Aachen. Documentation generated using doxygen .