00001 /* *********************************************************************************** 00002 Writer: Sebastien Bloc 00003 Copyright: 2003-2004 00004 eMail: sebastien.bloc@free.fr 00005 URL: http://mignonsoft.free.fr 00006 00007 This program is free software; you can redistribute it and/or 00008 modify it under the terms of the GNU General Public License 00009 as published by the Free Software Foundation; either version 2 00010 of the License, or (at your option) any later version. 00011 00012 This program is distributed in the hope that it will be useful, 00013 but WITHOUT ANY WARRANTY; without even the implied warranty of 00014 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00015 GNU General Public License for more details. 00016 http://www.gnu.org/copyleft/gpl.html 00017 *********************************************************************************** */ 00018 00023 #ifndef INCLUDE_CURVE_H 00024 #define INCLUDE_CURVE_H 00025 00026 #include "3d.h" 00027 #include "coordonate.h" 00028 #include "texture.h" 00029 00033 class Curve 00034 { 00035 private: 00036 // variable avec les valeurs precalculé 00037 Point2D<int> oldNbCut; 00038 GLdouble *tabSommets; 00039 GLdouble *tabCoorTextures; 00040 GLuint *tabQuads; 00041 Coordonate<GLdouble> oldCenter; // centre de l'incurvation 00042 void UnAlloc(); 00043 int numList; 00044 00045 public: 00046 Point2D<int> nbCut; // nb de decoupe en X et Y 00047 Coordonate<GLdouble> center; // centre de l'incurvation 00048 00049 public: 00050 Curve(); 00051 ~Curve(); 00052 void Zero(); 00053 void operator=(Curve &source); 00054 BOOL Set(GLdouble zCenter,int nbCutXY); 00055 BOOL Set(GLdouble zCenter,int nbCutX,int nbCutY); 00056 BOOL IsActive(); 00057 void Refresh(); 00058 BOOL Draw(Point2D<double> size,Texture *texture); 00059 }; 00060 00061 #endif