//Auto-generated by kalyptus. DO NOT EDIT.
namespace Qyoto {
    using System;
    [SmokeClass("QPoint")]
    public class QPoint : Object, IDisposable {
        protected SmokeInvocation interceptor = null;
        private IntPtr smokeObject;
        protected QPoint(Type dummy) {}
        protected void CreateProxy() {
            interceptor = new SmokeInvocation(typeof(QPoint), this);
        }
        private static SmokeInvocation staticInterceptor = null;
        static QPoint() {
            staticInterceptor = new SmokeInvocation(typeof(QPoint), null);
        }
        public QPoint() : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QPoint", "QPoint()", typeof(void));
        }
        public QPoint(int xpos, int ypos) : this((Type) null) {
            CreateProxy();
            interceptor.Invoke("QPoint$$", "QPoint(int, int)", typeof(void), typeof(int), xpos, typeof(int), ypos);
        }
        public bool IsNull() {
            return (bool) interceptor.Invoke("isNull", "isNull() const", typeof(bool));
        }
        public int X() {
            return (int) interceptor.Invoke("x", "x() const", typeof(int));
        }
        public int Y() {
            return (int) interceptor.Invoke("y", "y() const", typeof(int));
        }
        public void SetX(int x) {
            interceptor.Invoke("setX$", "setX(int)", typeof(void), typeof(int), x);
        }
        public void SetY(int y) {
            interceptor.Invoke("setY$", "setY(int)", typeof(void), typeof(int), y);
        }
        public int ManhattanLength() {
            return (int) interceptor.Invoke("manhattanLength", "manhattanLength() const", typeof(int));
        }
        public int Rx() {
            return (int) interceptor.Invoke("rx", "rx()", typeof(int));
        }
        public int Ry() {
            return (int) interceptor.Invoke("ry", "ry()", typeof(int));
        }
        ~QPoint() {
            interceptor.Invoke("~QPoint", "~QPoint()", typeof(void));
        }
        public void Dispose() {
            interceptor.Invoke("~QPoint", "~QPoint()", typeof(void));
        }
        public override bool Equals(object o) {
            if (!(o is QPoint)) { return false; }
            return this == (QPoint) o;
        }
        public override int GetHashCode() {
            return interceptor.GetHashCode();
        }
        public static QPoint operator*(QPoint lhs, double c) {
            return (QPoint) staticInterceptor.Invoke("operator*=$", "operator*=(qreal)", typeof(QPoint), typeof(QPoint), lhs, typeof(double), c);
        }
        public static QPoint operator/(QPoint lhs, double c) {
            return (QPoint) staticInterceptor.Invoke("operator/=$", "operator/=(qreal)", typeof(QPoint), typeof(QPoint), lhs, typeof(double), c);
        }
        public static bool operator==(QPoint p1, QPoint p2) {
            return (bool) staticInterceptor.Invoke("operator==##", "operator==(const QPoint&, const QPoint&)", typeof(bool), typeof(QPoint), p1, typeof(QPoint), p2);
        }
        public static bool operator!=(QPoint p1, QPoint p2) {
            return !(bool) staticInterceptor.Invoke("operator==##", "operator==(const QPoint&, const QPoint&)", typeof(bool), typeof(QPoint), p1, typeof(QPoint), p2);
        }
        public static QPoint operator+(QPoint p1, QPoint p2) {
            return (QPoint) staticInterceptor.Invoke("operator+##", "operator+(const QPoint&, const QPoint&)", typeof(QPoint), typeof(QPoint), p1, typeof(QPoint), p2);
        }
        public static QPoint operator-(QPoint p1, QPoint p2) {
            return (QPoint) staticInterceptor.Invoke("operator-##", "operator-(const QPoint&, const QPoint&)", typeof(QPoint), typeof(QPoint), p1, typeof(QPoint), p2);
        }
        public static QPoint operator*(double c, QPoint p) {
            return (QPoint) staticInterceptor.Invoke("operator*$#", "operator*(qreal, const QPoint&)", typeof(QPoint), typeof(double), c, typeof(QPoint), p);
        }
        public static QPoint operator-(QPoint p) {
            return (QPoint) staticInterceptor.Invoke("operator-#", "operator-(const QPoint&)", typeof(QPoint), typeof(QPoint), p);
        }
        public static QPoint operator*(QPoint p, QMatrix m) {
            return (QPoint) staticInterceptor.Invoke("operator*##", "operator*(const QPoint&, const QMatrix&)", typeof(QPoint), typeof(QPoint), p, typeof(QMatrix), m);
        }
        public static QPoint operator*(QPoint p, QTransform m) {
            return (QPoint) staticInterceptor.Invoke("operator*##", "operator*(const QPoint&, const QTransform&)", typeof(QPoint), typeof(QPoint), p, typeof(QTransform), m);
        }
    }
}
