Next set
git-svn-id: http://www.openmesh.org/svnrepo/OpenMesh/trunk@908 fdac6126-5c0c-442c-9429-916003d36597
This commit is contained in:
@@ -201,7 +201,7 @@ void CompositeT<M>::refine(typename M::FaceHandle& _fh)
|
||||
{
|
||||
typename Mesh::FaceHalfedgeIter fh_it(mesh_.fh_iter(_fh));
|
||||
|
||||
for (; fh_it; ++fh_it)
|
||||
for (; fh_it.is_valid(); ++fh_it)
|
||||
{
|
||||
hh_vector.push_back(mesh_.PHEH(mesh_.OHEH(*fh_it)));
|
||||
}
|
||||
|
||||
@@ -237,7 +237,7 @@ public:
|
||||
|
||||
if (_target_state > 1) {
|
||||
|
||||
for (fe_it = mesh_.fe_iter(_fh); fe_it; ++fe_it) {
|
||||
for (fe_it = mesh_.fe_iter(_fh); fe_it.is_valid(); ++fe_it) {
|
||||
|
||||
eh = *fe_it;
|
||||
prev_rule()->raise(eh, _target_state - 1);
|
||||
@@ -304,19 +304,19 @@ public:
|
||||
if (_target_state > 1)
|
||||
{
|
||||
|
||||
for (voh_it = mesh_.voh_iter(_vh); voh_it; ++voh_it) {
|
||||
halfedge_vector.push_back(*voh_it);
|
||||
for (voh_it = mesh_.voh_iter(_vh); voh_it.is_valid(); ++voh_it) {
|
||||
halfedge_vector.push_back(*voh_it);
|
||||
}
|
||||
|
||||
while ( !halfedge_vector.empty() ) {
|
||||
eh = mesh_.edge_handle(halfedge_vector.back());
|
||||
halfedge_vector.pop_back();
|
||||
eh = mesh_.edge_handle(halfedge_vector.back());
|
||||
halfedge_vector.pop_back();
|
||||
|
||||
prev_rule()->raise(eh, _target_state - 1);
|
||||
prev_rule()->raise(eh, _target_state - 1);
|
||||
}
|
||||
|
||||
for (voh_it = mesh_.voh_iter(_vh); voh_it; ++voh_it) {
|
||||
halfedge_vector.push_back(*voh_it);
|
||||
for (voh_it = mesh_.voh_iter(_vh); voh_it.is_valid(); ++voh_it) {
|
||||
halfedge_vector.push_back(*voh_it);
|
||||
}
|
||||
|
||||
while ( !halfedge_vector.empty() ) {
|
||||
|
||||
@@ -138,7 +138,7 @@ Tvv3<M>::raise(typename M::FaceHandle& _fh, state_t _target_state)
|
||||
Base::mesh_.split(_fh, vh);
|
||||
|
||||
// calculate display position for new vertex
|
||||
for (vv_it = Base::mesh_.vv_iter(vh); vv_it; ++vv_it)
|
||||
for (vv_it = Base::mesh_.vv_iter(vh); vv_it.is_valid(); ++vv_it)
|
||||
{
|
||||
position += Base::mesh_.point(*vv_it);
|
||||
++valence;
|
||||
@@ -154,30 +154,30 @@ Tvv3<M>::raise(typename M::FaceHandle& _fh, state_t _target_state)
|
||||
|
||||
typename M::VertexOHalfedgeIter voh_it;
|
||||
// check for edge flipping
|
||||
for (voh_it = Base::mesh_.voh_iter(vh); voh_it; ++voh_it) {
|
||||
|
||||
if (Base::mesh_.FH(*voh_it).is_valid()) {
|
||||
for (voh_it = Base::mesh_.voh_iter(vh); voh_it.is_valid(); ++voh_it) {
|
||||
|
||||
MOBJ(Base::mesh_.FH(*voh_it)).set_state(_target_state);
|
||||
MOBJ(Base::mesh_.FH(*voh_it)).set_not_final();
|
||||
MOBJ(Base::mesh_.FH(*voh_it)).set_position(_target_state - 1, face_position);
|
||||
|
||||
if (Base::mesh_.FH(*voh_it).is_valid()) {
|
||||
|
||||
for (state_t j = 0; j < _target_state; ++j) {
|
||||
MOBJ(Base::mesh_.FH(*voh_it)).set_position(j, MOBJ(_fh).position(j));
|
||||
}
|
||||
|
||||
if (Base::mesh_.FH(Base::mesh_.OHEH(Base::mesh_.NHEH(*voh_it))).is_valid()) {
|
||||
MOBJ(Base::mesh_.FH(*voh_it)).set_state(_target_state);
|
||||
MOBJ(Base::mesh_.FH(*voh_it)).set_not_final();
|
||||
MOBJ(Base::mesh_.FH(*voh_it)).set_position(_target_state - 1, face_position);
|
||||
|
||||
if (MOBJ(Base::mesh_.FH(Base::mesh_.OHEH(Base::mesh_.NHEH(*voh_it)))).state() == _target_state) {
|
||||
|
||||
if (Base::mesh_.is_flip_ok(Base::mesh_.EH(Base::mesh_.NHEH(*voh_it)))) {
|
||||
for (state_t j = 0; j < _target_state; ++j) {
|
||||
MOBJ(Base::mesh_.FH(*voh_it)).set_position(j, MOBJ(_fh).position(j));
|
||||
}
|
||||
|
||||
edge_vector.push_back(Base::mesh_.EH(Base::mesh_.NHEH(*voh_it)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (Base::mesh_.FH(Base::mesh_.OHEH(Base::mesh_.NHEH(*voh_it))).is_valid()) {
|
||||
|
||||
if (MOBJ(Base::mesh_.FH(Base::mesh_.OHEH(Base::mesh_.NHEH(*voh_it)))).state() == _target_state) {
|
||||
|
||||
if (Base::mesh_.is_flip_ok(Base::mesh_.EH(Base::mesh_.NHEH(*voh_it)))) {
|
||||
|
||||
edge_vector.push_back(Base::mesh_.EH(Base::mesh_.NHEH(*voh_it)));
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -881,7 +881,7 @@ void FF<M>::raise(typename M::FaceHandle& _fh, state_t _target_state) {
|
||||
|
||||
if (_target_state > 1) {
|
||||
|
||||
for (ff_it = Base::mesh_.ff_iter(_fh); ff_it; ++ff_it) {
|
||||
for (ff_it = Base::mesh_.ff_iter(_fh); ff_it.is_valid(); ++ff_it) {
|
||||
|
||||
face_vector.push_back(*ff_it);
|
||||
}
|
||||
@@ -894,7 +894,7 @@ void FF<M>::raise(typename M::FaceHandle& _fh, state_t _target_state) {
|
||||
Base::prev_rule()->raise(fh, _target_state - 1);
|
||||
}
|
||||
|
||||
for (ff_it = Base::mesh_.ff_iter(_fh); ff_it; ++ff_it) {
|
||||
for (ff_it = Base::mesh_.ff_iter(_fh); ff_it.is_valid(); ++ff_it) {
|
||||
|
||||
face_vector.push_back(*ff_it);
|
||||
}
|
||||
@@ -913,7 +913,7 @@ void FF<M>::raise(typename M::FaceHandle& _fh, state_t _target_state) {
|
||||
typename M::Point position(0.0, 0.0, 0.0);
|
||||
int valence(0);
|
||||
|
||||
for (ff_it = Base::mesh_.ff_iter(_fh); ff_it; ++ff_it) {
|
||||
for (ff_it = Base::mesh_.ff_iter(_fh); ff_it.is_valid(); ++ff_it) {
|
||||
|
||||
++valence;
|
||||
|
||||
@@ -945,7 +945,7 @@ void FFc<M>::raise(typename M::FaceHandle& _fh, state_t _target_state)
|
||||
|
||||
if (_target_state > 1)
|
||||
{
|
||||
for (; ff_it; ++ff_it)
|
||||
for (; ff_it.is_valid(); ++ff_it)
|
||||
face_vector.push_back(*ff_it);
|
||||
|
||||
while (!face_vector.empty())
|
||||
@@ -1010,7 +1010,7 @@ void FV<M>::raise(typename M::VertexHandle& _vh, state_t _target_state)
|
||||
|
||||
if (_target_state > 1) {
|
||||
|
||||
for (; vf_it; ++vf_it) {
|
||||
for (; vf_it.is_valid(); ++vf_it) {
|
||||
|
||||
face_vector.push_back(*vf_it);
|
||||
}
|
||||
|
||||
@@ -332,7 +332,7 @@ CatmullClarkT<MeshType,RealType>::update_vertex( MeshType& _m, const VertexHandl
|
||||
Normal Vec;
|
||||
pos = _m.point(_vh);
|
||||
VertexEdgeIter ve_itr;
|
||||
for ( ve_itr = _m.ve_iter( _vh); ve_itr; ++ve_itr)
|
||||
for ( ve_itr = _m.ve_iter( _vh); ve_itr.is_valid(); ++ve_itr)
|
||||
if ( _m.is_boundary( *ve_itr))
|
||||
pos += _m.property( ep_pos_, *ve_itr);
|
||||
pos /= 3.0;
|
||||
@@ -363,9 +363,9 @@ CatmullClarkT<MeshType,RealType>::update_vertex( MeshType& _m, const VertexHandl
|
||||
|
||||
RealType valence(0.0);
|
||||
VOHIter voh_it = _m.voh_iter( _vh );
|
||||
for( ; voh_it; ++voh_it )
|
||||
for( ; voh_it.is_valid(); ++voh_it )
|
||||
{
|
||||
pos += _m.point( _m.to_vertex_handle( voh_it ) );
|
||||
pos += _m.point( _m.to_vertex_handle( *voh_it ) );
|
||||
valence+=1.0;
|
||||
}
|
||||
pos /= valence*valence;
|
||||
@@ -373,7 +373,7 @@ CatmullClarkT<MeshType,RealType>::update_vertex( MeshType& _m, const VertexHandl
|
||||
VertexFaceIter vf_itr;
|
||||
Point Q(0, 0, 0);
|
||||
|
||||
for ( vf_itr = _m.vf_iter( _vh); vf_itr; ++vf_itr) //, neigboring_faces += 1.0 )
|
||||
for ( vf_itr = _m.vf_iter( _vh); vf_itr.is_valid(); ++vf_itr) //, neigboring_faces += 1.0 )
|
||||
{
|
||||
Q += _m.property(fp_pos_, *vf_itr);
|
||||
}
|
||||
|
||||
@@ -439,7 +439,7 @@ void CompositeT<MeshType,RealType>::FF()
|
||||
valence = 0;
|
||||
cog = zero_point;
|
||||
|
||||
for (ff_it = mesh_.ff_iter(*f_it); ff_it; ++ff_it)
|
||||
for (ff_it = mesh_.ff_iter(*f_it); ff_it.is_valid(); ++ff_it)
|
||||
{
|
||||
cog += mesh_.data(ff_it).position();
|
||||
++valence;
|
||||
@@ -578,13 +578,13 @@ void CompositeT<MeshType,RealType>::FVc(Coeff& _coeff)
|
||||
valence = 0;
|
||||
cog = zero_point;
|
||||
|
||||
for (voh_it = mesh_.voh_iter(*v_it); voh_it; ++voh_it) {
|
||||
for (voh_it = mesh_.voh_iter(*v_it); voh_it.is_valid(); ++voh_it) {
|
||||
++valence;
|
||||
}
|
||||
|
||||
c = _coeff(valence);
|
||||
|
||||
for (voh_it = mesh_.voh_iter(*v_it); voh_it; ++voh_it) {
|
||||
for (voh_it = mesh_.voh_iter(*v_it); voh_it.is_valid(); ++voh_it) {
|
||||
|
||||
if (mesh_.face_handle(*voh_it).is_valid()) {
|
||||
|
||||
@@ -889,14 +889,14 @@ void CompositeT<MeshType,RealType>::EVc(Coeff& _coeff)
|
||||
valence = 0;
|
||||
cog = zero_point;
|
||||
|
||||
for (voh_it = mesh_.voh_iter(*v_it); voh_it; ++voh_it)
|
||||
for (voh_it = mesh_.voh_iter(*v_it); voh_it.is_valid(); ++voh_it)
|
||||
{
|
||||
++valence;
|
||||
}
|
||||
|
||||
c = _coeff(valence);
|
||||
|
||||
for (voh_it = mesh_.voh_iter(*v_it); voh_it; ++voh_it) {
|
||||
for (voh_it = mesh_.voh_iter(*v_it); voh_it.is_valid(); ++voh_it) {
|
||||
cog += mesh_.data(mesh_.edge_handle(*voh_it)).position() * c;
|
||||
cog += mesh_.data(mesh_.edge_handle(mesh_.next_halfedge_handle(*voh_it))).position() * (1.0 - c);
|
||||
}
|
||||
|
||||
@@ -436,13 +436,13 @@ private: // geometry helper
|
||||
size_t valence(0);
|
||||
|
||||
// Calculate Valence and sum up neighbour points
|
||||
for (vvit=_m.vv_iter(_vh); vvit; ++vvit) {
|
||||
for (vvit=_m.vv_iter(_vh); vvit.is_valid(); ++vvit) {
|
||||
++valence;
|
||||
pos += vector_cast< Vec >( _m.point(vvit) );
|
||||
pos += vector_cast< Vec >( _m.point(*vvit) );
|
||||
}
|
||||
pos *= weights_[valence].second; // alpha(n)/n * Sum q, q in one-ring of p
|
||||
pos += weights_[valence].first
|
||||
* vector_cast<Vec>(_m.point(_vh)); // + (1-a)*p
|
||||
* vector_cast<Vec>(_m.point(_vh)); // + (1-a)*p
|
||||
}
|
||||
|
||||
_m.property( vp_pos_, _vh ) = pos;
|
||||
|
||||
@@ -455,11 +455,11 @@ private:
|
||||
typename MeshType::HalfedgeHandle heh;
|
||||
|
||||
// find boundary edge
|
||||
for( fe_it=_m.fe_iter( _fh ); fe_it && !_m.is_boundary( fe_it ); ++fe_it ) {};
|
||||
for( fe_it=_m.fe_iter( _fh ); fe_it.is_valid() && !_m.is_boundary( fe_it ); ++fe_it ) {};
|
||||
|
||||
// use precomputed, already inserted but not linked vertices
|
||||
vhl = _m.property(ep_nv_, fe_it).first;
|
||||
vhr = _m.property(ep_nv_, fe_it).second;
|
||||
vhl = _m.property(ep_nv_, *fe_it).first;
|
||||
vhr = _m.property(ep_nv_, *fe_it).second;
|
||||
|
||||
/*
|
||||
// *---------*---------*
|
||||
@@ -474,8 +474,7 @@ private:
|
||||
*/
|
||||
// get halfedge pointing from P2 to P3 (inner boundary halfedge)
|
||||
|
||||
heh = _m.halfedge_handle(fe_it,
|
||||
_m.is_boundary(_m.halfedge_handle(fe_it,0)));
|
||||
heh = _m.halfedge_handle(*fe_it, _m.is_boundary(_m.halfedge_handle(*fe_it,0)));
|
||||
|
||||
typename MeshType::HalfedgeHandle pl_P3;
|
||||
|
||||
|
||||
@@ -348,11 +348,11 @@ private:
|
||||
typename MeshType::HalfedgeHandle heh;
|
||||
|
||||
// find boundary edge
|
||||
for( fe_it=_m.fe_iter( _fh ); fe_it && !_m.is_boundary( fe_it ); ++fe_it ) {};
|
||||
for( fe_it=_m.fe_iter( _fh ); fe_it.is_valid() && !_m.is_boundary( fe_it ); ++fe_it ) {};
|
||||
|
||||
// use precomputed, already inserted but not linked vertices
|
||||
vhl = _m.property(ep_nv_, fe_it).first;
|
||||
vhr = _m.property(ep_nv_, fe_it).second;
|
||||
vhl = _m.property(ep_nv_, *fe_it).first;
|
||||
vhr = _m.property(ep_nv_, *fe_it).second;
|
||||
|
||||
/*
|
||||
// *---------*---------*
|
||||
@@ -367,8 +367,8 @@ private:
|
||||
*/
|
||||
// get halfedge pointing from P2 to P3 (inner boundary halfedge)
|
||||
|
||||
heh = _m.halfedge_handle(fe_it,
|
||||
_m.is_boundary(_m.halfedge_handle(fe_it,0)));
|
||||
heh = _m.halfedge_handle(*fe_it,
|
||||
_m.is_boundary(_m.halfedge_handle(*fe_it,0)));
|
||||
|
||||
typename MeshType::HalfedgeHandle pl_P3;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user