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();
124 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
void SetAvailableAttributes(
unsigned int value ) DISTI_METHOD_OVERRIDE;
125 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
DisplayObject*
CloneObject(
bool generateNames =
false ) DISTI_METHOD_OVERRIDE;
134 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
void Calculate(
double time ) DISTI_METHOD_OVERRIDE;
135 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
void PreDraw(
const OpenGLMatrices& parentMatrices,
Culler& culler ) DISTI_METHOD_OVERRIDE;
136 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
void Draw(
void ) DISTI_METHOD_OVERRIDE;
142 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
void SetValue(
int spec, va_list& args ) DISTI_METHOD_OVERRIDE;
144 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
void Scale(
float px,
float py,
float pz,
Vertex* anchor,
int handleBar = 0 ) DISTI_METHOD_OVERRIDE;
146 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
void GetExtents(
float& x,
float& y,
float& z,
float& x1,
float& y1,
float& z1 ) DISTI_METHOD_OVERRIDE;
148 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
bool Hit(
float x,
float y,
float z,
float scale,
const Vector& directionVector,
Vector* collisionPoint ) DISTI_METHOD_OVERRIDE;
150 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
void Rotate(
const Vector& orig,
float angle,
const Vector& axis ) DISTI_METHOD_OVERRIDE;
152 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
Vertex WorldVertex(
unsigned int i ) DISTI_METHOD_OVERRIDE;
154 virtual GLSGEN_GLSSCHEMATICPOLYLINEINTERCONNECT_EXPORT
void SetVertices(
unsigned int nPoints,
Vertex* vertices ) DISTI_METHOD_OVERRIDE;
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 ) DISTI_METHOD_OVERRIDE;
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
virtual void SetValue(int spec, va_list &args) DISTI_METHOD_OVERRIDE
virtual void Draw(void) DISTI_METHOD_OVERRIDE
virtual void Rotate(const Vector &orig, float angle, const Vector &axis) DISTI_METHOD_OVERRIDE
float _flowTextureRepeatLength
Definition: gls_schematic_poly_line_interconnect.h:521
virtual void SetCornerSegments(const unsigned int cornerSegments)
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 void SetCornerRadius(const float cornerRadius)
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
virtual void Calculate(double time) DISTI_METHOD_OVERRIDE
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:471
virtual VectorArray GetUniqueVerts(const unsigned int numVertices, Vertex *vertices)
virtual void SetFlowBlinkEndColor(const GlsColor &endColor)
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
GlsColor _flowBlinkStartColor
Definition: gls_schematic_poly_line_interconnect.h:528
virtual void SetInterconnectTextureRepeatLength(const float interconnectTextureRepeatLength)
virtual DisplayObject * handle(DisplayEvent *ev) DISTI_METHOD_OVERRIDE
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 void GetCppInterfaceDescriptionFree(InterfaceListType *array) DISTI_METHOD_OVERRIDE
virtual int GetInterconnectTextureIndex(void)
virtual GlsColor GetFlowBlinkEndColor(void)
The disti::GLPolygon class. Implements Polygons.
virtual float GetFlowTextureRepeatLength(void)
virtual void SetRoundedCorners(const bool roundedCorners)
virtual void CopyGeometry(DisplayObject *src) DISTI_METHOD_OVERRIDE
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
virtual void GetExtents(float &x, float &y, float &z, float &x1, float &y1, float &z1) DISTI_METHOD_OVERRIDE
InterconnectVertexArray _interconnectVerts
Definition: gls_schematic_poly_line_interconnect.h:533
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:988
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 InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL) 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 void SetVertices(unsigned int nPoints, Vertex *vertices) DISTI_METHOD_OVERRIDE
float _rightY
Definition: gls_schematic_poly_line_interconnect.h:365
virtual void CopyProperties(DisplayObject *src) DISTI_METHOD_OVERRIDE
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) DISTI_METHOD_OVERRIDE
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 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 SetForceExactCornerRadius(const bool forceExactCornerRadius)
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
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)
virtual DisplayObject * CloneObject(bool generateNames=false) DISTI_METHOD_OVERRIDE
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)
Definition: gls_schematic_poly_line_interconnect.h:98
virtual void Rebuild(void)
virtual Vertex WorldVertex(unsigned int i) DISTI_METHOD_OVERRIDE
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
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler) DISTI_METHOD_OVERRIDE
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 void SetAvailableAttributes(unsigned int value) DISTI_METHOD_OVERRIDE
virtual bool GetUseDisplayList(void)
virtual float GetLineThickness(void)
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar=0) DISTI_METHOD_OVERRIDE
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
Macros and helper code to determine what subset of C++11/14/17 is available.
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)
virtual void CalculateTextureCoordinates(void) DISTI_METHOD_OVERRIDE
GlsSchematicPolyLineInterconnect(void)