Skip to content
This repository has been archived by the owner on Oct 30, 2019. It is now read-only.

[FNA] #147 first pass at cleanup for ./ CurveKey to Game #192

Merged
merged 1 commit into from
Apr 7, 2014
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
317 changes: 188 additions & 129 deletions MonoGame.Framework/CurveKey.cs
Original file line number Diff line number Diff line change
Expand Up @@ -40,133 +40,192 @@ MIT License
namespace Microsoft.Xna.Framework
{
[DataContract]
public class CurveKey : IEquatable<CurveKey>, IComparable<CurveKey>
{
#region Public Properties

[DataMember]
public CurveContinuity Continuity
{
get { return this.continuity; }
set { this.continuity = value; }
}

[DataMember]
public float Position
{
get { return this.position; }
}

[DataMember]
public float TangentIn
{
get { return this.tangentIn; }
set { this.tangentIn = value; }
}

[DataMember]
public float TangentOut
{
get { return this.tangentOut; }
set { this.tangentOut = value; }
}

[DataMember]
public float Value
{
get { return this.value; }
set { this.value = value; }
}

#endregion

#region Private Fields

private CurveContinuity continuity;
private float position;
private float tangentIn;
private float tangentOut;
private float value;

#endregion

#region Public Constructors

public CurveKey(float position, float value)
: this(position, value, 0, 0, CurveContinuity.Smooth)
{

}

public CurveKey(float position, float value, float tangentIn, float tangentOut)
: this(position, value, tangentIn, tangentOut, CurveContinuity.Smooth)
{

}

public CurveKey(float position, float value, float tangentIn, float tangentOut, CurveContinuity continuity)
{
this.position = position;
this.value = value;
this.tangentIn = tangentIn;
this.tangentOut = tangentOut;
this.continuity = continuity;
}

#endregion

#region Public Methods

public CurveKey Clone()
{
return new CurveKey(this.position, this.value, this.tangentIn, this.tangentOut, this.continuity);
}

public int CompareTo(CurveKey other)
{
return this.position.CompareTo(other.position);
}

public bool Equals(CurveKey other)
{
return (this == other);
}

#endregion

#region Public Static Operators and Override Methods

public static bool operator !=(CurveKey a, CurveKey b)
{
return !(a == b);
}

public static bool operator ==(CurveKey a, CurveKey b)
{
if (object.Equals(a, null))
return object.Equals(b, null);

if (object.Equals(b, null))
return object.Equals(a, null);

return (a.position == b.position)
&& (a.value == b.value)
&& (a.tangentIn == b.tangentIn)
&& (a.tangentOut == b.tangentOut)
&& (a.continuity == b.continuity);
}

public override bool Equals(object obj)
{
return (obj is CurveKey) ? ((CurveKey)obj) == this : false;
}

public override int GetHashCode()
{
return this.position.GetHashCode() ^ this.value.GetHashCode() ^ this.tangentIn.GetHashCode() ^
this.tangentOut.GetHashCode() ^ this.continuity.GetHashCode();
}

#endregion
}
public class CurveKey : IEquatable<CurveKey>, IComparable<CurveKey>
{
#region Public Properties

[DataMember]
public CurveContinuity Continuity
{
get
{
return this.continuity;
}
set
{
this.continuity = value;
}
}

[DataMember]
public float Position
{
get
{
return this.position;
}
}

[DataMember]
public float TangentIn
{
get
{
return this.tangentIn;
}
set
{
this.tangentIn = value;
}
}

[DataMember]
public float TangentOut
{
get
{
return this.tangentOut;
}
set
{
this.tangentOut = value;
}
}

[DataMember]
public float Value
{
get
{
return this.value;
}
set
{
this.value = value;
}
}

#endregion

#region Private Fields

private CurveContinuity continuity;
private float position;
private float tangentIn;
private float tangentOut;
private float value;

#endregion

#region Public Constructors

public CurveKey(
float position,
float value
) : this(
position,
value,
0,
0,
CurveContinuity.Smooth
) {
}

public CurveKey(
float position,
float value,
float tangentIn,
float tangentOut
) : this(
position,
value,
tangentIn,
tangentOut,
CurveContinuity.Smooth
) {
}

public CurveKey(
float position,
float value,
float tangentIn,
float tangentOut,
CurveContinuity continuity
) {
this.position = position;
this.value = value;
this.tangentIn = tangentIn;
this.tangentOut = tangentOut;
this.continuity = continuity;
}

#endregion

#region Public Methods

public CurveKey Clone()
{
return new CurveKey(
this.position,
this.value,
this.tangentIn,
this.tangentOut,
this.continuity
);
}

public int CompareTo(CurveKey other)
{
return this.position.CompareTo(other.position);
}

public bool Equals(CurveKey other)
{
return (this == other);
}

#endregion

#region Public Static Operators and Override Methods

public static bool operator !=(CurveKey a, CurveKey b)
{
return !(a == b);
}

public static bool operator ==(CurveKey a, CurveKey b)
{
if (object.Equals(a, null))
{
return object.Equals(b, null);
}

if (object.Equals(b, null))
{
return object.Equals(a, null);
}

return (a.position == b.position) &&
(a.value == b.value) &&
(a.tangentIn == b.tangentIn) &&
(a.tangentOut == b.tangentOut) &&
(a.continuity == b.continuity);
}

public override bool Equals(object obj)
{
return (obj is CurveKey) ? ((CurveKey) obj) == this : false;
}

public override int GetHashCode()
{
return this.position.GetHashCode() ^
this.value.GetHashCode() ^
this.tangentIn.GetHashCode() ^
this.tangentOut.GetHashCode() ^
this.continuity.GetHashCode();
}

#endregion
}
}
Loading