47#include <qscrollarea.h>
91 virtual void moveBy(
double dx,
double dy);
139 virtual void draw(QPainter&) = 0;
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);
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);
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);
638 return images->count();
667 return images->image(frm);
675 return images->image(f);
687 void removeFromChunks();
754 QPolygon chunks()
const;
791 return QRect(
int(
x()),
int(
y()), w, h);
861 return QPoint(x1, y1);
867 return QPoint(x2, y2);
932class QtCanvasTextExtra;
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
QtCanvasEllipse(int width, int height, int startangle, int angle, QtCanvas *canvas)
void drawShape(QPainter &)
bool collidesWith(const QtCanvasItem *) const
QtCanvasEllipse(QtCanvas *canvas)
QtCanvasEllipse(int width, int height, QtCanvas *canvas)
void setXVelocity(double vx)
void setYVelocity(double vy)
friend class QtCanvasSprite
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 QtCanvasPolygonalItem
friend class QtCanvasText
virtual void moveBy(double dx, double dy)
friend class QtCanvasEllipse
virtual void setVisible(bool yes)
virtual void advance(int stage)
QtCanvas * canvas() const
virtual void setCanvas(QtCanvas *)
virtual void setSelected(bool yes)
virtual QRect boundingRectAdvanced() const
QtCanvasItem(QtCanvas *canvas)
virtual void setAnimated(bool y)
virtual void setActive(bool yes)
virtual void draw(QPainter &)=0
QtCanvasItemList collisions(bool exact) const
virtual void setVelocity(double vx, double vy)
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
QtCanvasPixmapArray(const QList< QPixmap > &pixmaps, const QPolygon &hotspots=QPolygon())
QtCanvasPixmapArray(const QString &datafilenamepattern, int framecount=0)
bool readPixmaps(const QString &datafilenamepattern, int framecount=0)
bool readCollisionMasks(const QString &filenamepattern)
QtCanvasPixmap * image(int i) const
void setImage(int i, QtCanvasPixmap *p)
QtCanvasPixmap(const QImage &image)
QtCanvasPixmap(const QString &datafilename)
QtCanvasPixmap(const QPixmap &, const QPoint &hotspot)
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)
QtCanvasPolygonalItem(QtCanvas *canvas)
virtual void setBrush(QBrush b)
virtual QPolygon areaPointsAdvanced() const
virtual void setPen(QPen p)
bool collidesWith(const QtCanvasItem *) const
virtual void drawShape(QPainter &)=0
virtual ~QtCanvasPolygonalItem()
virtual QPolygon areaPoints() const =0
QRect boundingRect() const
void setSize(int w, int h)
QtCanvasRectangle(const QRect &, QtCanvas *canvas)
QtCanvasRectangle(int x, int y, int width, int height, QtCanvas *canvas)
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
virtual void setFrameAnimation(FrameAnimationType=Cycle, int step=1, int state=0)
QtCanvasPixmap * image(int f) const
QtCanvasSprite(QtCanvasPixmapArray *array, QtCanvas *canvas)
int bottomEdge(int ny) const
virtual QtCanvasPixmap * imageAdvanced() const
int rightEdge(int nx) const
virtual void advance(int stage)
int leftEdge(int nx) const
bool collidesWith(const QtCanvasItem *) const
virtual void move(double x, double y, int frame)
void setSequence(QtCanvasPixmapArray *seq)
QtCanvasPixmap * image() const
virtual ~QtCanvasSprite()
int topEdge(int ny) const
QRect boundingRect() const
void draw(QPainter &painter)
void move(double x, double y)
friend bool qt_testCollision(const QtCanvasSprite *s1, const QtCanvasSprite *s2)
QtCanvasText(const QString &, QtCanvas *canvas)
QtCanvasText(const QString &, QFont, QtCanvas *canvas)
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
virtual void contentsWheelEvent(QWheelEvent *)
QtCanvasView(QtCanvas *viewing, QWidget *parent=0)
virtual void contentsDragMoveEvent(QDragMoveEvent *)
virtual void contentsDragLeaveEvent(QDragLeaveEvent *)
friend class QtCanvasWidget
void setCanvas(QtCanvas *v)
virtual void contentsMouseReleaseEvent(QMouseEvent *)
QtCanvasView(QWidget *parent=0)
bool setWorldMatrix(const QMatrix &)
virtual void drawContents(QPainter *p, int cx, int cy, int cw, int ch)
bool highQualityRendering() const
virtual void contentsContextMenuEvent(QContextMenuEvent *)
QtCanvas * canvas() const
void setHighQualityRendering(bool enable)
virtual void contentsMouseMoveEvent(QMouseEvent *)
const QMatrix & inverseWorldMatrix() const
virtual void contentsMouseDoubleClickEvent(QMouseEvent *)
virtual void contentsDragEnterEvent(QDragEnterEvent *)
virtual QSize sizeHint() const
bool highQualityRendering
virtual void contentsDropEvent(QDropEvent *)
virtual void contentsMousePressEvent(QMouseEvent *)
virtual void setAdvancePeriod(int ms)
virtual void addView(QtCanvasView *)
void drawViewArea(QtCanvasView *view, QPainter *p, const QRect &r, bool dbuf)
virtual void setTile(int x, int y, int tilenum)
virtual void setChangedChunkContaining(int x, int y)
QtCanvas(QObject *parent=0)
int tile(int x, int y) const
virtual void drawBackground(QPainter &, const QRect &area)
QtCanvasItemList collisions(const QPoint &) const
int tilesHorizontally() const
void drawArea(const QRect &, QPainter *p, bool double_buffer=false)
virtual void setUpdatePeriod(int ms)
bool validChunk(int x, int y) const
virtual void removeView(QtCanvasView *)
friend void qt_unview(QtCanvas *c)
virtual void addAnimation(QtCanvasItem *)
virtual void setChangedChunk(int i, int j)
virtual void removeItem(QtCanvasItem *)
QtCanvas(QPixmap p, int h, int v, int tilewidth, int tileheight)
virtual void setTiles(QPixmap tiles, int h, int v, int tilewidth, int tileheight)
virtual void setAllChanged()
virtual void drawForeground(QPainter &, const QRect &area)
void removeItemFromChunkContaining(QtCanvasItem *, int x, int y)
virtual void addItem(QtCanvasItem *)
virtual void setUnchanged(const QRect &area)
QtCanvasItemList collisions(const QRect &) const
bool onCanvas(int x, int y) const
virtual void retune(int chunksize, int maxclusters=100)
void removeItemFromChunk(QtCanvasItem *, int i, int j)
QPixmap backgroundPixmap() const
virtual void resize(int width, int height)
bool sameChunk(int x1, int y1, int x2, int y2) const
void addItemToChunkContaining(QtCanvasItem *, int x, int y)
QColor backgroundColor() const
void drawCanvasArea(const QRect &, QPainter *p=0, bool double_buffer=true)
QtCanvasItemList allItems()
bool onCanvas(const QPoint &p) const
virtual void setBackgroundPixmap(const QPixmap &p)
bool validChunk(const QPoint &p) const
int tilesVertically() const
virtual void setChanged(const QRect &area)
QtCanvasItemList collisions(const QPolygon &pa, const QtCanvasItem *item, bool exact) const
void addItemToChunk(QtCanvasItem *, int i, int j)
virtual void setBackgroundColor(const QColor &c)
virtual void removeAnimation(QtCanvasItem *)
This file offers overloads of toIce() and fromIce() functions for STL container types.
double angle(const Point &a, const Point &b, const Point &c)