package io.visus.orbis.feature.orb.data

import androidx.compose.ui.graphics.Color

/**
 * Represents the rendering state of an orb visualization.
 *
 * @property color The color of the orb. Defaults to a blue-gray shade (0xFF547691).
 * @property amplitude The amplitude of the orb's animation, ranging from 0.0 to 1.0. Defaults to 0.5.
 */
data class OrbRenderState(
    val color: Color = Color(0xFF547691),
    val amplitude: Float = 0.5f
)

/**
 * Represents the UI state of the orb feature.
 *
 * @property renderState The current rendering configuration of the orb.
 * @property isInitialized Whether the orb has been successfully initialized.
 * @property error An error message if something went wrong, or null if no error occurred.
 * @property fps The current frames per second of the orb rendering.
 */
data class OrbUiState(
    val renderState: OrbRenderState = OrbRenderState(),
    val isInitialized: Boolean = false,
    val error: String? = null,
    val fps: Int = 0
)
