Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | File Members | Related Pages

ButterflySubdivision.h

Go to the documentation of this file.
00001 /*****
00002  * ButterflySubdivision.h
00003  *
00004  * This class implements Butterfly subdivision
00005  *
00006  * author: Ed Bachta
00007  */
00008 
00009 #ifndef __BUTTERFLYSUBDIVISION_H__
00010 #define __BUTTERFLYSUBDIVISION_H__
00011 
00012 #include "libgm/gm.h"
00013 #include "Subdiv/Subdiv.h"
00014 #include "mesh/indexEdge.h"
00015 #include "mesh/indexFace.h"
00016 #include "mesh/mesh.h"
00017 
00018 class ButterflySubdivision : public Subdivision {
00019 
00020 private:
00021 
00022   double weight;
00023 
00024   int getOpposingVertexInfo(gmVector3&, 
00025                             gmVector3&, 
00026                             indexEdge*, 
00027                             indexFace*, 
00028                             U32); 
00029  
00030   // This can be overridden to implement modified butterfly subdivision
00031   virtual void divideEdge(gmVector3&,
00032                           gmVector3&,
00033                           indexEdge*, 
00034                           indexFace*, 
00035                           U32);
00036 
00037   void divideFace(indexFace*, Mesh*);
00038   //void subdivide(mesh *, U32);
00039 
00040 public:
00041   ButterflySubdivision(double w=0.0);
00042 
00043   void subdivide(Mesh*, U32);
00044   virtual void compute(int n);
00045   virtual int matrix(int* n, double *s) { return 0; }
00046 
00047 };
00048 
00049 #endif 

Generated on Mon Jun 28 14:58:13 2004 for Advanced Surface Library by doxygen 1.3.4