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,
220 GlsVertexArray _curve;
221 GlsVertexArray _fill;
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
virtual void SetFillColor(const glsColor &color)
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:63
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:281
virtual void GetExtents(float &x, float &y, float &z, float &x1, float &y1, float &z1)
The disti::GLPolygon class. Implements Polygons.
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)
virtual void SetVertexColor(unsigned int index, unsigned char col[])
virtual void CalculateTextureCoordinates(void)
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)
Definition: gls_color.h:54
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:1111
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:663
Definition: gls_matrix_affine.h:61