40 #ifndef INCLUDED_GLS_POLYLINE_H 
   41 #define INCLUDED_GLS_POLYLINE_H 
   52 #if( defined( GLSGEN_EXPORT_GLSPOLYLINE ) || defined( GLSGEN_IMPORT_GLSPOLYLINE ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \ 
   53     && defined( _MSC_VER ) 
   54 #    if defined( GLSGEN_EXPORT_GLSPOLYLINE ) || defined( GLS_EXPORT_GENERATED ) 
   55 #        define GLSGEN_GLSPOLYLINE_EXPORT __declspec( dllexport ) 
   57 #        define GLSGEN_GLSPOLYLINE_EXPORT __declspec( dllimport ) 
   60 #    define GLSGEN_GLSPOLYLINE_EXPORT 
   64 #define LIB_BASE_NAME "gls_poly_line" 
   73     GLS_POLY_LINE_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
 
   74     GLS_POLY_LINE_THICKNESS,
 
   76     GLS_POLY_LINE_HALO_COLOR,
 
   77     GLS_POLY_LINE_HALO_THICKNESS,
 
   79     GLS_POLY_LINE_LAST_INITIALIZER = GLS_POLY_LINE_NORMAL
 
   97     friend class GlsPolyLineEditor;
 
  110     GLSGEN_GLSPOLYLINE_EXPORT 
GlsPolyLine( 
const GlsPolyLine& that, 
const bool generateNames );
 
  115     static GLSGEN_GLSPOLYLINE_EXPORT 
DisplayObject* CreateInstance();
 
  119     virtual GLSGEN_GLSPOLYLINE_EXPORT 
void GetExtents( 
float& minx, 
float& miny, 
float& minz, 
float& maxx, 
float& maxy, 
float& maxz );
 
  134     virtual GLSGEN_GLSPOLYLINE_EXPORT 
void Draw( 
void );
 
  139     virtual GLSGEN_GLSPOLYLINE_EXPORT 
void Scale( 
float px, 
float py, 
float pz, 
Vertex* anchor, 
int handleBar );
 
  144     virtual GLSGEN_GLSPOLYLINE_EXPORT 
void Rotate( 
const Vector& orig, 
float angle, 
const Vector& axis );
 
  146     virtual GLSGEN_GLSPOLYLINE_EXPORT 
bool Hit( 
float x, 
float y, 
float z, 
float scale, 
const Vector& directionVector, 
Vector* collisionPoint );
 
  148     virtual GLSGEN_GLSPOLYLINE_EXPORT 
void SetValue( 
int spec, va_list& args );
 
  159     virtual GLSGEN_GLSPOLYLINE_EXPORT 
void PolygonEnd( 
const int end );
 
  168     GLSGEN_GLSPOLYLINE_EXPORT 
void Thickness( 
const float& val );
 
  173     GLSGEN_GLSPOLYLINE_EXPORT 
float Thickness( 
void ) { 
return _thickness; }
 
  179     GLSGEN_GLSPOLYLINE_EXPORT 
void Halo( 
const bool& val );
 
  182     GLSGEN_GLSPOLYLINE_EXPORT 
bool Halo( 
void ) { 
return _halo; }
 
  193     GLSGEN_GLSPOLYLINE_EXPORT 
void HaloThickness( 
const float& val );
 
  200         return _haloThickness;
 
  201         _needsRecalculate = 
true;
 
  210     virtual GLSGEN_GLSPOLYLINE_EXPORT 
void SetVertices( 
unsigned int nPoints, 
Vertex* vertices );
 
  213     virtual GLSGEN_GLSPOLYLINE_EXPORT 
void DeleteVertex( 
unsigned int index );
 
  228     GlsPolyLineTriangleList _triangles;
 
  234     float                   _haloThickness;
 
  235     GlsPolyLineTriangleList _haloTriangles;
 
  237     bool _needsRecalculate;
 
  239     unsigned int _endCapIndex;
 
  252     void ComputeSegments( GlsPolyLineTriangleList& array, 
float thickness, 
bool calculatingHalos = 
false );
 
  254     void ComputeCorner( GlsPolyLineTriangleList& array, 
float thickness, 
float cornerRadius, 
const Vector& refVert, 
const Vector& v1, 
const Vector& v2, 
const Vector& v3, 
const Vector& v4, 
const Vector& l1, 
const Vector& l2, 
bool calculatingHalos = 
false );
 
  256     void DrawTriangles( GlsPolyLineTriangleList& array );
 
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
void ComputeSegments(void)
Definition: gls_poly_line.h:82
GlsColor HaloColor(void)
Definition: gls_poly_line.h:188
The disti::DynamicArray class. A templated array of objects capable of dynamically growing...
Class to contain current OpenGL view, projection and draw matrices. 
Definition: util.h:301
Vector texCoord
Definition: gls_poly_line.h:85
virtual void GetExtents(float &minx, float &miny, float &minz, float &maxx, float &maxy, float &maxz)
virtual void SetRecalculate(void)
The Polygon class. Implements Polygons. 
Definition: glpolygon.h:55
virtual void SetVertices(unsigned int nPoints, Vertex *vertices)
virtual void SetFillColor(const GlsColor &color)
Vector GlobalNormal(void)
Definition: gls_poly_line.h:176
The disti::GLPolygon class. Implements Polygons. 
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
virtual void SetValue(int spec, va_list &args)
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar)
Definition: gls_poly_line.h:95
virtual void SetAvailableAttributes(unsigned int value)
Definition: gls_glo_file.h:982
void ComputeCorner(GlsPolyLineTriangleList &array, float thickness, float cornerRadius, const Vector &refVert, const Vector &v1, const Vector &v2, const Vector &v3, const Vector &v4, const Vector &l1, const Vector &l2, bool calculatingHalos=false)
virtual void CopyProperties(DisplayObject *src)
virtual void SetColor(const GlsColor &color)
Vector vertex
Definition: gls_poly_line.h:84
float HaloThickness(void)
Definition: gls_poly_line.h:198
Definition: gls_poly_line.h:89
T * end(DynamicArray< T, TypeIsSimple > &array)
Overload end() so that range-for loops and other constructs work with DynamicArray. 
Definition: dynamic_array.h:450
Definition: gls_vertex_array.h:58
Definition: gls_color.h:53
virtual void Rotate(float angle, int axis=Z_AXIS)
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
virtual void DeleteVertex(unsigned int index)
void Scale(int handleBar, float px, float py, Vertex *anchor=NULL)
Definition: display.h:1112
virtual void SetColor(const GlsColor &color)
virtual void Rotate(const Vector &orig, float angle, const Vector &axis)
An object for managing vertices, texture coordinates, colors and normals for GLPolygon and other disp...
bool Halo(void)
Definition: gls_poly_line.h:182
void VerticesChanged(void)
Macros and helper code to determine what subset of C++11/14/17 is available. 
float Thickness(void)
Definition: gls_poly_line.h:173
Definition: bmpimage.h:46
void SetFillColor(unsigned char r, unsigned char g, unsigned char b, unsigned char a)
Definition: display.h:664
virtual int PolygonEnd(void)
virtual void CopyGeometry(DisplayObject *srcArg)
virtual DisplayObject * CloneObject(bool generateNames=false)
Vector normal
Definition: gls_poly_line.h:86
The disti::GLTriMesh class. Implements Triangle Meshes.