using Newtonsoft.Json;
using System;
using System.Collections.Generic;
namespace FeMM.Grasshopper.Components.Models.MeCheck2
{
public class CompositeSectionStiffeners : IEquatable<CompositeSectionStiffeners>
{
public double BeamLength { get; set; }
public double GeometryStiffenerSpacing { get; set; }
public double GeometryStiffenerWidth { get; set; }
public double GeometryStiffenerThickness { get; set; }
public bool GeometryStiffenerSymmetric { get; set; }
public bool GeometryStiffenerRigid { get; set; }
public CompositeSectionStiffeners()
{
}
public CompositeSectionStiffeners(double beamLength, double geometryStiffenerSpacing, double geometryStiffenerWidth, double geometryStiffenerThickness, bool geometryStiffenerSymmetric, bool geometryStiffenerRigid)
{
BeamLength = beamLength;
GeometryStiffenerSpacing = geometryStiffenerSpacing;
GeometryStiffenerWidth = geometryStiffenerWidth;
GeometryStiffenerThickness = geometryStiffenerThickness;
GeometryStiffenerSymmetric = geometryStiffenerSymmetric;
GeometryStiffenerRigid = geometryStiffenerRigid;
}
public void Write(JsonTextWriter writer)
{
writer.WritePropertyName("BeamLength");
writer.WriteValue(BeamLength);
writer.WritePropertyName("GeometryStiffenerSymmetric");
writer.WriteValue(GeometryStiffenerSymmetric);
writer.WritePropertyName("GeometryStiffenerRigid");
writer.WriteValue(GeometryStiffenerRigid);
writer.WritePropertyName("GeometryStiffenerSpacing");
writer.WriteValue(GeometryStiffenerSpacing);
writer.WritePropertyName("GeometryStiffenerWidth");
writer.WriteValue(GeometryStiffenerWidth);
writer.WritePropertyName("GeometryStiffenerThickness");
writer.WriteValue(GeometryStiffenerThickness);
}
public override bool Equals(object obj)
{
return Equals(obj as CompositeSectionStiffeners);
}
public bool Equals(CompositeSectionStiffeners other)
{
return other is not null &&
BeamLength == other.BeamLength &&
GeometryStiffenerSpacing == other.GeometryStiffenerSpacing &&
GeometryStiffenerWidth == other.GeometryStiffenerWidth &&
GeometryStiffenerThickness == other.GeometryStiffenerThickness &&
GeometryStiffenerSymmetric == other.GeometryStiffenerSymmetric &&
GeometryStiffenerRigid == other.GeometryStiffenerRigid;
}
public override int GetHashCode()
{
unchecked
{
int hashCode = -1630197643;
hashCode = hashCode * -1521134295 + BeamLength.GetHashCode();
hashCode = hashCode * -1521134295 + GeometryStiffenerSpacing.GetHashCode();
hashCode = hashCode * -1521134295 + GeometryStiffenerWidth.GetHashCode();
hashCode = hashCode * -1521134295 + GeometryStiffenerThickness.GetHashCode();
hashCode = hashCode * -1521134295 + GeometryStiffenerSymmetric.GetHashCode();
hashCode = hashCode * -1521134295 + GeometryStiffenerRigid.GetHashCode();
return hashCode;
}
}
public static bool operator ==(CompositeSectionStiffeners left, CompositeSectionStiffeners right)
{
return EqualityComparer<CompositeSectionStiffeners>.Default.Equals(left, right);
}
public static bool operator !=(CompositeSectionStiffeners left, CompositeSectionStiffeners right)
{
return !(left == right);
}
}
}