GL Studio 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) 2015 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
17 reproduced, in whole or part, in any form, or by any means of electronic,
18 mechanical, or otherwise, without the written permission of DiSTI. Said
19 permission may be derived through the purchase of applicable DiSTI product
20 licenses which detail the distribution rights of this content and any
21 Derivative Works based on this or other copyrighted DiSTI Software.
22 
23  NO WARRANTY. THE SOFTWARE IS PROVIDED "AS-IS," WITHOUT WARRANTY OF ANY KIND,
24 AND ANY USE OF THIS SOFTWARE PRODUCT IS AT YOUR OWN RISK. TO THE MAXIMUM EXTENT
25 PERMITTED BY APPLICABLE LAW, DISTI AND ITS SUPPLIERS DISCLAIM ALL WARRANTIES
26 AND CONDITIONS, EITHER EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
27 IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY AND/OR FITNESS FOR A
28 PARTICULAR PURPOSE, TITLE, AND NON-INFRINGEMENT, WITH REGARD TO THE SOFTWARE.
29 
30  LIMITATION OF LIABILITY. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW,
31 IN NO EVENT SHALL DISTI OR ITS SUPPLIERS BE LIABLE FOR ANY SPECIAL, INCIDENTAL,
32 INDIRECT, OR CONSEQUENTIAL DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION,
33 DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS INTERRUPTION, LOSS OF BUSINESS
34 INFORMATION, OR ANY OTHER PECUNIARY LOSS) ARISING OUT OF THE USE OF OR
35 INABILITY TO USE THE SOFTWARE, EVEN IF DISTI HAS BEEN ADVISED OF THE POSSIBILITY
36 OF SUCH DAMAGES. DISTI'S ENTIRE LIABILITY AND YOUR EXCLUSIVE REMEDY SHALL NOT
37 EXCEED FIVE DOLLARS (US$5.00).
38 
39  The aforementioned terms and restrictions are governed by the laws of the
40 State of Florida and the United States of America.
41 */
42 
43 
44 #include "glpolygon.h"
46 #include "gls_cpp_lang_support.h"
47 
48 //////////////////// Provides support for creating DLLs ////////////////////////
49 #if (defined(GLSGEN_EXPORT_GLSSCHEMATICTEEINTERCONNECT) || \
50  defined(GLSGEN_IMPORT_GLSSCHEMATICTEEINTERCONNECT) || \
51  defined(GLS_EXPORT_GENERATED) || \
52  defined(GLS_IMPORT_GENERATED)) \
53  && defined(_MSC_VER)
54 # if defined(GLSGEN_EXPORT_GLSSCHEMATICTEEINTERCONNECT) || defined(GLS_EXPORT_GENERATED)
55 # define GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT __declspec(dllexport)
56 # else
57 # define GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT __declspec(dllimport)
58 # endif
59 #else
60 # define GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT
61 #endif
62 ///////////////////////////////////////////////////////////////////////////////
63 
64 #define LIB_BASE_NAME "gls_schematic_tee_interconnect"
65 #include "gls_auto_lib.h"
66 #undef LIB_BASE_NAME
67 
68 namespace disti
69 {
70 
71 // SetValue enumerations
72 enum {
73  GLS_SCHEMATICTEEINTERCONNECT_FIRST_VALUE = GLS_LAST_INITIALIZER+1,
74  GLS_SCHEMATICTEEINTERCONNECT_LEFT_LINE_THICKNESS,
75  GLS_SCHEMATICTEEINTERCONNECT_RIGHT_LINE_THICKNESS,
76  GLS_SCHEMATICTEEINTERCONNECT_BASE_LINE_THICKNESS,
77  GLS_SCHEMATICTEEINTERCONNECT_LEFT_INTERCONNECT_TEXTURE_INDEX,
78  GLS_SCHEMATICTEEINTERCONNECT_RIGHT_INTERCONNECT_TEXTURE_INDEX,
79  GLS_SCHEMATICTEEINTERCONNECT_BASE_INTERCONNECT_TEXTURE_INDEX,
80  GLS_SCHEMATICTEEINTERCONNECT_LEFT_INTERCONNECT_TEXTURE_REPEAT_LENGTH,
81  GLS_SCHEMATICTEEINTERCONNECT_RIGHT_INTERCONNECT_TEXTURE_REPEAT_LENGTH,
82  GLS_SCHEMATICTEEINTERCONNECT_BASE_INTERCONNECT_TEXTURE_REPEAT_LENGTH,
83  GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_TEXTURE_INDEX,
84  GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_TEXTURE_INDEX,
85  GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_TEXTURE_INDEX,
86  GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_TEXTURE_REPEAT_LENGTH,
87  GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_TEXTURE_REPEAT_LENGTH,
88  GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_TEXTURE_REPEAT_LENGTH,
89  GLS_SCHEMATICTEEINTERCONNECT_LEFT_SHOW_FLOW,
90  GLS_SCHEMATICTEEINTERCONNECT_RIGHT_SHOW_FLOW,
91  GLS_SCHEMATICTEEINTERCONNECT_BASE_SHOW_FLOW,
92  GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_RATE,
93  GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_RATE,
94  GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_RATE,
95  GLS_SCHEMATICTEEINTERCONNECT_LEFT_SHOW_FLOW_BLINK,
96  GLS_SCHEMATICTEEINTERCONNECT_RIGHT_SHOW_FLOW_BLINK,
97  GLS_SCHEMATICTEEINTERCONNECT_BASE_SHOW_FLOW_BLINK,
98  GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_BLINK_RATE,
99  GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_BLINK_RATE,
100  GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_BLINK_RATE,
101  GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_BLINK_START_COLOR,
102  GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_BLINK_START_COLOR,
103  GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_BLINK_START_COLOR,
104  GLS_SCHEMATICTEEINTERCONNECT_LEFT_FLOW_BLINK_END_COLOR,
105  GLS_SCHEMATICTEEINTERCONNECT_RIGHT_FLOW_BLINK_END_COLOR,
106  GLS_SCHEMATICTEEINTERCONNECT_BASE_FLOW_BLINK_END_COLOR,
107  GLS_SCHEMATICTEEINTERCONNECT_USE_DISPLAY_LIST,
108  GLS_SCHEMATICTEEINTERCONNECT_TOP_VISIBLE,
109  GLS_SCHEMATICTEEINTERCONNECT_TOP_LINE_THICKNESS,
110  GLS_SCHEMATICTEEINTERCONNECT_TOP_INTERCONNECT_TEXTURE_INDEX,
111  GLS_SCHEMATICTEEINTERCONNECT_TOP_INTERCONNECT_TEXTURE_REPEAT_LENGTH,
112  GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_TEXTURE_INDEX,
113  GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_TEXTURE_REPEAT_LENGTH,
114  GLS_SCHEMATICTEEINTERCONNECT_TOP_SHOW_FLOW,
115  GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_RATE,
116  GLS_SCHEMATICTEEINTERCONNECT_TOP_SHOW_FLOW_BLINK,
117  GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_BLINK_RATE,
118  GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_BLINK_START_COLOR,
119  GLS_SCHEMATICTEEINTERCONNECT_TOP_FLOW_BLINK_END_COLOR
120 };
121 
122 #ifdef GLES
123 class GlsGloFileAttribute;
124 #endif
125 
126 /** Runtime implementation of a GlsSchematicTeeInterconnect */
128 {
129 private:
132 
133  void CopyPropertiesInternal( GlsSchematicTeeInterconnect* src );
134 
135 public:
136  typedef GLPolygon _BaseClass;
137  friend class GlsSchematicTeeInterconnectEditor;
138 
139  /** Create a new GlsSchematicTeeInterconnect.
140  * \param generateInstance Whether or not to generate an instance name
141  * for this inputdevice */
142  GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GlsSchematicTeeInterconnect(bool generateInstance=false);
143  GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GlsSchematicTeeInterconnect( const GlsSchematicTeeInterconnect& that, const bool generateNames );
144 
145  /** Destructs a GlsSchematicTeeInterconnect object */
146  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT ~GlsSchematicTeeInterconnect();
147 
148  static GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT DisplayObject* CreateInstance();
149 
150  //////////////////////////////////////////////////
151  // Overridden base class methods
152  //////////////////////////////////////////////////
153 
154  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetAvailableAttributes(unsigned int value);
155  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT DisplayObject* CloneObject(bool generateNames = false);
156  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void CopyProperties(DisplayObject *src);
157 
158 #ifndef GLES
159  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT InterfaceListType* GetCppInterfaceDescription(InterfaceListType* addToThisList= NULL );
160  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void GetCppInterfaceDescriptionFree(InterfaceListType* array);
161 #endif
162 
163  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void Calculate(double time);
164  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void PreDraw( const OpenGLMatrices& parentMatrices,Culler &culler );
165  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void Draw(void);
166 
167  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void CalculateTextureCoordinates(void);
168 
169  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT bool Hit(float x,float y,float z,float scale, const Vector& directionVector,Vector* collisionPoint);
170 
171  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT DisplayObject* handle(DisplayEvent *ev);
172 
173  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetValue(int spec,va_list &args);
174 
175  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void Scale(float px, float py, float pz, Vertex *anchor, int handleBar = 0) { _BaseClass::Scale(px,py,pz,anchor,handleBar); SetRebuild(); }
176 
177  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void Rotate(const Vector &orig,float angle,const Vector &axis) { _BaseClass::Rotate(orig,angle,axis); SetRebuild(); }
178 
179  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetVertices(unsigned int nPoints,Vertex *vertices) { _BaseClass::SetVertices(nPoints,vertices); SetRebuild(); }
180 
181 #ifdef GLES
182  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void Parent(DisplayFrame *parent);
183  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT DisplayFrame *Parent(void) { return DisplayObject::Parent(); }
184 #endif
185 
186  //////////////////////////////////////////////////
187  // GlsSchematicTeeInterconnect specific operations
188  //////////////////////////////////////////////////
189 
190  // see GlsSchematicPolyLineInterconnect::SetLineThickness
191  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetLeftLineThickness( const float lineThickness );
192  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetLeftLineThickness( void ) { return( _left->GetLineThickness() ); }
193  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetRightLineThickness( const float lineThickness );
194  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetRightLineThickness( void ) { return( _right->GetLineThickness() ); }
195  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetBaseLineThickness( const float lineThickness );
196  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetBaseLineThickness( void ) { return( _base->GetLineThickness() ); }
197  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetTopLineThickness( const float lineThickness );
198  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetTopLineThickness( void ) { return( _top->GetLineThickness() ); }
199 
200  // see GlsSchematicPolyLineInterconnect::SetInterconnectTextureIndex
201  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetLeftInterconnectTextureIndex( const int textureIndex );
202  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT int GetLeftInterconnectTextureIndex( void ) { return( _left->TextureIndex() ); }
203  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetRightInterconnectTextureIndex( const int textureIndex );
204  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT int GetRightInterconnectTextureIndex( void ) { return( _right->TextureIndex() ); }
205  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetBaseInterconnectTextureIndex( const int textureIndex );
206  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT int GetBaseInterconnectTextureIndex( void ) { return( _base->TextureIndex() ); }
207  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetTopInterconnectTextureIndex( const int textureIndex );
208  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT int GetTopInterconnectTextureIndex( void ) { return( _top->TextureIndex() ); }
209 
210  // see GlsSchematicPolyLineInterconnect::SetInterconnectTextureRepeatLength
211  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetLeftInterconnectTextureRepeatLength( const float textureRepeatLength );
212  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetLeftInterconnectTextureRepeatLength( void ) { return( _left->GetInterconnectTextureRepeatLength() ); }
213  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetRightInterconnectTextureRepeatLength( const float textureRepeatLength );
214  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetRightInterconnectTextureRepeatLength( void ) { return( _right->GetInterconnectTextureRepeatLength() ); }
215  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetBaseInterconnectTextureRepeatLength( const float textureRepeatLength );
216  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetBaseInterconnectTextureRepeatLength( void ) { return( _base->GetInterconnectTextureRepeatLength() ); }
217  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetTopInterconnectTextureRepeatLength( const float textureRepeatLength );
218  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetTopInterconnectTextureRepeatLength( void ) { return( _top->GetInterconnectTextureRepeatLength() ); }
219 
220  // see GlsSchematicPolyLineInterconnect::SetFlowTextureIndex
221  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetLeftFlowTextureIndex( const int textureIndex );
222  virtual int GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetLeftFlowTextureIndex( void ) { return( _left->GetFlowTextureIndex() ); }
223  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetRightFlowTextureIndex( const int textureIndex );
224  virtual int GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetRightFlowTextureIndex( void ) { return( _right->GetFlowTextureIndex() ); }
225  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetBaseFlowTextureIndex( const int textureIndex );
226  virtual int GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetBaseFlowTextureIndex( void ) { return( _base->GetFlowTextureIndex() ); }
227  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetTopFlowTextureIndex( const int textureIndex );
228  virtual int GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetTopFlowTextureIndex( void ) { return( _top->GetFlowTextureIndex() ); }
229 
230  // see GlsSchematicPolyLineInterconnect::SetFlowTextureRepeatLength
231  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetLeftFlowTextureRepeatLength( const float textureRepeatLength );
232  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetLeftFlowTextureRepeatLength( void ) { return( _left->GetFlowTextureRepeatLength() ); }
233  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetRightFlowTextureRepeatLength( const float textureRepeatLength );
234  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetRightFlowTextureRepeatLength( void ) { return( _right->GetFlowTextureRepeatLength() ); }
235  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetBaseFlowTextureRepeatLength( const float textureRepeatLength );
236  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetBaseFlowTextureRepeatLength( void ) { return( _base->GetFlowTextureRepeatLength() ); }
237  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetTopFlowTextureRepeatLength( const float textureRepeatLength );
238  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT float GetTopFlowTextureRepeatLength( void ) { return( _top->GetFlowTextureRepeatLength() ); }
239 
240  // see GlsSchematicPolyLineInterconnect::SetShowFlow
241  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetLeftShowFlow( const bool showFlow );
242  virtual bool GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetLeftShowFlow( void ) { return( _left->GetShowFlow() ); }
243  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetRightShowFlow( const bool showFlow );
244  virtual bool GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetRightShowFlow( void ) { return( _right->GetShowFlow() ); }
245  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetBaseShowFlow( const bool showFlow );
246  virtual bool GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetBaseShowFlow( void ) { return( _base->GetShowFlow() ); }
247  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetTopShowFlow( const bool showFlow );
248  virtual bool GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetTopShowFlow( void ) { return( _top->GetShowFlow() ); }
249 
250  // see GlsSchematicPolyLineInterconnect::SetFlowRate
251  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetLeftFlowRate( const float flowRate );
252  virtual float GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetLeftFlowRate( void ) { return( _left->GetFlowRate() ); }
253  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetRightFlowRate( const float flowRate );
254  virtual float GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetRightFlowRate( void ) { return( _right->GetFlowRate() ); }
255  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetBaseFlowRate( const float flowRate );
256  virtual float GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetBaseFlowRate( void ) { return( _base->GetFlowRate() ); }
257  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetTopFlowRate( const float flowRate );
258  virtual float GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetTopFlowRate( void ) { return( _top->GetFlowRate() ); }
259 
260  // see GlsSchematicPolyLineInterconnect::SetShowFlowBlink
261  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetLeftShowFlowBlink( const bool showFlowBlink );
262  virtual bool GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetLeftShowFlowBlink( void ) { return( _left->GetShowFlowBlink() ); }
263  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetRightShowFlowBlink( const bool showFlowBlink );
264  virtual bool GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetRightShowFlowBlink( void ) { return( _right->GetShowFlowBlink() ); }
265  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetBaseShowFlowBlink( const bool showFlowBlink );
266  virtual bool GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetBaseShowFlowBlink( void ) { return( _base->GetShowFlowBlink() ); }
267  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetTopShowFlowBlink( const bool showFlowBlink );
268  virtual bool GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetTopShowFlowBlink( void ) { return( _top->GetShowFlowBlink() ); }
269 
270  // see GlsSchematicPolyLineInterconnect::SetFlowBlinkRate
271  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetLeftFlowBlinkRate( const float flowBlinkRate );
272  virtual float GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetLeftFlowBlinkRate( void ) { return( _left->GetFlowBlinkRate() ); }
273  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetRightFlowBlinkRate( const float flowBlinkRate );
274  virtual float GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetRightFlowBlinkRate( void ) { return( _right->GetFlowBlinkRate() ); }
275  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetBaseFlowBlinkRate( const float flowBlinkRate );
276  virtual float GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetBaseFlowBlinkRate( void ) { return( _base->GetFlowBlinkRate() ); }
277  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetTopFlowBlinkRate( const float flowBlinkRate );
278  virtual float GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetTopFlowBlinkRate( void ) { return( _top->GetFlowBlinkRate() ); }
279 
280  // see GlsSchematicPolyLineInterconnect::SetFlowBlinkStartColor
281  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetLeftFlowBlinkStartColor( const glsColor &startColor );
282  virtual glsColor GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetLeftFlowBlinkStartColor( void ) { return( _left->GetFlowBlinkStartColor() ); }
283  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetRightFlowBlinkStartColor( const glsColor &startColor );
284  virtual glsColor GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetRightFlowBlinkStartColor( void ) { return( _right->GetFlowBlinkStartColor() ); }
285  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetBaseFlowBlinkStartColor( const glsColor &startColor );
286  virtual glsColor GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetBaseFlowBlinkStartColor( void ) { return( _base->GetFlowBlinkStartColor() ); }
287  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetTopFlowBlinkStartColor( const glsColor &startColor );
288  virtual glsColor GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetTopFlowBlinkStartColor( void ) { return( _top->GetFlowBlinkStartColor() ); }
289 
290  // see GlsSchematicPolyLineInterconnect::SetFlowBlinkEndColor
291  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetLeftFlowBlinkEndColor( const glsColor &endColor );
292  virtual glsColor GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetLeftFlowBlinkEndColor( void ) { return( _left->GetFlowBlinkEndColor() ); }
293  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetRightFlowBlinkEndColor( const glsColor &endColor );
294  virtual glsColor GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetRightFlowBlinkEndColor( void ) { return( _right->GetFlowBlinkEndColor() ); }
295  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetBaseFlowBlinkEndColor( const glsColor &endColor );
296  virtual glsColor GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetBaseFlowBlinkEndColor( void ) { return( _base->GetFlowBlinkEndColor() ); }
297  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetTopFlowBlinkEndColor( const glsColor &endColor );
298  virtual glsColor GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetTopFlowBlinkEndColor( void ) { return( _top->GetFlowBlinkEndColor() ); }
299 
300  /** set the top of the tee visible
301  * \param topVisible true to set top visible
302  */
303  virtual void SetTopVisible( const bool topVisible );
304 
305  /** determine if the top of the tee is visible
306  * \return true if top is visible
307  */
308  virtual bool GetTopVisible( void ) { return( _top->Visibility() ); }
309 
310 #ifndef GLES
311  /** enable/disable using display list for drawing
312  * \param useDisplayList true to use display list
313  */
314  virtual void GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT SetUseDisplayList( const bool useDisplayList );
315 
316  /** get use display list
317  * \return true if using display list for drawing
318  */
319  virtual bool GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT GetUseDisplayList( void ) { return( _left->GetUseDisplayList() ); }
320 #endif
321 
322 protected:
323  /** helper method to setup render attributes on the given leg to the render attributes of the tee
324  * and then draw the leg
325  * \param leg leg to configure and draw
326  */
327  virtual void DrawLeg( GlsSchematicPolyLineInterconnect *leg );
328 
329  /** flag lines to be adjusted for vertices on next draw */
330  virtual void SetRebuild( void ) { _needsRebuild = true; }
331 
332  /** adjust lines to match vertices */
333  virtual void Rebuild( void );
334 
335 #ifdef GLES
336  /** Set a single attribute from the GLO file.
337  * \param data The attribute to set and its associated data.
338  */
339  virtual GLSGEN_GLSSCHEMATICTEEINTERCONNECT_EXPORT void SetFromGloData(GlsGloFileAttribute &data);
340 #endif
341 
342  GlsSchematicPolyLineInterconnect *_left; /**< left side of tee */
343  GlsSchematicPolyLineInterconnect *_right; /**< right side of tee */
345  GlsSchematicPolyLineInterconnect *_top; /**< top of tee (visible if top enabled) */
346 
347  bool _needsRebuild; /**< true if the lines need to be adjusted to match the vertices */
348 };
349 
350 } // namespace disti
351 
352 #endif
Definition: cull.h:50
Definition: display_frame.h:83
Definition: vertex.h:365
virtual void SetVertices(unsigned int nPoints, Vertex *vertices)
virtual void GetCppInterfaceDescriptionFree(InterfaceListType *array)
virtual glsColor GetFlowBlinkStartColor(void)
Definition: dynamic_array.h:63
Class to contain current OpenGL view, projection and draw matrices.
Definition: util.h:281
The disti::GlsSchematicPolyLineInterconnect class.
bool _needsRebuild
Definition: gls_schematic_tee_interconnect.h:347
GlsSchematicPolyLineInterconnect * _base
Definition: gls_schematic_tee_interconnect.h:344
The Polygon class. Implements Polygons.
Definition: glpolygon.h:56
virtual InterfaceListType * GetCppInterfaceDescription(InterfaceListType *addToThisList=NULL)
virtual void CopyProperties(DisplayObject *src)
virtual void Scale(float px, float py, float pz, Vertex *anchor, int handleBar=0)
Definition: gls_schematic_tee_interconnect.h:175
DisplayFrame * Parent(void) const
Definition: display.h:897
virtual DisplayObject * handle(DisplayEvent *ev)
GlsSchematicPolyLineInterconnect * _right
Definition: gls_schematic_tee_interconnect.h:343
Definition: display.h:98
GlsSchematicPolyLineInterconnect * _left
Definition: gls_schematic_tee_interconnect.h:342
The disti::GLPolygon class. Implements Polygons.
virtual float GetFlowTextureRepeatLength(void)
bool Visibility(void) const
Definition: display.h:1419
GlsSchematicPolyLineInterconnect * _top
Definition: gls_schematic_tee_interconnect.h:345
virtual void SetValue(int spec, va_list &args)
Definition: gls_schematic_tee_interconnect.h:127
virtual bool Hit(float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
virtual void SetVertices(unsigned int nPoints, Vertex *vertices)
Definition: gls_schematic_tee_interconnect.h:179
virtual void SetUseDisplayList(const bool useDisplayList)
virtual int TextureIndex(void)
virtual bool GetTopVisible(void)
Definition: gls_schematic_tee_interconnect.h:308
virtual glsColor GetFlowBlinkEndColor(void)
virtual void PreDraw(const OpenGLMatrices &parentMatrices, Culler &culler)
Definition: events.h:111
virtual void Rotate(float angle, int axis=Z_AXIS)
virtual void Calculate(double time)
The gls_auto_lib.
virtual float GetInterconnectTextureRepeatLength(void)
virtual void Rotate(const Vector &orig, float angle, const Vector &axis)
Definition: gls_schematic_tee_interconnect.h:177
virtual void SetAvailableAttributes(unsigned int value)
Definition: gls_schematic_poly_line_interconnect.h:101
void Scale(int handleBar, float px, float py, Vertex *anchor=NULL)
Definition: display.h:1111
Definition: vertex.h:84
virtual void DrawLeg(GlsSchematicPolyLineInterconnect *leg)
virtual void SetTopVisible(const bool topVisible)
virtual void SetRebuild(void)
Definition: gls_schematic_tee_interconnect.h:330
Macros and helper code to determine what subset of C++11/14/17 is available.
virtual DisplayObject * CloneObject(bool generateNames=false)
virtual void CalculateTextureCoordinates(void)
Definition: bmpimage.h:46
virtual bool GetUseDisplayList(void)
Definition: gls_schematic_tee_interconnect.h:319