Skip to main content

Class OrdinalScale<T>

Namespace: VelloSharp.Charting.Scales
Assembly: VelloSharp.Charting.dll

Projects discrete categorical values onto evenly spaced unit coordinates.

public sealed class OrdinalScale<T> : IScale<T>, IScale where T : notnull

Type Parameters​

T

Inheritance​

object ← OrdinalScale<T>

Implements​

IScale<T>, IScale

Inherited Members​

object.Equals(object?), object.Equals(object?, object?), object.GetHashCode(), object.GetType(), object.ReferenceEquals(object?, object?), object.ToString()

Constructors​

OrdinalScale(IEnumerable<T>, bool, IEqualityComparer<T>?)​

public OrdinalScale(IEnumerable<T> values, bool clampToDomain = true, IEqualityComparer<T>? comparer = null)

Parameters​

values IEnumerable<T>

clampToDomain bool

comparer IEqualityComparer<T>?

Properties​

Categories​

Gets the categories in their defined order.

public IReadOnlyList<T> Categories { get; }

Property Value​

IReadOnlyList<T>

ClampToDomain​

Gets a value indicating whether inputs are clamped to the domain when projected.

public bool ClampToDomain { get; }

Property Value​

bool

Domain​

Gets the scale domain range.

public Range<T> Domain { get; }

Property Value​

Range<T>

DomainType​

Gets the underlying domain value type.

public Type DomainType { get; }

Property Value​

Type

Kind​

Gets the scale family.

public ScaleKind Kind { get; }

Property Value​

ScaleKind

Methods​

Project(T)​

Projects the provided value into normalized unit space (0..1).

public double Project(T value)

Parameters​

value T

Returns​

double

TryProject(T, out double)​

Attempts to project the provided value into unit space without throwing.

public bool TryProject(T value, out double unit)

Parameters​

value T

unit double

Returns​

bool

Unproject(double)​

Converts a normalized unit value back into domain space.

public T Unproject(double unit)

Parameters​

unit double

Returns​

T