MayaFlux 0.4.0
Digital-First Multimedia Processing Framework
Loading...
Searching...
No Matches
MayaFlux::Portal::Forma::Plot Namespace Reference

Classes

struct  AxisRange
 Scalar domain extent for one plot axis. More...
 
class  BarsBuilder
 Terminal builder for TRIANGLE_LIST bar chart encoding. More...
 
class  FilledWaveformBuilder
 Terminal builder for filled waveform encoding (TRIANGLE_STRIP). More...
 
struct  LabelSpec
 Construction-free text label description. More...
 
struct  LegendEntry
 One legend row. More...
 
struct  LegendLayout
 Expanded construction-free legend layout. More...
 
struct  LegendSpec
 Construction-free vertical legend configuration. More...
 
struct  RectSpec
 Lightweight filled rectangle description. More...
 
class  ScatterBuilder
 Terminal builder for POINT_LIST scatter encoding. More...
 
class  Series
 Convenience constructor for GeometryFn<shared_ptr<PlotContainer>>. More...
 
struct  SeriesSpec
 Result of a Series terminal. More...
 
class  Source
 Chainable builder for PlotContainer construction. More...
 
struct  TickLabelsSpec
 Config for generating numeric tick labels on one plot edge. More...
 
class  WaveformBuilder
 Terminal builder for LINE_STRIP waveform encoding. More...
 

Enumerations

enum class  TickEdge : uint8_t { Bottom , Top , Left , Right }
 Edge along which tick labels are placed. More...
 

Functions

void apply_auto_scale (AxisRange &range, const std::vector< std::span< const double > > &series)
 Apply auto-scaling to an AxisRange from a set of series.
 
GeometryFn< float > background (Kinesis::AABB2D bounds, glm::vec3 color=glm::vec3(1.F), const std::shared_ptr< Core::VKImage > &texture=nullptr)
 TRIANGLE_STRIP background quad for a plot area.
 
std::pair< float, float > data_range (std::span< const double > series)
 Compute [min, max] over a scalar series.
 
LegendLayout layout_legend (const LegendSpec &spec)
 Expand a legend spec into swatch rectangle specs and text label specs.
 
glm::vec3 palette_color (const std::vector< glm::vec3 > &palette, size_t index) noexcept
 Resolve a per-series color from a palette.
 
Mapped< std::shared_ptr< Kakshya::PlotContainer > > place (Surface &surface, std::shared_ptr< Buffers::FormaBuffer > buf, SeriesSpec spec, std::shared_ptr< Kakshya::PlotContainer > container)
 Place a plot element onto a Surface using a pre-built FormaBuffer.
 
uint32_t place_label (Surface &surface, std::shared_ptr< Buffers::FormaBuffer > buf, const LabelSpec &spec, uint32_t relate_to=0)
 Place a text label element onto surface using a pre-built buffer.
 
uint32_t place_rect (Surface &surface, std::shared_ptr< Buffers::FormaBuffer > buf, const RectSpec &spec, uint32_t relate_to=0)
 Place a filled rectangle element onto surface using a pre-built buffer.
 
GeometryFn< float > plot_cursor (Kinesis::AABB2D bounds, bool vertical=true, glm::vec3 color=glm::vec3(0.75F), float thickness=1.F)
 GeometryFn<float> for a cursor or playhead line within a plot area.
 
std::vector< Kakshya::LineVertexplot_grid (Kinesis::AABB2D bounds, uint32_t x_divisions, uint32_t y_divisions, glm::vec3 color=glm::vec3(0.12F), float thickness=1.F)
 LINE_LIST grid geometry for a plot area.
 
LabelSpec plot_label (std::string text, Kinesis::AABB2D bounds, glm::vec4 color={ 0.85F, 0.85F, 0.85F, 1.F }, std::string name={})
 Create a single construction-free label spec.
 
LegendSpec plot_legend (glm::vec2 origin, std::span< const std::string > labels, std::span< const glm::vec3 > colors, float row_h=0.07F, float swatch_w=0.04F, glm::vec4 text_color={ 0.85F, 0.85F, 0.85F, 1.F })
 Create a construction-free legend spec from labels and colors.
 
std::vector< LabelSpecplot_tick_labels (const TickLabelsSpec &spec)
 Generate construction-free tick label specs.
 
std::vector< LabelSpecplot_tick_labels (Kinesis::AABB2D bounds, const AxisRange &range, uint32_t count, TickEdge edge=TickEdge::Bottom, glm::vec4 color={ 0.65F, 0.65F, 0.65F, 1.F }, uint8_t decimal_places=2, float label_h=0.055F, float label_w=0.12F)
 Convenience overload for generating tick label specs directly.
 
Series series ()
 Begin a Series chain.
 
std::vector< std::span< const double > > series_by_role (const Kakshya::PlotContainer &container, Kakshya::DataDimension::Role role)
 Collect all series from processed_data whose DataDimension role matches role.
 
Source source ()
 Begin a Source chain.