49 #ifndef OSG_MODQUADRIC_HH
50 #define OSG_MODQUADRIC_HH
57 #include <OpenMesh/Core/Utils/Property.hh>
58 #include <OpenMesh/Core/Utils/vector_cast.hh>
75 template <
class MeshT>
93 Base::mesh().add_property( quadrics_ );
100 Base::mesh().remove_property(quadrics_);
107 virtual void initialize(
void);
116 using namespace OpenMesh;
120 Q q = Base::mesh().property(quadrics_, _ci.
v0);
121 q += Base::mesh().property(quadrics_, _ci.
v1);
123 double err = q(_ci.
p1);
130 return float( (err < max_err_) ? err :
float( Base::ILLEGAL_COLLAPSE ) );
137 Base::mesh().property(quadrics_, _ci.
v1) +=
138 Base::mesh().property(quadrics_, _ci.
v0);
142 void set_error_tolerance_factor(
double _factor);
154 void set_max_err(
double _err,
bool _binary=
true)
157 Base::set_binary(_binary);
162 void unset_max_err(
void)
165 Base::set_binary(
false);
185 #if defined(OM_INCLUDE_TEMPLATES) && !defined(OPENMESH_DECIMATER_MODQUADRIC_CC)
186 #define OSG_MODQUADRIC_TEMPLATES
190 #endif // OSG_MODQUADRIC_HH defined