import { type CreateXYAxisSeriesOptions, type DataPoint, DataVector, type IColorAxis, type IRenderContext, LineJoin, LineStyle, type OxyColor, type ScreenPoint, TrackerHitResult, type TrackerStringFormatterArgs, XYAxisSeries } from '..';
/** Represents an item in a VectorSeries. */
export interface VectorItem {
/** The origin of the vector. */
readonly origin: DataPoint;
/** The direction of the vector. */
readonly direction: DataVector;
/** The value of the item. */
readonly value: number;
}
export interface CreateVectorSeriesOptions extends CreateXYAxisSeriesOptions {
/** The color of the arrow. */
color?: OxyColor;
/** The length of the arrows heads (relative to the stroke thickness) (the default value is 10). */
arrowHeadLength?: number;
/** The width of the arrows heads (relative to the stroke thickness) (the default value is 3). */
arrowHeadWidth?: number;
/** The position of the arrow heads (relative to the end of the vector) (the default value is 1). */
arrowHeadPosition?: number;
/** The line join type. */
lineJoin?: LineJoin;
/** The line style. */
lineStyle?: LineStyle;
/** The stroke thickness (the default value is 2). */
strokeThickness?: number;
/**
* The minimum length of an interpolated line segment.
* Increasing this number will increase performance,
* but make the curve less accurate. The default is 2.
*/
minimumSegmentLength?: number;
/** The 'veeness' of the arrow head (relative to thickness) (the default value is 0). */
arrowVeeness?: number;
/** The start position of the arrows for each vector relative to the length of the vector (the default value is 0). */
arrowStartPosition?: number;
/** The positions of the label for each vector along the drawn arrow (the default value is 0). */
arrowLabelPosition?: number;
/** The formatter for the cell labels. The default value is 0.00. */
labelStringFormatter?: (item: VectorItem) => string;
/** The font size of the labels. The default value is 0 (labels not visible). */
labelFontSize?: number;
/** The delegate used to map from ItemsSeries.ItemsSource to VectorItem. The default is null. */
mapping?: (item: any) => VectorItem;
/** The list of Vectors. */
items?: VectorItem[];
}
export declare const DefaultVectorSeriesOptions: CreateVectorSeriesOptions;
export declare const ExtendedDefaultVectorSeriesOptions: {
/** The color of the arrow. */
color?: string | undefined;
/** The length of the arrows heads (relative to the stroke thickness) (the default value is 10). */
arrowHeadLength?: number | undefined;
/** The width of the arrows heads (relative to the stroke thickness) (the default value is 3). */
arrowHeadWidth?: number | undefined;
/** The position of the arrow heads (relative to the end of the vector) (the default value is 1). */
arrowHeadPosition?: number | undefined;
/** The line join type. */
lineJoin?: LineJoin | undefined;
/** The line style. */
lineStyle?: LineStyle | undefined;
/** The stroke thickness (the default value is 2). */
strokeThickness?: number | undefined;
/**
* The minimum length of an interpolated line segment.
* Increasing this number will increase performance,
* but make the curve less accurate. The default is 2.
*/
minimumSegmentLength?: number | undefined;
/** The 'veeness' of the arrow head (relative to thickness) (the default value is 0). */
arrowVeeness?: number | undefined;
/** The start position of the arrows for each vector relative to the length of the vector (the default value is 0). */
arrowStartPosition?: number | undefined;
/** The positions of the label for each vector along the drawn arrow (the default value is 0). */
arrowLabelPosition?: number | undefined;
/** The formatter for the cell labels. The default value is 0.00. */
labelStringFormatter?: ((item: VectorItem) => string) | undefined;
/** The font size of the labels. The default value is 0 (labels not visible). */
labelFontSize?: number | undefined;
/** The delegate used to map from ItemsSeries.ItemsSource to VectorItem. The default is null. */
mapping?: ((item: any) => VectorItem) | undefined;
/** The list of Vectors. */
items?: VectorItem[] | undefined;
xAxisKey?: string | undefined;
yAxisKey?: string | undefined;
itemsSource?: any[] | undefined;
background?: string | undefined;
isVisible?: boolean | undefined;
title?: string | undefined;
legendKey?: string | undefined;
seriesGroupName?: string | undefined;
renderInLegend?: boolean | undefined;
trackerStringFormatter?: import('..').TrackerStringFormatterType | undefined;
trackerKey?: string | undefined;
font?: string | undefined;
fontSize?: number | undefined;
fontWeight?: number | undefined;
tag?: any;
textColor?: string | undefined;
edgeRenderingMode?: import('..').EdgeRenderingMode | undefined;
toolTip?: string | undefined;
selectable?: boolean | undefined;
selectionMode?: import('..').SelectionMode | undefined;
DefaultXYAxisSeriesOptions: CreateXYAxisSeriesOptions;
};
export interface VectorSeriesTrackerStringFormatterArgs extends TrackerStringFormatterArgs {
item?: VectorItem;
itemDirection?: DataVector;
}
export type VectorSeriesTrackerStringFormatterType = (args: VectorSeriesTrackerStringFormatterArgs) => string | undefined;
/** Represents a series that can be bound to a collection of VectorItem. */
export declare class VectorSeries extends XYAxisSeries {
/** The items originating from the items source. */
private _actualItems?;
/** The default color. */
private _defaultColor;
/** The default line style. */
private _defaultLineStyle;
/** The default tracker formatter */
static readonly DefaultTrackerStringFormatter: VectorSeriesTrackerStringFormatterType;
/** The default color-axis title */
private static readonly DefaultColorAxisTitle;
constructor(opt?: CreateVectorSeriesOptions);
getElementName(): string;
/** Gets or sets the color of the arrow. */
color: OxyColor;
/** Gets the minimum value of the dataset. */
private _minValue;
get minValue(): number;
/** Gets the maximum value of the dataset. */
private _maxValue;
get maxValue(): number;
/** Gets or sets the length of the arrows heads (relative to the stroke thickness) (the default value is 10). */
arrowHeadLength: number;
/** Gets or sets the width of the arrows heads (relative to the stroke thickness) (the default value is 3). */
arrowHeadWidth: number;
/** Gets or sets the position of the arrow heads (relative to the end of the vector) (the default value is 1). */
arrowHeadPosition: number;
/** Gets or sets the line join type. */
lineJoin: LineJoin;
/** Gets or sets the line style. */
lineStyle: LineStyle;
/** Gets or sets the stroke thickness (the default value is 2). */
strokeThickness: number;
get actualLineStyle(): LineStyle;
/**
* Gets or sets the minimum length of an interpolated line segment.
* Increasing this number will increase performance,
* but make the curve less accurate. The default is 2.
*/
minimumSegmentLength: number;
/** Gets or sets the 'veeness' of the arrow head (relative to thickness) (the default value is 0). */
arrowVeeness: number;
/** Gets the start position of the arrows for each vector relative to the length of the vector (the default value is 0). */
arrowStartPosition: number;
/** Gets the positions of the label for each vector along the drawn arrow (the default value is 0). */
arrowLabelPosition: number;
/**
* Gets the color axis.
*/
get colorAxis(): IColorAxis | undefined;
protected set colorAxis(value: IColorAxis | undefined);
private _colorAxis?;
/** Gets or sets the color axis key. */
colorAxisKey?: string;
/** Gets or sets the formatter for the cell labels. The default value is 0.00. */
labelStringFormatter?: (item: VectorItem) => string;
/**
* A format function used for the tracker. The default depends on the series.
* The arguments for the formatter may be different for each type of series. See the documentation.
*/
trackerStringFormatter?: VectorSeriesTrackerStringFormatterType;
/** Gets or sets the font size of the labels. The default value is 0 (labels not visible). */
labelFontSize: number;
/** Gets or sets a value indicating whether the tracker can interpolate points. */
canTrackerInterpolatePoints: boolean;
/** Gets or sets the delegate used to map from ItemsSeries.ItemsSource to VectorItem. The default is null. */
mapping?: (item: any) => VectorItem;
/** Gets the list of Vectors. */
items: VectorItem[];
/** Gets the list of Vectors that should be rendered. */
protected get ActualItems(): VectorItem[];
/** Renders the series on the specified rendering context. */
render(rc: IRenderContext): Promise;
/**
* Updates the data.
* @internal
*/
updateData(): void;
/** Clears or creates the actualItems list. */
private clearActualItems;
/** Updates the points from the ItemsSeries.ItemsSource. */
private updateActualItems;
/** Renders the points as line, broken line and markers. */
protected renderVectors(rc: IRenderContext, items: VectorItem[]): Promise;
private drawVector;
private drawArrow;
getNearestPoint(point: ScreenPoint, interpolate: boolean): TrackerHitResult | undefined;
/**
* Ensures that the axes of the series is defined.
* @internal
*/
ensureAxes(): void;
/**
* Sets default values from the plot model.
* @internal
*/
setDefaultValues(): void;
/**
* Updates the maximum and minimum values of the series for the x and y dimensions only.
* @internal
*/
updateMaxMinXY(): void;
/**
* Updates the maximum and minimum values of the series.
* @internal
*/
updateMaxMin(): void;
/**
* Updates the axes to include the max and min of this series.
* @internal
*/
updateAxisMaxMin(): void;
protected getElementDefaultValues(): any;
}
//# sourceMappingURL=VectorSeries.d.ts.map