public override int GetHashCode() { unchecked // Overflow is fine, just wrap { int hashCode = 41; if(Up != null) hashCode = hashCode * 59 + Up.GetHashCode(); if(Center != null) hashCode = hashCode * 59 + Center.GetHashCode(); if(Eye != null) hashCode = hashCode * 59 + Eye.GetHashCode(); if(Projection != null) hashCode = hashCode * 59 + Projection.GetHashCode(); return hashCode; } }