//Auto-generated by /usr/bin/smokegen. DO NOT EDIT.
#include <qt3support_includes.h>
#include <typeinfo>

#include <smoke.h>
#include <qt3support_smoke.h>

class __internal_SmokeClass {};

namespace __smokeqt3support {

class x_Q3CanvasPixmapArray : public Q3CanvasPixmapArray {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // Q3CanvasPixmapArray* Q3CanvasPixmapArray()
        x_Q3CanvasPixmapArray* xret = new x_Q3CanvasPixmapArray();
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasPixmapArray() : Q3CanvasPixmapArray() {}
    static void x_2(Smoke::Stack x) {
        // Q3CanvasPixmapArray* Q3CanvasPixmapArray(const QString&, int)
        x_Q3CanvasPixmapArray* xret = new x_Q3CanvasPixmapArray(*(const QString*)x[1].s_class,(int)x[2].s_int);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasPixmapArray(const QString& x1, int x2) : Q3CanvasPixmapArray(x1, x2) {}
    static void x_3(Smoke::Stack x) {
        // Q3CanvasPixmapArray* Q3CanvasPixmapArray(Q3PtrList<QPixmap>, Q3PtrList<QPoint>)
        x_Q3CanvasPixmapArray* xret = new x_Q3CanvasPixmapArray(*(Q3PtrList<QPixmap>*)x[1].s_class,*(Q3PtrList<QPoint>*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasPixmapArray(Q3PtrList<QPixmap> x1, Q3PtrList<QPoint> x2) : Q3CanvasPixmapArray(x1, x2) {}
    static void x_4(Smoke::Stack x) {
        // Q3CanvasPixmapArray* Q3CanvasPixmapArray(Q3ValueList<QPixmap>, Q3PointArray)
        x_Q3CanvasPixmapArray* xret = new x_Q3CanvasPixmapArray(*(Q3ValueList<QPixmap>*)x[1].s_class,*(Q3PointArray*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasPixmapArray(Q3ValueList<QPixmap> x1, Q3PointArray x2) : Q3CanvasPixmapArray(x1, x2) {}
    void x_5(Smoke::Stack x) {
        // bool readPixmaps(const QString&, int)
        bool xret = this->Q3CanvasPixmapArray::readPixmaps(*(const QString*)x[1].s_class,(int)x[2].s_int);
        x[0].s_bool = xret;
    }
    void x_6(Smoke::Stack x) {
        // bool readCollisionMasks(const QString&)
        bool xret = this->Q3CanvasPixmapArray::readCollisionMasks(*(const QString*)x[1].s_class);
        x[0].s_bool = xret;
    }
    void x_7(Smoke::Stack x) {
        // bool operator!()
        bool xret = this->Q3CanvasPixmapArray::operator!();
        x[0].s_bool = xret;
    }
    void x_8(Smoke::Stack x) {
        // bool isValid() const
        bool xret = ((const x_Q3CanvasPixmapArray*)this)->Q3CanvasPixmapArray::isValid();
        x[0].s_bool = xret;
    }
    void x_9(Smoke::Stack x) {
        // Q3CanvasPixmap* image(int) const
        Q3CanvasPixmap* xret = ((const x_Q3CanvasPixmapArray*)this)->Q3CanvasPixmapArray::image((int)x[1].s_int);
        x[0].s_class = (void*)xret;
    }
    void x_10(Smoke::Stack x) {
        // void setImage(int, Q3CanvasPixmap*)
        this->Q3CanvasPixmapArray::setImage((int)x[1].s_int,(Q3CanvasPixmap*)x[2].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_11(Smoke::Stack x) {
        // unsigned int count() const
        unsigned int xret = ((const x_Q3CanvasPixmapArray*)this)->Q3CanvasPixmapArray::count();
        x[0].s_uint = xret;
    }
    static void x_12(Smoke::Stack x) {
        // Q3CanvasPixmapArray* Q3CanvasPixmapArray(const QString&)
        x_Q3CanvasPixmapArray* xret = new x_Q3CanvasPixmapArray(*(const QString*)x[1].s_class,(int)0);
        x[0].s_class = (void*)xret;
    }
    static void x_13(Smoke::Stack x) {
        // Q3CanvasPixmapArray* Q3CanvasPixmapArray(Q3ValueList<QPixmap>)
        x_Q3CanvasPixmapArray* xret = new x_Q3CanvasPixmapArray(*(Q3ValueList<QPixmap>*)x[1].s_class,(Q3PointArray)Q3PointArray());
        x[0].s_class = (void*)xret;
    }
    void x_14(Smoke::Stack x) {
        // bool readPixmaps(const QString&)
        bool xret = this->Q3CanvasPixmapArray::readPixmaps(*(const QString*)x[1].s_class,(int)0);
        x[0].s_bool = xret;
    }
    ~x_Q3CanvasPixmapArray() { this->_binding->deleted(14, (void*)this); }
};
void xcall_Q3CanvasPixmapArray(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3CanvasPixmapArray *xself = (x_Q3CanvasPixmapArray*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Q3CanvasPixmapArray::x_1(args);	break;
        case 2: x_Q3CanvasPixmapArray::x_2(args);	break;
        case 3: x_Q3CanvasPixmapArray::x_3(args);	break;
        case 4: x_Q3CanvasPixmapArray::x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: x_Q3CanvasPixmapArray::x_12(args);	break;
        case 13: x_Q3CanvasPixmapArray::x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: delete (Q3CanvasPixmapArray*)xself;	break;
    }
}
class x_Q3CanvasPolygon : public Q3CanvasPolygon, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // Q3CanvasPolygon* Q3CanvasPolygon(Q3Canvas*)
        x_Q3CanvasPolygon* xret = new x_Q3CanvasPolygon((Q3Canvas*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasPolygon(Q3Canvas* x1) : Q3CanvasPolygon(x1) {}
    void x_2(Smoke::Stack x) {
        // void setPoints(Q3PointArray)
        this->Q3CanvasPolygon::setPoints(*(Q3PointArray*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_3(Smoke::Stack x) {
        // Q3PointArray points() const
        Q3PointArray xret = ((const x_Q3CanvasPolygon*)this)->Q3CanvasPolygon::points();
        x[0].s_class = (void*)new Q3PointArray(xret);
    }
    void x_4(Smoke::Stack x) {
        // void moveBy(double, double)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasPolygon*>(this))) {
            this->Q3CanvasPolygon::moveBy((double)x[1].s_double,(double)x[2].s_double);
            (void)x; // noop (for compiler warning)
        } else {
            this->moveBy((double)x[1].s_double,(double)x[2].s_double);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_5(Smoke::Stack x) {
        // Q3PointArray areaPoints() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasPolygon*>(this))) {
            Q3PointArray xret = ((const x_Q3CanvasPolygon*)this)->Q3CanvasPolygon::areaPoints();
            x[0].s_class = (void*)new Q3PointArray(xret);
        } else {
            Q3PointArray xret = ((const x_Q3CanvasPolygon*)this)->areaPoints();
            x[0].s_class = (void*)new Q3PointArray(xret);
        }
    }
    void x_6(Smoke::Stack x) {
        // int rtti() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasPolygon*>(this))) {
            int xret = ((const x_Q3CanvasPolygon*)this)->Q3CanvasPolygon::rtti();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Q3CanvasPolygon*)this)->rtti();
            x[0].s_int = xret;
        }
    }
    void x_7(Smoke::Stack x) {
        // void drawShape(QPainter&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasPolygon*>(this))) {
            this->Q3CanvasPolygon::drawShape(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->drawShape(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    static void x_8(Smoke::Stack x) {
        // Q3CanvasPolygon* Q3CanvasPolygon(const Q3CanvasPolygon&)
        x_Q3CanvasPolygon* xret = new x_Q3CanvasPolygon(*(const Q3CanvasPolygon*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasPolygon(const Q3CanvasPolygon& x1) : Q3CanvasPolygon(x1) {}
    static void x_9(Smoke::Stack x) {
        // static int RTTI
        x[0].s_int = Q3CanvasPolygon::RTTI;
    }
    static void x_10(Smoke::Stack x) {
        // static int RTTI=
        Q3CanvasPolygon::RTTI = (int)x[1].s_int;
    }
    void x_11(Smoke::Stack x) {
        // Q3PointArray poly
        x[0].s_class = (void*)&this->Q3CanvasPolygon::poly;
    }
    void x_12(Smoke::Stack x) {
        // Q3PointArray poly=
        this->Q3CanvasPolygon::poly = *(const Q3PointArray*)x[1].s_class;
    }
    virtual void setPen(QPen x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QPen(x1);
        if (this->_binding->callMethod(403, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::setPen(x1);
    }
    virtual void setBrush(QBrush x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QBrush(x1);
        if (this->_binding->callMethod(404, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::setBrush(x1);
    }
    virtual Q3PointArray areaPoints() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(392, (void*)this, x)) {
            Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
            Q3PointArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygon::areaPoints();
    }
    virtual Q3PointArray areaPointsAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(408, (void*)this, x)) {
            Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
            Q3PointArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::areaPointsAdvanced();
    }
    virtual void drawShape(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(394, (void*)this, x)) return;
        this->Q3CanvasPolygon::drawShape(x1);
    }
    virtual void moveBy(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(391, (void*)this, x)) return;
        this->Q3CanvasPolygon::moveBy(x1, x2);
    }
    virtual void setAnimated(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(305, (void*)this, x)) return;
        this->Q3CanvasItem::setAnimated(x1);
    }
    virtual void setVelocity(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(306, (void*)this, x)) return;
        this->Q3CanvasItem::setVelocity(x1, x2);
    }
    virtual void advance(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(311, (void*)this, x)) return;
        this->Q3CanvasItem::advance(x1);
    }
    virtual bool collidesWith(const Q3CanvasItem* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(402, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Q3CanvasPolygonalItem::collidesWith(x1);
    }
    virtual void setCanvas(Q3Canvas* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(314, (void*)this, x)) return;
        this->Q3CanvasItem::setCanvas(x1);
    }
    virtual void draw(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(411, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::draw(x1);
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(318, (void*)this, x)) return;
        this->Q3CanvasItem::setVisible(x1);
    }
    virtual void setSelected(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(320, (void*)this, x)) return;
        this->Q3CanvasItem::setSelected(x1);
    }
    virtual void setEnabled(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(322, (void*)this, x)) return;
        this->Q3CanvasItem::setEnabled(x1);
    }
    virtual void setActive(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(324, (void*)this, x)) return;
        this->Q3CanvasItem::setActive(x1);
    }
    virtual int rtti() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(393, (void*)this, x)) return (int)x[0].s_int;
        return this->Q3CanvasPolygon::rtti();
    }
    virtual QRect boundingRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(409, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::boundingRect();
    }
    virtual QRect boundingRectAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(332, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasItem::boundingRectAdvanced();
    }
    ~x_Q3CanvasPolygon() { this->_binding->deleted(15, (void*)this); }
};
void xcall_Q3CanvasPolygon(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3CanvasPolygon *xself = (x_Q3CanvasPolygon*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Q3CanvasPolygon::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Q3CanvasPolygon::x_8(args);	break;
        case 9: x_Q3CanvasPolygon::x_9(args);	break;
        case 10: x_Q3CanvasPolygon::x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: delete (Q3CanvasPolygon*)xself;	break;
    }
}
class x_Q3CanvasPolygonalItem : public Q3CanvasPolygonalItem, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // Q3CanvasPolygonalItem* Q3CanvasPolygonalItem(Q3Canvas*)
        x_Q3CanvasPolygonalItem* xret = new x_Q3CanvasPolygonalItem((Q3Canvas*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasPolygonalItem(Q3Canvas* x1) : Q3CanvasPolygonalItem(x1) {}
    void x_2(Smoke::Stack x) {
        // bool collidesWith(const Q3CanvasItem*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasPolygonalItem*>(this))) {
            bool xret = ((const x_Q3CanvasPolygonalItem*)this)->Q3CanvasPolygonalItem::collidesWith((const Q3CanvasItem*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_Q3CanvasPolygonalItem*)this)->collidesWith((const Q3CanvasItem*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_3(Smoke::Stack x) {
        // virtual void setPen(QPen)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasPolygonalItem*>(this))) {
            this->Q3CanvasPolygonalItem::setPen(*(QPen*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setPen(*(QPen*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_4(Smoke::Stack x) {
        // virtual void setBrush(QBrush)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasPolygonalItem*>(this))) {
            this->Q3CanvasPolygonalItem::setBrush(*(QBrush*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->setBrush(*(QBrush*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_5(Smoke::Stack x) {
        // QPen pen() const
        QPen xret = ((const x_Q3CanvasPolygonalItem*)this)->Q3CanvasPolygonalItem::pen();
        x[0].s_class = (void*)new QPen(xret);
    }
    void x_6(Smoke::Stack x) {
        // QBrush brush() const
        QBrush xret = ((const x_Q3CanvasPolygonalItem*)this)->Q3CanvasPolygonalItem::brush();
        x[0].s_class = (void*)new QBrush(xret);
    }
    void x_7(Smoke::Stack x) {
        // virtual Q3PointArray areaPoints() const = 0
        Q3PointArray xret = ((const x_Q3CanvasPolygonalItem*)this)->areaPoints();
        x[0].s_class = (void*)new Q3PointArray(xret);
    }
    void x_8(Smoke::Stack x) {
        // virtual Q3PointArray areaPointsAdvanced() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasPolygonalItem*>(this))) {
            Q3PointArray xret = ((const x_Q3CanvasPolygonalItem*)this)->Q3CanvasPolygonalItem::areaPointsAdvanced();
            x[0].s_class = (void*)new Q3PointArray(xret);
        } else {
            Q3PointArray xret = ((const x_Q3CanvasPolygonalItem*)this)->areaPointsAdvanced();
            x[0].s_class = (void*)new Q3PointArray(xret);
        }
    }
    void x_9(Smoke::Stack x) {
        // QRect boundingRect() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasPolygonalItem*>(this))) {
            QRect xret = ((const x_Q3CanvasPolygonalItem*)this)->Q3CanvasPolygonalItem::boundingRect();
            x[0].s_class = (void*)new QRect(xret);
        } else {
            QRect xret = ((const x_Q3CanvasPolygonalItem*)this)->boundingRect();
            x[0].s_class = (void*)new QRect(xret);
        }
    }
    void x_10(Smoke::Stack x) {
        // int rtti() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasPolygonalItem*>(this))) {
            int xret = ((const x_Q3CanvasPolygonalItem*)this)->Q3CanvasPolygonalItem::rtti();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Q3CanvasPolygonalItem*)this)->rtti();
            x[0].s_int = xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // void draw(QPainter&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasPolygonalItem*>(this))) {
            this->Q3CanvasPolygonalItem::draw(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->draw(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_12(Smoke::Stack x) {
        // virtual void drawShape(QPainter&) = 0
        this->drawShape(*(QPainter*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_13(Smoke::Stack x) {
        // bool winding() const
        bool xret = ((const x_Q3CanvasPolygonalItem*)this)->Q3CanvasPolygonalItem::winding();
        x[0].s_bool = xret;
    }
    void x_14(Smoke::Stack x) {
        // void setWinding(bool)
        this->Q3CanvasPolygonalItem::setWinding((bool)x[1].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_15(Smoke::Stack x) {
        // void invalidate()
        this->Q3CanvasPolygonalItem::invalidate();
        (void)x; // noop (for compiler warning)
    }
    void x_16(Smoke::Stack x) {
        // bool isValid() const
        bool xret = ((const x_Q3CanvasPolygonalItem*)this)->Q3CanvasPolygonalItem::isValid();
        x[0].s_bool = xret;
    }
    static void x_17(Smoke::Stack x) {
        // Q3CanvasPolygonalItem* Q3CanvasPolygonalItem(const Q3CanvasPolygonalItem&)
        x_Q3CanvasPolygonalItem* xret = new x_Q3CanvasPolygonalItem(*(const Q3CanvasPolygonalItem*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasPolygonalItem(const Q3CanvasPolygonalItem& x1) : Q3CanvasPolygonalItem(x1) {}
    static void x_18(Smoke::Stack x) {
        // static int RTTI
        x[0].s_int = Q3CanvasPolygonalItem::RTTI;
    }
    static void x_19(Smoke::Stack x) {
        // static int RTTI=
        Q3CanvasPolygonalItem::RTTI = (int)x[1].s_int;
    }
    virtual void setPen(QPen x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QPen(x1);
        if (this->_binding->callMethod(403, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::setPen(x1);
    }
    virtual void setBrush(QBrush x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QBrush(x1);
        if (this->_binding->callMethod(404, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::setBrush(x1);
    }
    virtual Q3PointArray areaPoints() const {
        Smoke::StackItem x[1];
        this->_binding->callMethod(407, (void*)this, x, true /*pure virtual*/);
        Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
        Q3PointArray xret(*xptr);
        delete xptr;
        return xret;
    }
    virtual Q3PointArray areaPointsAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(408, (void*)this, x)) {
            Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
            Q3PointArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::areaPointsAdvanced();
    }
    virtual void drawShape(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        this->_binding->callMethod(412, (void*)this, x, true /*pure virtual*/);
    }
    virtual void moveBy(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(299, (void*)this, x)) return;
        this->Q3CanvasItem::moveBy(x1, x2);
    }
    virtual void setAnimated(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(305, (void*)this, x)) return;
        this->Q3CanvasItem::setAnimated(x1);
    }
    virtual void setVelocity(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(306, (void*)this, x)) return;
        this->Q3CanvasItem::setVelocity(x1, x2);
    }
    virtual void advance(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(311, (void*)this, x)) return;
        this->Q3CanvasItem::advance(x1);
    }
    virtual bool collidesWith(const Q3CanvasItem* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(402, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Q3CanvasPolygonalItem::collidesWith(x1);
    }
    virtual void setCanvas(Q3Canvas* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(314, (void*)this, x)) return;
        this->Q3CanvasItem::setCanvas(x1);
    }
    virtual void draw(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(411, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::draw(x1);
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(318, (void*)this, x)) return;
        this->Q3CanvasItem::setVisible(x1);
    }
    virtual void setSelected(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(320, (void*)this, x)) return;
        this->Q3CanvasItem::setSelected(x1);
    }
    virtual void setEnabled(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(322, (void*)this, x)) return;
        this->Q3CanvasItem::setEnabled(x1);
    }
    virtual void setActive(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(324, (void*)this, x)) return;
        this->Q3CanvasItem::setActive(x1);
    }
    virtual int rtti() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(410, (void*)this, x)) return (int)x[0].s_int;
        return this->Q3CanvasPolygonalItem::rtti();
    }
    virtual QRect boundingRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(409, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::boundingRect();
    }
    virtual QRect boundingRectAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(332, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasItem::boundingRectAdvanced();
    }
    ~x_Q3CanvasPolygonalItem() { this->_binding->deleted(16, (void*)this); }
};
void xcall_Q3CanvasPolygonalItem(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3CanvasPolygonalItem *xself = (x_Q3CanvasPolygonalItem*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Q3CanvasPolygonalItem::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: xself->x_15(args);	break;
        case 16: xself->x_16(args);	break;
        case 17: x_Q3CanvasPolygonalItem::x_17(args);	break;
        case 18: x_Q3CanvasPolygonalItem::x_18(args);	break;
        case 19: x_Q3CanvasPolygonalItem::x_19(args);	break;
        case 20: delete (Q3CanvasPolygonalItem*)xself;	break;
    }
}
class x_Q3CanvasRectangle : public Q3CanvasRectangle, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // Q3CanvasRectangle* Q3CanvasRectangle(Q3Canvas*)
        x_Q3CanvasRectangle* xret = new x_Q3CanvasRectangle((Q3Canvas*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasRectangle(Q3Canvas* x1) : Q3CanvasRectangle(x1) {}
    static void x_2(Smoke::Stack x) {
        // Q3CanvasRectangle* Q3CanvasRectangle(const QRect&, Q3Canvas*)
        x_Q3CanvasRectangle* xret = new x_Q3CanvasRectangle(*(const QRect*)x[1].s_class,(Q3Canvas*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasRectangle(const QRect& x1, Q3Canvas* x2) : Q3CanvasRectangle(x1, x2) {}
    static void x_3(Smoke::Stack x) {
        // Q3CanvasRectangle* Q3CanvasRectangle(int, int, int, int, Q3Canvas*)
        x_Q3CanvasRectangle* xret = new x_Q3CanvasRectangle((int)x[1].s_int,(int)x[2].s_int,(int)x[3].s_int,(int)x[4].s_int,(Q3Canvas*)x[5].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasRectangle(int x1, int x2, int x3, int x4, Q3Canvas* x5) : Q3CanvasRectangle(x1, x2, x3, x4, x5) {}
    void x_4(Smoke::Stack x) {
        // int width() const
        int xret = ((const x_Q3CanvasRectangle*)this)->Q3CanvasRectangle::width();
        x[0].s_int = xret;
    }
    void x_5(Smoke::Stack x) {
        // int height() const
        int xret = ((const x_Q3CanvasRectangle*)this)->Q3CanvasRectangle::height();
        x[0].s_int = xret;
    }
    void x_6(Smoke::Stack x) {
        // void setSize(int, int)
        this->Q3CanvasRectangle::setSize((int)x[1].s_int,(int)x[2].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_7(Smoke::Stack x) {
        // QSize size() const
        QSize xret = ((const x_Q3CanvasRectangle*)this)->Q3CanvasRectangle::size();
        x[0].s_class = (void*)new QSize(xret);
    }
    void x_8(Smoke::Stack x) {
        // Q3PointArray areaPoints() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasRectangle*>(this))) {
            Q3PointArray xret = ((const x_Q3CanvasRectangle*)this)->Q3CanvasRectangle::areaPoints();
            x[0].s_class = (void*)new Q3PointArray(xret);
        } else {
            Q3PointArray xret = ((const x_Q3CanvasRectangle*)this)->areaPoints();
            x[0].s_class = (void*)new Q3PointArray(xret);
        }
    }
    void x_9(Smoke::Stack x) {
        // QRect rect() const
        QRect xret = ((const x_Q3CanvasRectangle*)this)->Q3CanvasRectangle::rect();
        x[0].s_class = (void*)new QRect(xret);
    }
    void x_10(Smoke::Stack x) {
        // bool collidesWith(const Q3CanvasItem*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasRectangle*>(this))) {
            bool xret = ((const x_Q3CanvasRectangle*)this)->Q3CanvasRectangle::collidesWith((const Q3CanvasItem*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_Q3CanvasRectangle*)this)->collidesWith((const Q3CanvasItem*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // int rtti() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasRectangle*>(this))) {
            int xret = ((const x_Q3CanvasRectangle*)this)->Q3CanvasRectangle::rtti();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Q3CanvasRectangle*)this)->rtti();
            x[0].s_int = xret;
        }
    }
    void x_12(Smoke::Stack x) {
        // void drawShape(QPainter&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasRectangle*>(this))) {
            this->Q3CanvasRectangle::drawShape(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->drawShape(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_13(Smoke::Stack x) {
        // Q3PointArray chunks() const
        Q3PointArray xret = ((const x_Q3CanvasRectangle*)this)->Q3CanvasRectangle::chunks();
        x[0].s_class = (void*)new Q3PointArray(xret);
    }
    static void x_14(Smoke::Stack x) {
        // Q3CanvasRectangle* Q3CanvasRectangle(const Q3CanvasRectangle&)
        x_Q3CanvasRectangle* xret = new x_Q3CanvasRectangle(*(const Q3CanvasRectangle*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasRectangle(const Q3CanvasRectangle& x1) : Q3CanvasRectangle(x1) {}
    static void x_15(Smoke::Stack x) {
        // static int RTTI
        x[0].s_int = Q3CanvasRectangle::RTTI;
    }
    static void x_16(Smoke::Stack x) {
        // static int RTTI=
        Q3CanvasRectangle::RTTI = (int)x[1].s_int;
    }
    virtual void setPen(QPen x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QPen(x1);
        if (this->_binding->callMethod(403, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::setPen(x1);
    }
    virtual void setBrush(QBrush x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QBrush(x1);
        if (this->_binding->callMethod(404, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::setBrush(x1);
    }
    virtual Q3PointArray areaPoints() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(428, (void*)this, x)) {
            Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
            Q3PointArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasRectangle::areaPoints();
    }
    virtual Q3PointArray areaPointsAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(408, (void*)this, x)) {
            Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
            Q3PointArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::areaPointsAdvanced();
    }
    virtual void drawShape(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(432, (void*)this, x)) return;
        this->Q3CanvasRectangle::drawShape(x1);
    }
    virtual void moveBy(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(299, (void*)this, x)) return;
        this->Q3CanvasItem::moveBy(x1, x2);
    }
    virtual void setAnimated(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(305, (void*)this, x)) return;
        this->Q3CanvasItem::setAnimated(x1);
    }
    virtual void setVelocity(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(306, (void*)this, x)) return;
        this->Q3CanvasItem::setVelocity(x1, x2);
    }
    virtual void advance(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(311, (void*)this, x)) return;
        this->Q3CanvasItem::advance(x1);
    }
    virtual bool collidesWith(const Q3CanvasItem* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(430, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Q3CanvasRectangle::collidesWith(x1);
    }
    virtual void setCanvas(Q3Canvas* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(314, (void*)this, x)) return;
        this->Q3CanvasItem::setCanvas(x1);
    }
    virtual void draw(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(411, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::draw(x1);
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(318, (void*)this, x)) return;
        this->Q3CanvasItem::setVisible(x1);
    }
    virtual void setSelected(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(320, (void*)this, x)) return;
        this->Q3CanvasItem::setSelected(x1);
    }
    virtual void setEnabled(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(322, (void*)this, x)) return;
        this->Q3CanvasItem::setEnabled(x1);
    }
    virtual void setActive(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(324, (void*)this, x)) return;
        this->Q3CanvasItem::setActive(x1);
    }
    virtual int rtti() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(431, (void*)this, x)) return (int)x[0].s_int;
        return this->Q3CanvasRectangle::rtti();
    }
    virtual QRect boundingRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(409, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::boundingRect();
    }
    virtual QRect boundingRectAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(332, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasItem::boundingRectAdvanced();
    }
    ~x_Q3CanvasRectangle() { this->_binding->deleted(17, (void*)this); }
};
void xcall_Q3CanvasRectangle(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3CanvasRectangle *xself = (x_Q3CanvasRectangle*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Q3CanvasRectangle::x_1(args);	break;
        case 2: x_Q3CanvasRectangle::x_2(args);	break;
        case 3: x_Q3CanvasRectangle::x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: x_Q3CanvasRectangle::x_14(args);	break;
        case 15: x_Q3CanvasRectangle::x_15(args);	break;
        case 16: x_Q3CanvasRectangle::x_16(args);	break;
        case 17: delete (Q3CanvasRectangle*)xself;	break;
    }
}
class x_Q3CanvasSpline : public Q3CanvasSpline, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // Q3CanvasSpline* Q3CanvasSpline(Q3Canvas*)
        x_Q3CanvasSpline* xret = new x_Q3CanvasSpline((Q3Canvas*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasSpline(Q3Canvas* x1) : Q3CanvasSpline(x1) {}
    void x_2(Smoke::Stack x) {
        // void setControlPoints(Q3PointArray, bool)
        this->Q3CanvasSpline::setControlPoints(*(Q3PointArray*)x[1].s_class,(bool)x[2].s_bool);
        (void)x; // noop (for compiler warning)
    }
    void x_3(Smoke::Stack x) {
        // Q3PointArray controlPoints() const
        Q3PointArray xret = ((const x_Q3CanvasSpline*)this)->Q3CanvasSpline::controlPoints();
        x[0].s_class = (void*)new Q3PointArray(xret);
    }
    void x_4(Smoke::Stack x) {
        // bool closed() const
        bool xret = ((const x_Q3CanvasSpline*)this)->Q3CanvasSpline::closed();
        x[0].s_bool = xret;
    }
    void x_5(Smoke::Stack x) {
        // int rtti() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasSpline*>(this))) {
            int xret = ((const x_Q3CanvasSpline*)this)->Q3CanvasSpline::rtti();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Q3CanvasSpline*)this)->rtti();
            x[0].s_int = xret;
        }
    }
    static void x_6(Smoke::Stack x) {
        // Q3CanvasSpline* Q3CanvasSpline(const Q3CanvasSpline&)
        x_Q3CanvasSpline* xret = new x_Q3CanvasSpline(*(const Q3CanvasSpline*)x[1].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasSpline(const Q3CanvasSpline& x1) : Q3CanvasSpline(x1) {}
    void x_7(Smoke::Stack x) {
        // void setControlPoints(Q3PointArray)
        this->Q3CanvasSpline::setControlPoints(*(Q3PointArray*)x[1].s_class,(bool)true);
        (void)x; // noop (for compiler warning)
    }
    static void x_8(Smoke::Stack x) {
        // static int RTTI
        x[0].s_int = Q3CanvasSpline::RTTI;
    }
    static void x_9(Smoke::Stack x) {
        // static int RTTI=
        Q3CanvasSpline::RTTI = (int)x[1].s_int;
    }
    virtual void setPen(QPen x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QPen(x1);
        if (this->_binding->callMethod(403, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::setPen(x1);
    }
    virtual void setBrush(QBrush x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)new QBrush(x1);
        if (this->_binding->callMethod(404, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::setBrush(x1);
    }
    virtual Q3PointArray areaPoints() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(392, (void*)this, x)) {
            Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
            Q3PointArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygon::areaPoints();
    }
    virtual Q3PointArray areaPointsAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(408, (void*)this, x)) {
            Q3PointArray* xptr = (Q3PointArray*)x[0].s_class;
            Q3PointArray xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::areaPointsAdvanced();
    }
    virtual void drawShape(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(394, (void*)this, x)) return;
        this->Q3CanvasPolygon::drawShape(x1);
    }
    virtual void moveBy(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(391, (void*)this, x)) return;
        this->Q3CanvasPolygon::moveBy(x1, x2);
    }
    virtual void setAnimated(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(305, (void*)this, x)) return;
        this->Q3CanvasItem::setAnimated(x1);
    }
    virtual void setVelocity(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(306, (void*)this, x)) return;
        this->Q3CanvasItem::setVelocity(x1, x2);
    }
    virtual void advance(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(311, (void*)this, x)) return;
        this->Q3CanvasItem::advance(x1);
    }
    virtual bool collidesWith(const Q3CanvasItem* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(402, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Q3CanvasPolygonalItem::collidesWith(x1);
    }
    virtual void setCanvas(Q3Canvas* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(314, (void*)this, x)) return;
        this->Q3CanvasItem::setCanvas(x1);
    }
    virtual void draw(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(411, (void*)this, x)) return;
        this->Q3CanvasPolygonalItem::draw(x1);
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(318, (void*)this, x)) return;
        this->Q3CanvasItem::setVisible(x1);
    }
    virtual void setSelected(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(320, (void*)this, x)) return;
        this->Q3CanvasItem::setSelected(x1);
    }
    virtual void setEnabled(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(322, (void*)this, x)) return;
        this->Q3CanvasItem::setEnabled(x1);
    }
    virtual void setActive(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(324, (void*)this, x)) return;
        this->Q3CanvasItem::setActive(x1);
    }
    virtual int rtti() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(442, (void*)this, x)) return (int)x[0].s_int;
        return this->Q3CanvasSpline::rtti();
    }
    virtual QRect boundingRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(409, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasPolygonalItem::boundingRect();
    }
    virtual QRect boundingRectAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(332, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasItem::boundingRectAdvanced();
    }
    ~x_Q3CanvasSpline() { this->_binding->deleted(18, (void*)this); }
};
void xcall_Q3CanvasSpline(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3CanvasSpline *xself = (x_Q3CanvasSpline*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Q3CanvasSpline::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: x_Q3CanvasSpline::x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: x_Q3CanvasSpline::x_8(args);	break;
        case 9: x_Q3CanvasSpline::x_9(args);	break;
        case 10: delete (Q3CanvasSpline*)xself;	break;
    }
}
class x_Q3CanvasSprite : public Q3CanvasSprite, public __internal_SmokeClass {
    SmokeBinding* _binding;
public:
    void x_0(Smoke::Stack x) {
        // set the smoke binding
        _binding = (SmokeBinding*)x[1].s_class;
    }
    static void x_1(Smoke::Stack x) {
        // Q3CanvasSprite* Q3CanvasSprite(Q3CanvasPixmapArray*, Q3Canvas*)
        x_Q3CanvasSprite* xret = new x_Q3CanvasSprite((Q3CanvasPixmapArray*)x[1].s_class,(Q3Canvas*)x[2].s_class);
        x[0].s_class = (void*)xret;
    }
    explicit x_Q3CanvasSprite(Q3CanvasPixmapArray* x1, Q3Canvas* x2) : Q3CanvasSprite(x1, x2) {}
    void x_2(Smoke::Stack x) {
        // void setSequence(Q3CanvasPixmapArray*)
        this->Q3CanvasSprite::setSequence((Q3CanvasPixmapArray*)x[1].s_class);
        (void)x; // noop (for compiler warning)
    }
    void x_3(Smoke::Stack x) {
        // void move(double, double)
        this->Q3CanvasSprite::move((double)x[1].s_double,(double)x[2].s_double);
        (void)x; // noop (for compiler warning)
    }
    void x_4(Smoke::Stack x) {
        // virtual void move(double, double, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasSprite*>(this))) {
            this->Q3CanvasSprite::move((double)x[1].s_double,(double)x[2].s_double,(int)x[3].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->move((double)x[1].s_double,(double)x[2].s_double,(int)x[3].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_5(Smoke::Stack x) {
        // void setFrame(int)
        this->Q3CanvasSprite::setFrame((int)x[1].s_int);
        (void)x; // noop (for compiler warning)
    }
    void x_6(Smoke::Stack x) {
        // virtual void setFrameAnimation(Q3CanvasSprite::FrameAnimationType, int, int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasSprite*>(this))) {
            this->Q3CanvasSprite::setFrameAnimation((Q3CanvasSprite::FrameAnimationType)x[1].s_enum,(int)x[2].s_int,(int)x[3].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->setFrameAnimation((Q3CanvasSprite::FrameAnimationType)x[1].s_enum,(int)x[2].s_int,(int)x[3].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_7(Smoke::Stack x) {
        // int frame() const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::frame();
        x[0].s_int = xret;
    }
    void x_8(Smoke::Stack x) {
        // int frameCount() const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::frameCount();
        x[0].s_int = xret;
    }
    void x_9(Smoke::Stack x) {
        // int rtti() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasSprite*>(this))) {
            int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::rtti();
            x[0].s_int = xret;
        } else {
            int xret = ((const x_Q3CanvasSprite*)this)->rtti();
            x[0].s_int = xret;
        }
    }
    void x_10(Smoke::Stack x) {
        // bool collidesWith(const Q3CanvasItem*) const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasSprite*>(this))) {
            bool xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::collidesWith((const Q3CanvasItem*)x[1].s_class);
            x[0].s_bool = xret;
        } else {
            bool xret = ((const x_Q3CanvasSprite*)this)->collidesWith((const Q3CanvasItem*)x[1].s_class);
            x[0].s_bool = xret;
        }
    }
    void x_11(Smoke::Stack x) {
        // QRect boundingRect() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasSprite*>(this))) {
            QRect xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::boundingRect();
            x[0].s_class = (void*)new QRect(xret);
        } else {
            QRect xret = ((const x_Q3CanvasSprite*)this)->boundingRect();
            x[0].s_class = (void*)new QRect(xret);
        }
    }
    void x_12(Smoke::Stack x) {
        // int width() const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::width();
        x[0].s_int = xret;
    }
    void x_13(Smoke::Stack x) {
        // int height() const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::height();
        x[0].s_int = xret;
    }
    void x_14(Smoke::Stack x) {
        // int leftEdge() const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::leftEdge();
        x[0].s_int = xret;
    }
    void x_15(Smoke::Stack x) {
        // int topEdge() const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::topEdge();
        x[0].s_int = xret;
    }
    void x_16(Smoke::Stack x) {
        // int rightEdge() const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::rightEdge();
        x[0].s_int = xret;
    }
    void x_17(Smoke::Stack x) {
        // int bottomEdge() const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::bottomEdge();
        x[0].s_int = xret;
    }
    void x_18(Smoke::Stack x) {
        // int leftEdge(int) const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::leftEdge((int)x[1].s_int);
        x[0].s_int = xret;
    }
    void x_19(Smoke::Stack x) {
        // int topEdge(int) const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::topEdge((int)x[1].s_int);
        x[0].s_int = xret;
    }
    void x_20(Smoke::Stack x) {
        // int rightEdge(int) const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::rightEdge((int)x[1].s_int);
        x[0].s_int = xret;
    }
    void x_21(Smoke::Stack x) {
        // int bottomEdge(int) const
        int xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::bottomEdge((int)x[1].s_int);
        x[0].s_int = xret;
    }
    void x_22(Smoke::Stack x) {
        // Q3CanvasPixmap* image() const
        Q3CanvasPixmap* xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::image();
        x[0].s_class = (void*)xret;
    }
    void x_23(Smoke::Stack x) {
        // virtual Q3CanvasPixmap* imageAdvanced() const
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasSprite*>(this))) {
            Q3CanvasPixmap* xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::imageAdvanced();
            x[0].s_class = (void*)xret;
        } else {
            Q3CanvasPixmap* xret = ((const x_Q3CanvasSprite*)this)->imageAdvanced();
            x[0].s_class = (void*)xret;
        }
    }
    void x_24(Smoke::Stack x) {
        // Q3CanvasPixmap* image(int) const
        Q3CanvasPixmap* xret = ((const x_Q3CanvasSprite*)this)->Q3CanvasSprite::image((int)x[1].s_int);
        x[0].s_class = (void*)xret;
    }
    void x_25(Smoke::Stack x) {
        // virtual void advance(int)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasSprite*>(this))) {
            this->Q3CanvasSprite::advance((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        } else {
            this->advance((int)x[1].s_int);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_26(Smoke::Stack x) {
        // void draw(QPainter&)
        if (dynamic_cast<__internal_SmokeClass*>(static_cast<Q3CanvasSprite*>(this))) {
            this->Q3CanvasSprite::draw(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        } else {
            this->draw(*(QPainter*)x[1].s_class);
            (void)x; // noop (for compiler warning)
        }
    }
    void x_27(Smoke::Stack x) {
        // void setFrameAnimation()
        this->Q3CanvasSprite::setFrameAnimation((Q3CanvasSprite::FrameAnimationType)Q3CanvasSprite::Cycle,(int)1,(int)0);
        (void)x; // noop (for compiler warning)
    }
    void x_28(Smoke::Stack x) {
        // void setFrameAnimation(Q3CanvasSprite::FrameAnimationType)
        this->Q3CanvasSprite::setFrameAnimation((Q3CanvasSprite::FrameAnimationType)x[1].s_enum,(int)1,(int)0);
        (void)x; // noop (for compiler warning)
    }
    void x_29(Smoke::Stack x) {
        // void setFrameAnimation(Q3CanvasSprite::FrameAnimationType, int)
        this->Q3CanvasSprite::setFrameAnimation((Q3CanvasSprite::FrameAnimationType)x[1].s_enum,(int)x[2].s_int,(int)0);
        (void)x; // noop (for compiler warning)
    }
    static void x_30(Smoke::Stack x) {
        // static int RTTI
        x[0].s_int = Q3CanvasSprite::RTTI;
    }
    static void x_31(Smoke::Stack x) {
        // static int RTTI=
        Q3CanvasSprite::RTTI = (int)x[1].s_int;
    }
    static void x_32(Smoke::Stack x) {
        x[0].s_enum = (long)Q3CanvasSprite::Cycle;
    }
    static void x_33(Smoke::Stack x) {
        x[0].s_enum = (long)Q3CanvasSprite::Oscillate;
    }
    virtual void move(double x1, double x2, int x3) {
        Smoke::StackItem x[4];
        x[1].s_double = x1;
        x[2].s_double = x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(451, (void*)this, x)) return;
        this->Q3CanvasSprite::move(x1, x2, x3);
    }
    virtual void setFrameAnimation(Q3CanvasSprite::FrameAnimationType x1, int x2, int x3) {
        Smoke::StackItem x[4];
        x[1].s_enum = x1;
        x[2].s_int = x2;
        x[3].s_int = x3;
        if (this->_binding->callMethod(453, (void*)this, x)) return;
        this->Q3CanvasSprite::setFrameAnimation(x1, x2, x3);
    }
    virtual Q3CanvasPixmap* imageAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(470, (void*)this, x)) return (Q3CanvasPixmap*)x[0].s_class;
        return this->Q3CanvasSprite::imageAdvanced();
    }
    virtual void advance(int x1) {
        Smoke::StackItem x[2];
        x[1].s_int = x1;
        if (this->_binding->callMethod(472, (void*)this, x)) return;
        this->Q3CanvasSprite::advance(x1);
    }
    virtual void moveBy(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(299, (void*)this, x)) return;
        this->Q3CanvasItem::moveBy(x1, x2);
    }
    virtual void setAnimated(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(305, (void*)this, x)) return;
        this->Q3CanvasItem::setAnimated(x1);
    }
    virtual void setVelocity(double x1, double x2) {
        Smoke::StackItem x[3];
        x[1].s_double = x1;
        x[2].s_double = x2;
        if (this->_binding->callMethod(306, (void*)this, x)) return;
        this->Q3CanvasItem::setVelocity(x1, x2);
    }
    virtual bool collidesWith(const Q3CanvasItem* x1) const {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(457, (void*)this, x)) return (bool)x[0].s_bool;
        return this->Q3CanvasSprite::collidesWith(x1);
    }
    virtual void setCanvas(Q3Canvas* x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)x1;
        if (this->_binding->callMethod(314, (void*)this, x)) return;
        this->Q3CanvasItem::setCanvas(x1);
    }
    virtual void draw(QPainter& x1) {
        Smoke::StackItem x[2];
        x[1].s_class = (void*)&x1;
        if (this->_binding->callMethod(473, (void*)this, x)) return;
        this->Q3CanvasSprite::draw(x1);
    }
    virtual void setVisible(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(318, (void*)this, x)) return;
        this->Q3CanvasItem::setVisible(x1);
    }
    virtual void setSelected(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(320, (void*)this, x)) return;
        this->Q3CanvasItem::setSelected(x1);
    }
    virtual void setEnabled(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(322, (void*)this, x)) return;
        this->Q3CanvasItem::setEnabled(x1);
    }
    virtual void setActive(bool x1) {
        Smoke::StackItem x[2];
        x[1].s_bool = x1;
        if (this->_binding->callMethod(324, (void*)this, x)) return;
        this->Q3CanvasItem::setActive(x1);
    }
    virtual int rtti() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(456, (void*)this, x)) return (int)x[0].s_int;
        return this->Q3CanvasSprite::rtti();
    }
    virtual QRect boundingRect() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(458, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasSprite::boundingRect();
    }
    virtual QRect boundingRectAdvanced() const {
        Smoke::StackItem x[1];
        if (this->_binding->callMethod(332, (void*)this, x)) {
            QRect* xptr = (QRect*)x[0].s_class;
            QRect xret(*xptr);
            delete xptr;
            return xret;
        }
        return this->Q3CanvasItem::boundingRectAdvanced();
    }
    static void xenum_operation(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
        switch(xtype) {
        case 24: //Q3CanvasSprite::FrameAnimationType
            switch(xop) {
                case Smoke::EnumNew:
                    xdata = (void*)new Q3CanvasSprite::FrameAnimationType;
                    break;
                case Smoke::EnumDelete:
                    delete (Q3CanvasSprite::FrameAnimationType*)xdata;
                    break;
                case Smoke::EnumFromLong:
                    *(Q3CanvasSprite::FrameAnimationType*)xdata = (Q3CanvasSprite::FrameAnimationType)xvalue;
                    break;
                case Smoke::EnumToLong:
                    xvalue = (long)*(Q3CanvasSprite::FrameAnimationType*)xdata;
                    break;
            }
            break;
        }
    }
    ~x_Q3CanvasSprite() { this->_binding->deleted(19, (void*)this); }
};
void xenum_Q3CanvasSprite(Smoke::EnumOperation xop, Smoke::Index xtype, void *&xdata, long &xvalue) {
    x_Q3CanvasSprite::xenum_operation(xop, xtype, xdata, xvalue);
}
void xcall_Q3CanvasSprite(Smoke::Index xi, void *obj, Smoke::Stack args) {
    x_Q3CanvasSprite *xself = (x_Q3CanvasSprite*)obj;
    switch(xi) {
        case 0: xself->x_0(args);	break;
        case 1: x_Q3CanvasSprite::x_1(args);	break;
        case 2: xself->x_2(args);	break;
        case 3: xself->x_3(args);	break;
        case 4: xself->x_4(args);	break;
        case 5: xself->x_5(args);	break;
        case 6: xself->x_6(args);	break;
        case 7: xself->x_7(args);	break;
        case 8: xself->x_8(args);	break;
        case 9: xself->x_9(args);	break;
        case 10: xself->x_10(args);	break;
        case 11: xself->x_11(args);	break;
        case 12: xself->x_12(args);	break;
        case 13: xself->x_13(args);	break;
        case 14: xself->x_14(args);	break;
        case 15: xself->x_15(args);	break;
        case 16: xself->x_16(args);	break;
        case 17: xself->x_17(args);	break;
        case 18: xself->x_18(args);	break;
        case 19: xself->x_19(args);	break;
        case 20: xself->x_20(args);	break;
        case 21: xself->x_21(args);	break;
        case 22: xself->x_22(args);	break;
        case 23: xself->x_23(args);	break;
        case 24: xself->x_24(args);	break;
        case 25: xself->x_25(args);	break;
        case 26: xself->x_26(args);	break;
        case 27: xself->x_27(args);	break;
        case 28: xself->x_28(args);	break;
        case 29: xself->x_29(args);	break;
        case 30: x_Q3CanvasSprite::x_30(args);	break;
        case 31: x_Q3CanvasSprite::x_31(args);	break;
        case 32: x_Q3CanvasSprite::x_32(args);	break;
        case 33: x_Q3CanvasSprite::x_33(args);	break;
        case 34: delete (Q3CanvasSprite*)xself;	break;
    }
}

}
