Options
All
  • Public
  • Public/Protected
  • All
Menu

Draws an axis using our WebGL Rendering engine. Base class that provides shared layout/loop logic via a template method pattern. Subclasses (NativeAxisRenderer, TextureAxisRenderer) override the hooks onBeginDrawLabels, drawSingleLabel, and onEndDrawLabels to provide rendering-path-specific behaviour.

Hierarchy

Implements

Index

Constructors

constructor

Properties

Protected currentLineHeight

currentLineHeight: number

Protected currentRotationRad

currentRotationRad: number

Protected currentTextColor

currentTextColor: number

Protected currentViewRect

currentViewRect: Rect

Protected desiredLabelsSize

desiredLabelsSize: number = 0

Protected desiredTicksSize

desiredTicksSize: number = 0

drawDebug

drawDebug: boolean = false

Protected measureTextCanvas

measureTextCanvas: HTMLCanvasElement

Protected parentAxis

parentAxis: AxisBase2D

textureManager

textureManager: TextureManager

viewRect

viewRect: Rect = Rect.createZero()

The viewRect of the axis for ticks and labels. Does not include the axis Title.

Protected webAssemblyContext

webAssemblyContext: TSciChart

Accessors

axisThickness

  • get axisThickness(): number
  • set axisThickness(value: number): void
  • Gets or sets axis label area thickness, by default the size is calculated to have enough space for labels. However, this property allows to set minimal width/height for vertical/horizontal axes. Useful to align seriesViewRects for different charts

    Returns number

  • Gets or sets axis label area thickness, by default the size is calculated to have enough space for labels. However, this property allows to set minimal width/height for vertical/horizontal axes. Useful to align seriesViewRects for different charts

    Parameters

    • value: number

    Returns void

desiredHeight

  • get desiredHeight(): number
  • set desiredHeight(height: number): void
  • Called internally - Gets or sets desired height during the layout process

    Returns number

  • Called internally - Gets or sets desired height during the layout process

    Parameters

    • height: number

    Returns void

desiredWidth

  • get desiredWidth(): number
  • set desiredWidth(width: number): void
  • Called internally - Gets or sets desired width during the layout process

    Returns number

  • Called internally - Gets or sets desired width during the layout process

    Parameters

    • width: number

    Returns void

hideOverlappingLabels

  • get hideOverlappingLabels(): boolean
  • set hideOverlappingLabels(value: boolean): void
  • Gets or sets hideOverlappingLabels property. Default (true) is to not show labels that would overlap. When using rotation you may want to set this false, as the bounding box of rotated text may overlap even if the text itself does not.

    Returns boolean

  • Gets or sets hideOverlappingLabels property. Default (true) is to not show labels that would overlap. When using rotation you may want to set this false, as the bounding box of rotated text may overlap even if the text itself does not.

    Parameters

    • value: boolean

    Returns void

keepLabelsWithinAxis

  • get keepLabelsWithinAxis(): boolean
  • set keepLabelsWithinAxis(value: boolean): void
  • Gets or sets keepLabelsWithinAxis property. When true (default), first and last labels will be shifted to stay within axis bounds. If set to false, these labels will stay aligned to their ticks

    Returns boolean

  • Gets or sets keepLabelsWithinAxis property. When true (default), first and last labels will be shifted to stay within axis bounds. If set to false, these labels will stay aligned to their ticks

    Parameters

    • value: boolean

    Returns void

Methods

adjustForLabelAlignment

  • adjustForLabelAlignment(xCoord: number, labelWidth: number, labelAlignment: ELabelAlignment, axisAlignment: EAxisAlignment, isInnerAxis: boolean, axisWidth: number, tickSize: number): number
  • Called internally - adjusts labels for label alignment

    Parameters

    • xCoord: number
    • labelWidth: number
    • labelAlignment: ELabelAlignment
    • axisAlignment: EAxisAlignment
    • isInnerAxis: boolean
    • axisWidth: number
    • tickSize: number

    Returns number

attachedToAxis

  • Called when the AxisRenderer is attached to an Axis

    Parameters

    Returns void

calcDesiredLabelsSize

  • Called internally - calculates desired labels size

    Parameters

    Returns number

Protected calculateLineHightForNativeFont

  • calculateLineHightForNativeFont(nativeFont: SCRTFont, textBounds: TSRTextBounds): number
  • Parameters

    • nativeFont: SCRTFont
    • textBounds: TSRTextBounds

    Returns number

createAnnotationLabelTexture

  • createAnnotationLabelTexture(text: string, textStyle: TTextStyle, backgroundColor?: string, displayVertically?: boolean, displayMirrored?: boolean, opacity?: number, cornerRadius?: number): { bitmapTexture: TSRTexture; textureHeight: number; textureWidth: number }
  • Called internally

    Parameters

    • text: string
    • textStyle: TTextStyle
    • Optional backgroundColor: string
    • Optional displayVertically: boolean
    • Optional displayMirrored: boolean
    • Optional opacity: number
    • Optional cornerRadius: number

    Returns { bitmapTexture: TSRTexture; textureHeight: number; textureWidth: number }

    • bitmapTexture: TSRTexture
    • textureHeight: number
    • textureWidth: number

createAxisMarker

  • createAxisMarker(axisAlignment: EAxisAlignment, text: string, textStyle: TTextStyle, backgroundColor?: string, opacity?: number): { bitmapTexture: TSRTexture; textureHeight: number; textureWidth: number }
  • Called internally - used for AxisMarkerAnnotation

    Parameters

    • axisAlignment: EAxisAlignment
    • text: string
    • textStyle: TTextStyle
    • Optional backgroundColor: string
    • Optional opacity: number

    Returns { bitmapTexture: TSRTexture; textureHeight: number; textureWidth: number }

    • bitmapTexture: TSRTexture
    • textureHeight: number
    • textureWidth: number

createAxisMarkerFromImage

  • createAxisMarkerFromImage(image: HTMLImageElement, imageWidth: number, imageHeight: number): { bitmapTexture: TSRTexture; textureHeight: number; textureWidth: number }
  • Called internally - used for custom AxisMarkerAnnotation

    Parameters

    • image: HTMLImageElement
    • imageWidth: number
    • imageHeight: number

    Returns { bitmapTexture: TSRTexture; textureHeight: number; textureWidth: number }

    • bitmapTexture: TSRTexture
    • textureHeight: number
    • textureWidth: number

delete

  • delete(): void
  • Deletes native (WebAssembly) memory used by this type, after which it cannot be used.

    remarks

    Call .delete() before finishing with the object to ensure that WebAssmembly memory leaks do not occur.

    All elements within SciChart's High Performance Realtime JavaScript Charts which implement IDeletable must be deleted manually to free native (WebAssembly) memory

    Returns void

Protected drawLabelViewRects

  • Parameters

    Returns void

drawLabels

  • Called internally - draws labels

    Parameters

    Returns void

Protected drawModifierAxisLabelSpecific

  • drawModifierAxisLabelSpecific(renderContext: WebGlRenderContext2D, displayValue: string, textStyle: TTextStyle, fill: string, effectivePadding: Thickness, cornerRadius: number | undefined, xPosition: number, yPosition: number, textureWidth: number, textureHeight: number, _clipRect: Rect): void
  • Draws modifier-axis-label content for the active renderer path. Subclasses override to provide native or texture-specific drawing.

    Parameters

    • renderContext: WebGlRenderContext2D
    • displayValue: string
    • textStyle: TTextStyle
    • fill: string
    • effectivePadding: Thickness
    • cornerRadius: number | undefined
    • xPosition: number
    • yPosition: number
    • textureWidth: number
    • textureHeight: number
    • _clipRect: Rect

    Returns void

drawModifiersAxisLabel

  • Called internally - draws axis labels when needed, for example for line annotations

    Parameters

    Returns Rect

Protected drawSingleLabel

  • drawSingleLabel(renderContext: WebGlRenderContext2D, labelProvider: LabelProviderBase2D, labelText: string, labelInfo: LabelInfo | undefined, xCoord: number, yCoord: number, tickCoord: number, labelWidth: number, labelHeight: number, index: number, labelStyle: TTextStyle, clipRect: Rect, isHorizontal: boolean): void
  • Render a single label at the computed position. Subclasses override to provide native or texture rendering.

    Parameters

    Returns void

drawTicks

  • Called internally

    Parameters

    Returns void

getAxisReservedSpace

  • getAxisReservedSpace(isDomAnnotation?: boolean): number
  • Used to get the offset from either edge of the seriesViewRect up until the axis labels

    Parameters

    • Optional isDomAnnotation: boolean

    Returns number

getClipRect

  • getClipRect(): Rect
  • Gets the clip rect

    Returns Rect

Protected getMeasureContext

  • getMeasureContext(): CanvasRenderingContext2D
  • Returns CanvasRenderingContext2D

Protected invalidateParent

  • invalidateParent(): void
  • Returns void

layout

  • layout(rect: Rect): void
  • Called internally as a part of the layout process

    Parameters

    Returns void

layoutLabels

  • layoutLabels(size: number, tickCoords: number[], labelSizes: number[], isFlippedCoordinates: boolean, padBefore?: number, padAfter?: number): { labelCoords: number[]; labelIndexes: number[] }
  • Called internally

    Parameters

    • size: number
    • tickCoords: number[]
    • labelSizes: number[]
    • isFlippedCoordinates: boolean
    • Optional padBefore: number
    • Optional padAfter: number

    Returns { labelCoords: number[]; labelIndexes: number[] }

    • labelCoords: number[]
    • labelIndexes: number[]

measure

  • measure(isHorizontalAxis: boolean, labelStyle: TTextStyle, majorTickLabels: string[], ticksSize: number, labelProvider: LabelProviderBase2D, drawLabels: boolean, drawTicks: boolean, labelInfos?: LabelInfo[]): void
  • Called internally - measures the axis label area as part of the layout phase

    Parameters

    • isHorizontalAxis: boolean
    • labelStyle: TTextStyle
    • majorTickLabels: string[]
    • ticksSize: number
    • labelProvider: LabelProviderBase2D
    • drawLabels: boolean
    • drawTicks: boolean
    • Optional labelInfos: LabelInfo[]

    Returns void

Protected measureLabels

  • measureLabels(tickLabels: string[], labelProvider: LabelProviderBase2D, ctx: CanvasRenderingContext2D, labelStyle: TTextStyle, labelInfos?: LabelInfo[]): { labelHeights: number[]; labelWidths: number[] }
  • Measures label widths and heights. Subclasses may override for rendering-path-specific measurement (e.g. native CalculateStringBounds).

    Parameters

    Returns { labelHeights: number[]; labelWidths: number[] }

    • labelHeights: number[]
    • labelWidths: number[]

Protected measureModifierAxisLabel

  • measureModifierAxisLabel(renderContext: WebGlRenderContext2D, displayValue: string, textStyle: TTextStyle, fill: string, effectivePadding: Thickness, cornerRadius?: number): { textureHeight: number; textureWidth: number }
  • Measures modifier-axis-label content for the active renderer path. Subclasses override to provide native or texture-specific sizing.

    Parameters

    Returns { textureHeight: number; textureWidth: number }

    • textureHeight: number
    • textureWidth: number

Protected onBeginDrawLabels

  • Called before the label draw loop. Subclasses create rendering resources and return the line height for label positioning.

    Parameters

    Returns number

Protected onEndDrawLabels

  • onEndDrawLabels(): void
  • Called after the label draw loop. Subclasses clean up resources.

    Returns void

Generated using TypeDoc