Vuo  2.4.1
Public Member Functions | Static Public Member Functions | Static Public Attributes | Protected Member Functions | Static Protected Member Functions | Protected Attributes | Friends | List of all members
VuoRendererPort Class Reference

Description

Renders a node's port in a QGraphicsScene.

Typically automatically created by a VuoRendererNode instance.

Definition at line 32 of file VuoRendererPort.hh.

Public Member Functions

 VuoRendererPort (VuoPort *basePort, VuoRendererSignaler *signaler, bool isOutput, bool isRefreshPort, bool isFunctionPort)
 Creates a renderer detail for the specified base port. More...
 
QRectF boundingRect (void) const
 Returns the bounding rectangle of this port (and its optional name and plug). More...
 
QRectF getNameRect (void) const
 Returns the cached bounding box of the port's label. More...
 
bool hasPortAction (void) const
 Returns true if this port has a port action. More...
 
QRectF getActionIndicatorRect (void) const
 Returns the bounding rectangle of the port action symbol. More...
 
QPainterPath shape (void) const
 Returns the shape of the rendered port, for use in collision detection, hit tests, and QGraphicsScene::items() functions. More...
 
void paint (QPainter *painter, const QStyleOptionGraphicsItem *option, QWidget *widget)
 Draws an input or output port (both standard ports and refresh/function ports). More...
 
bool getEligibleForSelection (void)
 Returns a boolean indicating whether this port has been deemed eligible for selection based on its proximity to the cursor. More...
 
bool isEligibleForConnection (void)
 Returns a boolean indicating whether this port is eligible for direct or typecast-assisted connection to the cable currently being dragged between ports. More...
 
void setEligibilityHighlight (VuoRendererColors::HighlightType eligibility)
 Sets whether this port is eligible for direct or typecast-assisted connection to the cable currently being dragged between ports. More...
 
VuoRendererColors::HighlightType eligibilityHighlight (void)
 Returns the status of this port's ability to connect to the cable currently being dragged. More...
 
void extendedHoverEnterEvent (bool cableDragUnderway=false, bool disableConnectedCableHighlight=false)
 Handle mouse hover start events generated by custom code making use of an extended hover range. More...
 
void extendedHoverMoveEvent (bool cableDragUnderway=false, bool disableConnectedCableHighlight=false)
 Handle mouse hover move events generated by custom code making use of an extended hover range. More...
 
void extendedHoverLeaveEvent ()
 Handle mouse hover leave events generated by custom code making use of an extended hover range. More...
 
bool canConnectDirectlyWithoutSpecializationTo (VuoRendererPort *toPort, bool eventOnlyConnection)
 Returns a boolean indicating whether there may be a cable attached directly from this port to toPort, taking into account the respective port types (input vs. More...
 
bool canConnectDirectlyWithSpecializationTo (VuoRendererPort *toPort, bool eventOnlyConnection)
 Returns a boolean indicating whether there may be a cable attached directly from this port to toPort, taking into account the respective port types (input vs. More...
 
bool canConnectDirectlyWithSpecializationTo (VuoRendererPort *toPort, bool eventOnlyConnection, VuoRendererPort **portToSpecialize, string &specializedTypeName)
 Returns a boolean indicating whether there may be a cable attached directly from this port to toPort, taking into account the respective port types (input vs. More...
 
VuoCablegetCableConnectedTo (VuoRendererPort *toPort, bool includePublishedCables)
 Returns the cable connecting this port to toPort, or NULL if not applicable. More...
 
bool getInput (void) const
 Returns a boolean indicating whether this port is an input port. More...
 
bool getOutput (void) const
 Returns a boolean indicating whether this port is an output port. More...
 
bool getRefreshPort (void) const
 Returns true if this port is a refresh port. More...
 
bool getFunctionPort (void) const
 Returns true if this port is a function port. More...
 
void updateNameRect (void)
 Updates the cached bounding box of the port's label. More...
 
void updateGeometry ()
 Schedules a redraw of this port. More...
 
QVariant itemChange (GraphicsItemChange change, const QVariant &value)
 Updates the port to reflect changes in state. More...
 
QPainterPath getPortPath () const
 Returns a closed path representing the port's circle/triangle and its constant value. More...
 
VuoRendererInputDrawergetAttachedInputDrawer (void) const
 Returns the input drawer that is rendered as if it is attached to this port (whether or not it is in the underlying composition), or NULL if none. More...
 
virtual QRectF getPortConstantTextRect (void) const
 Returns a rect enclosing the string representation of the port's constant value. More...
 
VuoTypegetDataType (void) const
 Returns the data type associated with this port, or NULL if there is no associated data type. More...
 
bool hasURLType (void) const
 Returns a boolean indicating whether this port expects a URL as input. More...
 
bool hasRelativeReadURLConstantValue (void) const
 Returns a boolean indicating whether this port currently has a relative input file path as a constant value. More...
 
bool isConstant (void) const
 Returns true if this port has a constant data value. More...
 
bool effectivelyHasConnectedDataCable (bool includePublishedCables) const
 Returns true if this port has a connected cable that effectively carries data. More...
 
string getConstantAsString (void) const
 Returns the string representation of this port's constant data value, or an empty string if it has none. More...
 
string getConstantAsTruncatedStringToRender (void) const
 Returns the truncated string representation of this port's constant data value as it should be rendered in its constant data flag, or an empty string if it has no currently assigned constant data value. More...
 
string getConstantAsStringToRender (void) const
 Returns the untruncated string representation of this port's constant data value as it should be rendered in a port tooltip, or an empty string if it has no currently assigned constant data value. More...
 
string getStringForRealValue (double value) const
 Given a real number, returns the string representation of the number as it should be rendered within a constant data flag. More...
 
string getStringForRealValue (float value) const
 Given a real number, returns the string representation of the number as it should be rendered within a constant data flag. More...
 
void setConstant (string constantValue)
 Sets this port's constant data value to that represented by the provided constantValue string. More...
 
string getPortNameToRender () const
 Returns the name of the port as it should be rendered. More...
 
string getPortNameToRenderWhenDisplayed () const
 Returns the name of the port as it should be rendered when it is to be rendered at all. More...
 
void setPortNameToRender (string name)
 Sets the name of the port as it should be rendered. More...
 
bool getPublishable () const
 Returns a boolean indicating whether this port is publishable. More...
 
vector< VuoRendererPublishedPort * > getPublishedPorts () const
 Returns a vector of pointers to the externally visible published ports connected to this port. More...
 
vector< VuoRendererPublishedPort * > getPublishedPortsConnectedByDataCarryingCables (void) const
 Returns a vector of pointers to the externally visible published ports connected to this port by data-carrying cables. More...
 
VuoNode::TintColor getPortTint () const
 Returns the tint color to be used in rendering the port shape. More...
 
VuoRendererNodegetUnderlyingParentNode (void) const
 Returns a pointer to the node to which this port belongs in the underlying Graphviz (.dot/.vuo) representation of the composition. More...
 
VuoRendererNodegetRenderedParentNode (void) const
 Returns a pointer to the node currently rendered as this port's parent. More...
 
set< VuoRendererInputAttachment * > getAllUnderlyingUpstreamInputAttachments (void) const
 Returns a set containing the input attachments connected directly or indirectly to this port in the underlying composition. More...
 
set< VuoRendererPort * > getPortsConnectedWirelessly (bool includePublishedCables) const
 Returns the set of ports that have antennas connected by wireless cable to this one. More...
 
VuoRendererPortgetTypecastParentPort () const
 Returns this port's typecast parent port, or NULL if it has none. More...
 
void setTypecastParentPort (VuoRendererPort *typecastParentPort)
 Sets this port's typecast parent port. More...
 
bool supportsDisconnectionByDragging (void)
 Returns a boolean indicating whether this port supports cable disconnection by dragging from the port. More...
 
void resetTimeLastEventFired ()
 Resets the time that the last event was fired to a value that causes the port to be painted as if activity-rendering were disabled. More...
 
void setFiredEvent ()
 Updates the port's state to indicate that it has just fired an event. More...
 
void setFadePercentageSinceEventFired (qreal percentage)
 Updates the port's state to indicate that it fired an event at such a time that its fade percentage should now be equal to percentage. More...
 
void setCacheModeForPortAndChildren (QGraphicsItem::CacheMode mode)
 Sets the cache mode of this port, and any child ports, to mode. More...
 
vector< QGraphicsItemAnimation * > getAnimations ()
 Returns the 'Show Events'-mode animations associated with this port. More...
 
void setAnimated (bool animated)
 Sets the boolean indicating whether this port is an animation, and not itself a component of the base composition. More...
 
bool isHiddenRefreshPort (void)
 Returns true if this port is a refresh port that should be hidden because it has no connected cables. More...
 
bool carriesData (void) const
 Returns true if this port is a data+event port (regular or trigger). More...
 
- Public Member Functions inherited from VuoRendererItem
void setSelectable (bool selectable)
 Enables or disables selection for the item. More...
 
- Public Member Functions inherited from VuoBaseDetail< VuoPort >
 VuoBaseDetail (string description, VuoPort *base)
 Creates a detail class. More...
 
VuoPortgetBase (void) const
 Returns the detail class instance's base class instance. More...
 
void setBase (VuoPort *base)
 Sets the detail class instance's base class instance. More...
 

Static Public Member Functions

static QRectF getPortRect (void)
 Returns a rectangle encompassing the port's circle. More...
 
static int getTextWidth (QString text)
 Returns the width of text as rendered using VuoRendererFonts::nodePortConstantFont. More...
 
static string format (const char *format,...)
 Returns a new string formatted using the printf-style format string. More...
 
static string stringAndFree (char *strz)
 Creates an std::string from strz, then frees it. More...
 
static QString getPortNameRegExp ()
 Returns a string representation of the regular expression that describes valid port names. More...
 
static QString sanitizePortName (QString portName)
 Sanitizes the provided portName to meet the requirements of a valid port name. More...
 
- Static Public Member Functions inherited from VuoRendererItem
static void setSnapToGrid (bool snap)
 Specifies whether graphics items should be snapped to a grid. More...
 
static void setDrawBoundingRects (bool drawBoundingRects)
 Specifies whether bounding rects will be shown the next time the QGraphicsScene is rendered. More...
 
static bool shouldDrawBoundingRects (void)
 Returns whether bounding rects are currently being shown. More...
 
static void drawRect (QPainter *painter, QRectF rect)
 Draws a rect, for debugging. More...
 
static bool getSnapToGrid ()
 Retrieves the boolean indicating whether graphics items should be snapped to a grid. More...
 

Static Public Attributes

static const qreal portRadius = 8
 Radius, in pixels at 1:1 zoom, of a circular port. More...
 
static const qreal portSpacing = 15
 Vertical distance, in pixels at 1:1 zoom, between the center points of two ports. More...
 
static const qreal portContainerMargin = 3.333333
 Vertical distance, in pixels at 1:1 zoom, between the outer edge of the first/last port and the node frame rect. More...
 
static const qreal portInset = 1.4
 The vertical and horizontal inset used when rendering a circular or refresh port shape within its outer port rect. More...
 
static const qreal portBarrierWidth = 5.5
 The stroke width of event barriers. More...
 
static const qreal portConstantTextPadding = 6.5
 Empty space left and right of the constant text, inside the constant flag. More...
 

Protected Member Functions

void mouseDoubleClickEvent (QGraphicsSceneMouseEvent *event)
 Handle mouse double-click events. More...
 
void keyPressEvent (QKeyEvent *event)
 Handle key-press events. More...
 
void updateCachedBoundingRect ()
 Recalculates cachedBoundingRect. More...
 
bool portNameRenderingEnabled (void) const
 Returns a boolean indicating whether the port name should be rendered along with this port, taking into account the port's own attributes as well as whether the port will be rendered within a published port sidebar. More...
 
void updateEnabledStatus ()
 Determines whether this port will accept mouse events based on the port's current attributes. More...
 
VuoRendererInputDrawergetAttachedInputDrawerRenderedWithHostPort (const VuoRendererPort *port) const
 Returns the input drawer that is rendered as if it is attached to targetHostPort (whether or not it is in the underlying composition), or NULL if none. More...
 
VuoRendererInputAttachmentgetUnderlyingInputAttachment (void) const
 Returns the input drawer attached to this port in the underlying composition (whether or not it is rendered as if it is), or NULL if none. More...
 
void updateCachedPortPath ()
 Recalculates cachedPortPath. More...
 
QRectF getEventBarrierRect (void) const
 Returns a rectangle encompassing the port's event barrier. More...
 
virtual QPainterPath getWirelessAntennaPath () const
 Returns the path of the antenna that represents any connected wireless cables, or an empty path if not applicable. More...
 
bool hasConnectedWirelessDataCable (bool includePublishedCables) const
 Returns true if this port has a connected data+event cable that should currently be rendered wirelessly. More...
 
bool hasConnectedWirelessEventCable (bool includePublishedCables) const
 Returns true if this port has a connected event-only cable that should currently be rendered wirelessly. More...
 
VuoNode::TintColor getWirelessAntennaTint () const
 Returns the tint color of the wireless antenna. More...
 
qint64 getTimeOfLastActivity ()
 Returns the time of the port's latest activity for purposes of "Show Events" mode event tracking. More...
 
void paintPortName (QPainter *painter, VuoRendererColors *colors)
 Paints the port's label. More...
 
void paintEventBarrier (QPainter *painter, VuoRendererColors *colors)
 Paints the port's event wall or door. More...
 
void paintActionIndicator (QPainter *painter, VuoRendererColors *colors)
 Draws the port action symbol (a triangle to the right of the port name) if this port has a port action. More...
 
void paintWirelessAntenna (QPainter *painter, VuoRendererColors *colors)
 Draws the wireless antenna to represent any wireless cables connected to this port. More...
 
string getDefaultPortNameToRender ()
 Returns the default display name of the port. More...
 
string getPointStringForCoords (QList< float >) const
 Given a list of coordinates, returns the string representation of the point consisting of those coordinate values as it should be rendered within a constant data flag. More...
 
- Protected Member Functions inherited from VuoRendererItem
void drawBoundingRect (QPainter *painter)
 Draws this item's bounding rect, for debugging. More...
 
bool getRenderActivity () const
 Retrieves the composition-wide boolean indicating whether recent activity (e.g., a node execution or event firing) by this item should be reflected in its rendering. More...
 
bool getRenderHiddenCables () const
 Retrieves the composition-wide boolean indicating whether hidden ("wireless") cables should be rendered as if they were not hidden. More...
 
QGraphicsItem::CacheMode getCurrentDefaultCacheMode () const
 Returns the current default cache mode for components of this composition. More...
 

Static Protected Member Functions

static QRectF getPortConstantTextRectForText (QString text)
 Returns a rect enclosing the specified text. More...
 
static QPainterPath getPortPath (qreal inset, VuoPortClass::PortType portType, QString constantText, bool isInputPort, bool carriesData)
 Returns a path representing the circle/triangle and its constant value, for a port with type portType. More...
 
- Static Protected Member Functions inherited from VuoRendererItem
static void addRoundedCorner (QPainterPath &path, bool drawLine, QPointF sharpCornerPoint, qreal radius, bool isTop, bool isLeft)
 Appends a line (or move) and curve to path, to produce a clockwise-wound rounded corner near sharpCornerPoint. More...
 

Protected Attributes

bool isRefreshPort
 Is this port a refresh port? More...
 
QRectF cachedBoundingRect
 Bounding rect calculation is slow, and Qt calls it often, so cache it. More...
 
QRectF nameRect
 The bounding box of the port's label when rendered on the canvas. More...
 
string customizedPortName
 The name of the port as it should be rendered. More...
 
QPainterPath cachedPortPath
 Path calculation is slow, and we call it often, so cache it. More...
 
VuoRendererSignalersignaler
 The Qt signaler used by this port. More...
 

Friends

class VuoRendererPublishedPort
 VuoRendererPublishedPort needs paint(...) and boundingRect() More...
 
class TestVuoRenderer
 

Additional Inherited Members

- Public Types inherited from VuoRendererItem
enum  activityState { notTrackingActivity = -1 , activityInProgress = 0 }
 Special composition component activity states. More...
 
enum  zValues {
  triggerAnimationZValue = 1 , nodeZValue = 0 , portZValue = -1 , attachmentZValue = -2 ,
  cableZValue = -3 , errorMarkZValue = -4 , commentZValue = -5
}
 Stacking order for canvas elements. More...
 

Constructor & Destructor Documentation

◆ VuoRendererPort()

VuoRendererPort::VuoRendererPort ( VuoPort basePort,
VuoRendererSignaler signaler,
bool  isOutput,
bool  isRefreshPort,
bool  isFunctionPort 
)

Creates a renderer detail for the specified base port.

Definition at line 87 of file VuoRendererPort.cc.

◆ ~VuoRendererPort()

VuoRendererPort::~VuoRendererPort ( )

Definition at line 2534 of file VuoRendererPort.cc.

Member Function Documentation

◆ boundingRect()

QRectF VuoRendererPort::boundingRect ( void  ) const

Returns the bounding rectangle of this port (and its optional name and plug).

Definition at line 664 of file VuoRendererPort.cc.

◆ canConnectDirectlyWithoutSpecializationTo()

bool VuoRendererPort::canConnectDirectlyWithoutSpecializationTo ( VuoRendererPort toPort,
bool  eventOnlyConnection 
)

Returns a boolean indicating whether there may be a cable attached directly from this port to toPort, taking into account the respective port types (input vs.

output; event-only vs. event+data; respective data types).

The eventOnlyConnection argument should indicate whether the cable potentially connecting the two ports would be an always-event-only cable.

If the connection would require one or both ports to be specialized, returns false. (But see VuoRendererPort::canConnectDirectlyWithSpecializationTo(...).)

Definition at line 1184 of file VuoRendererPort.cc.

◆ canConnectDirectlyWithSpecializationTo() [1/2]

bool VuoRendererPort::canConnectDirectlyWithSpecializationTo ( VuoRendererPort toPort,
bool  eventOnlyConnection 
)

Returns a boolean indicating whether there may be a cable attached directly from this port to toPort, taking into account the respective port types (input vs.

output; event-only vs. event+data; respective data types), and the possibility that one port may be specialized in preparation for the connection.

The eventOnlyConnection argument should indicate whether the cable potentially connecting the two ports would be an always-event-only cable.

Convenience function for VuoRendererPort::canConnectDirectlyWithSpecializationTo(const VuoRendererPort *toPort, VuoRendererPort **portToSpecialize, string &specializedTypeName), for use when only the returned boolean and none of the other output parameter values are needed.

Definition at line 1237 of file VuoRendererPort.cc.

◆ canConnectDirectlyWithSpecializationTo() [2/2]

bool VuoRendererPort::canConnectDirectlyWithSpecializationTo ( VuoRendererPort toPort,
bool  eventOnlyConnection,
VuoRendererPort **  portToSpecialize,
string &  specializedTypeName 
)

Returns a boolean indicating whether there may be a cable attached directly from this port to toPort, taking into account the respective port types (input vs.

output; event-only vs. event+data; respective data types), and the possibility that one port may be specialized in preparation for the connection.

Parameters
[in]toPortThe port to consider connecting to.
[in]eventOnlyConnectionA boolean indicating whether the connection under consideration would be always-event-only.
[out]portToSpecializeThe port, either this port or toPort, that will require specialization in order for the connection to be completed. Does not account for potential cascade effects. May be NULL, if the connection may be completed without specialization.
[out]specializedTypeNameThe name of the specialized port type with which the generic port type is to be replaced.

Definition at line 1258 of file VuoRendererPort.cc.

◆ carriesData()

bool VuoRendererPort::carriesData ( void  ) const

Returns true if this port is a data+event port (regular or trigger).

Definition at line 1399 of file VuoRendererPort.cc.

◆ effectivelyHasConnectedDataCable()

bool VuoRendererPort::effectivelyHasConnectedDataCable ( bool  includePublishedCables) const

Returns true if this port has a connected cable that effectively carries data.

For details on what it means to effectively carry data, see VuoRendererCable::effectivelyCarriesData().

Definition at line 1516 of file VuoRendererPort.cc.

◆ eligibilityHighlight()

VuoRendererColors::HighlightType VuoRendererPort::eligibilityHighlight ( void  )

Returns the status of this port's ability to connect to the cable currently being dragged.

Definition at line 1106 of file VuoRendererPort.cc.

◆ extendedHoverEnterEvent()

void VuoRendererPort::extendedHoverEnterEvent ( bool  cableDragUnderway = false,
bool  disableConnectedCableHighlight = false 
)

Handle mouse hover start events generated by custom code making use of an extended hover range.

Definition at line 1114 of file VuoRendererPort.cc.

◆ extendedHoverLeaveEvent()

void VuoRendererPort::extendedHoverLeaveEvent ( )

Handle mouse hover leave events generated by custom code making use of an extended hover range.

Definition at line 1151 of file VuoRendererPort.cc.

◆ extendedHoverMoveEvent()

void VuoRendererPort::extendedHoverMoveEvent ( bool  cableDragUnderway = false,
bool  disableConnectedCableHighlight = false 
)

Handle mouse hover move events generated by custom code making use of an extended hover range.

If the optional highlightOnlyIfConnectable boolean is set to true, enable hover highlighting for this port only if the port is eligible for connection to the cable currently being connected.

Definition at line 1124 of file VuoRendererPort.cc.

◆ format()

string VuoRendererPort::format ( const char *  format,
  ... 
)
static

Returns a new string formatted using the printf-style format string.

Definition at line 1528 of file VuoRendererPort.cc.

◆ getActionIndicatorRect()

QRectF VuoRendererPort::getActionIndicatorRect ( void  ) const

Returns the bounding rectangle of the port action symbol.

Assumes this port has a port action.

Definition at line 832 of file VuoRendererPort.cc.

◆ getAllUnderlyingUpstreamInputAttachments()

set< VuoRendererInputAttachment * > VuoRendererPort::getAllUnderlyingUpstreamInputAttachments ( void  ) const

Returns a set containing the input attachments connected directly or indirectly to this port in the underlying composition.

Assumption: A given port can have at most one input attachment.

Definition at line 509 of file VuoRendererPort.cc.

◆ getAnimations()

vector< QGraphicsItemAnimation * > VuoRendererPort::getAnimations ( )

Returns the 'Show Events'-mode animations associated with this port.

Definition at line 2451 of file VuoRendererPort.cc.

◆ getAttachedInputDrawer()

VuoRendererInputDrawer * VuoRendererPort::getAttachedInputDrawer ( void  ) const

Returns the input drawer that is rendered as if it is attached to this port (whether or not it is in the underlying composition), or NULL if none.

Definition at line 449 of file VuoRendererPort.cc.

◆ getAttachedInputDrawerRenderedWithHostPort()

VuoRendererInputDrawer * VuoRendererPort::getAttachedInputDrawerRenderedWithHostPort ( const VuoRendererPort port) const
protected

Returns the input drawer that is rendered as if it is attached to targetHostPort (whether or not it is in the underlying composition), or NULL if none.

Definition at line 458 of file VuoRendererPort.cc.

◆ getCableConnectedTo()

VuoCable * VuoRendererPort::getCableConnectedTo ( VuoRendererPort toPort,
bool  includePublishedCables 
)

Returns the cable connecting this port to toPort, or NULL if not applicable.

Definition at line 1312 of file VuoRendererPort.cc.

◆ getConstantAsString()

string VuoRendererPort::getConstantAsString ( void  ) const

Returns the string representation of this port's constant data value, or an empty string if it has none.

Definition at line 1559 of file VuoRendererPort.cc.

◆ getConstantAsStringToRender()

string VuoRendererPort::getConstantAsStringToRender ( void  ) const

Returns the untruncated string representation of this port's constant data value as it should be rendered in a port tooltip, or an empty string if it has no currently assigned constant data value.

Definition at line 1600 of file VuoRendererPort.cc.

◆ getConstantAsTruncatedStringToRender()

string VuoRendererPort::getConstantAsTruncatedStringToRender ( void  ) const

Returns the truncated string representation of this port's constant data value as it should be rendered in its constant data flag, or an empty string if it has no currently assigned constant data value.

Definition at line 1575 of file VuoRendererPort.cc.

◆ getDataType()

VuoType * VuoRendererPort::getDataType ( void  ) const

Returns the data type associated with this port, or NULL if there is no associated data type.

Definition at line 1436 of file VuoRendererPort.cc.

◆ getDefaultPortNameToRender()

string VuoRendererPort::getDefaultPortNameToRender ( )
protected

Returns the default display name of the port.

This may be overridden. (See VuoRendererPort::setPortNameToRender(string name)).

Definition at line 812 of file VuoRendererPort.cc.

◆ getEligibleForSelection()

bool VuoRendererPort::getEligibleForSelection ( void  )

Returns a boolean indicating whether this port has been deemed eligible for selection based on its proximity to the cursor.

Definition at line 1080 of file VuoRendererPort.cc.

◆ getEventBarrierRect()

QRectF VuoRendererPort::getEventBarrierRect ( void  ) const
protected

Returns a rectangle encompassing the port's event barrier.

Definition at line 270 of file VuoRendererPort.cc.

◆ getFunctionPort()

bool VuoRendererPort::getFunctionPort ( void  ) const

Returns true if this port is a function port.

Definition at line 1383 of file VuoRendererPort.cc.

◆ getInput()

bool VuoRendererPort::getInput ( void  ) const

Returns a boolean indicating whether this port is an input port.

Definition at line 1359 of file VuoRendererPort.cc.

◆ getNameRect()

QRectF VuoRendererPort::getNameRect ( void  ) const

Returns the cached bounding box of the port's label.

Definition at line 579 of file VuoRendererPort.cc.

◆ getOutput()

bool VuoRendererPort::getOutput ( void  ) const

Returns a boolean indicating whether this port is an output port.

Definition at line 1367 of file VuoRendererPort.cc.

◆ getPointStringForCoords()

string VuoRendererPort::getPointStringForCoords ( QList< float >  coordList) const
protected

Given a list of coordinates, returns the string representation of the point consisting of those coordinate values as it should be rendered within a constant data flag.

Helper function for VuoRendererPort::getConstantAsStringToRender().

Definition at line 2323 of file VuoRendererPort.cc.

◆ getPortConstantTextRect()

QRectF VuoRendererPort::getPortConstantTextRect ( void  ) const
virtual

Returns a rect enclosing the string representation of the port's constant value.

If the port does not have a constant value, returns a null rect.

Reimplemented in VuoRendererTypecastPort.

Definition at line 532 of file VuoRendererPort.cc.

◆ getPortConstantTextRectForText()

QRectF VuoRendererPort::getPortConstantTextRectForText ( QString  text)
staticprotected

Returns a rect enclosing the specified text.

Definition at line 561 of file VuoRendererPort.cc.

◆ getPortNameRegExp()

QString VuoRendererPort::getPortNameRegExp ( )
static

Returns a string representation of the regular expression that describes valid port names.

See also sanitizePortName.

Definition at line 2497 of file VuoRendererPort.cc.

◆ getPortNameToRender()

string VuoRendererPort::getPortNameToRender ( ) const

Returns the name of the port as it should be rendered.

This will be the empty string if name rendering is currently disabled for this port.

Definition at line 780 of file VuoRendererPort.cc.

◆ getPortNameToRenderWhenDisplayed()

string VuoRendererPort::getPortNameToRenderWhenDisplayed ( ) const

Returns the name of the port as it should be rendered when it is to be rendered at all.

Definition at line 790 of file VuoRendererPort.cc.

◆ getPortPath() [1/2]

QPainterPath VuoRendererPort::getPortPath ( ) const

Returns a closed path representing the port's circle/triangle and its constant value.

Definition at line 197 of file VuoRendererPort.cc.

◆ getPortPath() [2/2]

QPainterPath VuoRendererPort::getPortPath ( qreal  inset,
VuoPortClass::PortType  portType,
QString  constantText,
bool  isInputPort,
bool  carriesData 
)
staticprotected

Returns a path representing the circle/triangle and its constant value, for a port with type portType.

Definition at line 225 of file VuoRendererPort.cc.

◆ getPortRect()

QRectF VuoRendererPort::getPortRect ( void  )
static

Returns a rectangle encompassing the port's circle.

Definition at line 257 of file VuoRendererPort.cc.

◆ getPortsConnectedWirelessly()

set< VuoRendererPort * > VuoRendererPort::getPortsConnectedWirelessly ( bool  includePublishedCables) const

Returns the set of ports that have antennas connected by wireless cable to this one.

Definition at line 427 of file VuoRendererPort.cc.

◆ getPortTint()

VuoNode::TintColor VuoRendererPort::getPortTint ( ) const

Returns the tint color to be used in rendering the port shape.

Definition at line 380 of file VuoRendererPort.cc.

◆ getPublishable()

bool VuoRendererPort::getPublishable ( ) const

Returns a boolean indicating whether this port is publishable.

Definition at line 2366 of file VuoRendererPort.cc.

◆ getPublishedPorts()

vector< VuoRendererPublishedPort * > VuoRendererPort::getPublishedPorts ( void  ) const

Returns a vector of pointers to the externally visible published ports connected to this port.

Definition at line 2390 of file VuoRendererPort.cc.

◆ getPublishedPortsConnectedByDataCarryingCables()

vector< VuoRendererPublishedPort * > VuoRendererPort::getPublishedPortsConnectedByDataCarryingCables ( void  ) const

Returns a vector of pointers to the externally visible published ports connected to this port by data-carrying cables.

Definition at line 2408 of file VuoRendererPort.cc.

◆ getRefreshPort()

bool VuoRendererPort::getRefreshPort ( void  ) const

Returns true if this port is a refresh port.

Definition at line 1375 of file VuoRendererPort.cc.

◆ getRenderedParentNode()

VuoRendererNode * VuoRendererPort::getRenderedParentNode ( void  ) const

Returns a pointer to the node currently rendered as this port's parent.

For ports belonging to typecast nodes, this value will change depending whether the typecast is currently free-standing (in which case that is the node that will be returned) or collapsed (in which case the downstream node to which the typecast is attached is the one that will be returned).

Definition at line 634 of file VuoRendererPort.cc.

◆ getStringForRealValue() [1/2]

string VuoRendererPort::getStringForRealValue ( double  value) const

Given a real number, returns the string representation of the number as it should be rendered within a constant data flag.

Definition at line 2339 of file VuoRendererPort.cc.

◆ getStringForRealValue() [2/2]

string VuoRendererPort::getStringForRealValue ( float  value) const

Given a real number, returns the string representation of the number as it should be rendered within a constant data flag.

Definition at line 2353 of file VuoRendererPort.cc.

◆ getTextWidth()

int VuoRendererPort::getTextWidth ( QString  text)
static

Returns the width of text as rendered using VuoRendererFonts::nodePortConstantFont.

This function may only be called on the main thread.

Definition at line 544 of file VuoRendererPort.cc.

◆ getTimeOfLastActivity()

qint64 VuoRendererPort::getTimeOfLastActivity ( )
protected

Returns the time of the port's latest activity for purposes of "Show Events" mode event tracking.

Definition at line 1059 of file VuoRendererPort.cc.

◆ getTypecastParentPort()

VuoRendererPort * VuoRendererPort::getTypecastParentPort ( ) const

Returns this port's typecast parent port, or NULL if it has none.

Definition at line 648 of file VuoRendererPort.cc.

◆ getUnderlyingInputAttachment()

VuoRendererInputAttachment * VuoRendererPort::getUnderlyingInputAttachment ( void  ) const
protected

Returns the input drawer attached to this port in the underlying composition (whether or not it is rendered as if it is), or NULL if none.

Definition at line 486 of file VuoRendererPort.cc.

◆ getUnderlyingParentNode()

VuoRendererNode * VuoRendererPort::getUnderlyingParentNode ( void  ) const

Returns a pointer to the node to which this port belongs in the underlying Graphviz (.dot/.vuo) representation of the composition.

For a given port, this value will never change. For typecast ports, this method will always return the original parent typecast node, regardless of whether the typecast is currently free-standing or collapsed.

Definition at line 615 of file VuoRendererPort.cc.

◆ getWirelessAntennaPath()

QPainterPath VuoRendererPort::getWirelessAntennaPath ( ) const
protectedvirtual

Returns the path of the antenna that represents any connected wireless cables, or an empty path if not applicable.

Reimplemented in VuoRendererPublishedPort.

Definition at line 296 of file VuoRendererPort.cc.

◆ getWirelessAntennaTint()

VuoNode::TintColor VuoRendererPort::getWirelessAntennaTint ( ) const
protected

Returns the tint color of the wireless antenna.

Tint output antennas the same color as their parent nodes. Tint input antennas the color of their wirelessly connected "From" ports, or leave untinted if there are multiple wirelessly connected "From" ports of conflicting tints.

Definition at line 405 of file VuoRendererPort.cc.

◆ hasConnectedWirelessDataCable()

bool VuoRendererPort::hasConnectedWirelessDataCable ( bool  includePublishedCables) const
protected

Returns true if this port has a connected data+event cable that should currently be rendered wirelessly.

Definition at line 352 of file VuoRendererPort.cc.

◆ hasConnectedWirelessEventCable()

bool VuoRendererPort::hasConnectedWirelessEventCable ( bool  includePublishedCables) const
protected

Returns true if this port has a connected event-only cable that should currently be rendered wirelessly.

Definition at line 366 of file VuoRendererPort.cc.

◆ hasPortAction()

bool VuoRendererPort::hasPortAction ( void  ) const

Returns true if this port has a port action.

Definition at line 824 of file VuoRendererPort.cc.

◆ hasRelativeReadURLConstantValue()

bool VuoRendererPort::hasRelativeReadURLConstantValue ( void  ) const

Returns a boolean indicating whether this port currently has a relative input file path as a constant value.

Returns false if the port has an output file path – a URL that will be written to rather than read from, as indicated by the port's isSave:true port detail.

Definition at line 1487 of file VuoRendererPort.cc.

◆ hasURLType()

bool VuoRendererPort::hasURLType ( void  ) const

Returns a boolean indicating whether this port expects a URL as input.

Definition at line 1450 of file VuoRendererPort.cc.

◆ isConstant()

bool VuoRendererPort::isConstant ( void  ) const

Returns true if this port has a constant data value.

Definition at line 1506 of file VuoRendererPort.cc.

◆ isEligibleForConnection()

bool VuoRendererPort::isEligibleForConnection ( void  )

Returns a boolean indicating whether this port is eligible for direct or typecast-assisted connection to the cable currently being dragged between ports.

Definition at line 1089 of file VuoRendererPort.cc.

◆ isHiddenRefreshPort()

bool VuoRendererPort::isHiddenRefreshPort ( void  )

Returns true if this port is a refresh port that should be hidden because it has no connected cables.

Definition at line 1391 of file VuoRendererPort.cc.

◆ itemChange()

QVariant VuoRendererPort::itemChange ( GraphicsItemChange  change,
const QVariant &  value 
)

Updates the port to reflect changes in state.

Definition at line 1419 of file VuoRendererPort.cc.

◆ keyPressEvent()

void VuoRendererPort::keyPressEvent ( QKeyEvent *  event)
protected

Handle key-press events.

Definition at line 1336 of file VuoRendererPort.cc.

◆ mouseDoubleClickEvent()

void VuoRendererPort::mouseDoubleClickEvent ( QGraphicsSceneMouseEvent *  event)
protected

Handle mouse double-click events.

Definition at line 1325 of file VuoRendererPort.cc.

◆ paint()

void VuoRendererPort::paint ( QPainter *  painter,
const QStyleOptionGraphicsItem *  option,
QWidget *  widget 
)

Draws an input or output port (both standard ports and refresh/function ports).

Definition at line 871 of file VuoRendererPort.cc.

◆ paintActionIndicator()

void VuoRendererPort::paintActionIndicator ( QPainter *  painter,
VuoRendererColors colors 
)
protected

Draws the port action symbol (a triangle to the right of the port name) if this port has a port action.

Definition at line 846 of file VuoRendererPort.cc.

◆ paintEventBarrier()

void VuoRendererPort::paintEventBarrier ( QPainter *  painter,
VuoRendererColors colors 
)
protected

Paints the port's event wall or door.

Definition at line 713 of file VuoRendererPort.cc.

◆ paintPortName()

void VuoRendererPort::paintPortName ( QPainter *  painter,
VuoRendererColors colors 
)
protected

Paints the port's label.

Definition at line 756 of file VuoRendererPort.cc.

◆ paintWirelessAntenna()

void VuoRendererPort::paintWirelessAntenna ( QPainter *  painter,
VuoRendererColors colors 
)
protected

Draws the wireless antenna to represent any wireless cables connected to this port.

Definition at line 863 of file VuoRendererPort.cc.

◆ portNameRenderingEnabled()

bool VuoRendererPort::portNameRenderingEnabled ( void  ) const
protected

Returns a boolean indicating whether the port name should be rendered along with this port, taking into account the port's own attributes as well as whether the port will be rendered within a published port sidebar.

Definition at line 2298 of file VuoRendererPort.cc.

◆ resetTimeLastEventFired()

void VuoRendererPort::resetTimeLastEventFired ( )

Resets the time that the last event was fired to a value that causes the port to be painted as if activity-rendering were disabled.

Definition at line 2426 of file VuoRendererPort.cc.

◆ sanitizePortName()

QString VuoRendererPort::sanitizePortName ( QString  portName)
static

Sanitizes the provided portName to meet the requirements of a valid port name.

Sanitizes only by removing characters, never adding, so it is possible for sanitization to fail, in which case this function returns the empty string.

See also getPortNameRegExp.

Definition at line 2516 of file VuoRendererPort.cc.

◆ setAnimated()

void VuoRendererPort::setAnimated ( bool  animated)

Sets the boolean indicating whether this port is an animation, and not itself a component of the base composition.

Definition at line 2460 of file VuoRendererPort.cc.

◆ setCacheModeForPortAndChildren()

void VuoRendererPort::setCacheModeForPortAndChildren ( QGraphicsItem::CacheMode  mode)

Sets the cache mode of this port, and any child ports, to mode.

Definition at line 2469 of file VuoRendererPort.cc.

◆ setConstant()

void VuoRendererPort::setConstant ( string  constantValue)

Sets this port's constant data value to that represented by the provided constantValue string.

Definition at line 2265 of file VuoRendererPort.cc.

◆ setEligibilityHighlight()

void VuoRendererPort::setEligibilityHighlight ( VuoRendererColors::HighlightType  eligibility)

Sets whether this port is eligible for direct or typecast-assisted connection to the cable currently being dragged between ports.

Definition at line 1098 of file VuoRendererPort.cc.

◆ setFadePercentageSinceEventFired()

void VuoRendererPort::setFadePercentageSinceEventFired ( qreal  percentage)

Updates the port's state to indicate that it fired an event at such a time that its fade percentage should now be equal to percentage.

Definition at line 2443 of file VuoRendererPort.cc.

◆ setFiredEvent()

void VuoRendererPort::setFiredEvent ( )

Updates the port's state to indicate that it has just fired an event.

Definition at line 2434 of file VuoRendererPort.cc.

◆ setPortNameToRender()

void VuoRendererPort::setPortNameToRender ( string  name)

Sets the name of the port as it should be rendered.

If set, it will override the default name of the port class.

Definition at line 802 of file VuoRendererPort.cc.

◆ setTypecastParentPort()

void VuoRendererPort::setTypecastParentPort ( VuoRendererPort typecastParentPort)

Sets this port's typecast parent port.

Definition at line 656 of file VuoRendererPort.cc.

◆ shape()

QPainterPath VuoRendererPort::shape ( void  ) const

Returns the shape of the rendered port, for use in collision detection, hit tests, and QGraphicsScene::items() functions.

Definition at line 703 of file VuoRendererPort.cc.

◆ stringAndFree()

string VuoRendererPort::stringAndFree ( char *  strz)
static

Creates an std::string from strz, then frees it.

Definition at line 1549 of file VuoRendererPort.cc.

◆ supportsDisconnectionByDragging()

bool VuoRendererPort::supportsDisconnectionByDragging ( void  )

Returns a boolean indicating whether this port supports cable disconnection by dragging from the port.

Definition at line 1349 of file VuoRendererPort.cc.

◆ updateCachedBoundingRect()

void VuoRendererPort::updateCachedBoundingRect ( )
protected

Recalculates cachedBoundingRect.

Definition at line 672 of file VuoRendererPort.cc.

◆ updateCachedPortPath()

void VuoRendererPort::updateCachedPortPath ( )
protected

Recalculates cachedPortPath.

Definition at line 205 of file VuoRendererPort.cc.

◆ updateEnabledStatus()

void VuoRendererPort::updateEnabledStatus ( )
protected

Determines whether this port will accept mouse events based on the port's current attributes.

Definition at line 2482 of file VuoRendererPort.cc.

◆ updateGeometry()

void VuoRendererPort::updateGeometry ( void  )

Schedules a redraw of this port.

Definition at line 1409 of file VuoRendererPort.cc.

◆ updateNameRect()

void VuoRendererPort::updateNameRect ( void  )

Updates the cached bounding box of the port's label.

Definition at line 587 of file VuoRendererPort.cc.

Friends And Related Function Documentation

◆ TestVuoRenderer

friend class TestVuoRenderer
friend

Definition at line 142 of file VuoRendererPort.hh.

◆ VuoRendererPublishedPort

friend class VuoRendererPublishedPort
friend

VuoRendererPublishedPort needs paint(...) and boundingRect()

Definition at line 141 of file VuoRendererPort.hh.

Member Data Documentation

◆ cachedBoundingRect

QRectF VuoRendererPort::cachedBoundingRect
protected

Bounding rect calculation is slow, and Qt calls it often, so cache it.

Definition at line 147 of file VuoRendererPort.hh.

◆ cachedPortPath

QPainterPath VuoRendererPort::cachedPortPath
protected

Path calculation is slow, and we call it often, so cache it.

Definition at line 158 of file VuoRendererPort.hh.

◆ customizedPortName

string VuoRendererPort::customizedPortName
protected

The name of the port as it should be rendered.

Definition at line 151 of file VuoRendererPort.hh.

◆ isRefreshPort

bool VuoRendererPort::isRefreshPort
protected

Is this port a refresh port?

Definition at line 145 of file VuoRendererPort.hh.

◆ nameRect

QRectF VuoRendererPort::nameRect
protected

The bounding box of the port's label when rendered on the canvas.

Definition at line 150 of file VuoRendererPort.hh.

◆ portBarrierWidth

const qreal VuoRendererPort::portBarrierWidth = 5.5
static

The stroke width of event barriers.

Definition at line 118 of file VuoRendererPort.hh.

◆ portConstantTextPadding

const qreal VuoRendererPort::portConstantTextPadding = 6.5
static

Empty space left and right of the constant text, inside the constant flag.

Definition at line 119 of file VuoRendererPort.hh.

◆ portContainerMargin

const qreal VuoRendererPort::portContainerMargin = 3.333333
static

Vertical distance, in pixels at 1:1 zoom, between the outer edge of the first/last port and the node frame rect.

Definition at line 116 of file VuoRendererPort.hh.

◆ portInset

const qreal VuoRendererPort::portInset = 1.4
static

The vertical and horizontal inset used when rendering a circular or refresh port shape within its outer port rect.

Definition at line 117 of file VuoRendererPort.hh.

◆ portRadius

const qreal VuoRendererPort::portRadius = 8
static

Radius, in pixels at 1:1 zoom, of a circular port.

Definition at line 114 of file VuoRendererPort.hh.

◆ portSpacing

const qreal VuoRendererPort::portSpacing = 15
static

Vertical distance, in pixels at 1:1 zoom, between the center points of two ports.

Definition at line 115 of file VuoRendererPort.hh.

◆ signaler

VuoRendererSignaler* VuoRendererPort::signaler
protected

The Qt signaler used by this port.

Definition at line 177 of file VuoRendererPort.hh.


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