Class DimensioningLink
A custom routed Link for showing the distances between a point on one node and a point on another node.
Namespace: Northwoods.Go.Extensions
Assembly: DimensioningLinkAvalonia.dll
Syntax
public class DimensioningLink : Link, IHasContextMenu, IHasToolTip
Remarks
Note that because this is a Link, the points being measured must be on Nodes, not simple Parts. The exact point on each Node is determined by the FromSpot and ToSpot.
Several properties of the DimensioningLink customize the appearance of the dimensioning:
- Direction, for orientation of the dimension line and which side it is on,
- Extension, for how far the dimension line is from the measured points,
- Inset, for leaving room for a text label, and
- Gap, for distance that the extension line starts from the measured points
Constructors
DimensioningLink()
Constructs a DimensioningLink and sets the following properties:
- IsLayoutPositioned = false
- IsTreeLink = false
- Routing = Orthogonal
Declaration
public DimensioningLink()
Properties
Direction
The general angle at which the measurement should be made.
Declaration
public double Direction { get; set; }
Property Value
Type | Description |
---|---|
double |
Remarks
The default value is 0, meaning to go measure only along the X axis, with the dimension line and label above the two nodes (at lower Y coordinates). New values must be one of: 0, 90, 180, 270, or NaN. The value NaN indicates that the measurement is point-to-point and not orthogonal.
Extension
The distance at which the dimension line should be from the points being measured.
Declaration
public float Extension { get; set; }
Property Value
Type | Description |
---|---|
float |
Remarks
The default value is 30. Larger values mean further away from the nodes. The new value must be greater than or equal to zero.
Gap
The distance that the extension lines should come short of the measured points.
Declaration
public float Gap { get; set; }
Property Value
Type | Description |
---|---|
float |
Remarks
The default value is 10.
Inset
The distance that the dimension line should be indented from the ends of the extension lines that are orthogonal to the dimension line.
Declaration
public float Inset { get; set; }
Property Value
Type | Description |
---|---|
float |
Remarks
The default value is 10.
Methods
ComputePoints()
Constructs a new route by modifying the Points.
Declaration
public override bool ComputePoints()
Returns
Type | Description |
---|---|
bool | true if it computed a route of points |
Overrides
Remarks
This is only called by UpdateRoute(), when needed. All route points are always in document coordinates.
This method may be overridden. Please read the Introduction page on Extensions for how to override methods and how to call this base method.
Overrides of this method may call a number of "protected" methods in order to build the route: ClearPoints(), AddPoint(Point), InsertPoint(int, Point), RemovePoint(int), SetPoint(int, Point). Overrides of this method must not set Points.
Other methods that are commonly called and may be overridden are: ComputeEndSegmentLength(Node, GraphObject, Spot, bool), ComputeSpot(bool, GraphObject), ComputeOtherPoint(Node, GraphObject), ComputeCurve(), ComputeCurviness(), HasCurviness(), ComputeThickness(), MakeGeometry().