SubdivSchemeModifier.h

00001 #ifndef SUBDIVSCHEMEMODIFIER_H
00002 #define SUBDIVSCHEMEMODIFIER_H
00003 #include <QGLViewer/qglviewer.h>
00004 #include "QGLViewer/vec.h"
00005 #include "matrices.h"
00006 #include <qobject.h>
00007 /*
00008  _____  _____       _                         __  __            _ _  __ _    
00009 / ____|/ ____|     | |                       |  \/  |          | (_)/ _(_)  
00010 | (___ | (___   ___| |__   ___ _ __ ___   ___| \  / |  ___   __| |_| |_ _  ___ _ __ 
00011  \___ \ \___ \ / __| '_ \ / _ \ '_ ` _ \ / _ \ |\/| | / _ \ / _` | |  _| |/ _ \ '__|
00012  ____) |____) | (__| | | |  __/ | | | | |  __/ |  | || (_) | (_| | | | | |  __/ | 
00013 |_____/|_____/ \___|_| |_|\___|_| |_| |_|\___|_|  |_| \___/ \__,_|_|_| |_|\___|_|
00014 
00015 */
00016 
00017 using namespace std;
00018 using namespace qglviewer;
00029 class SubdivSchemeModifier : public QGLViewer//, public QObject
00030 {
00031         Q_OBJECT 
00032 public :
00034         SubdivSchemeModifier(QWidget *parent, const char *name);
00036         int _NbTU;
00038         int _NbTV;
00040         int _NbTW;
00042         int _HideUBelow;
00044         int _HideVBelow;
00046         int _HideWBelow;
00048         int _HideUAbove;
00050         int _HideVAbove;
00052         int _HideWAbove;
00054         int _CurrentAxis;
00056         bool*** _Activations;
00059         bool*** _ReverseNormals;
00061         SSMatrix*** _TransfoModifMatrices;
00062         
00063 protected :
00065         virtual void init();
00067         virtual void draw();
00069         virtual void drawWithNames();
00071         Vec MatriceVecMultiply(SSMatrix M, Vec V);
00073         void drawTransfo(int u, int v, int w);
00075         void fastDrawQuad(Vec P1, Vec P2, Vec P3, Vec P4);
00099         RotateW();
00101         RotateV();
00103         RotateU();
00129         SymmetriseU();
00131         SymmetriseV();
00133         SymmetriseW();
00134 public slots :
00136         S_ResetSubdivSchemeModifier(int NbTU,int NbTV,int NbTW);
00138         S_Activate();
00140         S_Rotate();
00142         S_Symmetrise();
00144         S_ToggleCurrentAxis(int A); // 
00145 signals :
00147         void S_ActivateTransfo(int Uindice,int Vindice,int Windice);
00149         void S_RotateTransfo(int Uindice,int Vindice,int Windice,int Axis);
00151         void S_SymmetriseTransfo(int Uindice,int Vindice,int Windice,int Axis);
00152 };
00153 #endif

Generated on Thu Sep 28 09:38:08 2006 by  doxygen 1.4.7