4 #include <OpenMesh/Core/Utils/Property.hh>
5 #include "int2roman.hh"
8 template <
typename Mesh>
13 static float a[9] = { 1.1f, 2.2f, 3.3f, 4.4f, 5.5f, 6.6f, 7.7f, 8.8f, 9.9f };
15 for(
typename Mesh::VertexIter it=_m.vertices_begin();
16 it != _m.vertices_end(); ++it)
18 v = a[it.handle().idx()%9];
19 if ( _check && !(_m.property( _ph, it ) == v) )
22 _m.property( _ph, it ) = v;
28 template <
typename Mesh>
34 for(
typename Mesh::EdgeIter it=_m.edges_begin();
35 it != _m.edges_end(); ++it)
37 n = it.handle().idx();
40 if (_check && _m.property( _ph, it ) != v)
42 std::cout <<
" eprop_bool: " << n <<
" -> "
43 << _m.property(_ph, it ) <<
" != " << v << std::endl;
48 _m.property( _ph, it ) = v;
49 std::cout <<
" eprop_bool: " << n <<
" -> " << v << std::endl;
57 template <
typename Mesh>
62 for(
typename Mesh::FaceIter it=_m.faces_begin();
63 it != _m.faces_end(); ++it)
65 n = it.handle().idx();
66 _m.property( _ph, it ) = int2roman(++n);
72 template <
typename Mesh,
typename T>
78 static float a[9] = { 1.1f, 2.2f, 3.3f, 4.4f, 5.5f, 6.6f, 7.7f, 8.8f, 9.9f };
79 static float b[9] = { 2.2f, 3.3f, 4.4f, 5.5f, 6.6f, 7.7f, 8.8f, 9.9f, 1.1f };
80 static float c[9] = { 3.3f, 4.4f, 5.5f, 6.6f, 7.7f, 8.8f, 9.9f, 1.1f, 2.2f };
81 static float d[9] = { 4.4f, 5.5f, 6.6f, 7.7f, 8.8f, 9.9f, 1.1f, 2.2f, 3.3f };
82 static double values[9] = { 0.1, 0.02, 0.003, 0.0004, 0.00005, 0.000006,
83 0.0000007, 0.00000008, 0.000000009 };
85 for(
typename Mesh::HalfedgeIter it=_m.halfedges_begin();
86 it != _m.halfedges_end(); ++it)
88 n = it.handle().idx();
90 v = it.handle().idx()+1;
93 v.vec4fval[0] = a[n%9];
94 v.vec4fval[1] = b[n%9];
95 v.vec4fval[2] = c[n%9];
96 v.vec4fval[3] = d[n%9];
98 if ( _check && _m.property( _ph, it ) != v )
101 _m.property( _ph, it ) = v;
106 template <
typename Mesh,
typename T>
111 for(
typename Mesh::FaceIter it=_m.faces_begin(); it != _m.faces_end(); ++it)
113 idx = it.handle().idx();
114 if ( _check && _m.property( _ph )[int2roman(idx+1)] != idx )
117 _m.property( _ph )[int2roman(idx+1)] = idx;