GL Studio C++ Runtime API
GlsSchematicPolyLineInterconnect Class Reference

#include <gls_schematic_poly_line_interconnect.h>

Inheritance diagram for GlsSchematicPolyLineInterconnect:
GLPolygon DisplayObject AttributeChangedNotifier WeakReferenceableMixin WeakReferenceable

Classes

struct  CornerCircle
 
struct  InterconnectVertex
 

Public Types

typedef GLPolygon _BaseClass
 Deprecated typedef for the base class.
 
typedef GLPolygon BaseClass
 Typedef for the base class.
 
- Public Types inherited from GLPolygon
typedef DisplayObject _BaseClass
 Deprecated typedef for the base class.
 
typedef DisplayObject BaseClass
 Typedef for the base class.
 
- Public Types inherited from DisplayObject
enum  AvailableAttributesEnum {
  GLS_ATTRIBUTES_BASIC = 1 , GLS_ATTRIBUTES_DYNAMIC = 2 , GLS_ATTRIBUTES_APPEARANCE = 4 , GLS_ATTRIBUTES_GEOMETRY = 8 ,
  GLS_ATTRIBUTES_SPECIALIZED = 16 , GLS_ATTRIBUTES_ALL = ~0 , GLS_ATTRIBUTES_NONE = 0
}
 

Public Member Functions

 GlsSchematicPolyLineInterconnect (const GlsSchematicPolyLineInterconnect &that, const bool generateNames)
 
virtual ~GlsSchematicPolyLineInterconnect ()
 
virtual void SetAvailableAttributes (unsigned int value) DISTI_METHOD_OVERRIDE
 
virtual DisplayObjectCloneObject (bool generateNames=false) DISTI_METHOD_OVERRIDE
 
virtual void CopyGeometry (DisplayObject *src) DISTI_METHOD_OVERRIDE
 
virtual void CopyProperties (DisplayObject *src) DISTI_METHOD_OVERRIDE
 
virtual InterfaceListTypeGetCppInterfaceDescription (InterfaceListType *addToThisList=NULL) DISTI_METHOD_OVERRIDE
 
virtual void GetCppInterfaceDescriptionFree (InterfaceListType *array) DISTI_METHOD_OVERRIDE
 
virtual void Calculate (double time) DISTI_METHOD_OVERRIDE
 
virtual void PreDraw (const OpenGLMatrices &parentMatrices, Culler &culler) DISTI_METHOD_OVERRIDE
 
virtual void Draw () DISTI_METHOD_OVERRIDE
 
virtual void CalculateTextureCoordinates () DISTI_METHOD_OVERRIDE
 
virtual DisplayObjecthandle (DisplayEvent *ev) DISTI_METHOD_OVERRIDE
 
virtual void SetValue (int spec, va_list &args) DISTI_METHOD_OVERRIDE
 
virtual void Scale (float px, float py, float pz, Vertex *anchor, int handleBar=0) DISTI_METHOD_OVERRIDE
 
virtual void GetExtents (float &x, float &y, float &z, float &x1, float &y1, float &z1) DISTI_METHOD_OVERRIDE
 
virtual bool Hit (float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint) DISTI_METHOD_OVERRIDE
 
virtual void Rotate (const Vector &orig, float angle, const Vector &axis) DISTI_METHOD_OVERRIDE
 
virtual Vertex WorldVertex (unsigned int i) DISTI_METHOD_OVERRIDE
 
virtual void SetVertices (unsigned int nPoints, Vertex *vertices) DISTI_METHOD_OVERRIDE
 
void DeleteVertexAt (unsigned int index) DISTI_METHOD_OVERRIDE
 
void InsertVertexAt (unsigned int index) DISTI_METHOD_OVERRIDE
 
virtual void SetOrientationVectors (const Vector &iVector, const Vector &jVector)
 
virtual void GetOrientationVectors (Vector &iVector, Vector &jVector)
 
virtual void SetLineThickness (const float lineThickness)
 
virtual float GetLineThickness ()
 
virtual void SetRoundedCorners (const bool roundedCorners)
 
virtual bool GetRoundedCorners ()
 
virtual void SetCornerRadius (const float cornerRadius)
 
virtual float GetCornerRadius ()
 
virtual void SetForceExactCornerRadius (const bool forceExactCornerRadius)
 
virtual bool GetForceExactCornerRadius ()
 
virtual void SetCornerSegments (const unsigned int cornerSegments)
 
virtual unsigned int GetCornerSegments ()
 
virtual void SetInterconnectTextureIndex (const int interconnectTextureIndex)
 
virtual int GetInterconnectTextureIndex ()
 
virtual void SetInterconnectTextureRepeatLength (const float interconnectTextureRepeatLength)
 
virtual float GetInterconnectTextureRepeatLength ()
 
virtual void SetFlowTextureIndex (const int flowTextureIndex)
 
virtual int GetFlowTextureIndex ()
 
virtual void SetFlowTextureRepeatLength (const float flowTextureRepeatLength)
 
virtual float GetFlowTextureRepeatLength ()
 
virtual void SetShowFlow (const bool showFlow)
 
virtual bool GetShowFlow ()
 
virtual void SetFlowRate (const float flowRate)
 
virtual float GetFlowRate ()
 
virtual void SetShowFlowBlink (const bool showFlowBlink)
 
virtual bool GetShowFlowBlink ()
 
virtual void SetFlowBlinkRate (const float flowBlinkRate)
 
virtual float GetFlowBlinkRate ()
 
virtual void SetFlowBlinkStartColor (const GlsColor &startColor)
 
virtual GlsColor GetFlowBlinkStartColor ()
 
virtual void SetFlowBlinkEndColor (const GlsColor &endColor)
 
virtual GlsColor GetFlowBlinkEndColor ()
 
virtual void SetUseDisplayList (const bool useDisplayList)
 
virtual bool GetUseDisplayList ()
 
virtual void SetEndingChamferDistance (const float endingChamferDistance)
 
virtual float GetEndingChamferDistance ()
 
- Public Member Functions inherited from GLPolygon
 GLPolygon (unsigned int nPoints, const Vertex *vertices)
 
 GLPolygon (unsigned int nPoints, const Vertex *vertices, const Vertex &location)
 
 GLPolygon ()
 
 GLPolygon (const GLPolygon &polygon, const bool generateNames)
 
virtual ~GLPolygon ()
 
void ConfigureMetaData ()
 
virtual DisplayObjectCloneObject (bool generateNames=false)
 
virtual void Draw ()
 
virtual void CalculateTextureCoordinates ()
 
virtual void CalcNormals (int windingOrder=1)
 
virtual void DeleteVertexAt (unsigned int index)
 
virtual DisplayObjectPick3D (const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &parentDrawn)
 
- Public Member Functions inherited from DisplayObject
 DisplayObject (float x, float y, float z)
 
 DisplayObject (const DisplayObject &object, const bool generateNames)
 
virtual ~DisplayObject ()
 
void Destroy ()
 
virtual void SetAvailableAttributes (unsigned int value)
 
virtual void AlphaMode (int mode)
 
virtual int AlphaMode ()
 
virtual bool AntiAlias ()
 
virtual void AntiAlias (bool alias)
 
void ApplyTextureSettings (int textureIndex=-1)
 
DistiAttribDictAttributes ()
 
const DistiAttribDictAttributes () const
 
virtual void SetBlendColor (const GlsColor &color)
 
void GetBlendColor (unsigned char color[])
 
void GetBlendColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
 
virtual GlsColor GetBlendColor ()
 
void SetBlendColor (unsigned char color[])
 
void SetBlendColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
virtual bool BlinkedOff ()
 
virtual bool Blinking ()
 
virtual void Blinking (const bool blink)
 
virtual float BlinkRate ()
 
virtual void BlinkRate (const float rate)
 
const VectorBoundingVolumeCenter () const
 
void BoundingVolumeCenter (const Vector &center)
 
bool BoundingVolumeHit (const Vector &start, const Vector &direction)
 
float BoundingVolumeRadius () const
 
void BoundingVolumeRadius (float radius)
 
virtual void Calculate (double time)
 
void CalculateCollisionPoint (const Vector &pickLoc, const Vector &directionVector, Vector *collisionPoint)
 
virtual void CalculateParentBoundingBox ()
 
virtual void CalculateTextureCoordinates ()
 
bool GetTexturePointTransformationMatrix (GlsMatrixType &world2tex)
 
CallbackMethodCallerBaseCallbackCaller () const
 
void CallbackCaller (CallbackMethodCallerBase *cb)
 
virtual void GetCenter (Vector &center)
 
virtual DisplayObjectCloneObject (bool generateNames=false)=0
 
virtual GlsColor GetColor ()
 
void GetColor (unsigned char c4[])
 
void GetColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
 
virtual void SetColor (const GlsColor &color)
 
void SetColor (unsigned char c4[])
 
void SetColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
virtual void CopyGeometry (DisplayObject *src)
 
virtual void CopyHierarchyProperties (DisplayObject *src, bool copyName)
 
virtual void CopyProperties (DisplayObject *src)
 
virtual InterfaceListTypeGetCppInterfaceDescription (InterfaceListType *addToThisList=NULL)
 
virtual void GetCppInterfaceDescriptionFree (InterfaceListType *array)
 
virtual void CullBackFace (const bool val)
 
virtual bool CullBackFace ()
 
bool Culled () const
 
void Culled (bool val)
 
bool CullTest (const GlsMatrixType *matrix, const Culler &culler)
 
GlsMatrixTypeDcsMatrix ()
 
GlsMatrixType DcsMatrix () const
 
void DcsMatrix (const GlsMatrixType &matrix)
 
virtual void DeleteVertexAt (unsigned int index)
 
virtual void DeleteVertex (unsigned int indexAfter) final
 
virtual int DepthTest ()
 
virtual void DepthTest (unsigned char zbuf)
 
virtual void Draw ()=0
 
const GlsMatrixTypeDrawMatrix ()
 
bool NeedCalcDrawMatrix ()
 
void DynamicRotate (float angle, int axis)
 
void DynamicRotate (const Vector &v)
 
void DynamicRotate (float angle[])
 
virtual void DynamicRotate (float x, float y, float z)
 
virtual void DynamicRotateRelative (float angle, int axis)
 
virtual float DynamicRotation (int axis)
 
virtual Vector DynamicRotation ()
 
virtual Vector DynamicScale ()
 
virtual void DynamicScale (float x, float y, float z)
 
void DynamicScale (const Vector &scale)
 
virtual void DynamicTranslate (float x, float y, float z, bool relative=false)
 
void DynamicTranslate (const Vertex &amount, bool relative)
 
void DynamicTranslate (const Vector &amount)
 
virtual void DynamicTranslate (float amount, int axis, bool relative=false)
 
virtual float DynamicTranslation (int axis)
 
virtual Vector DynamicTranslation ()
 
DisplayObjectEditor * Editor ()
 
const DisplayObjectEditor * Editor () const
 
void Editor (DisplayObjectEditor *editor)
 
virtual void GetExtents (float &x, float &y, float &z, float &x1, float &y1, float &z1)
 
void GetExtentsDCS (Vector &min, Vector &max)
 
void GetFillColor (unsigned char &r, unsigned char &g, unsigned char &b, unsigned char &a)
 
void GetFillColor (unsigned char c4[])
 
virtual GlsColor GetFillColor ()
 
void SetFillColor (unsigned char r, unsigned char g, unsigned char b, unsigned char a)
 
void SetFillColor (unsigned char c4[])
 
virtual void SetFillColor (const GlsColor &color)
 
virtual void FinishObject ()
 
virtual void GenerateInstanceName ()
 
virtual DisplayObjecthandle (DisplayEvent *ev)
 
virtual bool Hit (float x, float y, float z, float scale, const Vector &directionVector, Vector *collisionPoint)
 
virtual bool HitUtil (float x, float y, float z, float scale, Vertex *vertices, unsigned int vertex_cnt, const Vector &directionVector, Vector *collisionPoint)
 
virtual void InsertVertexAt (unsigned int index)
 
virtual void InsertVertex (unsigned int indexAfter) final
 
char * InstanceName ()
 
const char * InstanceName () const
 
void InstanceName (const char *name)
 
virtual bool LightingEnabled ()
 
virtual void LightingEnabled (bool lighting)
 
virtual int LineStippleMultiplier ()
 
virtual void LineStippleMultiplier (int mult)
 
virtual int LineStipplePattern ()
 
virtual void LineStipplePattern (int pattern)
 
virtual float LineWidth ()
 
virtual void LineWidth (float width)
 
virtual const VertexLocation () const
 
virtual void Location (const Vertex &v)
 
virtual void Location (float x, float y, float z)
 
virtual void GetLocation (Vertex &v)
 
virtual void GetLocation (float &x, float &y, float &z)
 
float X () const
 
float Y () const
 
float Z () const
 
void X (const float x)
 
void Y (const float y)
 
void Z (const float z)
 
virtual int MaterialIndex ()
 
virtual void MaterialIndex (int index)
 
virtual DynamicArray< int > & MaterialIndices ()
 
virtual void MaterialIndices (DynamicArray< int > indices)
 
GlsMatrixTypeModelMatrix ()
 
bool NeedCalculate ()
 
VectorNormals ()
 
virtual void SetNormals (unsigned int nPoints, Vector *vertices)
 
void VaSetNormals (unsigned int nPoints,...)
 
unsigned int NumberOfVertices () const
 
virtual float ObjectDepth ()
 
virtual float ObjectHeight ()
 
virtual float ObjectWidth ()
 
virtual void SetOrigin (const Vertex &vert)
 
virtual void Parent (DisplayFrame *par)
 
DisplayFrameParent () const
 
virtual void ParentGroup (Group *group)
 
GroupParentGroup () const
 
virtual DisplayObjectPick3D (const Vector &winLoc, const Vector &logicalCoords, float scale, const Vector &directionVector, Vector &collisionWinLoc, const OpenGLMatrices &drawnMatrices)
 
unsigned char Pickable ()
 
virtual void Pickable (unsigned char pick)
 
virtual int PolygonEnd ()
 
virtual void PolygonEnd (const int end)
 
virtual int PolygonMode ()
 
virtual void PolygonMode (int mode)
 
virtual void PreDraw (const OpenGLMatrices &current, Culler &culler)
 
GlsMatrixTypeProjMatrix ()
 
virtual void ReallocateVertices (unsigned int numVertices, bool initializeNew, bool copyOld)
 
virtual float RelativeAngle (const float x, const float y)
 
virtual DistiAttributeBaseResource (const char *name)
 
virtual void GetResources (std::ostream &outstr, GlsResourceFilter *filter=NULL)
 
void RestoreAlpha ()
 
void RestoreAntiAlias ()
 
void RestoreLighting ()
 
void RestoreLineStyle ()
 
const VertexRotationPoint () const
 
virtual void RotationPoint (const Vertex &v)
 
virtual void RotationPoint (float x, float y, float z)
 
virtual void GetRotationPoint (Vertex &v)
 
virtual void Rotate (float angle, int axis=Z_AXIS)
 
virtual void Rotate (const Vector &origin, float angle, int axis=Z_AXIS)
 
virtual void Rotate (const Vector &orig, float angle, const Vector &axis)
 
void SaveMatrices ()
 
virtual void Scale (float px, float py, float pz, Vertex *anchor, int handleBar=0)
 
void Set (int spec,...)
 
bool SetupAlpha ()
 
bool SetupAntiAlias ()
 
void SetupDepthTest ()
 
void SetupLighting ()
 
bool SetupLineStyle ()
 
void SetupPolyDrawStyle ()
 
void SetupShading ()
 
bool SetupTexture ()
 
virtual int Shading ()
 
virtual void Shading (const int shading)
 
virtual void GetTransformedExtents (Vector &min, Vector &max, const GlsMatrixType &matrix, bool resetMinMax=true)
 
virtual void SetTexCoords (unsigned int nPoints, Vector *new_tex_coord, bool isVectorArray=true)
 
void SetTexCoords (unsigned int nPoints, Vertex *new_tex_coord)
 
void VaSetTexCoords (unsigned int nPoints,...)
 
VectorTextureCoordinates ()
 
VectorGetTextureCoordinates ()
 
virtual int TextureIndex ()
 
virtual void TextureIndex (int textureIndex)
 
virtual VectorGetTexturePoints ()
 
virtual bool TextureRepeat ()
 
virtual void TextureRepeat (const int rep)
 
virtual int TextureMappingTechnique ()
 
virtual void TextureMappingTechnique (const int map)
 
virtual int TextureMagnificationFilter ()
 
virtual void TextureMagnificationFilter (const int filter)
 
virtual int TextureMinificationFilter ()
 
virtual void TextureMinificationFilter (const int filter)
 
virtual void Translate (float tr[])
 
virtual void Translate (float x, float y, float z)
 
virtual void TranslateVertices (float x, float y, float z)
 
virtual void UpdateBoundingVolume ()
 
void * UserData () const
 
void UserData (void *data)
 
virtual void SetVertexColor (unsigned int vertex, unsigned char CurrentFillColor[])
 
virtual VertexVertices ()
 
virtual void SetVertices (unsigned int nPoints, Vertex *vertices)
 
void VaSetVertices (unsigned int nPoints,...)
 
int * ViewMatrix ()
 
bool Visible () const
 
bool Visibility () const
 
virtual void Visibility (const bool vis)
 
virtual Vector WorldRotationPoint ()
 
virtual void WorldRotationPoint (const Vector &vert)
 
virtual Vertex WorldVertex (unsigned int i)
 
virtual void WorldVertex (unsigned int i, const Vertex &vert)
 
bool LogicalToWindow (const Vector &logical, Vector &winLoc, const OpenGLMatrices &alternateMatrices=OpenGLMatrices())
 
bool WindowToLogical (const Vector &winLoc, Vector &logical, Vector *directionVector=NULL, const OpenGLMatrices &alternateMatrices=OpenGLMatrices())
 
void LogicalToDCS (Vector logicalPoint, Vector &objectLocal, const Vector *directionVector, const Vector &planeNormal=Vector(0, 0, 1), const Vector &planePoint=Vector(), const GlsMatrixType *dcsMatrix=NULL)
 
void DCSToLogical (Vector dcsPoint, Vector &logicalPoint, const GlsMatrixType *dcsMatrix=NULL)
 
virtual bool GetPlaneVectorPoints (Vertex &p1, Vertex &p2, Vertex &p3, Vertex &planeVector)
 
void NotifyAttributeChanged (const AttributeName &name) override
 
virtual void SetPainter (GlsPainter *painter)
 
virtual GlsPainterGetPainter ()
 
void InvalidatePainter ()
 
virtual bool IsVisibleInScene (const DisplayObject *obj=NULL) const
 
- Public Member Functions inherited from AttributeChangedNotifier
virtual void NotifyAttributeChanged (const AttributeName &name)=0
 
virtual ~AttributeChangedNotifier ()
 
- Public Member Functions inherited from WeakReferenceableMixin
void AddWeakReference (WeakReference *weakRef) override
 
void NotifyWeakReferenceDestroyed (WeakReference *ref) override
 
virtual void AddWeakReference (WeakReference *weakRef)=0
 
virtual void NotifyWeakReferenceDestroyed (WeakReference *weakReference)=0
 

Static Public Member Functions

static DisplayObjectCreateInstance ()
 
- Static Public Member Functions inherited from GLPolygon
static DisplayObjectCreateInstance ()
 
- Static Public Member Functions inherited from DisplayObject
static InterfaceListTypeStaticGetCppInterfaceDescription (InterfaceListType *addToThisList=NULL)
 
static void UseManualBlinkElapsedTime (bool useManualTime)
 
static void SetManualBlinkElapsedTime (double elapsedTime)
 

Protected Types

typedef DynamicArray< InterconnectVertexInterconnectVertexArray
 
typedef DynamicArray< CornerCircleCornerCircleArray
 
typedef DynamicArray< VectorVectorArray
 

Protected Member Functions

virtual void VerticesChanged ()
 
virtual void OrientationChanged ()
 
virtual GlsMatrixType GetOrientationMatrix ()
 
virtual void SetRebuild ()
 
virtual void Rebuild ()
 
virtual void EmitInterconnectGeometry (const bool drawFlowUVs)
 
virtual void EnablePreviewPath (const bool enablePreviewPath)
 
virtual void EmitPreviewPathGeometry ()
 
virtual VectorArray GetUniqueVerts (const unsigned int numVertices, Vertex *vertices)
 
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 ComputePathLength (CornerCircleArray &cornerCircles)
 
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 float AddInterconnectRoundedCorner (InterconnectVertexArray &interconnectVerts, const CornerCircle &c, float lineThickness, float curLength, const float totalLength, const unsigned int numInterconnectRepeats, const unsigned int numFlowRepeats)
 
- Protected Member Functions inherited from DisplayObject
virtual void VaListSetVertices (unsigned int nPoints, va_list args)
 
virtual void VaListSetNormals (unsigned int nPoints, va_list args)
 
virtual void VaListSetTexCoords (unsigned int nPoints, va_list args)
 
virtual int ColorMaterialMode ()
 
void AllocateModelMatrix ()
 
bool ApplyDynamicRotation ()
 
virtual void CalcDrawMatrix ()
 
void CalcDrawMatrixIfExists ()
 
virtual void CalculateMatrices (const OpenGLMatrices &newMatrices)
 
bool InsideVertexExtents (float x, float y, unsigned int nVerts, Vertex *verts, float tolerance)
 
void LastDrawMatrixLocation (const Vertex &loc)
 
const VertexLastDrawMatrixLocation ()
 
void NeedCalculate (bool val)
 
void PickSetup (float x, float y, float z, Vertex *vertices, unsigned int vertex_cnt, const Vector &directionVector)
 
void PickCleanup (Vertex *vertices, unsigned int vertex_cnt)
 
virtual void SetValue (int spec, va_list &args)
 
int GetApplicableTextureIndex ()
 
int GetApplicableTextureRepeat ()
 
- Protected Member Functions inherited from WeakReferenceableMixin
 WeakReferenceableMixin ()
 
virtual ~WeakReferenceableMixin ()
 

Protected Attributes

Vector _orientation [2]
 
float _lineThickness
 
bool _roundedCorners
 
float _cornerRadius
 
bool _forceExactCornerRadius
 
unsigned int _cornerSegments
 
float _interconnectTextureRepeatLength
 
int _flowTextureIndex
 
float _flowTextureRepeatLength
 
bool _showFlow
 
float _flowRate
 
bool _showFlowBlink
 
float _flowBlinkRate
 
GlsColor _flowBlinkStartColor
 
GlsColor _flowBlinkEndColor
 
bool _needsRebuild
 
double _lastCalculateTime
 
InterconnectVertexArray _interconnectVerts
 
bool _useDisplayList
 
GlsDisplayList _interconnectDisplayList
 
GlsDisplayList _flowDisplayList
 
float _endingChamferDistance
 
bool _drawPreviewPath
 
VectorArray _previewPathPoints
 
CornerCircleArray _previewCornerCircles
 
- Protected Attributes inherited from DisplayObject
int _alphaMode
 
bool _antiAlias
 
bool _attributesAdded
 
bool _blinking
 
float _blinkRate
 
GlsColor _color
 
bool _cullBackFace
 
GlsMatrixType _dcsMatrix
 
unsigned char _depthTest
 
GlsMatrixType_drawMatrix
 
bool _needCalcDrawMatrix
 True if CalcDrawMatrix() needs to be called on this object.
 
unsigned char _lineStippleMultiplier
 
unsigned short _lineStipplePattern
 
float _lineWidth
 
Vertex _location
 
DynamicArray< int > _materialIndices
 List of materials associated with this object.
 
GlsMatrixType_modelMatrix
 
Vector_normals
 
unsigned int _nTex_vertices
 
unsigned int _nVertices
 
unsigned char _polygonEnd
 
unsigned char _polygonMode
 
GlsMatrixType_projMatrix
 
unsigned char _shading
 
Vector_texCoord
 
GlsColor _textureBlendColor
 
int _textureIndex
 
unsigned char _textureMagFilter
 
unsigned char _textureMinFilter
 
unsigned char _textureMap
 
Vector _texturePoints [4]
 
unsigned char _textureRepeat
 
void * _userData
 
Vertex_vertices
 
int * _viewMatrix
 
bool _visible
 
- Protected Attributes inherited from WeakReferenceableMixin
DynamicArray< WeakReference * > * _weakRefs
 

Friends

class GlsSchematicPolyLineInterconnectEditor
 

Detailed Description

Runtime implementation of a GlsSchematicPolyLineInterconnect

Member Typedef Documentation

◆ CornerCircleArray

◆ InterconnectVertexArray

◆ VectorArray

typedef DynamicArray<Vector> VectorArray
protected

array of Vector

Constructor & Destructor Documentation

◆ GlsSchematicPolyLineInterconnect()

GlsSchematicPolyLineInterconnect ( const GlsSchematicPolyLineInterconnect that,
const bool  generateNames 
)

Copy constructor

Parameters
thatThe object to copy from.
generateNamesWhether or not to generate an instance name for this object.

◆ ~GlsSchematicPolyLineInterconnect()

virtual ~GlsSchematicPolyLineInterconnect ( )
virtual

Member Function Documentation

◆ AddInterconnectLineSegment()

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 
)
protectedvirtual

Add a line segment to the given array of interconnect verts.

Parameters
interconnectVertsReceives line segment is start and finish are not virtually the same point.
startStarting point of line segment.
finishFinish point of line segment.
lineThicknessThickness of line segment.
curLengthCurrent length of path at the starting point.
totalLengthTotal length of path that contains the line segment.
numInterconnectRepeatsNumber of interconnect texture repeats over entire path that contains the line segment.
numFlowRepeatsNumber of flow texture repeats over entire path that contains the line segment.
lastSegmentInPath[optional, defaults to false] true if this line segment is the last in the path.
Returns
The length of the resulting segment.

◆ AddInterconnectRoundedCorner()

virtual float AddInterconnectRoundedCorner ( InterconnectVertexArray interconnectVerts,
const CornerCircle c,
float  lineThickness,
float  curLength,
const float  totalLength,
const unsigned int  numInterconnectRepeats,
const unsigned int  numFlowRepeats 
)
protectedvirtual

Add a rounded to the given array of interconnect verts.

Parameters
interconnectVertsReceives line segment is start and finish are not virtually the same point.
cInfo for rounded corner to add.
lineThicknessThickness of line segment.
curLengthCurrent length of path at the starting point.
totalLengthTotal length of path that contains the line segment.
numInterconnectRepeatsNumber of interconnect texture repeats over entire path that contains the line segment.
numFlowRepeatsNumber of flow texture repeats over entire path that contains the line segment.
Returns
The size of the resulting corner.

◆ Calculate()

virtual void Calculate ( double  time)
virtual

Provides a mechanism for performing regular calculations, seperate from drawing. In a standalone applicaton Calculate is recursively called by the main loop before the objects are drawn.

Parameters
timeThe elaspsed time in seconds since program start

Reimplemented from DisplayObject.

◆ CalculateTextureCoordinates()

virtual void CalculateTextureCoordinates ( )
virtual

Recalculates the texture coordinates for the object based on the TexturePoints.

Reimplemented from GLPolygon.

◆ CloneObject()

virtual DisplayObject * CloneObject ( bool  generateNames = false)
virtual

Copy+Create operation in one method. In derived classes, this method will create a new instance of the derived class and then copy the object into the new instance. The cut,copy,paste and undo operations use this method.

Parameters
generateNamesWhether or not to generate new names for cloned objects
Returns
A new object, identical to the original, except for the instance name

Reimplemented from GLPolygon.

◆ ComputePathLength()

virtual float ComputePathLength ( CornerCircleArray cornerCircles)
protectedvirtual

Compute the length of the path described by the given corner array.

Parameters
cornerCirclesThe corners in question.
Returns
The length of the computed path.

◆ CopyGeometry()

virtual void CopyGeometry ( DisplayObject src)
virtual

Copies the geometry information from one object to another. Used by the undo mechanism to allow user to undo a geometry change.

Parameters
srcThe object to copy geometry from

Reimplemented from DisplayObject.

◆ CopyProperties()

virtual void CopyProperties ( DisplayObject src)
virtual

Copies the attributes except for geometry attributes from one object to another. Used by the undo mechanism to undo most attribute change operations.

Parameters
srcThe object to copy properties from

Reimplemented from DisplayObject.

◆ CreateInstance()

static DisplayObject * CreateInstance ( )
static
Returns
A pointer to a new GlsSchematicPolyLineInterconnect object.

◆ DeleteVertexAt()

void DeleteVertexAt ( unsigned int  index)
virtual

DeleteVertexAt is overloaded in polygon to prevent having a poly with less than 2 verts. This prevents incorrect GL calls when polygon is set to POLY_MODE_FILLED

Parameters
indexThe index of the vertex to delete.

Reimplemented from GLPolygon.

◆ Draw()

virtual void Draw ( )
virtual

Draws this object on the current display frame (_parent member).

Reimplemented from GLPolygon.

◆ EmitInterconnectGeometry()

virtual void EmitInterconnectGeometry ( const bool  drawFlowUVs)
protectedvirtual

emit the geomentry in _interconnectQuads to OpenGL as quads and an outline

Parameters
drawFlowUVstrue to draw with flow UV's else false to draw with interconnect UV's

◆ EmitPreviewPathGeometry()

virtual void EmitPreviewPathGeometry ( )
protectedvirtual

emit the preview path geometry to GL – mainly used fir debugging and when the line is selected in the editor

◆ EnablePreviewPath()

virtual void EnablePreviewPath ( const bool  enablePreviewPath)
protectedvirtual

turn on/off preview Path drawing ( useful for debugging and when the object is selected in the editor )

Parameters
enablePreviewPathtrue to enable else false

◆ FindCornerCircle()

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 
)
protectedvirtual

Find a corner circle that will fit the corner defined by v0 -> v1 -> v2

Parameters
v0starting point
v1corner point
v2ending point
desiredCornerRadiusdesired radius for corner circle
minRadiusminimum radius for ccorner circle
forceExactCornerRadiustrue if the corner can only be rounded with a radius equal to the desiredCornerRadius else false to allow a smaller radius to be used if needed (>minRadius)
c[out] receives corner info
forceCircle[optional, defaults to false] true to force a rounded corner to be found (used to avoid lack of precision issues when the circle is tangent at the midpoint of either v0 -> v1, or v1 -> v2
Returns
true if a rounded corner was found

◆ GetCornerRadius()

virtual float GetCornerRadius ( )
virtual

get the corner radius in logical units

Returns
the corner radius in logical units

◆ GetCornerSegments()

virtual unsigned int GetCornerSegments ( )
virtual

get the number of segments used in rounded corners

Returns
the number of segments used in rounded corners

◆ GetCppInterfaceDescription()

virtual InterfaceListType * GetCppInterfaceDescription ( InterfaceListType addToThisList = NULL)
virtual

Get the details of the Cpp Interface The actual interface is exposed in compiled code.

Parameters
addToThisListIf not NULL this list will be added to then returned. If NULL a new list will be created.
Returns
A templated list.
The caller must call the corresponding free method to safely free the memory.

Reimplemented from DisplayObject.

◆ GetCppInterfaceDescriptionFree()

virtual void GetCppInterfaceDescriptionFree ( InterfaceListType array)
virtual

Frees the memory allocated by a previous call to GetCppInterfaceDescription

Parameters
arrayMemory allocated by a previous call to GetCppInterfaceDescription

Reimplemented from DisplayObject.

◆ GetEndingChamferDistance()

virtual float GetEndingChamferDistance ( )
virtual

get the last segment chamfer distance (NOTE: not controllable in editor, usually used by the GlsSchematicTeeInterconnect plugin at runtime)

Returns
distance from end of last line segment to start chamfer ( 0.0f to disable )

◆ GetExtents()

virtual void GetExtents ( float &  x,
float &  y,
float &  z,
float &  x1,
float &  y1,
float &  z1 
)
virtual

Figure out the static extents for the object. Used by the editor as part of the pick operation and for figuring out the size of groups.

Parameters
xGets the minimum x extent
yGets the minimum y extent
zGets the minimum z extent
x1Gets the maximum x extent
y1Gets the maximum y extent
z1Gets the maximum z extent

Reimplemented from DisplayObject.

◆ GetFlowBlinkEndColor()

virtual GlsColor GetFlowBlinkEndColor ( )
virtual

get the flow blink end color

Returns
the flow blink end color

◆ GetFlowBlinkRate()

virtual float GetFlowBlinkRate ( )
virtual

get the flow blink rate in hz

Returns
the flow blink rate in hz

◆ GetFlowBlinkStartColor()

virtual GlsColor GetFlowBlinkStartColor ( )
virtual

get the flow blink start color

Returns
the flow blink start color

◆ GetFlowRate()

virtual float GetFlowRate ( )
virtual

get the flow rate in "flow textures" / second

Returns
the flow rate in "flow textures" / second

◆ GetFlowTextureIndex()

virtual int GetFlowTextureIndex ( )
virtual

get the flow texture index else NO_TEXTURE if no flow texture

Returns
the flow texture index else NO_TEXTURE if no flow texture

◆ GetFlowTextureRepeatLength()

virtual float GetFlowTextureRepeatLength ( )
virtual

get the number of logical units per flow texture repeat ( >0.0 )

Returns
the number of logical units per flow texture repeat ( >0.0 )

◆ GetForceExactCornerRadius()

virtual bool GetForceExactCornerRadius ( )
virtual

get force exact corner radius state

Returns
force exact corner radius state

◆ GetInterconnectTextureIndex()

virtual int GetInterconnectTextureIndex ( )
virtual

get the interconnect texture index else NO_TEXTURE if no interconnect texture

Returns
the interconnect texture index else NO_TEXTURE if no interconnect texture

◆ GetInterconnectTextureRepeatLength()

virtual float GetInterconnectTextureRepeatLength ( )
virtual

get the number of logical units per interconnect texture repeat ( >0.0 )

Returns
the number of logical units per interconnect texture repeat ( >0.0 )

◆ GetLineThickness()

virtual float GetLineThickness ( )
virtual

get the line thickness in logical units

Returns
the line thickness in logical units

◆ GetOrientationMatrix()

virtual GlsMatrixType GetOrientationMatrix ( )
protectedvirtual

get the rotation matrix for the current _orientation vectors

Returns
the rotation matrix for the current _orientation vectors

◆ GetOrientationVectors()

virtual void GetOrientationVectors ( Vector iVector,
Vector jVector 
)
virtual

get the i and j orientation vectors that orient the 2-D schematic in 3 space

Parameters
iVector[out] iVector
jVector[out] jVector

◆ GetRoundedCorners()

virtual bool GetRoundedCorners ( )
virtual

get rounded corners

Returns
rounded corners

◆ GetShowFlow()

virtual bool GetShowFlow ( )
virtual

get whether or not the flow is displayed

Returns
true if flow is show else false

◆ GetShowFlowBlink()

virtual bool GetShowFlowBlink ( )
virtual

get whether or not the flow blink is displayed (NOTE: normal flow is not drawn if flow blink is true)

Returns
true if flow blink is shown else false

◆ GetUniqueVerts()

virtual VectorArray GetUniqueVerts ( const unsigned int  numVertices,
Vertex vertices 
)
protectedvirtual

Eliminate adjacent vertices that are not unique between each other

Parameters
numVerticesnumber of input vertices
verticesinput vertices
Returns
array of unique verts

◆ GetUseDisplayList()

virtual bool GetUseDisplayList ( )
virtual

get use display list

Returns
true if using display list for drawing

◆ handle()

virtual DisplayObject * handle ( DisplayEvent ev)
virtual

Handles an event that is sent to the object.

Parameters
evThe event to send to the object
Returns
Which object handled the event

Reimplemented from DisplayObject.

◆ Hit()

virtual bool Hit ( float  x,
float  y,
float  z,
float  scale,
const Vector directionVector,
Vector collisionPoint 
)
virtual

Determines if the object is hit by a pick ray starting at (x,y,z) and pointing towards directionVector in object logical coordinate system. If Pickable() == PICK_BEST it will return the closest point that was hit, otherwise it returns the first point that was hit. This method should not pick points behind the viewer.

Parameters
xX coordinate of pick ray start in logical coordinates.
yY coordinate of pick ray start in logical coordinates.
zZ coordinate of pick ray start in logical coordinates.
scaleThe scale factor of the window. Affects picking of outlines. Standard value is 1.0.
directionVectorThe direction of the pick ray.
collisionPointIf this method returns true, this Vector will contain the location that was hit in logical coordinates.
Returns
boolean indicating if the object was hit by the pick ray.

Reimplemented from DisplayObject.

◆ InsertVertexAt()

void InsertVertexAt ( unsigned int  index)
virtual

Insert a vertex at index. Duplicate the vertex pointed to by index, so that there are two vertices that are exactly the same. If index is greater than the number of vertices, then the last vertex is duplicated.

Parameters
indexThe index to insert a vertex at.

Reimplemented from DisplayObject.

◆ OrientationChanged()

virtual void OrientationChanged ( )
protectedvirtual

notify that the orientation vectors have changed

◆ PreDraw()

virtual void PreDraw ( const OpenGLMatrices current,
Culler culler 
)
virtual

Traverses the hierarchy calculating the _modelMatrix, _projMatrix, _viewMatrix as needed.

Parameters
currentCurrent matrices inherited from parent
cullerObject that possibly marks this object for culling

Reimplemented from DisplayObject.

◆ Rebuild()

virtual void Rebuild ( )
protectedvirtual

rebuild the polyline

◆ Rotate()

virtual void Rotate ( const Vector orig,
float  angle,
const Vector axis 
)
virtual

Rotates the object (around the specified axis) by the angle indicated, at the point specified. Recalculates the vertex data.

Parameters
origThe point to rotate around
angleThe angle to rotate by, in degrees
axisThe arbitrary axis to rotate the object around

Reimplemented from DisplayObject.

◆ Scale()

virtual void Scale ( float  px,
float  py,
float  pz,
Vertex anchor,
int  handleBar = 0 
)
virtual

Scales the object, either the handleBar, or the Anchor is used to translate the object, not both. Anchor takes presidence, if it is set HandleBar is ignored. The footprint is different from the 2D scale so the compiler can destinguish the two.

Parameters
pxValue of the percentage of scale in x-axis
pyValue of the percentage of scale in y-axis
pzValue of the percentage of scale in z-axis
anchorAnchor from which to scale object relative to
handleBarVertex that is being dragged

Reimplemented from DisplayObject.

◆ SetAvailableAttributes()

virtual void SetAvailableAttributes ( unsigned int  value)
virtual

Specifies which attributes are available for the object. Currently the available attributes cannot be changed after they have been set. (Only the first call has an effect.)

Parameters
valueA bitfield specifying which types of attributes to make available.
See also
AvailableAttributesEnum

Reimplemented from DisplayObject.

◆ SetCornerRadius()

virtual void SetCornerRadius ( const float  cornerRadius)
virtual

set the corner radius in logical units

Parameters
cornerRadiusnew corner radisu in logical units
Precondition
cornerRadius > 0.0f

◆ SetCornerSegments()

virtual void SetCornerSegments ( const unsigned int  cornerSegments)
virtual

set the number of segments used in rounded corners

Parameters
cornerSegmentsnumber of segments to use in rounded corners
Precondition
2 <= cornerSegments <= 100

◆ SetEndingChamferDistance()

virtual void SetEndingChamferDistance ( const float  endingChamferDistance)
virtual

set the last segment chamfer distance (NOTE: not controllable in editor, usually used by the GlsSchematicTeeInterconnect plugin at runtime)

Parameters
endingChamferDistancedistance from end of last line segment to start chamfer ( 0.0f to disable )
Precondition
endingChamferDistance >= 0.0f

◆ SetFlowBlinkEndColor()

virtual void SetFlowBlinkEndColor ( const GlsColor endColor)
virtual

set the flow blink end color

Parameters
endColorflow blink end color

◆ SetFlowBlinkRate()

virtual void SetFlowBlinkRate ( const float  flowBlinkRate)
virtual

set the flow blink rate in hz

Parameters
flowBlinkRateflow blink rate in hz

◆ SetFlowBlinkStartColor()

virtual void SetFlowBlinkStartColor ( const GlsColor startColor)
virtual

set the flow blink start color

Parameters
startColorflow blink start color

◆ SetFlowRate()

virtual void SetFlowRate ( const float  flowRate)
virtual

set the flow rate in "flow textures" / second

Parameters
flowRateflow rate in "flow textures" / second

◆ SetFlowTextureIndex()

virtual void SetFlowTextureIndex ( const int  flowTextureIndex)
virtual

set the flow texture index

Parameters
flowTextureIndexnew flow texture index else NO_TEXTURE if no flow texture

◆ SetFlowTextureRepeatLength()

virtual void SetFlowTextureRepeatLength ( const float  flowTextureRepeatLength)
virtual

set the number of logical units per flow texture repeat ( >0.0 ) NOTE: number of actual repeats for the whole interconnect is always rounded to the nearest whole number so that adjacent interconnect's textures lineup

Parameters
flowTextureRepeatLengthnew flow texture repeat length
Precondition
flowTextureRepeatLength > 0.0f

◆ SetForceExactCornerRadius()

virtual void SetForceExactCornerRadius ( const bool  forceExactCornerRadius)
virtual

set force exact corner radius

Parameters
forceExactCornerRadiustrue to force rounded corners to use the exact corner radius specified by SetCornerRadius(). If true, a corner that cannot be made with this radius will not be rounded.

◆ SetInterconnectTextureIndex()

virtual void SetInterconnectTextureIndex ( const int  interconnectTextureIndex)
virtual

set the interconnect texture index

Parameters
interconnectTextureIndexnew interconnect texture index else NO_TEXTURE if no interconnect texture

◆ SetInterconnectTextureRepeatLength()

virtual void SetInterconnectTextureRepeatLength ( const float  interconnectTextureRepeatLength)
virtual

set the number of logical units per interconnect texture repeat ( >0.0 ) NOTE: number of actual repeats for the whole interconnect is always rounded to the nearest whole number so that adjacent interconnect's textures lineup

Parameters
interconnectTextureRepeatLengthnew interconnect texture repeat length
Precondition
interconnectTextureRepeatLength > 0.0f

◆ SetLineThickness()

virtual void SetLineThickness ( const float  lineThickness)
virtual

set the line thickness in logical units

Parameters
lineThicknessnew line thickness in logical units
Precondition
lineThickness > 0.0f

◆ SetOrientationVectors()

virtual void SetOrientationVectors ( const Vector iVector,
const Vector jVector 
)
virtual

set the i and j orientation vectors that orient the 2-D schematic in 3 space

Parameters
iVectornew iVector
jVectornew jVector
Precondition
i and j should be orhogonal

◆ SetRebuild()

virtual void SetRebuild ( )
protectedvirtual

flag line to be rebuilt on next draw

◆ SetRoundedCorners()

virtual void SetRoundedCorners ( const bool  roundedCorners)
virtual

set rounded corners

Parameters
roundedCornerstrue for rounded corners

◆ SetShowFlow()

virtual void SetShowFlow ( const bool  showFlow)
virtual

set whether or not the flow is displayed

Parameters
showFlowtrue to show flow else false

◆ SetShowFlowBlink()

virtual void SetShowFlowBlink ( const bool  showFlowBlink)
virtual

set whether or not the flow blink is displayed (NOTE: normal flow is not drawn if flow blink is true)

Parameters
showFlowBlinktrue to show flow blink else false

◆ SetUseDisplayList()

virtual void SetUseDisplayList ( const bool  useDisplayList)
virtual

enable/disable using display list for drawing

Parameters
useDisplayListtrue to use display list

◆ SetValue()

virtual void SetValue ( int  spec,
va_list &  args 
)
virtual

Sets an attribute of this object using variable arguments

Parameters
specA GLS_Initializer tag
argsA variable argument list

Reimplemented from DisplayObject.

◆ SetVertices()

virtual void SetVertices ( unsigned int  nPoints,
Vertex vertices 
)
virtual

Sets the vertex data for this polygon You should call UpdateBoundingVolume after changing an object's extents.

See also
UpdateBoundingVolume
Parameters
nPointsThe number of vertices in the object
verticesThe vertex data for the object

Reimplemented from DisplayObject.

◆ VerticesChanged()

virtual void VerticesChanged ( )
protectedvirtual

notify that vertices have changed

◆ WorldVertex()

virtual Vertex WorldVertex ( unsigned int  i)
virtual

Gets a vertex from the object, in World coordinates (i.e. not relative to the location as is the case with the Vertices() API call).

Parameters
iIndex of the vertex to get
Returns
The vertex

Reimplemented from DisplayObject.

Member Data Documentation

◆ _cornerRadius

float _cornerRadius
protected

radius for rounded corners ( >0.0 )

◆ _cornerSegments

unsigned int _cornerSegments
protected

number of segments to use in rounded corners (2 <= cornerSegments <= 100)

◆ _drawPreviewPath

bool _drawPreviewPath
protected

true to draw the preview path (mainly used in editor)

◆ _endingChamferDistance

float _endingChamferDistance
protected

distance from end of last line segment to start chamfer ( 0.0f to disable ) ( >= 0.0f )

◆ _flowBlinkEndColor

GlsColor _flowBlinkEndColor
protected

ending color for flow blink

◆ _flowBlinkRate

float _flowBlinkRate
protected

rate of flow blink in hz >= 0.0

◆ _flowBlinkStartColor

GlsColor _flowBlinkStartColor
protected

starting color for flow blink

◆ _flowDisplayList

GlsDisplayList _flowDisplayList
protected

display list for drawing flow (if using display lists)

◆ _flowRate

float _flowRate
protected

the flow rate in "flow textures" / second

◆ _flowTextureIndex

int _flowTextureIndex
protected

texture index for flow texture else NO_TEXTURE

◆ _flowTextureRepeatLength

float _flowTextureRepeatLength
protected

number of logical units per flow texture repeat ( >0.0 ) NOTE: number of actual repeats for the whole interconnect is always rounded to the nearest whole number so that adjacent interconnect's textures lineup

◆ _forceExactCornerRadius

bool _forceExactCornerRadius
protected

true to force rounded corners to use the exact corner radius specified by _cornerRadius. If true, a corner that cannot be made with this radius will not be rounded.

◆ _interconnectDisplayList

GlsDisplayList _interconnectDisplayList
protected

display list for drawing interconnect (if using display lists)

◆ _interconnectTextureRepeatLength

float _interconnectTextureRepeatLength
protected

number of logical units per interconnect texture repeat ( >0.0 ) NOTE: number of actual repeats for the whole interconnect is always rounded to the nearest whole number so that adjacent interconnect's textures lineup

◆ _interconnectVerts

InterconnectVertexArray _interconnectVerts
protected

2D verts and texture coords computed for interconnect

◆ _lastCalculateTime

double _lastCalculateTime
protected

last time stamp given to Calculate() method

◆ _lineThickness

float _lineThickness
protected

thickness of line in logical units ( >0.0 )

◆ _needsRebuild

bool _needsRebuild
protected

true if the line needs to be rebuilt

◆ _orientation

Vector _orientation[2]
protected

Two orthogonal vectors defining the orientation

◆ _previewCornerCircles

CornerCircleArray _previewCornerCircles
protected

corners in preview path

◆ _previewPathPoints

VectorArray _previewPathPoints
protected

points in preview path

◆ _roundedCorners

bool _roundedCorners
protected

true for rounded corners

◆ _showFlow

bool _showFlow
protected

true to draw flow in interconnect else false

◆ _showFlowBlink

bool _showFlowBlink
protected

true to draw the flow blink else false (NOTE: normal flow is not drawn if flow blink is true)

◆ _useDisplayList

bool _useDisplayList
protected

true to draw using display lists


The documentation for this class was generated from the following file: