00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013 #ifndef __AveragingLoop_h__
00014 #define __AveragingLoop_h__
00015
00016 #include "definitions.h"
00017
00018 #include "Averaging.h"
00019
00020 namespace subdiv {
00021
00022 template <typename V> class TTree;
00023
00024
00025 template <typename V>
00026 class AveragingLoop : public Averaging<V> {
00027 public:
00028 AveragingLoop(){};
00029 virtual ~AveragingLoop(){}
00030
00031 virtual void averageTriangleEdge(TTree<V> *tt, int iedge, int level, VecD3& posNew);
00032 virtual void averageTriangleVertex(TTree<V> *tt, int ivtx, int level, VecD3& posNew);
00033
00034 protected:
00035 virtual void collectOneRing(TTree<V> *tt, int ivtx, std::vector<V*>& vtxs);
00036 virtual void findCreaseNeighbors(TTree<V> *tt, int ivtx, std::vector<V*>& vtxs);
00037
00038 };
00039 }
00040
00041 #include "AveragingLoop.cc"
00042
00043 #endif