Defines analysis results for a mesh in the AutoRig pipeline. Declares an OrganicCategory enum and an AnalysisResult record-like class that stores a RigMesh, lists of MeshPart and PartContact, an optional SymmetryPlane, a Classification, detected OrganicCategory, and a human-readable Summary.
using AutoRig.Mesh;
namespace AutoRig.Analyze;
/// <summary>Organic body category (detection lands with the organic solver; Unknown until then).</summary>
public enum OrganicCategory
{
Unknown,
Humanoid,
Quadruped,
Winged,
Other,
}
/// <summary>Everything the analysis pipeline learned about one mesh.</summary>
public sealed class AnalysisResult
{
public required RigMesh Mesh { get; init; }
public required IReadOnlyList<MeshPart> Parts { get; init; }
public required IReadOnlyList<PartContact> Contacts { get; init; }
public required SymmetryPlane? Symmetry { get; init; }
public required Classification Classification { get; init; }
public required OrganicCategory Category { get; init; }
/// <summary>Chip text, e.g. "Mechanical · 6 rigid parts", "Organic · symmetric".</summary>
public required string Summary { get; init; }
}