Editor/Output/ArchLocate.Measures.cs
using System;
using System.Collections.Generic;
using System.Linq;
using Sandbox;

namespace Sunless.Architecture;

public static partial class ArchLocate {
	public static float WallYaw( ArchWall wall ) {
		var direction = wall.Direction;

		return MathF.Atan2( direction.y, direction.x ).RadianToDegree();
	}

	static float CabinetYaw( ArchCabinetPart part ) {
		var along = part.Along;

		return MathF.Atan2( along.y, along.x ).RadianToDegree();
	}

	static float FenceYaw( ArchFencePart fence ) {
		if ( fence.Nodes.Count < 2 ) {
			return 0f;
		}

		var run = fence.Nodes[^1].Position - fence.Nodes[0].Position;

		return MathF.Atan2( run.y, run.x ).RadianToDegree();
	}

	static float WallHeight( ArchWall wall, ArchRoom room, ArchKit kit ) => ArchWallSection.Height( wall, room, kit );

	static float WallThickness( ArchWall wall, ArchKit kit ) => ArchWallSection.Thickness( wall, kit );
}