using T3.Core.Operator;
namespace T3.Core.Audio;
///
/// Interface for operators that provide spatial audio properties.
/// Used by universal gizmo operators to discover and visualize all spatial audio sources.
///
public interface ISpatialAudioPropertiesProvider
{
/// Position of the audio source in 3D space.
Vector3 SourcePosition { get; }
/// Rotation of the audio source (for directional cone), in Euler angles (degrees).
Vector3 SourceRotation { get; }
/// Position of the listener in 3D space.
Vector3 ListenerPosition { get; }
/// Rotation/orientation of the listener, in Euler angles (degrees).
Vector3 ListenerRotation { get; }
/// Minimum distance for audio falloff.
float MinDistance { get; }
/// Maximum distance for audio falloff.
float MaxDistance { get; }
/// Inner cone angle in degrees (full volume zone).
float InnerConeAngle { get; }
/// Outer cone angle in degrees (attenuated volume zone).
float OuterConeAngle { get; }
/// Gizmo visibility setting for the spatial audio source.
GizmoVisibility GizmoVisibility { get; }
}