59 #ifndef OPENMESH_DECIMATER_MODBASET_HH 60 #define OPENMESH_DECIMATER_MODBASET_HH 65 #include <OpenMesh/Core/Utils/Noncopyable.hh> 78 template <
typename Mesh>
class BaseDecimaterT;
87 template <
typename Module>
93 typedef Module module_type;
109 #if defined(OM_CC_MSVC) 115 void clear() { mod_ = NULL; }
116 void init(Module* _m) { mod_ = _m; }
117 Module* module() {
return mod_; }
135 #define DECIMATER_MODNAME(_mod_name) \ 136 virtual const std::string& name() const { \ 137 static std::string _s_modname_(#_mod_name); return _s_modname_; \ 154 #define DECIMATING_MODULE(Classname, MeshT, Name) \ 155 typedef Classname < MeshT > Self; \ 156 typedef OpenMesh::Decimater::ModHandleT< Self > Handle; \ 157 typedef OpenMesh::Decimater::ModBaseT< MeshT > Base; \ 158 typedef typename Base::Mesh Mesh; \ 159 typedef typename Base::CollapseInfo CollapseInfo; \ 160 DECIMATER_MODNAME( Name ) 196 template <
typename MeshT>
204 ILLEGAL_COLLAPSE = -1,
213 : error_tolerance_factor_(1.0), mesh_(_mesh), is_binary_(_is_binary) {}
251 {
return LEGAL_COLLAPSE; }
274 if (_factor >= 0.0 && _factor <= 1.0)
275 error_tolerance_factor_ = _factor;
282 MeshT&
mesh() {
return mesh_; }
285 double error_tolerance_factor_;
303 #endif // OPENMESH_DECIMATER_MODBASE_HH defined
const Noncopyable & operator=(const Noncopyable &)
Prevent access to assignment operator.
ModBaseT(MeshT &_mesh, bool _is_binary)
bool is_binary(void) const
Returns true if criteria returns a binary value.
virtual void set_error_tolerance_factor(double _factor)
virtual void initialize()
Initialize module-internal stuff.
MeshT & mesh()
Access the mesh associated with the decimater.
virtual float collapse_priority(const CollapseInfoT< MeshT > &)
virtual void postprocess_collapse(const CollapseInfoT< MeshT > &)
ModHandleT()
Default constructor.
void set_binary(bool _b)
Set whether module is binary or not.
#define DECIMATER_MODNAME(_mod_name)
virtual void preprocess_collapse(const CollapseInfoT< MeshT > &)
virtual ~ModBaseT()
Virtual desctructor.