47#include <qscrollarea.h>
91 virtual void moveBy(
double dx,
double dy);
92 void move(
double x,
double y);
131 virtual void advance(
int stage);
139 virtual void draw(QPainter&) = 0;
213 virtual int rtti()
const;
243 virtual QPolygon chunks()
const;
244 virtual void addToChunks();
245 virtual void removeFromChunks();
246 virtual void changeChunks();
256 double myx, myy, myz;
276 QtCanvas(QPixmap p,
int h,
int v,
int tilewidth,
int tileheight);
280 virtual void setTiles(QPixmap tiles,
int h,
int v,
int tilewidth,
int tileheight);
287 virtual void setTile(
int x,
int y,
int tilenum);
292 return grid[
x + y * htiles];
336 return QSize(awidth, aheight);
342 return QRect(0, 0, awidth, aheight);
348 return x >= 0 && y >= 0 &&
x < awidth && y < aheight;
360 return x >= 0 && y >= 0 &&
x < chwidth && y < chheight;
375 virtual void retune(
int chunksize,
int maxclusters = 100);
380 return x1 / chunksize == x2 / chunksize && y1 / chunksize == y2 / chunksize;
400 void drawArea(
const QRect&, QPainter* p,
bool double_buffer =
false);
406 void drawCanvasArea(
const QRect&, QPainter* p = 0,
bool double_buffer =
true);
430 void init(
int w,
int h,
int chunksze = 16,
int maxclust = 100);
435 QRect changeBounds();
440 int chwidth, chheight;
445 void initTiles(QPixmap p,
int h,
int v,
int tilewidth,
int tileheight);
453 QTimer* update_timer;
455 bool debug_redraw_areas;
493 virtual void drawContents(QPainter* p,
int cx,
int cy,
int cw,
int ch);
513 void updateContentsSize();
551 void init(
const QImage&);
552 void init(
const QPixmap& pixmap,
int hx,
int hy);
560 QImage* collision_mask;
574 bool readPixmaps(
const QString& datafilenamepattern,
int framecount = 0);
585 return img ? img[i] : 0;
593 return (uint)framecount;
600 bool readPixmaps(
const QString& datafilenamepattern,
int framecount,
bool maskonly);
617 void move(
double x,
double y);
638 return images->count();
667 return images->image(frm);
675 return images->image(f);
678 virtual void advance(
int stage);
681 void draw(QPainter& painter);
687 void removeFromChunks();
715 virtual void setPen(QPen p);
738 void draw(QPainter&);
754 QPolygon chunks()
const;
791 return QRect(
int(
x()),
int(
y()), w, h);
820 void moveBy(
double dx,
double dy);
856 void setPoints(
int x1,
int y1,
int x2,
int y2);
861 return QPoint(x1, y1);
867 return QPoint(x2, y2);
874 void moveBy(
double dx,
double dy);
932class QtCanvasTextExtra;
946 QString
text()
const;
948 QColor
color()
const;
950 void moveBy(
double dx,
double dy);
968 virtual void draw(QPainter&);
974 void removeFromChunks();
983 QtCanvasTextExtra* extra;
QList< QtCanvasItem * > QtCanvasItemList
QList< QtCanvasItem * > QtCanvasItemList
void setSize(int w, int h)
void setAngles(int start, int length)
QPolygon areaPoints() const
void drawShape(QPainter &)
bool collidesWith(const QtCanvasItem *) const
QtCanvasEllipse(QtCanvas *canvas)
void setXVelocity(double vx)
void setYVelocity(double vy)
friend class QtCanvasSprite
virtual void setActive(bool yes)
virtual void setVelocity(double vx, double vy)
virtual QRect boundingRect() const =0
friend class QtCanvasRectangle
virtual bool collidesWith(const QtCanvasItem *) const =0
virtual void setEnabled(bool yes)
friend class QtCanvasPolygon
friend class QtCanvasPolygonalItem
friend class QtCanvasText
friend class QtCanvasEllipse
QtCanvas * canvas() const
friend class QtCanvasLine
QtCanvasItem(QtCanvas *canvas)
virtual void setVisible(bool yes)
virtual void setCanvas(QtCanvas *)
virtual void draw(QPainter &)=0
virtual void moveBy(double dx, double dy)
virtual QRect boundingRectAdvanced() const
virtual void advance(int stage)
virtual void setAnimated(bool y)
QtCanvasItemList collisions(bool exact) const
virtual void setSelected(bool yes)
void move(double x, double y)
QPolygon areaPoints() const
QtCanvasLine(QtCanvas *canvas)
void drawShape(QPainter &)
void setPoints(int x1, int y1, int x2, int y2)
void moveBy(double dx, double dy)
QPoint startPoint() const
bool readPixmaps(const QString &datafilenamepattern, int framecount=0)
bool readCollisionMasks(const QString &filenamepattern)
QtCanvasPixmap * image(int i) const
void setImage(int i, QtCanvasPixmap *p)
friend class QtCanvasSprite
QtCanvasPixmap(const QString &datafilename)
friend class QtCanvasPixmapArray
void setOffset(int x, int y)
friend bool qt_testCollision(const QtCanvasSprite *s1, const QtCanvasSprite *s2)
QtCanvasPolygon(QtCanvas *canvas)
QPolygon areaPoints() const
void drawShape(QPainter &)
void moveBy(double dx, double dy)
virtual void setBrush(QBrush b)
QtCanvasPolygonalItem(QtCanvas *canvas)
virtual ~QtCanvasPolygonalItem()
virtual QPolygon areaPointsAdvanced() const
bool collidesWith(const QtCanvasItem *) const
virtual void drawShape(QPainter &)=0
virtual QPolygon areaPoints() const =0
QRect boundingRect() const
virtual void setPen(QPen p)
void setSize(int w, int h)
QPolygon areaPoints() const
void drawShape(QPainter &)
bool collidesWith(const QtCanvasItem *) const
QtCanvasRectangle(QtCanvas *canvas)
void setControlPoints(QPolygon, bool closed=true)
QtCanvasSpline(QtCanvas *canvas)
QPolygon controlPoints() const
QtCanvasPixmap * image(int f) const
virtual ~QtCanvasSprite()
QtCanvasSprite(QtCanvasPixmapArray *array, QtCanvas *canvas)
bool collidesWith(const QtCanvasItem *) const
virtual void setFrameAnimation(FrameAnimationType=Cycle, int step=1, int state=0)
void setSequence(QtCanvasPixmapArray *seq)
QtCanvasPixmap * image() const
virtual void advance(int stage)
virtual QtCanvasPixmap * imageAdvanced() const
QRect boundingRect() const
void draw(QPainter &painter)
void move(double x, double y)
friend bool qt_testCollision(const QtCanvasSprite *s1, const QtCanvasSprite *s2)
void setText(const QString &)
virtual void draw(QPainter &)
bool collidesWith(const QtCanvasItem *) const
QtCanvasText(QtCanvas *canvas)
void moveBy(double dx, double dy)
QRect boundingRect() const
void setFont(const QFont &)
void setColor(const QColor &)
virtual void drawContents(QPainter *p, int cx, int cy, int cw, int ch)
const QMatrix & worldMatrix() const
friend class QtCanvasWidget
virtual void contentsMouseDoubleClickEvent(QMouseEvent *)
void setCanvas(QtCanvas *v)
QtCanvasView(QWidget *parent=0)
bool setWorldMatrix(const QMatrix &)
virtual void contentsMouseReleaseEvent(QMouseEvent *)
virtual void contentsDragEnterEvent(QDragEnterEvent *)
QtCanvas * canvas() const
void setHighQualityRendering(bool enable)
virtual void contentsWheelEvent(QWheelEvent *)
const QMatrix & inverseWorldMatrix() const
virtual void contentsDropEvent(QDropEvent *)
virtual void contentsMouseMoveEvent(QMouseEvent *)
virtual void contentsMousePressEvent(QMouseEvent *)
virtual void contentsDragLeaveEvent(QDragLeaveEvent *)
virtual QSize sizeHint() const
virtual void contentsContextMenuEvent(QContextMenuEvent *)
virtual void contentsDragMoveEvent(QDragMoveEvent *)
bool highQualityRendering
virtual void setAllChanged()
void drawViewArea(QtCanvasView *view, QPainter *p, const QRect &r, bool dbuf)
virtual void setBackgroundColor(const QColor &c)
virtual void setTiles(QPixmap tiles, int h, int v, int tilewidth, int tileheight)
QtCanvas(QObject *parent=0)
int tile(int x, int y) const
QtCanvasItemList collisions(const QPoint &) const
virtual void setAdvancePeriod(int ms)
virtual void setUnchanged(const QRect &area)
virtual void setTile(int x, int y, int tilenum)
int tilesHorizontally() const
virtual void setUpdatePeriod(int ms)
void drawArea(const QRect &, QPainter *p, bool double_buffer=false)
virtual void setChanged(const QRect &area)
virtual void resize(int width, int height)
bool validChunk(int x, int y) const
friend void qt_unview(QtCanvas *c)
virtual void addView(QtCanvasView *)
virtual void drawBackground(QPainter &, const QRect &area)
virtual void setBackgroundPixmap(const QPixmap &p)
void removeItemFromChunkContaining(QtCanvasItem *, int x, int y)
virtual void setChangedChunk(int i, int j)
bool onCanvas(int x, int y) const
void removeItemFromChunk(QtCanvasItem *, int i, int j)
QPixmap backgroundPixmap() const
virtual void removeItem(QtCanvasItem *)
virtual void removeAnimation(QtCanvasItem *)
virtual void removeView(QtCanvasView *)
bool sameChunk(int x1, int y1, int x2, int y2) const
void addItemToChunkContaining(QtCanvasItem *, int x, int y)
QColor backgroundColor() const
virtual void addItem(QtCanvasItem *)
virtual void addAnimation(QtCanvasItem *)
void drawCanvasArea(const QRect &, QPainter *p=0, bool double_buffer=true)
QtCanvasItemList allItems()
bool onCanvas(const QPoint &p) const
bool validChunk(const QPoint &p) const
int tilesVertically() const
void addItemToChunk(QtCanvasItem *, int i, int j)
virtual void setChangedChunkContaining(int x, int y)
virtual void retune(int chunksize, int maxclusters=100)
virtual void drawForeground(QPainter &, const QRect &area)
This file offers overloads of toIce() and fromIce() functions for STL container types.
double angle(const Point &a, const Point &b, const Point &c)