visualizers.py

No documentation

class ChartVisualizer

Description

A versatile data visualization component that can display various chart types:
bar charts (vertical/horizontal), pie charts, line charts, scatter plots, and radar charts.

Gradient support:
- For line charts: each segment between two points is drawn with a color interpolated
 between the colors of those two points.
- For radar charts: each edge is drawn with a color interpolated between the colors
 of its two vertices.

Gradient parameters (passed as kwargs to __init__):
   use_gradient (bool): Enable gradient coloring. Default False.
   gradient_colors (List[Tuple[int,int,int]]): List of colors per data point.
       If provided, overrides start/end.
   gradient_start (Tuple[int,int,int]): Start color for interpolation (default red).
   gradient_end (Tuple[int,int,int]): End color for interpolation (default green).

Methods
def __init__(self: Any, x: int, y: int, width: int, height: int, data: Optional[List[float]] = None, labels: Optional[List[str]] = None, colors: Optional[List[Tuple[int, int, int]]] = None, chart_type: Literal['bar', 'pie', 'line', 'scatter', 'radar'] = 'bar', orientation: Literal['vertical', 'horizontal'] = 'vertical', title: str = '', show_labels: bool = True, show_legend: bool = False, min_value: Optional[float] = None, max_value: Optional[float] = None, radar_max_value: float = 1.0, radar_axis_labels: Optional[List[str]] = None, root_point: Tuple[float, float] = (0, 0), theme: ThemeType = None, element_id: Optional[str] = None, **kwargs: dict) -> Any
No documentation
def _default_colors(self: Any) -> List[Tuple[int, int, int]]
No documentation
def title_font(self: Any) -> Any
No documentation
def label_font(self: Any) -> Any
No documentation
def legend_font(self: Any) -> Any
No documentation
def set_data(self: Any, data: List[float], labels: Optional[List[str]] = None, animate: bool = False, duration: float = 0.5) -> Any
No documentation
def update(self: Any, dt: float, inputState: InputState) -> Any
No documentation
def _recalc(self: Any) -> Any
No documentation
def _get_color(self: Any, index: int) -> Tuple[int, int, int]
No documentation
def _get_point_color(self: Any, index: int, t: float = None) -> Tuple[int, int, int]
No documentation
def render(self: Any, renderer: Renderer) -> Any
No documentation
def _render_bar(self: Any, renderer: Any, left: Any, top: Any, width: Any, height: Any, theme: Any) -> Any
No documentation
def _render_pie(self: Any, renderer: Any, left: Any, top: Any, width: Any, height: Any, theme: Any) -> Any
No documentation
def _render_line(self: Any, renderer: Any, left: Any, top: Any, width: Any, height: Any, theme: Any) -> Any
No documentation
def _render_scatter(self: Any, renderer: Any, left: Any, top: Any, width: Any, height: Any, theme: Any) -> Any
No documentation
def _render_radar(self: Any, renderer: Any, left: Any, top: Any, width: Any, height: Any, theme: Any) -> Any
No documentation
def _render_legend(self: Any, renderer: Any, x: Any, y: Any, theme: Any) -> Any
No documentation

class AudioVisualizer

Description

Real-time audio visualization element that displays audio data in various styles.

Supports multiple visualization modes and can connect to OpenAL audio sources.

Attributes:
   style (str): Visualization style ('bars', 'waveform', 'circle', 'particles', 'spectrum')
   source: OpenAL audio source to visualize
   color_gradient (List[Tuple[int, int, int]]): Colors for gradient visualization
   bar_width (int): Width of bars in bar mode
   bar_spacing (int): Spacing between bars
   sensitivity (float): Audio sensitivity/amplification
   smoothing (float): Smoothing factor for transitions

Methods
def __init__(self: Any, x: int, y: int, width: int, height: int, style: Literal['bars', 'waveform', 'circle', 'particles', 'spectrum'] = 'bars', source: Any = None, color_gradient: Optional[List[Tuple[int, int, int]]] = None, root_point: Tuple[float, float] = (0, 0), theme: ThemeType = None, element_id: Optional[str] = None) -> Any
No documentation
def _initialize_audio_data(self: Any) -> Any
No documentation
def _generate_gradient_surface(self: Any) -> Any
No documentation
def _interpolate_gradient(self: Any, ratio: float) -> Tuple[int, int, int]
No documentation
def set_style(self: Any, style: str) -> Any
No documentation
def set_source(self: Any, source: Any) -> Any
No documentation
def set_color_gradient(self: Any, gradient: List[Tuple[int, int, int]]) -> Any
No documentation
def set_sensitivity(self: Any, sensitivity: float) -> Any
No documentation
def set_smoothing(self: Any, smoothing: float) -> Any
No documentation
def _get_audio_data(self: Any) -> List[float]
No documentation
def _process_audio_data(self: Any, raw_data: List[float]) -> Any
No documentation
def update(self: Any, dt: float, inputState: InputState) -> Any
No documentation
def render(self: Any, renderer: Renderer) -> Any
No documentation
def _render_bars(self: Any, renderer: Renderer, x: int, y: int) -> Any
No documentation
def _render_waveform(self: Any, renderer: Renderer, x: int, y: int) -> Any
No documentation
def _render_circle(self: Any, renderer: Renderer, x: int, y: int) -> Any
No documentation
def _render_particles(self: Any, renderer: Renderer, x: int, y: int) -> Any
No documentation
def _render_spectrum(self: Any, renderer: Renderer, x: int, y: int) -> Any
No documentation
def _get_bar_color(self: Any, value: float) -> Tuple[int, int, int]
No documentation
def _get_waveform_color(self: Any, position: float) -> Tuple[int, int, int]
No documentation
def _get_circle_color(self: Any, position: float) -> Tuple[int, int, int]
No documentation
def _get_particle_color(self: Any, value: float, index: int) -> Tuple[int, int, int]
No documentation
def _get_spectrum_color(self: Any, frequency: float) -> Tuple[int, int, int]
No documentation
Back to Ui Module