X-Git-Url: http://review.tizen.org/git/?p=platform%2Fcore%2Fuifw%2Fdali-toolkit.git;a=blobdiff_plain;f=plugins%2Fdali-swig%2Fmanual%2Fcsharp%2FPosition.cs;h=2e58ab4216f5bc3436586eb295ffde7f53ccd1c7;hp=b1cffe5bf06f6e80e619db544d51e8372996f24f;hb=1e919141627d7a3a002d21fce45163bfd2cd3fc9;hpb=1c79fd0c77d266314b74e32ab8a0070fb5178380 diff --git a/plugins/dali-swig/manual/csharp/Position.cs b/plugins/dali-swig/manual/csharp/Position.cs index b1cffe5..2e58ab4 100644 --- a/plugins/dali-swig/manual/csharp/Position.cs +++ b/plugins/dali-swig/manual/csharp/Position.cs @@ -1,153 +1,188 @@ -namespace Dali { - namespace CSharp { - using System; - - public class Position - { - public float[] v; - - /** - * @brief default constructor - * - * @since 1.0.0 - */ - public Position() - { - v = new float[3]; - } - - /** - * @brief constructor - * - * @since 1.0.0 - * @param [in] a The Position X. - * @param [in] b The Position Y. - * @param [in] c The Position Z. - */ - public Position(float a, float b, float c):this() - { - v[0] = a; - v[1] = b; - v[2] = c; - } - - /** - * @brief constructor - * - * @since 1.0.0 - * @param [in] o The Vector Position X, Y, Z. - */ - public Position(Vector3 o) - : this(o.x, o.y, o.z) - { - } - - - ///< name "X", type float (Position X value) - //@since 1.0.0 - public float X - { - get { return v[0]; } - set { v[0] = value; } - } - - ///< name "Y", type float (Position Y value) - //@since 1.0.0 - public float Y - { - get { return v[1]; } - set { v[1] = value; } - } - - ///< name "Z", type float (Position Z value) - //@since 1.0.0 - public float Z - { - get { return v[2]; } - set { v[2] = value; } - } - - /** - * @brief operator+ - * - * @since 1.0.0 - * @param [in] l The Position to add. - * @param [in] r The Position to add - * @return A reference to this - */ - public static Position operator +(Position l, Position r) - { - return new Position(l.X + r.X, l.Y + r.Y, l.Z + r.Z); - } - - /** - * @brief operator- - * - * @since 1.0.0 - * @param [in] l The Position to substract. - * @param [in] r The Position to substract - * @return A reference to this - */ - public static Position operator -(Position l, Position r) - { - return new Position(l.X - r.X, l.Y - r.Y, l.Z - r.Z); - } - - /** - * @brief operator* - * - * @since 1.0.0 - * @param [in] a The Position to multiply. - * @param [in] b The Position to multiply - * @return A reference to this - */ - public static Position operator *(Position a, double b) - { - return new Position((float)(a.X * b), (float)(a.Y * b), (float)(a.Z * b)); - } - - /** - * @brief operator/ - * - * @since 1.0.0 - * @param [in] a The Position to divide. - * @param [in] b The Position to divide - * @return float value of division operation - */ - public static float operator /(Position a, Position b) - { - return (float)System.Math.Sqrt((a.X / b.X) * (a.Y / b.Y) * (a.Z / b.Z)); - } - - /** - * @brief Equals - * - * @since 1.0.0 - * @param [in] o The Position object to compare. - * @return bool, whether object equal or not - */ - public override bool Equals(object obj) - { - Position r = obj as Position; - if (r == null) - { - return false; - } - return this.X == r.X && this.Y == r.Y && this.Z == r.Z; - } - - /** - * @brief Clone - * - * @since 1.0.0 - * @return Position object - */ - public Position Clone() - { - Position copy = new Position(X, Y, Z); - return copy; - } +namespace Dali +{ + using System; + + public class Position + { + + private float x; + private float y; + private float z; + + /** + * @brief constructor + * + * @since 1.0.0 + */ + public Position() + { + x = 0.0f; + y = 0.0f; + z = 0.0f; + } + + /** + * @brief constructor + * + * @since 1.0.0 + * @param [in] a The Position X. + * @param [in] b The Position Y. + * @param [in] c The Position Z. + */ + public Position(float a, float b, float c) + { + x = a; + y = b; + z = c; + } + + /** + * @brief constructor + * + * @since 1.0.0 + * @param [in] o The Vector Position X, Y, Z. + */ + public Position(Vector3 o) + { + x = o.x; + y = o.y; + z = o.z; + } + + ///< name "X", type float (Position X value) + //@since 1.0.0 + public float X + { + get { return x; } + set { x = value; } + } + + ///< name "Y", type float (Position Y value) + //@since 1.0.0 + public float Y + { + get { return y; } + set { y = value; } + } + + ///< name "Z", type float (Position Z value) + //@since 1.0.0 + public float Z + { + get { return z; } + set { z = value; } + } + + /** + * @brief operator+ + * + * @since 1.0.0 + * @param [in] l The Position to add. + * @param [in] r The Position to add + * @return A reference to this + */ + public static Position operator +(Position l, Position r) + { + return new Position(l.X + r.X, l.Y + r.Y, l.Z + r.Z); + } + + /** + * @brief operator- + * + * @since 1.0.0 + * @param [in] l The Position to substract. + * @param [in] r The Position to substract + * @return A reference to this + */ + public static Position operator -(Position l, Position r) + { + return new Position(l.X - r.X, l.Y - r.Y, l.Z - r.Z); + } + + /** + * @brief operator* + * + * @since 1.0.0 + * @param [in] a The Position to multiply. + * @param [in] b The constant to multiply of type double. + * @return A reference to this + */ + public static Position operator *(Position a, double b) + { + return new Position((int)(a.X * b), (int)(a.Y * b), (int)(a.Z * b)); + } + + /** + * @brief operator/ + * + * @since 1.0.0 + * @param [in] a The Position to divide. + * @param [in] b The Position to divide + * @return float value of division operation + */ + public static float operator /(Position a, Position b) + { + return (float)System.Math.Sqrt((a.X / b.X) * (a.Y / b.Y) * (a.Z / b.Z)); + } + + /** + * @brief Operator == + * + * @since 1.0.0 + * @param [in] a The Position object to compare. + * @param [in] b The Position object to compare. + * @return bool, whether Position are equal or not + */ + public static bool operator == (Position a, Position b) + { + return a.X == b.X && a.Y == b.Y && a.Z == b.Z; + } + + /** + * @brief Operator != + * + * @since 1.0.0 + * @param [in] a The Position object to compare. + * @param [in] b The Position object to compare. + * @return bool, whether Position are equal or not + */ + public static bool operator != (Position a, Position b) + { + return a.X != b.X || a.Y != b.Y || a.Z == b.Z; } - } + /** + * @brief GetHashCode + * + * @since 1.0.0 + * @return int, hascode of position + */ + public override int GetHashCode() + { + return base.GetHashCode(); + } + + /** + * @brief Clone + * + * @since 1.0.0 + * @return Position object + */ + public Position Clone() + { + Position copy = new Position(X, Y, Z); + return copy; + } + + // User-defined conversion from Position to Vector3 + public static implicit operator Vector3(Position pos) + { + return new Vector3(pos.x, pos.y, pos.z); + } + + public static implicit operator Position(Vector3 vec) + { + return new Position(vec.x, vec.y, vec.z); + } + } }