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();
150 virtual GLSGEN_GLSNURBCURVE_EXPORT
void SetAvailableAttributes(
unsigned int availableAttributes ) DISTI_METHOD_OVERRIDE;
158 virtual GLSGEN_GLSNURBCURVE_EXPORT
void Draw(
void ) DISTI_METHOD_OVERRIDE;
161 virtual GLSGEN_GLSNURBCURVE_EXPORT
void CalcNormals(
int windingOrder = 1 );
164 virtual GLSGEN_GLSNURBCURVE_EXPORT
void SetVertices(
unsigned int nPoints,
Vertex* vertices ) DISTI_METHOD_OVERRIDE;
167 virtual GLSGEN_GLSNURBCURVE_EXPORT
void VaListSetVertices(
unsigned int nPoints, va_list args ) DISTI_METHOD_OVERRIDE;
170 using BaseClass::
Scale;
173 GLSGEN_GLSNURBCURVE_EXPORT
void Scale(
float px,
float py,
float pz,
Vertex* a,
int handleBar ) DISTI_METHOD_OVERRIDE;
182 virtual GLSGEN_GLSNURBCURVE_EXPORT
void Rotate( const
Vector& orig,
float angle, const
Vector& axis ) DISTI_METHOD_OVERRIDE;
185 virtual GLSGEN_GLSNURBCURVE_EXPORT
void GetExtents(
float& x,
float& y,
float& z,
float& x1,
float& y1,
float& z1 ) DISTI_METHOD_OVERRIDE;
191 virtual GLSGEN_GLSNURBCURVE_EXPORT
bool Hit(
float x,
float y,
float z,
float scale, const
Vector& directionVector,
Vector* collisionPoint ) DISTI_METHOD_OVERRIDE;
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[] ) DISTI_METHOD_OVERRIDE;
205 virtual GLSGEN_GLSNURBCURVE_EXPORT
void SetFillColor( const
GlsColor& color ) DISTI_METHOD_OVERRIDE;
211 GLSGEN_GLSNURBCURVE_EXPORT
void GenerateSpline(
212 unsigned int num_vertices,
214 unsigned int* curve_array_size,
virtual DisplayObject * CloneObject(bool generateNames=false) DISTI_METHOD_OVERRIDE
const int MIN_NUMBER_POINTS
Definition: gls_nurb_curve.h:70
void GenerateTessellatedVertices(void)
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler) DISTI_METHOD_OVERRIDE
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
virtual void GetTransformedExtents(Vector &min, Vector &max, const GlsMatrixType &matrix, bool resetMinMax=true) DISTI_METHOD_OVERRIDE
Definition: dynamic_array.h:66
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:473
virtual void SetFillColor(const GlsColor &color) DISTI_METHOD_OVERRIDE
virtual void SetAvailableAttributes(unsigned int availableAttributes) DISTI_METHOD_OVERRIDE
virtual void VaListSetVertices(unsigned int nPoints, va_list args) DISTI_METHOD_OVERRIDE
The disti::GLPolygon class. Implements Polygons.
The disti::DisplayObject class and global enumerations.
Vertex * TessVertices()
Definition: gls_nurb_curve.h:145
virtual void CopyGeometry(DisplayObject *src) DISTI_METHOD_OVERRIDE
virtual void CalculateTextureCoordinates(void) DISTI_METHOD_OVERRIDE
virtual void Rotate(const Vector &orig, float angle, const Vector &axis) DISTI_METHOD_OVERRIDE
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL) DISTI_METHOD_OVERRIDE
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) DISTI_METHOD_OVERRIDE
Definition: gls_vertex_array.h:58
Definition: gls_color.h:53
unsigned int NumberOfTessVertices() const
Definition: gls_nurb_curve.h:140
Definition: gls_nurb_curve.h:84
virtual void Draw(void) DISTI_METHOD_OVERRIDE
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.
virtual void SetVertices(unsigned int nPoints, Vertex *vertices) DISTI_METHOD_OVERRIDE
virtual void SetVertexColor(unsigned int index, unsigned char col[]) DISTI_METHOD_OVERRIDE
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array) DISTI_METHOD_OVERRIDE
Definition: bmpimage.h:46
virtual void GetExtents(float &x, float &y, float &z, float &x1, float &y1, float &z1) DISTI_METHOD_OVERRIDE
void Scale(float px, float py, float pz, Vertex *a, int handleBar) DISTI_METHOD_OVERRIDE