C

FreeNodeLabelModel

This node label model can be used to specify any position and orientation of a label.
ImplementsInheritance Hierarchy

Remarks

The position of the label is stored relative to the layout of the node the label belongs to.

See Also

Developer's Guide

Members

No filters for this type

Methods

Creates a parameter instance that anchors the label to the node at a given position.
The parameter will use the ratio and offset values to determine a point on both the label and the node. It will place the label in such a way that both points coincide.
final

Parameters

layoutRatio: Point
The ratio that describes the point on the node's layout relative to its upper-left corner. A value of (0,0) describes the upper-left corner, while (1,1) is the lower-right corner.
layoutOffset: Point
The absolute offset to apply to the point on the node after the ratio has been determined.
labelRatio: Point
The ratio that describes the point on the label's layout relative to its upper-left corner. A value of (0,0) describes the upper-left corner, while (1,1) is the lower-right corner.
labelOffset?: Point
The absolute offset to apply to the point on the label after the ratio has been determined. This defaults to (0,0), representing no further offset.
angle?: number
The angle by which the label should be rotated around the point described using the ratio and offset, measured in radians. The default is 0.

Return Value

FreeNodeLabelModelParameter
A parameter that exactly fits the described location.

Throws

Exception ({ name: 'ArgumentError' })
layoutRatio, layoutOffset, labelRatio or labelOffset contains one or more NaN values.

Sample Graphs

ShownSetting:

Placing the label in the top-left corner of the node can be achieved with the following parameter values:

layoutRatio:   0, 0     // Top-left corner of the node
layoutOffset:  0, 0     // No offset from the corner
labelRatio:    0, 0     // Top-left corner of the label

In this case both the top-left corner of the label and the top-left corner of the node coincide, placing the label at the top-left corner within the node.

Creates a parameter instance that anchors the labelLayout relative to the nodeLayout.

This method ultimately delegates to createParameter so its main purpose is to calculate the appropriate node and label layout ratio and offset parameters.

These parameters are calculated in the following way: Each coordinate axis is considered independently. If the reference point coordinate is within the node layout interval, its relative location specifies the layout ratio for this coordinate. Otherwise, the absolute distance of the reference point and the node layout interval specifies the layout offset and the layout ratio is either 0.0 or 1.0. The parameters for the label ratio and label offset are calculated the same way. If no reference point is provided, the reference point is determined automatically in the following way: For each coordinate, if the node layout and label layout do not overlap, the reference is the label corner that is closest to the node. If they overlap and if in addition the start or end coordinate of the label matches the start, center, or end coordinate of the node, that coordinate is the reference. Otherwise, the center of the label specifies the reference.

final

Parameters

nodeLayout: Rect
The node layout.
labelLayout: IOrientedRectangle
The label layout.
referenceLocation?: Point
A reference location that influences the ratio and offset calculation for the createParameter call.

Return Value

FreeNodeLabelModelParameter
The canonical parameter for the specified node and label layout.

Throws

Exception ({ name: 'ArgumentError' })
nodeLayout or referenceLocation contains one or more NaN values.
Tries to find a parameter that best matches the given layout for the provided label instance.
This implementation will match the provided layout perfectly.
final

Parameters

label: ILabel
The label to find a parameter for.
layout: IOrientedRectangle
The anticipated layout for the label.

Return Value

ILabelModelParameter
A non-null parameter that can be used for the label to approximate the provided layout.
Provides a lookup context for the given label.
final

Parameters

label: ILabel
The label to use in the context.

Return Value

ILookup
An implementation of the ILookup interface that can be used to query additional aspects of the label.
Calculates the geometry of the given label using the given model parameter.
final

Parameters

label: ILabel
The label to calculate the geometry for.
layoutParameter: ILabelModelParameter
A parameter that is compatible with this model. Typically, this is a parameter that has been created by this model, and its property model returns this instance.

Return Value

IOrientedRectangle
An IOrientedRectangle that describes the geometry of the label. This is typically designed as a flyweight, therefore clients should not cache the instance but store the values if they need a snapshot for later use.

Constants

A predefined parameter instance that places the label anchored at the node center and has no rotation
A shared public instance that can be used to obtain parameters.