43 #ifndef OPENVOLUMEMESHHANDLE_HH_
44 #define OPENVOLUMEMESHHANDLE_HH_
50 #include "../System/FunctionalInclude.hh"
70 inline bool is_valid()
const {
return idx_ != -1; }
72 inline bool operator<(
const OpenVolumeMeshHandle& _idx)
const {
return (this->idx_ < _idx.idx_); }
74 inline bool operator<(
int _idx)
const {
return idx_ < _idx; }
76 inline bool operator>(
const OpenVolumeMeshHandle& _idx)
const {
return (this->idx_ > _idx.idx_); }
78 inline bool operator>(
int _idx)
const {
return idx_ > _idx; }
84 inline const int& idx()
const {
return idx_; }
86 void idx(
const int& _idx) { idx_ = _idx; }
88 inline operator int()
const {
return idx_; }
90 void reset() { idx_ = -1; }
112 if(_h > thld_) _h.idx(_h.idx() - 1);
120 void correctVecValue(std::vector<HalfEdgeHandle>& _vec) {
121 #if defined(__clang_major__) && (__clang_major__ >= 5)
122 for(std::vector<HalfEdgeHandle>::iterator it = _vec.begin(), end = _vec.end(); it != end; ++it) {
126 std::for_each(_vec.begin(), _vec.end(),
fun::bind(&HEHandleCorrection::correctValue,
this, fun::placeholders::_1));
130 if(_h > thld_) _h.idx(_h.idx() - 2);
138 void correctVecValue(std::vector<HalfFaceHandle>& _vec) {
139 #if defined(__clang_major__) && (__clang_major__ >= 5)
140 for(std::vector<HalfFaceHandle>::iterator it = _vec.begin(), end = _vec.end(); it != end; ++it) {
144 std::for_each(_vec.begin(), _vec.end(),
fun::bind(&HFHandleCorrection::correctValue,
this, fun::placeholders::_1));
148 if(_h > thld_) _h.idx(_h.idx() - 2);
157 if(_h > thld_) _h.idx(_h.idx() - 1);
bool bind(osg::GeometryPtr &_geo, Mesh &_mesh)