GL Studio C++ Runtime API
gls_schematic_tee_interconnect.h
Go to the documentation of this file.
1#ifndef _GLSSCHEMATICTEEINTERCONNECT_H
2#define _GLSSCHEMATICTEEINTERCONNECT_H
3
4/*! \file
5 \brief The disti::GlsSchematicTeeInterconnect class.
6
7 \par Copyright Information
8
9 Copyright (c) 2017 by The DiSTI Corporation.<br>
10 11301 Corporate Blvd; Suite 100<br>
11 Orlando, Florida 32817<br>
12 USA<br>
13 <br>
14 All rights reserved.<br>
15
16 This Software contains proprietary trade secrets of DiSTI and may not be
17reproduced, in whole or part, in any form, or by any means of electronic,
18mechanical, or otherwise, without the written permission of DiSTI. Said
19permission may be derived through the purchase of applicable DiSTI product
20licenses which detail the distribution rights of this content and any
21Derivative Works based on this or other copyrighted DiSTI Software.
22
23 NO WARRANTY. THE SOFTWARE IS PROVIDED "AS-IS," WITHOUT WARRANTY OF ANY KIND,
24AND ANY USE OF THIS SOFTWARE PRODUCT IS AT YOUR OWN RISK. TO THE MAXIMUM EXTENT
25PERMITTED BY APPLICABLE LAW, DISTI AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES
26AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
27IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY AND/OR FITNESS FOR A
28PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE.
29
30 LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
31IN NO EVENT SHALL DISTI OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
32INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
33DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
34INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
35INABILITY TO USE THE SOFTWARE, EVEN IF DISTI HAS BEEN ADVISED OF THE POSSIBILITY
36OF SUCH DAMAGES. DISTI'S ENTIRE LIABILITY AND YOUR EXCLUSIVE REMEDY SHALL NOT
37EXCEED FIVE DOLLARS (US$5.00).
38
39 The aforementioned terms and restrictions are governed by the laws of the
40State of Florida and the United States of America.
41*/
42
43#include "glpolygon.h"
46
47/// Provides support for creating DLLs.
48#if( defined( GLSGEN_EXPORT_GLSSCHEMATICTEEINTERCONNECT ) || defined( GLSGEN_IMPORT_GLSSCHEMATICTEEINTERCONNECT ) || defined( GLS_EXPORT_GENERATED ) || defined( GLS_IMPORT_GENERATED ) ) \
49 && defined( _MSC_VER )
50# if defined( GLSGEN_EXPORT_GLSSCHEMATICTEEINTERCONNECT ) || defined( GLS_EXPORT_GENERATED )
51# define GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT __declspec( dllexport )
52# else
53# define GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT __declspec( dllimport )
54# endif
55#else
56# define GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT
57#endif
58///////////////////////////////////////////////////////////////////////////////
59
60/// Automatically link the runtime library plugin (on Windows).
61#define LIB_BASE_NAME "gls_schematic_tee_interconnect"
62#include "gls_auto_lib.h"
63#undef LIB_BASE_NAME
64
65namespace disti
66{
67// SetValue enumerations
68enum
69{
70 GLS_SCHEMATICTEEINTERCONNECT_FIRST_VALUE = GLS_LAST_INITIALIZER + 1,
71 GLS_SCHEMATICTEEINTERCONNECT_LEFT_LINE_THICKNESS,
72 GLS_SCHEMATICTEEINTERCONNECT_RIGHT_LINE_THICKNESS,
73 GLS_SCHEMATICTEEINTERCONNECT_BASE_LINE_THICKNESS,
74 GLS_SCHEMATICTEEINTERCONNECT_LEFT_INTERCONNECT_TEXTURE_INDEX,
75 GLS_SCHEMATICTEEINTERCONNECT_RIGHT_INTERCONNECT_TEXTURE_INDEX,
76 GLS_SCHEMATICTEEINTERCONNECT_BASE_INTERCONNECT_TEXTURE_INDEX,
77 GLS_SCHEMATICTEEINTERCONNECT_LEFT_INTERCONNECT_TEXTURE_REPEAT_LENGTH,
78 GLS_SCHEMATICTEEINTERCONNECT_RIGHT_INTERCONNECT_TEXTURE_REPEAT_LENGTH,
79 GLS_SCHEMATICTEEINTERCONNECT_BASE_INTERCONNECT_TEXTURE_REPEAT_LENGTH,
80 GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_TEXTURE_INDEX,
81 GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_TEXTURE_INDEX,
82 GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_TEXTURE_INDEX,
83 GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_TEXTURE_REPEAT_LENGTH,
84 GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_TEXTURE_REPEAT_LENGTH,
85 GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_TEXTURE_REPEAT_LENGTH,
86 GLS_SCHEMATICTEEINTERCONNECT_LEFT_SHOW_FLOW,
87 GLS_SCHEMATICTEEINTERCONNECT_RIGHT_SHOW_FLOW,
88 GLS_SCHEMATICTEEINTERCONNECT_BASE_SHOW_FLOW,
89 GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_RATE,
90 GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_RATE,
91 GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_RATE,
92 GLS_SCHEMATICTEEINTERCONNECT_LEFT_SHOW_FLOW_BLINK,
93 GLS_SCHEMATICTEEINTERCONNECT_RIGHT_SHOW_FLOW_BLINK,
94 GLS_SCHEMATICTEEINTERCONNECT_BASE_SHOW_FLOW_BLINK,
95 GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_BLINK_RATE,
96 GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_BLINK_RATE,
97 GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_BLINK_RATE,
98 GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_BLINK_START_COLOR,
99 GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_BLINK_START_COLOR,
100 GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_BLINK_START_COLOR,
101 GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_BLINK_END_COLOR,
102 GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_BLINK_END_COLOR,
103 GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_BLINK_END_COLOR,
104 GLS_SCHEMATICTEEINTERCONNECT_USE_DISPLAY_LIST,
105 GLS_SCHEMATICTEEINTERCONNECT_TOP_VISIBLE,
106 GLS_SCHEMATICTEEINTERCONNECT_TOP_LINE_THICKNESS,
107 GLS_SCHEMATICTEEINTERCONNECT_TOP_INTERCONNECT_TEXTURE_INDEX,
108 GLS_SCHEMATICTEEINTERCONNECT_TOP_INTERCONNECT_TEXTURE_REPEAT_LENGTH,
109 GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_TEXTURE_INDEX,
110 GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_TEXTURE_REPEAT_LENGTH,
111 GLS_SCHEMATICTEEINTERCONNECT_TOP_SHOW_FLOW,
112 GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_RATE,
113 GLS_SCHEMATICTEEINTERCONNECT_TOP_SHOW_FLOW_BLINK,
114 GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_BLINK_RATE,
115 GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_BLINK_START_COLOR,
116 GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_BLINK_END_COLOR
117};
118
119#ifdef GLES
120class GlsGloFileAttribute;
121#endif
122
123/** Runtime implementation of a GlsSchematicTeeInterconnect */
125{
126private:
129
130 void CopyPropertiesInternal( GlsSchematicTeeInterconnect* src );
131
132public:
133 DISTI_DEPRECATED( "This identifier is forbidden by the C++ standard. Use BaseClass instead." )
134 typedef GLPolygon _BaseClass; ///< Deprecated typedef for the base class.
135 typedef GLPolygon BaseClass; ///< Typedef for the base class.
136 friend class GlsSchematicTeeInterconnectEditor;
137
138 /// Create a new GlsSchematicTeeInterconnect.
139 /// \param generateInstance Whether or not to generate an instance name for this object.
141
142 /// Copy constructor
143 /// \param that The object to copy from.
144 /// \param generateNames Whether or not to generate an instance name for this object.
146
147 /** Destructs a GlsSchematicTeeInterconnect object */
149
150 /// \return A pointer to a new GlsSchematicTeeInterconnect object.
152
153 //////////////////////////////////////////////////
154 // Overridden base class methods
155 //////////////////////////////////////////////////
156
160
161#ifndef GLES
162 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT InterfaceListType* GetCppInterfaceDescription( InterfaceListType* addToThisList = NULL ) DISTI_METHOD_OVERRIDE;
163 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void GetCppInterfaceDescriptionFree( InterfaceListType* array ) DISTI_METHOD_OVERRIDE;
164#endif
165
169
171
172 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT bool Hit( float x, float y, float z, float scale, const Vector& directionVector, Vector* collisionPoint ) DISTI_METHOD_OVERRIDE;
173
175
177
179
180 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void Scale( float px, float py, float pz, Vertex* anchor, int handleBar = 0 ) DISTI_METHOD_OVERRIDE
181 {
182 BaseClass::Scale( px, py, pz, anchor, handleBar );
183 SetRebuild();
184 }
185
186 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void Rotate( const Vector& orig, float angle, const Vector& axis ) DISTI_METHOD_OVERRIDE
187 {
188 BaseClass::Rotate( orig, angle, axis );
189 SetRebuild();
190 }
191
193 {
194 BaseClass::SetVertices( nPoints, vertices );
195 SetRebuild();
196 }
197
198#ifdef GLES
199 /// \copydoc DisplayObject::Parent(DisplayFrame*)
201#endif
202
205
206 //////////////////////////////////////////////////
207 // GlsSchematicTeeInterconnect specific operations
208 //////////////////////////////////////////////////
209
210 /// Set the thickness of the left side.
211 /// \see GlsSchematicPolyLineInterconnect::SetLineThickness
212 /// \param lineThickness The new thickness value to set.
213 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetLeftLineThickness( const float lineThickness );
214
215 /// \return The thickness of the left side.
217
218 /// Set the thickness of the right side.
219 /// \see GlsSchematicPolyLineInterconnect::SetLineThickness
220 /// \param lineThickness The new thickness value to set.
221 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetRightLineThickness( const float lineThickness );
222
223 /// \return The thickness of the right side.
225
226 /// Set the thickness of the baseline (bottom) side.
227 /// \see GlsSchematicPolyLineInterconnect::SetLineThickness
228 /// \param lineThickness The new thickness value to set.
229 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetBaseLineThickness( const float lineThickness );
230
231 /// \return The thickness of the baseline (bottom) side.
233
234 /// Set the thickness of the top side.
235 /// \see GlsSchematicPolyLineInterconnect::SetLineThickness
236 /// \param lineThickness The new thickness value to set.
237 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetTopLineThickness( const float lineThickness );
238
239 /// \return The thickness of the top side.
241
242 /// Set the texture index of the left side.
243 /// \see GlsSchematicPolyLineInterconnect::SetInterconnectTextureIndex
244 /// \param textureIndex The new texture index to set.
246
247 /// \return the texture index of the left side
249
250 /// Set the texture index of the right side.
251 /// \see GlsSchematicPolyLineInterconnect::SetInterconnectTextureIndex
252 /// \param textureIndex The new texture index to set.
254
255 /// \return The texture index of the right side.
257
258 /// Set the texture index of the base (bottom) side.
259 /// \see GlsSchematicPolyLineInterconnect::SetInterconnectTextureIndex
260 /// \param textureIndex The new texture index to set.
262
263 /// \return the texture index of the base (bottom) side
265
266 /// Set the texture index of the top side.
267 /// \see GlsSchematicPolyLineInterconnect::SetInterconnectTextureIndex
268 /// \param textureIndex The new texture index to set.
270
271 /// \return The texture index of the top side.
273
274 /// Set the texture repeat length of the left side.
275 /// \see GlsSchematicPolyLineInterconnect::SetInterconnectTextureRepeatLength
276 /// \param textureRepeatLength The new texture repeat length to set.
278
279 /// \return The texture repeat length of the left side.
281
282 /// Set the texture repeat length of the right side.
283 /// \see GlsSchematicPolyLineInterconnect::SetInterconnectTextureRepeatLength
284 /// \param textureRepeatLength The new texture repeat length to set.
286
287 /// \return The texture repeat length of the right side.
289
290 /// Set the texture repeat length of the base (bottom) side.
291 /// \see GlsSchematicPolyLineInterconnect::SetInterconnectTextureRepeatLength
292 /// \param textureRepeatLength The new texture repeat length to set.
294
295 /// \return The texture repeat length of the base (bottom) side.
297
298 /// Set the texture repeat length of the top side.
299 /// \see GlsSchematicPolyLineInterconnect::SetInterconnectTextureRepeatLength
300 /// \param textureRepeatLength The new texture repeat length to set.
302
303 /// \return The texture repeat length of the top side.
305
306 /// Set the flow texture index of the left side.
307 /// \see GlsSchematicPolyLineInterconnect::SetFlowTextureIndex
308 /// \param textureIndex The new flow texture index to set.
310
311 /// \return The flow texture index of the left side.
313
314 /// Set the flow texture index of the right side.
315 /// \see GlsSchematicPolyLineInterconnect::SetFlowTextureIndex
316 /// \param textureIndex The new flow texture index to set.
318
319 /// \return The flow texture index of the right side.
321
322 /// Set the flow texture index of the base (bottom) side.
323 /// \see GlsSchematicPolyLineInterconnect::SetFlowTextureIndex
324 /// \param textureIndex The new flow texture index to set.
326
327 /// \return The flow texture index of the base (bottom) side.
329
330 /// Set the flow texture index of the top side.
331 /// \see GlsSchematicPolyLineInterconnect::SetFlowTextureIndex
332 /// \param textureIndex The new flow texture index to set.
334
335 /// \return The flow texture index of the top side.
337
338 /// Set the flow texture repeat length of the left side.
339 /// \see GlsSchematicPolyLineInterconnect::SetFlowTextureRepeatLength
340 /// \param textureRepeatLength The new texture repeat length to set.
341 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetLeftFlowTextureRepeatLength( const float textureRepeatLength );
342
343 /// \return The flow texture repeat length of the left side.
345
346 /// Set the flow texture repeat length of the right side.
347 /// \see GlsSchematicPolyLineInterconnect::SetFlowTextureRepeatLength
348 /// \param textureRepeatLength The new texture repeat length to set.
349 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetRightFlowTextureRepeatLength( const float textureRepeatLength );
350
351 /// \return The flow texture repeat length of the right side.
353
354 /// Set the flow texture repeat length of the base (bottom) side.
355 /// \see GlsSchematicPolyLineInterconnect::SetFlowTextureRepeatLength
356 /// \param textureRepeatLength The new texture repeat length to set.
357 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetBaseFlowTextureRepeatLength( const float textureRepeatLength );
358
359 /// \return The flow texture repeat length of the base (bottom) side.
361
362 /// Set the flow texture repeat length of the right side.
363 /// \see GlsSchematicPolyLineInterconnect::SetFlowTextureRepeatLength
364 /// \param textureRepeatLength The new texture repeat length to set.
365 virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetTopFlowTextureRepeatLength( const float textureRepeatLength );
366
367 /// \return The flow texture repeat length of the top side.
369
370 /// Set the flow visibility for the left side.
371 /// \see GlsSchematicPolyLineInterconnect::SetShowFlow
372 /// \param showFlow The new flow visibility flag to set.
374
375 /// \return The flow visibility for the left side.
377
378 /// Set the flow visibility for the right side.
379 /// \see GlsSchematicPolyLineInterconnect::SetShowFlow
380 /// \param showFlow The new flow visibility flag to set.
382
383 /// \return The flow visibility for the right side.
385
386 /// Set the flow visibility for the base (bottom) side.
387 /// \see GlsSchematicPolyLineInterconnect::SetShowFlow
388 /// \param showFlow The new flow visibility flag to set.
390
391 /// \return The flow visibility for the base (bottom) side.
393
394 /// Set the flow visibility for the top side.
395 /// \see GlsSchematicPolyLineInterconnect::SetShowFlow
396 /// \param showFlow The new flow visibility flag to set.
398
399 /// \return The flow visibility for the top side.
401
402 /// Set the flow rate for the left side.
403 /// \see GlsSchematicPolyLineInterconnect::SetFlowRate
404 /// \param flowRate The new flow rate to set.
405 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetLeftFlowRate( const float flowRate );
406
407 /// \return The flow rate for the left side.
409
410 /// Set the flow rate for the right side.
411 /// \see GlsSchematicPolyLineInterconnect::SetFlowRate
412 /// \param flowRate The new flow rate to set.
414
415 /// \return The flow rate for the right side.
417
418 /// Set the flow rate for the base (bottom) side.
419 /// \see GlsSchematicPolyLineInterconnect::SetFlowRate
420 /// \param flowRate The new flow rate to set.
421 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetBaseFlowRate( const float flowRate );
422
423 /// \return The flow rate for the base (bottom) side.
425
426 /// Set the flow rate for the top side.
427 /// \see GlsSchematicPolyLineInterconnect::SetFlowRate
428 /// \param flowRate The new flow rate to set.
429 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetTopFlowRate( const float flowRate );
430
431 /// \return The flow rate for the top side.
433
434 /// Set the flow blink visibility flag for the left side.
435 /// \see GlsSchematicPolyLineInterconnect::SetShowFlowBlink
436 /// \param showFlowBlink The new flow blink visibility flag to set.
437 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetLeftShowFlowBlink( const bool showFlowBlink );
438
439 /// \return The flow blink visibility flag for the left side.
441
442 /// Set the flow blink visibility flag for the right side.
443 /// \see GlsSchematicPolyLineInterconnect::SetShowFlowBlink
444 /// \param showFlowBlink The new flow blink visibility flag to set.
445 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetRightShowFlowBlink( const bool showFlowBlink );
446
447 /// \return The flow blink visibility flag for the right side.
449
450 /// Set the flow blink visibility flag for the base (bottom) side.
451 /// \see GlsSchematicPolyLineInterconnect::SetShowFlowBlink
452 /// \param showFlowBlink The new flow blink visibility flag to set.
453 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetBaseShowFlowBlink( const bool showFlowBlink );
454
455 /// \return The flow blink visibility flag for the base (bottom) side.
457
458 /// Set the flow blink visibility flag for the top side.
459 /// \see GlsSchematicPolyLineInterconnect::SetShowFlowBlink
460 /// \param showFlowBlink The new flow blink visibility flag to set.
461 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetTopShowFlowBlink( const bool showFlowBlink );
462
463 /// \return The flow blink visibility flag for the top side.
465
466 /// Set the flow blink rate for the left side.
467 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkRate
468 /// \param flowBlinkRate The new flow blink rate to set.
469 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetLeftFlowBlinkRate( const float flowBlinkRate );
470
471 /// \return The flow blink rate for the left side.
473
474 /// Set the flow blink rate for the right side.
475 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkRate
476 /// \param flowBlinkRate The new flow blink rate to set.
477 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetRightFlowBlinkRate( const float flowBlinkRate );
478
479 /// \return The flow blink rate for the right side.
481
482 /// Set the flow blink rate for the base (bottom) side.
483 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkRate
484 /// \param flowBlinkRate The new flow blink rate to set.
485 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetBaseFlowBlinkRate( const float flowBlinkRate );
486
487 /// \return The flow blink rate for the base (bottom) side.
489
490 /// Set the flow blink rate for the top side.
491 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkRate
492 /// \param flowBlinkRate The new flow blink rate to set.
493 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetTopFlowBlinkRate( const float flowBlinkRate );
494
495 /// \return The flow blink rate for the top side.
497
498 /// Set the flow blink start color for the left side.
499 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkStartColor
500 /// \param startColor The new blink start color to set.
502
503 /// \return The flow blink start color for the left side.
505
506 /// Set the flow blink start color for the right side.
507 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkStartColor
508 /// \param startColor The new blink start color to set.
510
511 /// \return The flow blink start color for the right side.
513
514 /// Set the flow blink start color for the base (bottom) side.
515 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkStartColor
516 /// \param startColor The new blink start color to set.
518
519 /// \return The flow blink start color for the base (bottom) side.
521
522 /// Set the flow blink start color for the top side.
523 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkStartColor
524 /// \param startColor The new blink start color to set.
526
527 /// \return The flow blink start color for the top side.
529
530 /// Set the flow blink end color for the left side.
531 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkEndColor
532 /// \param endColor The new flow blink end color to set.
534
535 /// \return The flow blink end color for the left side.
537
538 /// Set the flow blink end color for the right side.
539 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkEndColor
540 /// \param endColor The new flow blink end color to set.
542
543 /// \return The flow blink end color for the right side.
545
546 /// Set the flow blink end color for the base (bottom) side.
547 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkEndColor
548 /// \param endColor The new flow blink end color to set.
550
551 /// \return The flow blink end color for the base (bottom) side.
553
554 /// Set the flow blink end color for the top side.
555 /// \see GlsSchematicPolyLineInterconnect::SetFlowBlinkEndColor
556 /// \param endColor The new flow blink end color to set.
558
559 /// \return The flow blink end color for the top side.
561
562 /** set the top of the tee visible
563 * \param topVisible true to set top visible
564 */
565 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetTopVisible( const bool topVisible );
566
567 /** determine if the top of the tee is visible
568 * \return true if top is visible
569 */
570 virtual bool GetTopVisible() { return ( _top->Visibility() ); }
571
572#ifndef GLES
573 /** enable/disable using display list for drawing
574 * \param useDisplayList true to use display list
575 */
576 virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetUseDisplayList( const bool useDisplayList );
577
578 /** get use display list
579 * \return true if using display list for drawing
580 */
581 virtual bool GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetUseDisplayList() { return ( _left->GetUseDisplayList() ); }
582#endif
583
584protected:
585 /** helper method to setup render attributes on the given leg to the render attributes of the tee
586 * and then draw the leg
587 * \param leg leg to configure and draw
588 */
590
591 /** flag lines to be adjusted for vertices on next draw */
593
594 /** adjust lines to match vertices */
596
597#ifdef GLES
598 /** Set a single attribute from the GLO file.
599 * \param data The attribute to set and its associated data.
600 */
602#endif
603
604 GlsSchematicPolyLineInterconnect* _left; /**< left side of tee */
605 GlsSchematicPolyLineInterconnect* _right; /**< right side of tee */
607 GlsSchematicPolyLineInterconnect* _top; /**< top of tee (visible if top enabled) */
608
609 bool _needsRebuild; /**< true if the lines need to be adjusted to match the vertices */
610};
611
612} // namespace disti
613
614#endif
Definition: cull.h:50
Definition: events.h:113
Definition: display_frame.h:87
Definition: display.h:96
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar=0)
bool Visibility() const
Definition: display.h:1448
virtual int TextureIndex()
virtual void SetVertices(unsigned int nPoints, Vertex *vertices)
virtual void Rotate(float angle, int axis=Z_AXIS)
Definition: dynamic_array.h:79
The Polygon class. Implements Polygons.
Definition: glpolygon.h:56
Definition: gls_color.h:54
Definition: gls_glo_file.h:1243
Definition: gls_painter.h:51
Definition: gls_schematic_poly_line_interconnect.h:100
virtual float GetInterconnectTextureRepeatLength()
Definition: gls_schematic_tee_interconnect.h:125
GlsSchematicPolyLineInterconnect * _top
Definition: gls_schematic_tee_interconnect.h:607
virtual void CalculateTextureCoordinates() DISTI_METHOD_OVERRIDE
virtual void SetBaseFlowBlinkRate(const float flowBlinkRate)
virtual void SetRightFlowTextureRepeatLength(const float textureRepeatLength)
virtual void SetLeftFlowBlinkRate(const float flowBlinkRate)
virtual void Parent(DisplayFrame *par) DISTI_METHOD_OVERRIDE
virtual void SetBaseInterconnectTextureIndex(const int textureIndex)
virtual void SetTopShowFlow(const bool showFlow)
virtual void SetAvailableAttributes(unsigned int value) DISTI_METHOD_OVERRIDE
virtual void SetRightFlowRate(const float flowRate)
virtual void Draw() DISTI_METHOD_OVERRIDE
virtual void SetTopFlowBlinkEndColor(const GlsColor &endColor)
virtual int GetRightFlowTextureIndex()
Definition: gls_schematic_tee_interconnect.h:320
virtual GlsColor GetRightFlowBlinkStartColor()
Definition: gls_schematic_tee_interconnect.h:512
virtual float GetTopFlowTextureRepeatLength()
Definition: gls_schematic_tee_interconnect.h:368
void ParentGroup(Group *group) DISTI_METHOD_OVERRIDE
virtual float GetRightFlowRate()
Definition: gls_schematic_tee_interconnect.h:416
virtual void SetRightShowFlow(const bool showFlow)
virtual float GetBaseFlowBlinkRate()
Definition: gls_schematic_tee_interconnect.h:488
virtual void SetBaseShowFlow(const bool showFlow)
virtual DisplayObject * CloneObject(bool generateNames=false) DISTI_METHOD_OVERRIDE
bool _needsRebuild
Definition: gls_schematic_tee_interconnect.h:609
virtual GlsColor GetTopFlowBlinkEndColor()
Definition: gls_schematic_tee_interconnect.h:560
virtual void SetFromGloData(GlsGloFileAttribute &data) DISTI_METHOD_OVERRIDE
virtual float GetTopLineThickness()
Definition: gls_schematic_tee_interconnect.h:240
virtual void SetTopFlowTextureRepeatLength(const float textureRepeatLength)
virtual bool GetLeftShowFlowBlink()
Definition: gls_schematic_tee_interconnect.h:440
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 SetLeftFlowBlinkEndColor(const GlsColor &endColor)
virtual void SetLeftLineThickness(const float lineThickness)
virtual GlsColor GetTopFlowBlinkStartColor()
Definition: gls_schematic_tee_interconnect.h:528
virtual float GetLeftFlowBlinkRate()
Definition: gls_schematic_tee_interconnect.h:472
virtual void SetRightFlowBlinkStartColor(const GlsColor &startColor)
virtual DisplayObject * handle(DisplayEvent *ev) DISTI_METHOD_OVERRIDE
virtual void SetTopInterconnectTextureIndex(const int textureIndex)
virtual void SetLeftFlowTextureIndex(const int textureIndex)
virtual float GetBaseFlowRate()
Definition: gls_schematic_tee_interconnect.h:424
virtual bool GetRightShowFlow()
Definition: gls_schematic_tee_interconnect.h:384
virtual bool GetLeftShowFlow()
Definition: gls_schematic_tee_interconnect.h:376
virtual void SetLeftFlowBlinkStartColor(const GlsColor &startColor)
virtual float GetBaseInterconnectTextureRepeatLength()
Definition: gls_schematic_tee_interconnect.h:296
virtual float GetLeftFlowRate()
Definition: gls_schematic_tee_interconnect.h:408
virtual void SetValue(int spec, va_list &args) DISTI_METHOD_OVERRIDE
virtual float GetLeftLineThickness()
Definition: gls_schematic_tee_interconnect.h:216
virtual float GetBaseLineThickness()
Definition: gls_schematic_tee_interconnect.h:232
virtual void SetTopShowFlowBlink(const bool showFlowBlink)
virtual void SetTopLineThickness(const float lineThickness)
virtual void SetTopFlowBlinkRate(const float flowBlinkRate)
virtual void SetLeftInterconnectTextureIndex(const int textureIndex)
virtual void SetBaseFlowBlinkEndColor(const GlsColor &endColor)
virtual GlsColor GetBaseFlowBlinkStartColor()
Definition: gls_schematic_tee_interconnect.h:520
virtual void SetLeftShowFlowBlink(const bool showFlowBlink)
virtual bool GetTopVisible()
Definition: gls_schematic_tee_interconnect.h:570
virtual GlsColor GetLeftFlowBlinkStartColor()
Definition: gls_schematic_tee_interconnect.h:504
virtual void Rotate(const Vector &orig, float angle, const Vector &axis) DISTI_METHOD_OVERRIDE
Definition: gls_schematic_tee_interconnect.h:186
virtual void SetTopInterconnectTextureRepeatLength(const float textureRepeatLength)
virtual void SetLeftFlowTextureRepeatLength(const float textureRepeatLength)
virtual float GetRightFlowBlinkRate()
Definition: gls_schematic_tee_interconnect.h:480
virtual void DrawLeg(GlsSchematicPolyLineInterconnect *leg)
virtual int GetBaseInterconnectTextureIndex()
Definition: gls_schematic_tee_interconnect.h:264
virtual float GetBaseFlowTextureRepeatLength()
Definition: gls_schematic_tee_interconnect.h:360
virtual void Calculate(double time) DISTI_METHOD_OVERRIDE
static DisplayObject * CreateInstance()
virtual bool GetTopShowFlowBlink()
Definition: gls_schematic_tee_interconnect.h:464
virtual void SetVertices(unsigned int nPoints, Vertex *vertices) DISTI_METHOD_OVERRIDE
Definition: gls_schematic_tee_interconnect.h:192
virtual void SetBaseFlowBlinkStartColor(const GlsColor &startColor)
virtual void SetRightFlowBlinkRate(const float flowBlinkRate)
virtual void SetTopVisible(const bool topVisible)
virtual void SetBaseLineThickness(const float lineThickness)
virtual bool GetBaseShowFlowBlink()
Definition: gls_schematic_tee_interconnect.h:456
virtual float GetLeftFlowTextureRepeatLength()
Definition: gls_schematic_tee_interconnect.h:344
virtual int GetLeftFlowTextureIndex()
Definition: gls_schematic_tee_interconnect.h:312
virtual GlsColor GetRightFlowBlinkEndColor()
Definition: gls_schematic_tee_interconnect.h:544
virtual void SetRightFlowTextureIndex(const int textureIndex)
virtual bool GetTopShowFlow()
Definition: gls_schematic_tee_interconnect.h:400
virtual void SetBaseFlowRate(const float flowRate)
virtual void SetTopFlowBlinkStartColor(const GlsColor &startColor)
virtual float GetRightFlowTextureRepeatLength()
Definition: gls_schematic_tee_interconnect.h:352
GlsSchematicPolyLineInterconnect * _right
Definition: gls_schematic_tee_interconnect.h:605
virtual int GetRightInterconnectTextureIndex()
Definition: gls_schematic_tee_interconnect.h:256
virtual float GetTopFlowBlinkRate()
Definition: gls_schematic_tee_interconnect.h:496
virtual void SetRightInterconnectTextureIndex(const int textureIndex)
void SetPainter(GlsPainter *painter) DISTI_METHOD_OVERRIDE
virtual void SetBaseFlowTextureIndex(const int textureIndex)
virtual void SetRightLineThickness(const float lineThickness)
virtual void CopyProperties(DisplayObject *src) DISTI_METHOD_OVERRIDE
virtual float GetLeftInterconnectTextureRepeatLength()
Definition: gls_schematic_tee_interconnect.h:280
virtual bool GetRightShowFlowBlink()
Definition: gls_schematic_tee_interconnect.h:448
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar=0) DISTI_METHOD_OVERRIDE
Definition: gls_schematic_tee_interconnect.h:180
virtual void SetRightShowFlowBlink(const bool showFlowBlink)
virtual void SetRightFlowBlinkEndColor(const GlsColor &endColor)
virtual void SetLeftInterconnectTextureRepeatLength(const float textureRepeatLength)
virtual int GetLeftInterconnectTextureIndex()
Definition: gls_schematic_tee_interconnect.h:248
virtual GlsColor GetBaseFlowBlinkEndColor()
Definition: gls_schematic_tee_interconnect.h:552
virtual void SetLeftShowFlow(const bool showFlow)
virtual GlsColor GetLeftFlowBlinkEndColor()
Definition: gls_schematic_tee_interconnect.h:536
virtual void SetBaseInterconnectTextureRepeatLength(const float textureRepeatLength)
virtual void SetTopFlowTextureIndex(const int textureIndex)
virtual float GetTopInterconnectTextureRepeatLength()
Definition: gls_schematic_tee_interconnect.h:304
virtual float GetTopFlowRate()
Definition: gls_schematic_tee_interconnect.h:432
virtual int GetTopInterconnectTextureIndex()
Definition: gls_schematic_tee_interconnect.h:272
virtual float GetRightLineThickness()
Definition: gls_schematic_tee_interconnect.h:224
virtual void SetBaseFlowTextureRepeatLength(const float textureRepeatLength)
virtual int GetBaseFlowTextureIndex()
Definition: gls_schematic_tee_interconnect.h:328
virtual void SetBaseShowFlowBlink(const bool showFlowBlink)
virtual void SetLeftFlowRate(const float flowRate)
virtual bool GetBaseShowFlow()
Definition: gls_schematic_tee_interconnect.h:392
GlsSchematicPolyLineInterconnect * _left
Definition: gls_schematic_tee_interconnect.h:604
GlsSchematicPolyLineInterconnect * _base
Definition: gls_schematic_tee_interconnect.h:606
virtual float GetRightInterconnectTextureRepeatLength()
Definition: gls_schematic_tee_interconnect.h:288
virtual int GetTopFlowTextureIndex()
Definition: gls_schematic_tee_interconnect.h:336
virtual void SetRightInterconnectTextureRepeatLength(const float textureRepeatLength)
virtual void SetTopFlowRate(const float flowRate)
Definition: group.h:53
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:544
Definition: vertex.h:85
Definition: vertex.h:420
The disti::GLPolygon class. Implements Polygons.
The gls_auto_lib.
Macros and helper code to determine what subset of C++11/14/17 is available.
#define DISTI_DEPRECATED(msg)
Defines whether this compiler supports the C++14 deprecated attribute.
Definition: gls_cpp_lang_support.h:488
#define DISTI_METHOD_OVERRIDE
Macro to wrap the override keyword, removed on compilers that don't support it.
Definition: gls_cpp_lang_support.h:222
The disti::GlsSchematicPolyLineInterconnect class.
#define GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT
Provides support for creating DLLs.
Definition: gls_schematic_tee_interconnect.h:56
Definition: bmpimage.h:47