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
87 DISTI_DEPRECATED(
"This identifier is forbidden by the C++ standard. Use BaseClass instead." )
90 friend class GlsNurbCurveEditor;
98 Vertex* _tesselated_vertices;
99 unsigned int _tesselated_vertices_count;
114 GLSGEN_GLSNURBCURVE_EXPORT GlsNurbCurve(
bool generateInstanceName =
false );
122 GLSGEN_GLSNURBCURVE_EXPORT GlsNurbCurve(
unsigned int n_points,
Vertex* vertices,
Vertex& location );
124 GLSGEN_GLSNURBCURVE_EXPORT GlsNurbCurve(
const GlsNurbCurve& that,
const bool generateNames );
129 static GLSGEN_GLSNURBCURVE_EXPORT
DisplayObject* CreateInstance();
158 virtual GLSGEN_GLSNURBCURVE_EXPORT
void Draw(
void );
161 virtual GLSGEN_GLSNURBCURVE_EXPORT
void CalcNormals(
int windingOrder = 1 );
164 virtual GLSGEN_GLSNURBCURVE_EXPORT
void SetVertices(
unsigned int nPoints,
Vertex* vertices );
167 virtual GLSGEN_GLSNURBCURVE_EXPORT
void VaListSetVertices(
unsigned int nPoints, va_list args );
173 GLSGEN_GLSNURBCURVE_EXPORT
void Scale(
float px,
float py,
float pz,
Vertex* a,
int handleBar );
182 virtual GLSGEN_GLSNURBCURVE_EXPORT
void Rotate(
const Vector& orig,
float angle,
const Vector& axis );
185 virtual GLSGEN_GLSNURBCURVE_EXPORT
void GetExtents(
float& x,
float& y,
float& z,
float& x1,
float& y1,
float& z1 );
188 virtual GLSGEN_GLSNURBCURVE_EXPORT
void GetTransformedExtents(
Vector& min,
Vector& max,
const GlsMatrixAffineD& matrix,
bool resetMinMax =
true );
191 virtual GLSGEN_GLSNURBCURVE_EXPORT
bool Hit(
float x,
float y,
float z,
float scale,
const Vector& directionVector,
Vector* collisionPoint );
196 GLSGEN_GLSNURBCURVE_EXPORT
void DeleteVertexAt(
unsigned int index ) DISTI_METHOD_OVERRIDE;
199 virtual GLSGEN_GLSNURBCURVE_EXPORT
void SetVertexColor(
unsigned int index,
unsigned char col[] );
211 GLSGEN_GLSNURBCURVE_EXPORT
void GenerateSpline(
212 unsigned int num_vertices,
214 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)
void DeleteVertexAt(unsigned int index) DISTI_METHOD_OVERRIDE
virtual void CalcNormals(int windingOrder=1)
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:436
const int MAX_SPLINE_VERTICES
Definition: gls_nurb_curve.h:67
Definition: dynamic_array.h:66
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:296
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:145
virtual void SetVertices(unsigned int nPoints, Vertex *vertices)
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:140
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar=0)
virtual void CopyGeometry(DisplayObject *src)
Definition: gls_nurb_curve.h:84
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:678
Definition: gls_matrix_affine.h:60