Commit 6923415d authored by Pierre Kraemer's avatar Pierre Kraemer

ajout fichier manqant

parent 627a0a0d
/*******************************************************************************
* CGoGN: Combinatorial and Geometric modeling with Generic N-dimensional Maps *
* version 0.1 *
* Copyright (C) 2009-2011, IGG Team, LSIIT, University of Strasbourg *
* *
* This library is free software; you can redistribute it and/or modify it *
* under the terms of the GNU Lesser General Public License as published by the *
* Free Software Foundation; either version 2.1 of the License, or (at your *
* option) any later version. *
* *
* This library is distributed in the hope that it will be useful, but WITHOUT *
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or *
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License *
* for more details. *
* *
* You should have received a copy of the GNU Lesser General Public License *
* along with this library; if not, write to the Free Software Foundation, *
* Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. *
* *
* Web site: http://cgogn.u-strasbg.fr/ *
* Contact information: cgogn@unistra.fr *
* *
*******************************************************************************/
#ifndef __FILTERING_FUNCTORS_H__
#define __FILTERING_FUNCTORS_H__
#include "Topology/generic/functor.h"
namespace CGoGN
{
namespace Algo
{
namespace Filtering
{
template <typename MAP, typename T>
class FunctorAverage : public FunctorMap<MAP>
{
protected:
const AttributeHandler<T>& attr ;
T sum ;
unsigned int count ;
public:
FunctorAverage(MAP& map, const AttributeHandler<T>& a) : FunctorMap<MAP>(map), attr(a), sum(0), count(0)
{}
bool operator()(Dart d)
{
sum += attr[d] ;
++count ;
return false ;
}
inline void reset() { sum = T(0) ; count = 0 ; }
inline T getSum() { return sum ; }
inline T getAverage() { return sum / typename T::DATA_TYPE(count) ; }
} ;
} // namespace Filtering
} // namespace Algo
} // namespace CGoGN
#endif
......@@ -64,7 +64,7 @@ Vector<DIM,T>::Vector(const Vector<DIM,T>& v)
template <unsigned int DIM, typename T>
Vector<DIM,T>::Vector(T x, T y)
{
CGoGN_STATIC_ASSERT(DIM==2, incompatible_Vector_constructor_dimension) ;
CGoGN_STATIC_ASSERT(DIM == 2, incompatible_Vector_constructor_dimension) ;
m_data[0] = x ;
m_data[1] = y ;
}
......@@ -72,7 +72,7 @@ Vector<DIM,T>::Vector(T x, T y)
template <unsigned int DIM, typename T>
Vector<DIM,T>::Vector(T x, T y, T z)
{
CGoGN_STATIC_ASSERT(DIM==3, incompatible_Vector_constructor_dimension) ;
CGoGN_STATIC_ASSERT(DIM == 3, incompatible_Vector_constructor_dimension) ;
m_data[0] = x ;
m_data[1] = y ;
m_data[2] = z ;
......@@ -81,7 +81,7 @@ Vector<DIM,T>::Vector(T x, T y, T z)
template <unsigned int DIM, typename T>
Vector<DIM,T>::Vector(T x, T y, T z, T w)
{
CGoGN_STATIC_ASSERT(DIM==4, incompatible_Vector_constructor_dimension) ;
CGoGN_STATIC_ASSERT(DIM == 4, incompatible_Vector_constructor_dimension) ;
m_data[0] = x ;
m_data[1] = y ;
m_data[2] = z ;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment