50 #include "OpenVolumeMeshHandle.hh"
52 namespace OpenVolumeMesh {
63 typedef std::bidirectional_iterator_tag iterator_category;
64 typedef int difference_type;
65 typedef OH value_type;
67 typedef OH& reference;
70 valid_(
true), cur_handle_(_ch), ref_handle_(_ih), mesh_(_mesh) {}
73 valid_(
true), ref_handle_(_ih), mesh_(_mesh) {}
76 valid_(
true), mesh_(_mesh) {}
82 return (this->cur_handle_ == _c.cur_handle() &&
83 this->ref_handle_ == _c.ref_handle() &&
84 this->mesh_ == _c.mesh());
87 return !this->operator==(_c);
90 const OH* operator->()
const {
94 const OH& operator*()
const {
99 return cur_handle_.idx() < _c.cur_handle_.idx();
103 this->valid_ = _c.valid();
104 this->cur_handle_ = _c.cur_handle();
105 this->ref_handle_ = _c.ref_handle();
106 this->mesh_ = _c.mesh();
110 operator bool()
const {
114 void valid(
bool _valid) {
120 void cur_handle(
const OH& _h) {
123 const OH& cur_handle()
const {
126 const IH& ref_handle()
const {
169 for(
int i = 0; i < _n; ++i) {
176 for(
int i = 0; i < _n; ++i) {
182 for(
int i = 0; i < _n; ++i) {
188 for(
int i = 0; i < _n; ++i) {
228 for(
int i = 0; i < _n; ++i) {
235 for(
int i = 0; i < _n; ++i) {
241 for(
int i = 0; i < _n; ++i) {
247 for(
int i = 0; i < _n; ++i) {
272 BaseIter::operator=(_c);
274 cell_iter_ = cells_.begin();
291 for(
int i = 0; i < _n; ++i) {
298 for(
int i = 0; i < _n; ++i) {
304 for(
int i = 0; i < _n; ++i) {
310 for(
int i = 0; i < _n; ++i) {
320 std::set<CellHandle> cells_;
321 std::set<CellHandle>::const_iterator cell_iter_;
348 for(
int i = 0; i < _n; ++i) {
355 for(
int i = 0; i < _n; ++i) {
361 for(
int i = 0; i < _n; ++i) {
367 for(
int i = 0; i < _n; ++i) {
392 BaseIter::operator=(_c);
393 incident_vertices_ = _c.incident_vertices_;
394 v_iter_ = incident_vertices_.begin();
411 for(
int i = 0; i < _n; ++i) {
418 for(
int i = 0; i < _n; ++i) {
424 for(
int i = 0; i < _n; ++i) {
430 for(
int i = 0; i < _n; ++i) {
440 std::vector<VertexHandle> incident_vertices_;
441 std::vector<VertexHandle>::const_iterator v_iter_;
456 BaseIter::operator=(_c);
457 adjacent_cells_ = _c.adjacent_cells_;
458 c_iter_ = adjacent_cells_.begin();
475 for(
int i = 0; i < _n; ++i) {
482 for(
int i = 0; i < _n; ++i) {
488 for(
int i = 0; i < _n; ++i) {
494 for(
int i = 0; i < _n; ++i) {
504 std::set<CellHandle> adjacent_cells_;
505 std::set<CellHandle>::const_iterator c_iter_;
520 BaseIter::operator=(_c);
521 vertices_ = _c.vertices_;
522 iter_ = vertices_.begin();
539 for(
int i = 0; i < _n; ++i) {
546 for(
int i = 0; i < _n; ++i) {
552 for(
int i = 0; i < _n; ++i) {
558 for(
int i = 0; i < _n; ++i) {
568 std::vector<VertexHandle> vertices_;
569 std::vector<VertexHandle>::const_iterator iter_;
583 BaseIter::operator=(_c);
584 neighbor_halffaces_ = _c.neighbor_halffaces_;
585 cur_it_ = neighbor_halffaces_.begin();
602 for(
int i = 0; i < _n; ++i) {
609 for(
int i = 0; i < _n; ++i) {
615 for(
int i = 0; i < _n; ++i) {
621 for(
int i = 0; i < _n; ++i) {
627 const EdgeHandle& common_edge()
const {
return *edge_it_; }
633 std::vector<HalfFaceHandle> neighbor_halffaces_;
634 std::vector<EdgeHandle> common_edges_;
635 std::vector<HalfFaceHandle>::const_iterator cur_it_;
636 std::vector<EdgeHandle>::const_iterator edge_it_;
665 for(
int i = 0; i < _n; ++i) {
672 for(
int i = 0; i < _n; ++i) {
678 for(
int i = 0; i < _n; ++i) {
684 for(
int i = 0; i < _n; ++i) {
723 for(
int i = 0; i < _n; ++i) {
730 for(
int i = 0; i < _n; ++i) {
736 for(
int i = 0; i < _n; ++i) {
742 for(
int i = 0; i < _n; ++i) {
781 for(
int i = 0; i < _n; ++i) {
788 for(
int i = 0; i < _n; ++i) {
794 for(
int i = 0; i < _n; ++i) {
800 for(
int i = 0; i < _n; ++i) {
839 for(
int i = 0; i < _n; ++i) {
846 for(
int i = 0; i < _n; ++i) {
852 for(
int i = 0; i < _n; ++i) {
858 for(
int i = 0; i < _n; ++i) {
897 for(
int i = 0; i < _n; ++i) {
904 for(
int i = 0; i < _n; ++i) {
910 for(
int i = 0; i < _n; ++i) {
916 for(
int i = 0; i < _n; ++i) {
955 for(
int i = 0; i < _n; ++i) {
962 for(
int i = 0; i < _n; ++i) {
968 for(
int i = 0; i < _n; ++i) {
974 for(
int i = 0; i < _n; ++i) {
1011 for(
int i = 0; i < _n; ++i) {
1018 for(
int i = 0; i < _n; ++i) {
1024 for(
int i = 0; i < _n; ++i) {
1030 for(
int i = 0; i < _n; ++i) {