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

Commit

Permalink
Merge pull request #192 from extrahotchilipowder/monogame-sdl2
Browse files Browse the repository at this point in the history
[FNA] #147 first pass at cleanup for ./ CurveKey to Game
  • Loading branch information
flibitijibibo committed Apr 7, 2014
2 parents 211d23b + a8c4c15 commit 80b47e7
Show file tree
Hide file tree
Showing 8 changed files with 1,656 additions and 1,382 deletions.
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 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
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

0 comments on commit 80b47e7

Please sign in to comment.