
00001 //***************************************************************************** 00002 // File : gzBezier.h 00003 // Module : 00004 // Description : Class definition of Bezier geometry classes 00005 // Author : Anders Modén 00006 // Product : Gizmo3D 2.1.1 00007 // 00008 // Copyright © 2003- Saab Training Systems AB, Sweden 00009 // 00010 // NOTE: Gizmo3D is a high performance 3D Scene Graph and effect visualisation 00011 // C++ toolkit for Linux, Mac OS X, Windows (Win32) and IRIX® for 00012 // usage in Game or VisSim development. 00013 // 00014 // 00015 // Revision History... 00016 // 00017 // Who Date Description 00018 // 00019 // AMO 000807 Created file 00020 // 00021 //****************************************************************************** 00022 #ifndef __GZ_BEZIER_H__ 00023 #define __GZ_BEZIER_H__ 00024 00030 #include "gzParametric.h" 00031 00032 //****************************************************************************** 00033 // Class : gzBezier 00034 // 00035 // Purpose : - 00036 // 00037 // Notes : - 00038 // 00039 // Revision History... 00040 // 00041 // Who Date Description 00042 // 00043 // AMO 000807 Created 00044 // 00045 //****************************************************************************** 00052 class gzBezier : public gzParametricGeometry 00053 { 00054 public: 00055 00056 GZ_GRAPH_EXPORT gzBezier(const gzString & name=GZ_EMPTY_STRING); 00057 GZ_GRAPH_EXPORT virtual ~gzBezier(){}; 00058 00059 GZ_DECLARE_TYPE_INTERFACE_EXPORT(GZ_GRAPH_EXPORT); // typed interface 00060 00061 00062 // ---------- Clone interface --------------------------------------- 00063 00064 GZ_GRAPH_EXPORT virtual gzReference* clone() const; 00065 00066 // ---------- Bezier interface --------------------------------------- 00067 00068 GZ_GRAPH_EXPORT gzVoid setControlPointSize( gzUShort sizeX , gzUShort sizeY ); 00069 00070 GZ_GRAPH_EXPORT gzVoid setControlPoint( gzUShort pointX , gzUShort pointY , const gzVec3 &data ); 00071 00072 GZ_GRAPH_EXPORT gzVoid setControlPointData( const gzArray<gzVec3> &data); 00073 00074 GZ_GRAPH_EXPORT gzVoid setControlPointData( const gzMatrix<gzVec3> &data); 00075 00076 // ---------- Parametric --------------------------------------------- 00077 00078 GZ_GRAPH_EXPORT virtual gzVec3 getCoordinate(gzDouble s , gzDouble t); 00079 00080 00081 00082 private: 00083 00084 gzArray< gzVec3 > m_controlPoints; 00085 00086 gzArray< gzVec3 > m_bufferPoints; 00087 00088 gzUShort m_sizeX,m_sizeY; 00089 }; 00090 00091 00092 #endif 00093