54 #ifndef OPENMESH_SUBDIVIDER_UNIFORM_COMPOSITELOOPT_HH 55 #define OPENMESH_SUBDIVIDER_UNIFORM_COMPOSITELOOPT_HH 60 #include "Composite/CompositeT.hh" 61 #include "Composite/CompositeTraits.hh" 67 namespace Subdivider {
75 template <
class MeshType,
class RealType =
double>
90 const char *
name()
const {
return "Uniform Composite Loop"; }
98 Inherited::EVc(coeffs_);
100 Inherited::EVc(coeffs_);
113 EVCoeff() : Coeff() { init(50); }
115 void init(
size_t _max_valence)
117 weights_.resize(_max_valence);
118 std::generate(weights_.begin(),
122 double operator()(
size_t _valence) {
return weights_[_valence]; }
129 double operator()(
void)
134 double f1 = 1.5 + cos(2.0*M_PI/val_++);
135 return 0.5 * f1 * f1 - 1.0;
141 std::vector<double> weights_;
151 #endif // OPENMESH_SUBDIVIDER_UNIFORM_COMPOSITELOOPT_HH defined
const char * name() const
Return name of subdivision algorithm.
Abstract base class for coefficient functions.