40 #ifndef _GLSNURBCURVE_H 
   41 #define _GLSNURBCURVE_H 
   48 #if( defined( GLSGEN_EXPORT_GLSNURBCURVE ) || defined( GLSGEN_IMPORT_GLSNURBCURVE ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \ 
   49     && defined( _MSC_VER ) 
   50 #    if defined( GLSGEN_EXPORT_GLSNURBCURVE ) || defined( GLS_EXPORT_GENERATED ) 
   51 #        define GLSGEN_GLSNURBCURVE_EXPORT __declspec( dllexport ) 
   53 #        define GLSGEN_GLSNURBCURVE_EXPORT __declspec( dllimport ) 
   56 #    define GLSGEN_GLSNURBCURVE_EXPORT 
   60 #define LIB_BASE_NAME "gls_nurb_curve" 
   79     GLS_GLSNURBCURVE_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
 
   80     GLS_GLSNURBCURVE_EMITEVENT 
 
   88     friend class GlsNurbCurveEditor;
 
   96     Vertex*      _tesselated_vertices;       
 
   97     unsigned int _tesselated_vertices_count; 
 
  112     GLSGEN_GLSNURBCURVE_EXPORT GlsNurbCurve( 
bool generateInstanceName = 
false );
 
  120     GLSGEN_GLSNURBCURVE_EXPORT GlsNurbCurve( 
unsigned int n_points, 
Vertex* vertices, 
Vertex& location );
 
  122     GLSGEN_GLSNURBCURVE_EXPORT GlsNurbCurve( 
const GlsNurbCurve& that, 
const bool generateNames );
 
  127     static GLSGEN_GLSNURBCURVE_EXPORT 
DisplayObject* CreateInstance();
 
  156     virtual GLSGEN_GLSNURBCURVE_EXPORT 
void Draw( 
void );
 
  159     virtual GLSGEN_GLSNURBCURVE_EXPORT 
void CalcNormals( 
int windingOrder = 1 );
 
  162     virtual GLSGEN_GLSNURBCURVE_EXPORT 
void SetVertices( 
unsigned int nPoints, 
Vertex* vertices );
 
  165     virtual GLSGEN_GLSNURBCURVE_EXPORT 
void VaListSetVertices( 
unsigned int nPoints, va_list args );
 
  171     GLSGEN_GLSNURBCURVE_EXPORT 
void Scale( 
float px, 
float py, 
float pz, 
Vertex* a, 
int handleBar );
 
  180     virtual GLSGEN_GLSNURBCURVE_EXPORT 
void Rotate( 
const Vector& orig, 
float angle, 
const Vector& axis );
 
  183     virtual GLSGEN_GLSNURBCURVE_EXPORT 
void GetExtents( 
float& x, 
float& y, 
float& z, 
float& x1, 
float& y1, 
float& z1 );
 
  186     virtual GLSGEN_GLSNURBCURVE_EXPORT 
void GetTransformedExtents( 
Vector& min, 
Vector& max, 
const GlsMatrixAffineD& matrix, 
bool resetMinMax = 
true );
 
  189     virtual GLSGEN_GLSNURBCURVE_EXPORT 
bool Hit( 
float x, 
float y, 
float z, 
float scale, 
const Vector& directionVector, 
Vector* collisionPoint );
 
  194     virtual GLSGEN_GLSNURBCURVE_EXPORT 
void DeleteVertex( 
unsigned int index );
 
  197     virtual GLSGEN_GLSNURBCURVE_EXPORT 
void SetVertexColor( 
unsigned int index, 
unsigned char col[] );
 
  209     GLSGEN_GLSNURBCURVE_EXPORT 
void GenerateSpline(
 
  210         unsigned int  num_vertices,     
 
  212         unsigned int* curve_array_size, 
 
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
const int MIN_NUMBER_POINTS
Definition: gls_nurb_curve.h:70
virtual DisplayObject * CloneObject(bool generateNames=false)
void GenerateTessellatedVertices(void)
virtual void CalcNormals(int windingOrder=1)
const int MAX_SPLINE_VERTICES
Definition: gls_nurb_curve.h:67
Definition: dynamic_array.h:62
Class to contain current OpenGL view, projection and draw matrices. 
Definition: util.h:301
virtual void GetExtents(float &x, float &y, float &z, float &x1, float &y1, float &z1)
The disti::GLPolygon class. Implements Polygons. 
virtual void SetFillColor(const GlsColor &color)
void Scale(float px, float py, float pz, Vertex *a, int handleBar)
The disti::DisplayObject class and global enumerations. 
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
Vertex * TessVertices()
Definition: gls_nurb_curve.h:143
virtual void SetVertices(unsigned int nPoints, Vertex *vertices)
virtual void DeleteVertex(unsigned int index)
virtual void SetAvailableAttributes(unsigned int availableAttributes)
virtual void VaListSetVertices(unsigned int nPoints, va_list args)
Definition: gls_vertex_array.h:58
virtual void SetVertexColor(unsigned int index, unsigned char col[])
virtual void CalculateTextureCoordinates(void)
Definition: gls_color.h:53
virtual void Rotate(float angle, int axis=Z_AXIS)
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
unsigned int NumberOfTessVertices() const 
Definition: gls_nurb_curve.h:138
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
virtual void CopyGeometry(DisplayObject *src)
Definition: gls_nurb_curve.h:84
void Scale(int handleBar, float px, float py, Vertex *anchor=NULL)
Definition: display.h:1112
virtual void Rotate(const Vector &orig, float angle, const Vector &axis)
const int NUMBER_POINTS_TO_CONSIDER
Definition: gls_nurb_curve.h:74
Macros and helper code to determine what subset of C++11/14/17 is available. 
Definition: bmpimage.h:46
void SetFillColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a)
Definition: display.h:664
Definition: gls_matrix_affine.h:60