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
65#define LIB_BASE_NAME "gls_schematic_poly_line_interconnect"
74 GLS_SCHEMATICPOLYLINEINTERCONNECT_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
75 GLS_SCHEMATICPOLYLINEINTERCONNECT_ORIENTATION,
76 GLS_SCHEMATICPOLYLINEINTERCONNECT_LINE_THICKNESS,
77 GLS_SCHEMATICPOLYLINEINTERCONNECT_ROUNDED_CORNERS,
78 GLS_SCHEMATICPOLYLINEINTERCONNECT_CORNER_RADIUS,
79 GLS_SCHEMATICPOLYLINEINTERCONNECT_FORCE_EXACT_CORNER_RADIUS,
80 GLS_SCHEMATICPOLYLINEINTERCONNECT_CORNER_SEGMENTS,
81 GLS_SCHEMATICPOLYLINEINTERCONNECT_INTERCONNECT_TEXTURE_REPEAT_LENGTH,
82 GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_TEXTURE_INDEX,
83 GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_TEXTURE_REPEAT_LENGTH,
84 GLS_SCHEMATICPOLYLINEINTERCONNECT_SHOW_FLOW,
85 GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_RATE,
86 GLS_SCHEMATICPOLYLINEINTERCONNECT_SHOW_FLOW_BLINK,
87 GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_BLINK_RATE,
88 GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_BLINK_START_COLOR,
89 GLS_SCHEMATICPOLYLINEINTERCONNECT_FLOW_BLINK_END_COLOR,
90 GLS_SCHEMATICPOLYLINEINTERCONNECT_USE_DISPLAY_LIST,
91 GLS_SCHEMATICPOLYLINEINTERCONNECT_LAST_VALUE = GLS_SCHEMATICPOLYLINEINTERCONNECT_USE_DISPLAY_LIST
95class GlsGloFileAttribute;
106 DISTI_DEPRECATED(
"This identifier is forbidden by the C++ standard. Use BaseClass instead." )
109 friend class GlsSchematicPolyLineInterconnectEditor;
383 inline InterconnectVertex(
const float leftX = 0.0f,
const float leftY = 0.0f,
const float rightX = 0.0f,
const float rightY = 0.0f,
384 const float interconnectU = 0.0f,
const float flowU = 0.0f )
483 const bool forceExactCornerRadius,
CornerCircle& c,
bool forceCircle =
false );
502 float curLength,
const float totalLength,
503 const unsigned int numInterconnectRepeats,
const unsigned int numFlowRepeats,
504 const bool lastSegmentInPath =
false );
516 float curLength,
const float totalLength,
517 const unsigned int numInterconnectRepeats,
const unsigned int numFlowRepeats );
Definition: dynamic_array.h:79
The Polygon class. Implements Polygons.
Definition: glpolygon.h:56
Definition: gls_color.h:54
Definition: gls_display_list.h:51
Definition: gls_glo_file.h:1243
Definition: gls_schematic_poly_line_interconnect.h:100
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL) DISTI_METHOD_OVERRIDE
virtual void CalculateTextureCoordinates() DISTI_METHOD_OVERRIDE
virtual void SetFlowTextureIndex(const int flowTextureIndex)
float _endingChamferDistance
Definition: gls_schematic_poly_line_interconnect.h:557
virtual void SetShowFlow(const bool showFlow)
virtual void SetFlowTextureRepeatLength(const float flowTextureRepeatLength)
virtual void SetLineThickness(const float lineThickness)
virtual void SetAvailableAttributes(unsigned int value) DISTI_METHOD_OVERRIDE
virtual GlsColor GetFlowBlinkStartColor()
virtual void SetRoundedCorners(const bool roundedCorners)
virtual bool GetShowFlowBlink()
virtual void Draw() DISTI_METHOD_OVERRIDE
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array) DISTI_METHOD_OVERRIDE
float _flowTextureRepeatLength
Definition: gls_schematic_poly_line_interconnect.h:537
virtual GlsMatrixType GetOrientationMatrix()
GlsDisplayList _interconnectDisplayList
Definition: gls_schematic_poly_line_interconnect.h:553
virtual float AddInterconnectRoundedCorner(InterconnectVertexArray &interconnectVerts, const CornerCircle &c, float lineThickness, float curLength, const float totalLength, const unsigned int numInterconnectRepeats, const unsigned int numFlowRepeats)
bool _roundedCorners
Definition: gls_schematic_poly_line_interconnect.h:527
virtual void EmitPreviewPathGeometry()
virtual bool GetRoundedCorners()
virtual void SetFlowRate(const float flowRate)
GlsColor _flowBlinkStartColor
Definition: gls_schematic_poly_line_interconnect.h:544
virtual void OrientationChanged()
InterconnectVertexArray _interconnectVerts
Definition: gls_schematic_poly_line_interconnect.h:549
bool _forceExactCornerRadius
Definition: gls_schematic_poly_line_interconnect.h:529
virtual DisplayObject * CloneObject(bool generateNames=false) DISTI_METHOD_OVERRIDE
virtual void SetOrientationVectors(const Vector &iVector, const Vector &jVector)
bool _needsRebuild
Definition: gls_schematic_poly_line_interconnect.h:547
virtual void SetInterconnectTextureIndex(const int interconnectTextureIndex)
virtual bool GetUseDisplayList()
virtual void SetCornerRadius(const float cornerRadius)
GlsDisplayList _flowDisplayList
Definition: gls_schematic_poly_line_interconnect.h:554
CornerCircleArray _previewCornerCircles
Definition: gls_schematic_poly_line_interconnect.h:561
DynamicArray< CornerCircle > CornerCircleArray
Definition: gls_schematic_poly_line_interconnect.h:414
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) DISTI_METHOD_OVERRIDE
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler) DISTI_METHOD_OVERRIDE
virtual void SetEndingChamferDistance(const float endingChamferDistance)
virtual void SetUseDisplayList(const bool useDisplayList)
virtual void EmitInterconnectGeometry(const bool drawFlowUVs)
float _interconnectTextureRepeatLength
Definition: gls_schematic_poly_line_interconnect.h:533
float _flowBlinkRate
Definition: gls_schematic_poly_line_interconnect.h:543
float _cornerRadius
Definition: gls_schematic_poly_line_interconnect.h:528
virtual DisplayObject * handle(DisplayEvent *ev) DISTI_METHOD_OVERRIDE
virtual float GetFlowRate()
virtual Vertex WorldVertex(unsigned int i) DISTI_METHOD_OVERRIDE
virtual float GetFlowBlinkRate()
virtual void SetFlowBlinkEndColor(const GlsColor &endColor)
virtual void SetValue(int spec, va_list &args) DISTI_METHOD_OVERRIDE
void DeleteVertexAt(unsigned int index) DISTI_METHOD_OVERRIDE
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)
virtual int GetFlowTextureIndex()
virtual void SetRebuild()
virtual void SetFlowBlinkRate(const float flowBlinkRate)
Vector _orientation[2]
Definition: gls_schematic_poly_line_interconnect.h:525
virtual void Rotate(const Vector &orig, float angle, const Vector &axis) DISTI_METHOD_OVERRIDE
virtual int GetInterconnectTextureIndex()
float _lineThickness
Definition: gls_schematic_poly_line_interconnect.h:526
virtual void EnablePreviewPath(const bool enablePreviewPath)
virtual void SetFlowBlinkStartColor(const GlsColor &startColor)
virtual float GetInterconnectTextureRepeatLength()
bool _showFlowBlink
Definition: gls_schematic_poly_line_interconnect.h:542
virtual void Calculate(double time) DISTI_METHOD_OVERRIDE
static DisplayObject * CreateInstance()
virtual void CopyGeometry(DisplayObject *src) DISTI_METHOD_OVERRIDE
virtual void SetVertices(unsigned int nPoints, Vertex *vertices) DISTI_METHOD_OVERRIDE
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 void SetShowFlowBlink(const bool showFlowBlink)
DynamicArray< InterconnectVertex > InterconnectVertexArray
Definition: gls_schematic_poly_line_interconnect.h:395
virtual unsigned int GetCornerSegments()
virtual float GetLineThickness()
virtual void SetInterconnectTextureRepeatLength(const float interconnectTextureRepeatLength)
float _flowRate
Definition: gls_schematic_poly_line_interconnect.h:541
virtual void CopyProperties(DisplayObject *src) DISTI_METHOD_OVERRIDE
virtual VectorArray GetUniqueVerts(const unsigned int numVertices, Vertex *vertices)
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar=0) DISTI_METHOD_OVERRIDE
virtual float GetFlowTextureRepeatLength()
bool _useDisplayList
Definition: gls_schematic_poly_line_interconnect.h:552
double _lastCalculateTime
Definition: gls_schematic_poly_line_interconnect.h:548
virtual float ComputePathLength(CornerCircleArray &cornerCircles)
virtual void GetExtents(float &x, float &y, float &z, float &x1, float &y1, float &z1) DISTI_METHOD_OVERRIDE
virtual bool GetShowFlow()
virtual void GetOrientationVectors(Vector &iVector, Vector &jVector)
VectorArray _previewPathPoints
Definition: gls_schematic_poly_line_interconnect.h:560
virtual void SetCornerSegments(const unsigned int cornerSegments)
GlsColor _flowBlinkEndColor
Definition: gls_schematic_poly_line_interconnect.h:545
virtual float GetEndingChamferDistance()
bool _drawPreviewPath
Definition: gls_schematic_poly_line_interconnect.h:559
int _flowTextureIndex
Definition: gls_schematic_poly_line_interconnect.h:536
virtual void VerticesChanged()
unsigned int _cornerSegments
Definition: gls_schematic_poly_line_interconnect.h:532
virtual float GetCornerRadius()
virtual void SetForceExactCornerRadius(const bool forceExactCornerRadius)
bool _showFlow
Definition: gls_schematic_poly_line_interconnect.h:540
DynamicArray< Vector > VectorArray
Definition: gls_schematic_poly_line_interconnect.h:417
virtual bool GetForceExactCornerRadius()
virtual GlsColor GetFlowBlinkEndColor()
void InsertVertexAt(unsigned int index) DISTI_METHOD_OVERRIDE
Definition: gls_triangle_storage.h:58
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:544
The disti::GLPolygon class. Implements Polygons.
Macros and helper code to determine what subset of C++11/14/17 is available.
#define DISTI_SPECIAL_MEM_FUN_DELETE
Macro to wrap function deletion, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:235
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:457
#define DISTI_METHOD_OVERRIDE
Macro to wrap the override keyword, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:214
The disti::GlsDisplayList class.
#define GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
Provides support for creating DLLs.
Definition: gls_schematic_poly_line_interconnect.h:60
The disti::GlsTriangleStrip2D class.
Force inclusion of the DirectShow library.
Definition: bmpimage.h:47
Definition: gls_schematic_poly_line_interconnect.h:399
float _radius
Radius of circle making round corner.
Definition: gls_schematic_poly_line_interconnect.h:405
bool _isRounded
True if the corner is to be rounded.
Definition: gls_schematic_poly_line_interconnect.h:403
Vector _v0
Corner flows from _v0, _v1, _v2.
Definition: gls_schematic_poly_line_interconnect.h:400
Vector _tangent_v1_v2
Tangent point of corner circle on v1, v2.
Definition: gls_schematic_poly_line_interconnect.h:410
bool _isLeftTurn
True if corners is a left turn else false.
Definition: gls_schematic_poly_line_interconnect.h:408
Vector _v1
Corner flows from _v0, _v1, _v2.
Definition: gls_schematic_poly_line_interconnect.h:401
Vector _v2
Corner flows from _v0, _v1, _v2.
Definition: gls_schematic_poly_line_interconnect.h:402
Vector _tangent_v0_v1
Tangent point of corner circle on v0, v1.
Definition: gls_schematic_poly_line_interconnect.h:409
double _startTheta
Starting theta for arc in circle making round corner.
Definition: gls_schematic_poly_line_interconnect.h:406
Vector _center
Center of circle making round corner.
Definition: gls_schematic_poly_line_interconnect.h:404
double _endTheta
Ending theta for arc in circle making round corner.
Definition: gls_schematic_poly_line_interconnect.h:407
Definition: gls_schematic_poly_line_interconnect.h:367
float _leftY
Left side Y coord in 2D plane.
Definition: gls_schematic_poly_line_interconnect.h:369
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:383
float _leftX
Left side X coord in 2D plane.
Definition: gls_schematic_poly_line_interconnect.h:368
float _rightY
Right side Y coord in 2D plane.
Definition: gls_schematic_poly_line_interconnect.h:371
float _rightX
Right side X coord in 2D plane.
Definition: gls_schematic_poly_line_interconnect.h:370
float _flowU
Corresponding U texture coord for flow texture.
Definition: gls_schematic_poly_line_interconnect.h:374
float _interconnectU
Corresponding U texture coord for interconnect texture.
Definition: gls_schematic_poly_line_interconnect.h:373