1 #ifndef _GLSSCHEMATICPOLYLINEINTERCONNECT_H 
    2 #define _GLSSCHEMATICPOLYLINEINTERCONNECT_H 
   52 #if( defined( GLSGEN_EXPORT_GLSSCHEMATICPOLYLINEINTERCONNECT ) || defined( GLSGEN_IMPORT_GLSSCHEMATICPOLYLINEINTERCONNECT ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \ 
   53     && defined( _MSC_VER ) 
   54 #    if defined( GLSGEN_EXPORT_GLSSCHEMATICPOLYLINEINTERCONNECT ) || defined( GLS_EXPORT_GENERATED ) 
   55 #        define GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT __declspec( dllexport ) 
   57 #        define GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT __declspec( dllimport ) 
   60 #    define GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
   64 #define LIB_BASE_NAME "gls_schematic_poly_line_interconnect" 
   73     GLS_SCHEMATICPOLYLINEINTERCONNECT_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
 
   74     GLS_SCHEMATICPOLYLINEINTERCONNECT_ORIENTATION,
 
   75     GLS_SCHEMATICPOLYLINEINTERCONNECT_LINE_THICKNESS,
 
   76     GLS_SCHEMATICPOLYLINEINTERCONNECT_ROUNDED_CORNERS,
 
   77     GLS_SCHEMATICPOLYLINEINTERCONNECT_CORNER_RADIUS,
 
   78     GLS_SCHEMATICPOLYLINEINTERCONNECT_FORCE_EXACT_CORNER_RADIUS,
 
   79     GLS_SCHEMATICPOLYLINEINTERCONNECT_CORNER_SEGMENTS,
 
   80     GLS_SCHEMATICPOLYLINEINTERCONNECT_INTERCONNECT_TEXTURE_REPEAT_LENGTH,
 
   81     GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_TEXTURE_INDEX,
 
   82     GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_TEXTURE_REPEAT_LENGTH,
 
   83     GLS_SCHEMATICPOLYLINEINTERCONNECT_SHOW_FLOW,
 
   84     GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_RATE,
 
   85     GLS_SCHEMATICPOLYLINEINTERCONNECT_SHOW_FLOW_BLINK,
 
   86     GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_BLINK_RATE,
 
   87     GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_BLINK_START_COLOR,
 
   88     GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_BLINK_END_COLOR,
 
   89     GLS_SCHEMATICPOLYLINEINTERCONNECT_USE_DISPLAY_LIST,
 
   90     GLS_SCHEMATICPOLYLINEINTERCONNECT_LAST_VALUE = GLS_SCHEMATICPOLYLINEINTERCONNECT_USE_DISPLAY_LIST
 
   94 class GlsGloFileAttribute;
 
  105     DISTI_DEPRECATED( 
"This identifier is forbidden by the C++ standard. Use BaseClass instead." )
 
  108     friend class GlsSchematicPolyLineInterconnectEditor;
 
  118     static GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
DisplayObject* CreateInstance();
 
  134     virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
void Calculate( 
double time );
 
  136     virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
void Draw( 
void );
 
  142     virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
void SetValue( 
int spec, va_list& args );
 
  144     virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
void Scale( 
float px, 
float py, 
float pz, 
Vertex* anchor, 
int handleBar = 0 );
 
  146     virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
void GetExtents( 
float& x, 
float& y, 
float& z, 
float& x1, 
float& y1, 
float& z1 );
 
  148     virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
bool Hit( 
float x, 
float y, 
float z, 
float scale, 
const Vector& directionVector, 
Vector* collisionPoint );
 
  150     virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
void Rotate( 
const Vector& orig, 
float angle, 
const Vector& axis );
 
  152     virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
Vertex WorldVertex( 
unsigned int i );
 
  154     virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
void SetVertices( 
unsigned int nPoints, 
Vertex* vertices );
 
  156     GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
void DeleteVertexAt( 
unsigned int index ) DISTI_METHOD_OVERRIDE;
 
  157     GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
void InsertVertexAt( 
unsigned int index ) DISTI_METHOD_OVERRIDE;
 
  180     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetLineThickness( 
const float lineThickness );
 
  185     virtual float GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
GetLineThickness( 
void );
 
  190     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetRoundedCorners( 
const bool roundedCorners );
 
  195     virtual bool GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
GetRoundedCorners( 
void );
 
  201     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetCornerRadius( 
const float cornerRadius );
 
  206     virtual float GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
GetCornerRadius( 
void );
 
  213     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetForceExactCornerRadius( 
const bool forceExactCornerRadius );
 
  224     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetCornerSegments( 
const unsigned int cornerSegments );
 
  229     virtual unsigned int GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
GetCornerSegments( 
void );
 
  257     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetFlowTextureIndex( 
const int flowTextureIndex );
 
  270     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetFlowTextureRepeatLength( 
const float flowTextureRepeatLength );
 
  280     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetShowFlow( 
const bool showFlow );
 
  285     virtual bool GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
GetShowFlow( 
void );
 
  290     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetFlowRate( 
const float flowRate );
 
  295     virtual float GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
GetFlowRate( 
void );
 
  300     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetShowFlowBlink( 
const bool showFlowBlink );
 
  305     virtual bool GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
GetShowFlowBlink( 
void );
 
  310     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetFlowBlinkRate( 
const float flowBlinkRate );
 
  315     virtual float GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
GetFlowBlinkRate( 
void );
 
  341     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetUseDisplayList( 
const bool useDisplayList );
 
  346     virtual bool GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
GetUseDisplayList( 
void );
 
  353     virtual void GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
SetEndingChamferDistance( 
const float endingChamferDistance );
 
  370         inline InterconnectVertex( 
const float leftX = 0.0f, 
const float leftY = 0.0f, 
const float rightX = 0.0f, 
const float rightY = 0.0f,
 
  371             const float interconnectU = 0.0f, 
const float flowU = 0.0f )
 
  376             , _interconnectU( interconnectU )
 
  426     virtual void BakeInterconnectGeometry( 
const bool drawFlowUVs );
 
  467         const bool forceExactCornerRadius, 
CornerCircle& c, 
bool forceCircle = 
false );
 
  486         float curLength, 
const float totalLength,
 
  487         const unsigned int numInterconnectRepeats, 
const unsigned int numFlowRepeats,
 
  488         const bool lastSegmentInPath = 
false );
 
  500         float curLength, 
const float totalLength,
 
  501         const unsigned int numInterconnectRepeats, 
const unsigned int numFlowRepeats );
 
  506     virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT 
void SetFromGloData( 
GlsGloFileAttribute& data );
 
virtual bool GetShowFlowBlink(void)
virtual void SetInterconnectTextureIndex(const int interconnectTextureIndex)
Definition: gls_triangle_storage.h:56
DynamicArray< InterconnectVertex > InterconnectVertexArray
Definition: gls_schematic_poly_line_interconnect.h:382
float _flowTextureRepeatLength
Definition: gls_schematic_poly_line_interconnect.h:521
virtual void SetCornerSegments(const unsigned int cornerSegments)
virtual void GetExtents(float &x, float &y, float &z, float &x1, float &y1, float &z1)
GlsColor _flowBlinkEndColor
Definition: gls_schematic_poly_line_interconnect.h:529
Vector _orientation[2]
Definition: gls_schematic_poly_line_interconnect.h:509
DynamicArray< CornerCircle > CornerCircleArray
Definition: gls_schematic_poly_line_interconnect.h:398
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute. 
Definition: gls_cpp_lang_support.h:436
bool _isRounded
Definition: gls_schematic_poly_line_interconnect.h:388
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
virtual void SetCornerRadius(const float cornerRadius)
virtual DisplayObject * handle(DisplayEvent *ev)
virtual void SetRebuild(void)
bool _isLeftTurn
Definition: gls_schematic_poly_line_interconnect.h:392
bool _showFlowBlink
Definition: gls_schematic_poly_line_interconnect.h:526
Definition: dynamic_array.h:66
float _interconnectU
Definition: gls_schematic_poly_line_interconnect.h:366
Class to contain current OpenGL view, projection and draw matrices. 
Definition: util.h:296
virtual VectorArray GetUniqueVerts(const unsigned int numVertices, Vertex *vertices)
virtual void SetValue(int spec, va_list &args)
virtual void SetFlowBlinkEndColor(const GlsColor &endColor)
virtual void Rotate(const Vector &orig, float angle, const Vector &axis)
The Polygon class. Implements Polygons. 
Definition: glpolygon.h:55
virtual float ComputePathLength(CornerCircleArray &cornerCircles)
bool _needsRebuild
Definition: gls_schematic_poly_line_interconnect.h:531
Vector _tangent_v0_v1
Definition: gls_schematic_poly_line_interconnect.h:393
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
GlsColor _flowBlinkStartColor
Definition: gls_schematic_poly_line_interconnect.h:528
virtual void SetInterconnectTextureRepeatLength(const float interconnectTextureRepeatLength)
float _flowU
Definition: gls_schematic_poly_line_interconnect.h:367
GlsDisplayList _flowDisplayList
Definition: gls_schematic_poly_line_interconnect.h:538
bool _drawPreviewPath
Definition: gls_schematic_poly_line_interconnect.h:543
virtual int GetInterconnectTextureIndex(void)
virtual GlsColor GetFlowBlinkEndColor(void)
The disti::GLPolygon class. Implements Polygons. 
virtual float GetFlowTextureRepeatLength(void)
virtual void SetRoundedCorners(const bool roundedCorners)
float _endingChamferDistance
Definition: gls_schematic_poly_line_interconnect.h:541
bool _roundedCorners
Definition: gls_schematic_poly_line_interconnect.h:511
virtual float GetFlowRate(void)
virtual void EnablePreviewPath(const bool enablePreviewPath)
DynamicArray< Vector > VectorArray
Definition: gls_schematic_poly_line_interconnect.h:401
InterconnectVertexArray _interconnectVerts
Definition: gls_schematic_poly_line_interconnect.h:533
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
Definition: gls_display_list.h:50
int _flowTextureIndex
Definition: gls_schematic_poly_line_interconnect.h:520
virtual unsigned int GetCornerSegments(void)
Definition: gls_glo_file.h:982
virtual float AddInterconnectRoundedCorner(InterconnectVertexArray &interconnectVerts, const CornerCircle &c, float lineThickness, float curLength, const float totalLength, const unsigned int numInterconnectRepeats, const unsigned int numFlowRepeats)
virtual int GetFlowTextureIndex(void)
virtual bool GetRoundedCorners(void)
virtual float AddInterconnectLineSegment(InterconnectVertexArray &interconnectVerts, const Vector &start, const Vector &finish, float lineThickness, float curLength, const float totalLength, const unsigned int numInterconnectRepeats, const unsigned int numFlowRepeats, const bool lastSegmentInPath=false)
float _rightY
Definition: gls_schematic_poly_line_interconnect.h:365
virtual void SetFlowBlinkStartColor(const GlsColor &startColor)
virtual void GetOrientationVectors(Vector &iVector, Vector &jVector)
virtual void SetFlowTextureIndex(const int flowTextureIndex)
bool _useDisplayList
Definition: gls_schematic_poly_line_interconnect.h:536
void DeleteVertexAt(unsigned int index) DISTI_METHOD_OVERRIDE
virtual void SetFlowTextureRepeatLength(const float flowTextureRepeatLength)
GlsDisplayList _interconnectDisplayList
Definition: gls_schematic_poly_line_interconnect.h:537
float _radius
Definition: gls_schematic_poly_line_interconnect.h:390
virtual void CopyProperties(DisplayObject *src)
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar=0)
virtual void EmitPreviewPathGeometry(void)
InterconnectVertex(const float leftX=0.0f, const float leftY=0.0f, const float rightX=0.0f, const float rightY=0.0f, const float interconnectU=0.0f, const float flowU=0.0f)
Definition: gls_schematic_poly_line_interconnect.h:370
virtual void CalculateTextureCoordinates(void)
virtual void SetForceExactCornerRadius(const bool forceExactCornerRadius)
virtual void Calculate(double time)
virtual void SetFlowRate(const float flowRate)
float _leftY
Definition: gls_schematic_poly_line_interconnect.h:364
Vector _v2
Definition: gls_schematic_poly_line_interconnect.h:387
virtual GlsMatrixType GetOrientationMatrix(void)
void InsertVertexAt(unsigned int index) DISTI_METHOD_OVERRIDE
virtual void CopyGeometry(DisplayObject *src)
Definition: gls_color.h:53
CornerCircleArray _previewCornerCircles
Definition: gls_schematic_poly_line_interconnect.h:545
float _lineThickness
Definition: gls_schematic_poly_line_interconnect.h:510
virtual bool GetShowFlow(void)
The disti::GlsTriangleStrip2D class. 
virtual GlsColor GetFlowBlinkStartColor(void)
virtual void SetUseDisplayList(const bool useDisplayList)
virtual float GetCornerRadius(void)
virtual bool FindCornerCircle(const Vector &v0, const Vector &v1, const Vector &v2, const float desiredCornerRadius, const float minRadius, const bool forceExactCornerRadius, CornerCircle &c, bool forceCircle=false)
virtual float GetInterconnectTextureRepeatLength(void)
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
Definition: gls_schematic_poly_line_interconnect.h:98
virtual void Rebuild(void)
Vector _tangent_v1_v2
Definition: gls_schematic_poly_line_interconnect.h:394
Definition: gls_schematic_poly_line_interconnect.h:385
virtual ~GlsSchematicPolyLineInterconnect()
VectorArray _previewPathPoints
Definition: gls_schematic_poly_line_interconnect.h:544
double _lastCalculateTime
Definition: gls_schematic_poly_line_interconnect.h:532
float _cornerRadius
Definition: gls_schematic_poly_line_interconnect.h:512
Vector _center
Definition: gls_schematic_poly_line_interconnect.h:389
virtual void SetOrientationVectors(const Vector &iVector, const Vector &jVector)
virtual bool GetUseDisplayList(void)
virtual float GetLineThickness(void)
virtual void SetVertices(unsigned int nPoints, Vertex *vertices)
float _interconnectTextureRepeatLength
Definition: gls_schematic_poly_line_interconnect.h:517
virtual void SetShowFlowBlink(const bool showFlowBlink)
virtual bool GetForceExactCornerRadius(void)
virtual void SetEndingChamferDistance(const float endingChamferDistance)
float _flowRate
Definition: gls_schematic_poly_line_interconnect.h:525
virtual void SetAvailableAttributes(unsigned int value)
virtual DisplayObject * CloneObject(bool generateNames=false)
Macros and helper code to determine what subset of C++11/14/17 is available. 
virtual Vertex WorldVertex(unsigned int i)
float _flowBlinkRate
Definition: gls_schematic_poly_line_interconnect.h:527
double _endTheta
Definition: gls_schematic_poly_line_interconnect.h:391
virtual void SetShowFlow(const bool showFlow)
virtual float GetFlowBlinkRate(void)
virtual void SetFlowBlinkRate(const float flowBlinkRate)
Definition: bmpimage.h:46
unsigned int _cornerSegments
Definition: gls_schematic_poly_line_interconnect.h:516
virtual void EmitInterconnectGeometry(const bool drawFlowUVs)
virtual void VerticesChanged(void)
The disti::GlsDisplayList class. 
bool _forceExactCornerRadius
Definition: gls_schematic_poly_line_interconnect.h:513
virtual float GetEndingChamferDistance(void)
Definition: gls_schematic_poly_line_interconnect.h:362
bool _showFlow
Definition: gls_schematic_poly_line_interconnect.h:524
virtual void OrientationChanged(void)
virtual void SetLineThickness(const float lineThickness)
GlsSchematicPolyLineInterconnect(void)