Project

ChartForgeX

Render deterministic charts, dashboards, topology, hierarchy, and report visuals directly from .NET.

Stars 47
Forks 2
NuGet downloads 75,067
Release ChartForgeX-v2.0.0
Language: HTML Updated: 2026-10-12

API Reference

Class

PreparedVisualStory

Namespace ChartForgeX.Stories
Assembly ChartForgeX.Stories
Modifiers sealed

A detached story observation with one clock for seeking, playback and export.

Inheritance

  • Object
  • PreparedVisualStory

Remarks

Rendering clamps to one play. Repetition is an export or player policy; the endpoint remains the completed scene.

Usage

Explore 1 API references to this type

This type appears in these public API surfaces even when no hand-authored example is attached directly to the page.

Returned or exposed by 1

Methods

Frames 2 overloads
public IEnumerable<RasterAnimationFrame> Frames(VisualStoryFrameOptions? options = null, CancellationToken cancellationToken = default) #
Returns: IEnumerable<RasterAnimationFrame>

Produces owning frames lazily, using rational cadence and exact tick durations.

Parameters

options ChartForgeX.Stories.VisualStoryFrameOptions? = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public IEnumerable<RasterAnimationFrame> Frames(RasterAnimationFormat format, VisualStoryFrameOptions? options = null, CancellationToken cancellationToken = default) #
Returns: IEnumerable<RasterAnimationFrame>

Produces owning frames with the selected container's timing and Stories readability policy.

Parameters

format ChartForgeX.Raster.RasterAnimationFormat requiredposition: 0
options ChartForgeX.Stories.VisualStoryFrameOptions? = null optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2
FrameSource 2 overloads
public RasterAnimationSource FrameSource(RasterAnimationFormat format, VisualStoryFrameOptions? options = null) #
Returns: RasterAnimationSource

Creates a repeatable producer with container-specific timing, including GIF visibility and viewer delay limits.

Parameters

format ChartForgeX.Raster.RasterAnimationFormat requiredposition: 0
options ChartForgeX.Stories.VisualStoryFrameOptions? = null optionalposition: 1
public RasterAnimationSource FrameSource(VisualStoryFrameOptions? options = null) #
Returns: RasterAnimationSource

Creates a repeatable frame source on the exact tick clock, suitable for timestamp observations and optional video encoders.

Parameters

options ChartForgeX.Stories.VisualStoryFrameOptions? = null optionalposition: 0
public PreparedVisual PrepareFrame(TimeSpan timestamp) #
Returns: PreparedVisual

Prepares a timestamp as native geometry shared by SVG and PNG backends.

Parameters

timestamp System.TimeSpan requiredposition: 0
public RgbaImage RenderAt(TimeSpan timestamp, Int32 outputScale = 1) #
Returns: RgbaImage

Renders an independently owned RGBA frame at a timestamp within one play.

Parameters

timestamp System.TimeSpan requiredposition: 0
outputScale System.Int32 = 1 optionalposition: 1
public String ToAnimatedSvg(VisualStoryFrameOptions? options = null, String idScope = "", CancellationToken cancellationToken = default) #
Returns: String

Exports sampled native frames as a self-contained, script-free SVG animation using the prepared playback clock.

Parameters

options ChartForgeX.Stories.VisualStoryFrameOptions? = null optionalposition: 0
idScope System.String = "" optionalposition: 1
cancellationToken System.Threading.CancellationToken = default optionalposition: 2

Exceptions

  • InvalidOperationException – Sampling exceeds its frame budget, misses a readable chapter, or exceeds the document budget.
public Byte[] ToApng(VisualStoryFrameOptions? options = null, CancellationToken cancellationToken = default) #
Returns: Byte[]

Encodes APNG while producing and releasing one frame at a time.

Parameters

options ChartForgeX.Stories.VisualStoryFrameOptions? = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public Byte[] ToGif(VisualStoryFrameOptions? options = null, CancellationToken cancellationToken = default) #
Returns: Byte[]

Encodes GIF with a global palette and bounded two-pass frame production.

Parameters

options ChartForgeX.Stories.VisualStoryFrameOptions? = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public String ToHtmlPage(VisualStoryFrameOptions? options = null, CancellationToken cancellationToken = default) #
Returns: String

Exports a script-free HTML page using the captured story and prepared playback clock.

Parameters

options ChartForgeX.Stories.VisualStoryFrameOptions? = null optionalposition: 0
cancellationToken System.Threading.CancellationToken = default optionalposition: 1
public Byte[] ToPng(TimeSpan? timestamp = null, Int32 outputScale = 1) #
Returns: Byte[]

Renders a PNG at a timestamp; omission selects the completed poster.

Parameters

timestamp System.TimeSpan? = null optionalposition: 0
outputScale System.Int32 = 1 optionalposition: 1
public String ToSvg(TimeSpan? timestamp = null) #
Returns: String

Exports a static vector frame at a timestamp; omission selects the completed poster.

Parameters

timestamp System.TimeSpan? = null optionalposition: 0
public String ToTranscript() #
Returns: String

Gets the captured accessible transcript, including complete source and terminal output.

public Void WriteAnimation(Stream stream, RasterAnimationFormat format, VisualStoryFrameOptions? options = null, CancellationToken cancellationToken = default) #
Returns: Void

Writes an animation directly to a caller-owned stream without retaining the encoded file.

Parameters

stream System.IO.Stream requiredposition: 0
format ChartForgeX.Raster.RasterAnimationFormat requiredposition: 1
options ChartForgeX.Stories.VisualStoryFrameOptions? = null optionalposition: 2
cancellationToken System.Threading.CancellationToken = default optionalposition: 3

Properties

public String Title { get; } #

Gets the title captured during preparation.

public Int32 Width { get; } #

Gets the logical width.

public Int32 Height { get; } #

Gets the logical height.

public TimeSpan ContentDuration { get; } #

Gets the authored duration before the completed-state hold.

public TimeSpan Duration { get; } #

Gets one complete play, including the completed-state hold.

public VisualStoryPlaybackOptions Playback { get; } #

Gets immutable playback timing.

public IReadOnlyList<VisualStoryChapter> Chapters { get; } #

Gets detached scene boundaries for seeking.