![]() |
#include <Element.h>
Public Member Functions | |
| Element () | |
| Constructor. | |
| virtual | ~Element () |
| Destructor. | |
| void | SetDragging (bool dragging=true) |
| Set if the element are being dragged. More... | |
| void | SetHeight (double height) |
| Set element height. More... | |
| void | SetPosition (const wxPoint2DDouble position) |
| Set the element position and update the rectangle. More... | |
| void | SetSelected (bool selected=true) |
| Set element selection. More... | |
| void | SetWidth (double width) |
| Set element width. More... | |
| void | SetAngle (double angle) |
| Set element angle. More... | |
| void | ShowPickbox (bool showPickbox=true) |
| Set if the pickbox is shown. More... | |
| void | SetBorderSize (double borderSize) |
| Set the size of the border (shown in selected elements). More... | |
| bool | SetOnline (bool online=true) |
| Set if the element is online or offline. More... | |
| virtual void | SetPointList (std::vector< wxPoint2DDouble > pointList) |
| Set the list of points that connect the element to the bus. More... | |
| wxRect2DDouble | GetRect () const |
| Get the element rectangle. More... | |
| wxPoint2DDouble | GetPosition () const |
| Get the element position. More... | |
| bool | IsDragging () const |
| Checks if the element is being dragged. More... | |
| double | GetHeight () const |
| Get the element height. More... | |
| bool | IsSelected () const |
| Checks if the element is selected. More... | |
| double | GetWidth () const |
| Get the element width. More... | |
| double | GetAngle () const |
| Get the element angle. More... | |
| double | GetRotationAngle () const |
| Get the angle of rotation. More... | |
| bool | IsPickboxShown () const |
| Checks if the pickbox is shown. More... | |
| bool | IsOnline () const |
| Checks if the element is online or offline. More... | |
| virtual std::vector< wxPoint2DDouble > | GetPointList () const |
| Get the list of points that connect the element to bus. More... | |
| virtual bool | AddParent (Element *parent, wxPoint2DDouble position) |
| Add a parent to the element. This method must be used on power elements that connect to a bus, so the parent must be a bus. The element basic points are calculated in this method, so apply this when the element is being inserted. More... | |
| virtual void | AddParent (Element *parent) |
| Add a parent to the element. More... | |
| virtual bool | Contains (wxPoint2DDouble position) const =0 |
| Checks if the element contains a position. More... | |
| virtual bool | Intersects (wxRect2DDouble rect) const =0 |
| Check if the element's rect intersects other rect. More... | |
| virtual Element * | GetCopy () |
| Get a the element copy. More... | |
| virtual void | SetID (int id) |
| Set the element ID. More... | |
| virtual int | GetID () const |
| Get the element ID. More... | |
| virtual void | AddChild (Element *child) |
| Add a child to the child list. More... | |
| virtual void | RemoveChild (Element *child) |
| Remove a child from the list. More... | |
| virtual void | ReplaceChild (Element *oldChild, Element *newChild) |
| Replace a child from the list. More... | |
| virtual wxString | GetTipText () const |
| Get the tip text. More... | |
| virtual void | Draw (wxPoint2DDouble translation, double scale) const |
| Draw the element. More... | |
| virtual void | Rotate (bool clockwise=true) |
| Rotate the element. More... | |
| virtual bool | GetContextMenu (wxMenu &menu) |
| Get the element contex menu. More... | |
| virtual void | AddPoint (wxPoint2DDouble point) |
| Add point to the list of points that connect the element to the bus. More... | |
| virtual void | StartMove (wxPoint2DDouble position) |
| Update the element attributes related to the movement. More... | |
| virtual void | Move (wxPoint2DDouble position) |
| Move the element other position. More... | |
| virtual void | MoveNode (Element *parent, wxPoint2DDouble position) |
| Move a node. StartMove(wxPoint2DDouble position) before start moving. More... | |
| virtual bool | NodeContains (wxPoint2DDouble position) |
| Check if a node contains a point. If contains, set the attributes related to node movement. More... | |
| virtual void | UpdateNodes () |
| Update the nodes according to the parents. If a parent is removed, use this method. | |
| virtual bool | SetNodeParent (Element *parent) |
| Set a perent to the node. If all conditions are met, a new parent are added to the element and the points related to the nodes will be calculated. More... | |
| virtual void | RemoveParent (Element *parent) |
| Remove a parent. More... | |
| virtual void | ReplaceParent (Element *oldParent, Element *newParent) |
| Replace a parent. More... | |
| virtual void | RotateNode (Element *parent, bool clockwise=true) |
| Rotate a node. More... | |
| virtual bool | PickboxContains (wxPoint2DDouble position) |
| Check if a pickbox contains a point. If contains the attributes related to pickbox movement will be calculated. More... | |
| virtual void | MovePickbox (wxPoint2DDouble position) |
| Move the pickbox. More... | |
| virtual wxCursor | GetBestPickboxCursor () const |
| Get the best cursor to shown to the user when the mouse is above a pickbox. More... | |
| virtual void | ResetPickboxes () |
| Remove the pickboxes. | |
| virtual void | ResetNodes () |
| Remove the active nodes. | |
| virtual wxPoint2DDouble | WorldToScreen (wxPoint2DDouble translation, double scale, double offsetX=0.0, double offsetY=0.0) const |
| Convert the element position to screen position. More... | |
| virtual wxPoint2DDouble | WorldToScreen (wxPoint2DDouble position, wxPoint2DDouble translation, double scale, double offsetX=0.0, double offsetY=0.0) const |
| Convert a generic position to screen position. More... | |
| virtual bool | RotatedRectanglesIntersects (wxRect2DDouble rect1, wxRect2DDouble rect2, double angle1, double angle2) const |
| Check if two roteted rectangles intersect. More... | |
| virtual void | DrawCircle (wxPoint2DDouble position, double radius, int numSegments, GLenum mode=GL_LINE_LOOP) const |
| Draw a circle. More... | |
| virtual void | DrawArc (wxPoint2DDouble position, double radius, double initAngle, double finalAngle, int numSegments, GLenum mode=GL_LINE_LOOP) const |
| virtual void | DrawRectangle (wxPoint2DDouble position, double width, double height, GLenum mode=GL_QUADS) const |
| Draw rectangle. More... | |
| virtual void | DrawRectangle (wxPoint2DDouble *points, GLenum mode=GL_QUADS) const |
| Draw rectangle. More... | |
| virtual void | DrawTriangle (std::vector< wxPoint2DDouble > points, GLenum mode=GL_TRIANGLES) const |
| Draw a triangle. More... | |
| virtual void | DrawPoint (wxPoint2DDouble position, double size) const |
| Draw a point. More... | |
| virtual void | DrawLine (std::vector< wxPoint2DDouble > points, GLenum mode=GL_LINE_STRIP) const |
| Draw line. More... | |
| virtual void | DrawPickbox (wxPoint2DDouble position) const |
| Draw pickbox. More... | |
| virtual wxPoint2DDouble | RotateAtPosition (wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const |
| Rotate a point as element position being the origin. More... | |
| virtual std::vector< Element * > | GetParentList () const |
| Get the parent list. More... | |
| virtual std::vector< Element * > | GetChildList () const |
| Get the Child list. More... | |
| virtual void | CalculateBoundaries (wxPoint2DDouble &leftUp, wxPoint2DDouble &rightBottom) const |
| Calculate the element boundaries. More... | |
| virtual void | GeneralMenuItens (wxMenu &menu) |
| Insert general itens to context menu. More... | |
| virtual bool | ShowForm (wxWindow *parent, Element *element) |
| Show element data form. More... | |
| virtual double | PointToLineDistance (wxPoint2DDouble point, int *segmentNumber=NULL) const |
| Calculate the distance between a line (formed by point list) and a point. More... | |
Static Public Member Functions | |
| static bool | DoubleFromString (wxWindow *parent, wxString strValue, double &value, wxString errorMsg) |
| Get a double value from a string. Show a error message if the conversion fail. More... | |
| static bool | IntFromString (wxWindow *parent, wxString strValue, int &value, wxString errorMsg) |
| Convert a string to int. Show a error message if the conversion fail. More... | |
| static wxString | StringFromDouble (double value, int minDecimal=1) |
| Convert a double value to string. More... | |
Protected Attributes | |
| int | m_elementID = 0 |
| std::vector< Element * > | m_parentList |
| std::vector< Element * > | m_childList |
| wxRect2DDouble | m_rect |
| wxPoint2DDouble | m_position |
| double | m_width = 0.0 |
| double | m_height = 0.0 |
| double | m_angle = 0.0 |
| double | m_borderSize = 2.0 |
| double | m_rotationAngle = 45.0 |
| double | m_switchSize = 10.0 |
| std::vector< wxRect2DDouble > | m_switchRect |
| bool | m_selected = false |
| bool | m_dragging = false |
| bool | m_showPickbox = false |
| int | m_activePickboxID = ID_PB_NONE |
| int | m_activeNodeID = 0 |
| std::vector< wxPoint2DDouble > | m_pointList |
| std::vector< wxPoint2DDouble > | m_movePts |
| wxPoint2DDouble | m_moveStartPt |
| wxPoint2DDouble | m_movePos |
| bool | m_online = true |
| OpenGLColour | m_selectionColour |
|
virtual |
Add a child to the child list.
| child | New child. |
Definition at line 353 of file Element.cpp.
|
inlinevirtual |
Add a parent to the element. This method must be used on power elements that connect to a bus, so the parent must be a bus. The element basic points are calculated in this method, so apply this when the element is being inserted.
Reimplemented in Transformer, Text, Bus, Line, Load, Capacitor, Inductor, and Machines.
|
inlinevirtual |
|
inlinevirtual |
|
virtual |
Calculate the element boundaries.
| leftUp | Top-left position of the element. |
| rightBottom | Bottom-right position of the element. |
Reimplemented in Line.
Definition at line 263 of file Element.cpp.
|
pure virtual |
Checks if the element contains a position.
| position | Position to be checked. |
Implemented in Transformer, Text, Bus, Line, IOControl, Gain, Constant, TransferFunction, Capacitor, Inductor, Exponential, ConnectionLine, Limiter, Multiplier, RateLimiter, Machines, Sum, Branch, and Shunt.
|
static |
Get a double value from a string. Show a error message if the conversion fail.
| parent | Message box parent. |
| strValue | String value to be converted. |
| value | Double value converted. |
| errorMsg | Error message. |
Definition at line 292 of file Element.cpp.
|
inlinevirtual |
Draw the element.
| translation | Translation of the system. |
| scale | Scale of the system. |
Reimplemented in Transformer, Bus, Line, IOControl, Load, Gain, Constant, TransferFunction, Capacitor, Inductor, Exponential, ConnectionLine, Limiter, Multiplier, RateLimiter, Machines, Sum, and Branch.
|
virtual |
Draw a circle.
| position | Circle position. |
| radius | Circle radius |
| numSegments | Num of segments of the circle. |
| mode | OpenGl primitive. |
Definition at line 33 of file Element.cpp.
|
virtual |
Draw line.
| points | Line vertices. |
| mode | OpenGl primitive. |
Definition at line 89 of file Element.cpp.
|
virtual |
|
virtual |
Draw a point.
| position | Point position. |
| size | Point size. |
Definition at line 139 of file Element.cpp.
|
virtual |
Draw rectangle.
| position | Rectangle position. |
| width | Rectangle width. |
| height | Rectangle height. |
| mode | OpenGl primitive. |
Definition at line 69 of file Element.cpp.
|
virtual |
Draw rectangle.
| points | Rectangle vertices. |
| mode | OpenGl primitive. |
Definition at line 79 of file Element.cpp.
|
virtual |
Draw a triangle.
| points | Triangle vertices. |
| mode | OpenGl primitive. |
Definition at line 60 of file Element.cpp.
|
virtual |
Insert general itens to context menu.
| menu | Menu that will be inserted the general itens. |
Definition at line 245 of file Element.cpp.
|
inline |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
Get the element contex menu.
| menu | menu that will be inserted the element itens. |
Reimplemented in SyncGenerator, SyncMotor, Transformer, Bus, Line, Load, Branch, Capacitor, Inductor, and IndMotor.
|
inlinevirtual |
Get a the element copy.
Reimplemented in SyncGenerator, SyncMotor, Transformer, Text, Bus, RateLimiter, Line, IOControl, ConnectionLine, TransferFunction, Gain, Exponential, Constant, Limiter, Multiplier, Sum, Load, IndMotor, Capacitor, and Inductor.
|
inline |
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
|
inline |
|
pure virtual |
Check if the element's rect intersects other rect.
| rect | Rect to check intersection. |
Implemented in Transformer, Text, Bus, Line, IOControl, Gain, Constant, TransferFunction, Capacitor, Inductor, Exponential, Branch, ConnectionLine, Limiter, Multiplier, RateLimiter, Machines, Sum, and Shunt.
|
static |
Convert a string to int. Show a error message if the conversion fail.
| parent | Message box parent. |
| strValue | String value to be converted. |
| value | Int value converted. |
| errorMsg | Error message. |
Definition at line 306 of file Element.cpp.
|
inline |
|
inline |
|
inline |
|
inline |
|
virtual |
Move the element other position.
| position | Position that the element will be moved. Use StartMove(wxPoint2DDouble position) before start moving. |
Reimplemented in ControlElement, Transformer, Line, Gain, ConnectionLine, Machines, Branch, and Shunt.
Definition at line 123 of file Element.cpp.
|
inlinevirtual |
Move a node. StartMove(wxPoint2DDouble position) before start moving.
| parent | Node's parent. |
| position | New node position. |
Reimplemented in Transformer, Line, Machines, Branch, and Shunt.
|
inlinevirtual |
|
inlinevirtual |
|
inlinevirtual |
|
virtual |
Calculate the distance between a line (formed by point list) and a point.
| point | origin point. |
| segmentNumber | Sotores the segment number clicked |
Definition at line 383 of file Element.cpp.
|
virtual |
Remove a child from the list.
| child | Child to remove. |
Definition at line 354 of file Element.cpp.
|
inlinevirtual |
Replace a child from the list.
| oldChild | Old child. |
| newChild | New child. |
Definition at line 362 of file Element.cpp.
Replace a parent.
| oldParent | Parent to be replaced. |
| newParent | New parent. |
Definition at line 346 of file Element.cpp.
|
inlinevirtual |
Rotate the element.
| clockwise | True to rotate clockwise, false to rotate counter-clockwise. |
Reimplemented in Transformer, Text, Bus, IOControl, Gain, Machines, Constant, Load, TransferFunction, Capacitor, Exponential, Inductor, Limiter, Multiplier, RateLimiter, and Sum.
|
virtual |
Rotate a point as element position being the origin.
| pointToRotate | Point that will be rotated. |
| angle | Angle of rotation. |
| degrees | True if the angle is in degrees, false if radians. |
Definition at line 107 of file Element.cpp.
|
virtual |
Check if two roteted rectangles intersect.
| rect1 | First rect. |
| rect2 | Second rect. |
| angle1 | Rotation algle of first rectangle. |
| angle2 | Rotation angle of second rectangle. |
Definition at line 147 of file Element.cpp.
|
inlinevirtual |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinevirtual |
|
inlinevirtual |
| bool Element::SetOnline | ( | bool | online = true | ) |
Set if the element is online or offline.
| online | True if online, false if offline. |
Definition at line 235 of file Element.cpp.
|
inlinevirtual |
| void Element::SetPosition | ( | const wxPoint2DDouble | position | ) |
Set the element position and update the rectangle.
| position | Position value. |
Definition at line 25 of file Element.cpp.
|
inline |
|
inline |
|
inlinevirtual |
Show element data form.
| parent | Form parent |
| element | Element that will be edited. |
Reimplemented in SyncGenerator, SyncMotor, Transformer, Bus, Line, IOControl, Load, Capacitor, Inductor, Gain, Constant, IndMotor, TransferFunction, Exponential, Limiter, Multiplier, RateLimiter, and Sum.
|
inline |
|
virtual |
Update the element attributes related to the movement.
| position | Start move position. |
Reimplemented in ControlElement, Transformer, Line, ConnectionLine, Machines, Shunt, and Branch.
Definition at line 117 of file Element.cpp.
|
static |
Convert a double value to string.
| value | Value to be converted. |
| minDecimal | Minimum number of decimal places. |
Definition at line 320 of file Element.cpp.
|
virtual |
Convert the element position to screen position.
| translation | System translation. |
| scale | System scale |
| offsetX | Offset in X axis. |
| offsetY | Offset if Y axis. |
Definition at line 124 of file Element.cpp.
|
virtual |
Convert a generic position to screen position.
| position | Position to be converted. |
| translation | System translation. |
| scale | System scale. |
| offsetX | Offset in X axis. |
| offsetY | Offset in Y axis. |
Definition at line 130 of file Element.cpp.