Table of Contents

Struct CanvasVector

Namespace
FlowGraph.Core.Coordinates
Assembly
FlowGraph.Core.dll

A vector/delta in canvas coordinate space.

Canvas vectors represent movements, offsets, and distances in canvas space. Unlike canvas points, vectors are relative (they represent the difference between two points, not an absolute position).

When to use:

  • Drag distances in canvas space
  • Node movement offsets
  • Snap offsets
  • Collision avoidance adjustments
public readonly record struct CanvasVector : IEquatable<CanvasVector>
Implements
Inherited Members
Extension Methods

Constructors

CanvasVector(double, double)

A vector/delta in canvas coordinate space.

Canvas vectors represent movements, offsets, and distances in canvas space. Unlike canvas points, vectors are relative (they represent the difference between two points, not an absolute position).

When to use:

  • Drag distances in canvas space
  • Node movement offsets
  • Snap offsets
  • Collision avoidance adjustments
public CanvasVector(double DX, double DY)

Parameters

DX double
DY double

Properties

DX

public double DX { get; init; }

Property Value

double

DY

public double DY { get; init; }

Property Value

double

Length

The length (magnitude) of this vector.

public double Length { get; }

Property Value

double

LengthSquared

The squared length of this vector (faster than Length).

public double LengthSquared { get; }

Property Value

double

Zero

A zero-length vector.

public static CanvasVector Zero { get; }

Property Value

CanvasVector

Methods

FromCore(Point)

Creates a vector from a core Point (treating it as a delta).

public static CanvasVector FromCore(Point delta)

Parameters

delta Point

Returns

CanvasVector

Normalized()

Returns a normalized (unit length) version of this vector. Returns Zero if this vector has zero length.

public CanvasVector Normalized()

Returns

CanvasVector

ToCore()

Converts to a core Point (for APIs that expect Point as delta).

public Point ToCore()

Returns

Point

ToString()

Returns the fully qualified type name of this instance.

public override string ToString()

Returns

string

The fully qualified type name.

Operators

operator +(CanvasVector, CanvasVector)

Adds two vectors.

public static CanvasVector operator +(CanvasVector a, CanvasVector b)

Parameters

a CanvasVector
b CanvasVector

Returns

CanvasVector

operator /(CanvasVector, double)

Divides this vector by a scalar value.

public static CanvasVector operator /(CanvasVector vector, double scalar)

Parameters

vector CanvasVector
scalar double

Returns

CanvasVector

operator *(CanvasVector, double)

Scales this vector by a scalar value.

public static CanvasVector operator *(CanvasVector vector, double scalar)

Parameters

vector CanvasVector
scalar double

Returns

CanvasVector

operator *(double, CanvasVector)

Scales this vector by a scalar value.

public static CanvasVector operator *(double scalar, CanvasVector vector)

Parameters

scalar double
vector CanvasVector

Returns

CanvasVector

operator -(CanvasVector, CanvasVector)

Subtracts two vectors.

public static CanvasVector operator -(CanvasVector a, CanvasVector b)

Parameters

a CanvasVector
b CanvasVector

Returns

CanvasVector

operator -(CanvasVector)

Negates this vector.

public static CanvasVector operator -(CanvasVector vector)

Parameters

vector CanvasVector

Returns

CanvasVector