Vuo  0.4.1
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Static Public Member Functions | Protected Attributes | List of all members
VuoRendererComposition Class Reference

Description

Provides a canvas upon which nodes and cables can be rendered.

Public Member Functions

 VuoRendererComposition (VuoComposition *baseComposition, bool renderMissingAsPresent=false)
 Creates a canvas upon which nodes and cables can be rendered.
 
void setBackgroundTransparent (bool transparent)
 Sets whether the composition should be rendered with a transparent background.
 
VuoRendererNodecreateRendererNode (VuoNode *baseNode)
 Creates a renderer detail for the base node.
 
void addNode (VuoNode *node)
 Adds a node to the canvas and the underlying composition.
 
void addCable (VuoCable *cable)
 Adds a cable to the canvas and the underlying composition.
 
void addPublishedInputCable (VuoCable *c)
 Adds a published input cable to the canvas and the underlying composition.
 
void addPublishedOutputCable (VuoCable *c)
 Adds a published output cable to the canvas and the underlying composition.
 
void removeNode (VuoRendererNode *rn)
 Removes a node from the canvas.
 
void removeCable (VuoRendererCable *rc)
 Removes a cable from the canvas.
 
void removePublishedInputCable (VuoRendererCable *rc)
 Removes a published input cable from the canvas and underlying composition.
 
void removePublishedOutputCable (VuoRendererCable *rc)
 Removes a published output cable from the canvas and underlying composition.
 
VuoRendererPublishedPortpublishPort (VuoPort *port, string name="", bool attemptMerge=false)
 Publishes this composition's internal port under the provided name, if possible; returns a pointer to the VuoRendererPublishedPort aliased to the internal port.
 
VuoCablecreatePublishedCable (VuoPort *vuoPseudoPort, VuoPort *internalPort)
 Creates a published cable connecting published pseudo-port vuoPort with internal port internalPort (in whichever direction appropriate).
 
void registerExternalPublishedPort (VuoPublishedPort *publishedPort, bool isInput)
 Registers a previously existing VuoPublishedPort as one of this composition's published ports.
 
int unregisterExternalPublishedPort (VuoPublishedPort *publishedPort, bool isInput)
 Removes a published input or output VuoRendererPublishedPort from the list of published ports associated with this composition.
 
void setPublishedPortName (VuoRendererPublishedPort *publishedPort, string name)
 Sets the name of the provided publishedPort to name; updates the composition's published pseudo-node and connected published cables accordingly.
 
string getUniquePublishedPortName (string baseName, bool isInput)
 Returns a string derived from the input baseName that is guaranteed to be unique either among the published input port names or among the published output port names for this composition, as specified by isInput.
 
vector< VuoRendererTypecastPort * > collapseTypecastNodes (void)
 Once all nodes and cables have been added to the scene, call this to convert each freestanding typecast node into a mini-node attached to its destination node.
 
VuoRendererTypecastPortcollapseTypecastNode (VuoRendererNode *rn)
 Convert a freestanding typecast node into a mini-node attached to its destination node; returns a pointer to the newly collapsed node.
 
void uncollapseTypecastNode (VuoRendererNode *typecastNode)
 Convert the collapsed typecast mini-node associated with the input typecastNode back into freestanding form.
 
VuoRendererNodeuncollapseTypecastNode (VuoRendererTypecastPort *typecast)
 Convert a collapsed typecast mini-node back into a freestanding node.
 
void clearInternalPortEligibilityHighlighting (void)
 Removes connection eligibility highlighting from all ports in the scene.
 
- Public Member Functions inherited from VuoBaseDetail< VuoComposition >
 VuoBaseDetail (string description, VuoComposition *base)
 Creates a VuoComposition detail class.
 
VuoCompositiongetBase (void) const
 Returns the VuoComposition detail class instance's base class instance.
 
void setBase (VuoComposition *base)
 Sets the VuoComposition detail class instance's base class instance.
 

Static Public Member Functions

static void createAutoreleasePool (void)
 As a workaround for a bug in Qt 5.1.0-beta1 (https://b33p.net/kosada/node/4905), this function must be called to create the NSAutoreleasePool for a QApplication.
 

Protected Attributes

VuoCompilerGraphvizParserparser
 The Graphviz parser instance used by this composition.
 
map< string, VuoRendererNode * > nodeNameTaken
 An index of every node in the composition, keyed by the node's Graphviz identifier.
 
VuoRendererSignalersignaler
 The Qt signaler used by this composition.
 

Constructor & Destructor Documentation

VuoRendererComposition::VuoRendererComposition ( VuoComposition baseComposition,
bool  renderMissingAsPresent = false 
)

Creates a canvas upon which nodes and cables can be rendered.

The canvas initially contains the nodes, cables, and published ports in the base composition.

Parameters
baseCompositionThe VuoComposition to which the new VuoRendererComposition detail class should be attached.
renderMissingAsPresentSets whether node classes without implementations should be rendered as though their implementations are present. (Useful for prototyping node classes.)

Member Function Documentation

void VuoRendererComposition::addCable ( VuoCable c)

Adds a cable to the canvas and the underlying composition.

If the cable doesn't have a renderer detail, one is created for it.

void VuoRendererComposition::addNode ( VuoNode n)

Adds a node to the canvas and the underlying composition.

If the node doesn't have a renderer detail, one is created for it.

If a node with the same graphviz identifier as this node is already in the canvas, changes the graphviz identifier of this node to be unique.

void VuoRendererComposition::addPublishedInputCable ( VuoCable c)

Adds a published input cable to the canvas and the underlying composition.

If the cable doesn't have a renderer detail, one is created for it.

void VuoRendererComposition::addPublishedOutputCable ( VuoCable c)

Adds a published output cable to the canvas and the underlying composition.

If the cable doesn't have a renderer detail, one is created for it.

vector< VuoRendererTypecastPort * > VuoRendererComposition::collapseTypecastNodes ( void  )

Once all nodes and cables have been added to the scene, call this to convert each freestanding typecast node into a mini-node attached to its destination node.

Returns a vector of pointers to the newly collapsed nodes.

VuoRendererPublishedPort * VuoRendererComposition::publishPort ( VuoPort port,
string  name = "",
bool  attemptMerge = false 
)

Publishes this composition's internal port under the provided name, if possible; returns a pointer to the VuoRendererPublishedPort aliased to the internal port.

If the requested name is already taken by an existing external published port and attemptMerge is true, the existing external port will accommodate the new internal port provided that their types are compatible and the new port would not displace any previously connected port. Otherwise, the newly published internal port will be published under a unique name derived from the requested name.

int VuoRendererComposition::unregisterExternalPublishedPort ( VuoPublishedPort publishedPort,
bool  isInput 
)

Removes a published input or output VuoRendererPublishedPort from the list of published ports associated with this composition.

Returns
The index within the list of published input port output ports at which the port was located, or -1 if not located.

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