AutoRig/Analyze/Classification.cs

Defines mesh rigging classification types and a Classification data class. MeshKind enum lists Organic, Mechanical, Hybrid. Classification holds Kind, Confidence, and Explanation for UI use.

namespace AutoRig.Analyze;

/// <summary>What kind of rigging a mesh calls for.</summary>
public enum MeshKind
{
    /// <summary>Deforming skin over a skeleton (creatures, characters).</summary>
    Organic,

    /// <summary>Rigid parts articulated at joints (vehicles, weapons, machinery).</summary>
    Mechanical,

    /// <summary>An organic core with rigid attachments (or vice versa).</summary>
    Hybrid,
}

/// <summary>Classification verdict with a user-facing explanation.</summary>
public sealed class Classification
{
    public required MeshKind Kind { get; init; }

    /// <summary>0..1; how far apart the organic/mechanical evidence is.</summary>
    public required float Confidence { get; init; }

    /// <summary>One plain-language sentence for the UI chip tooltip.</summary>
    public required string Explanation { get; init; }
}