Computer Assited Medical Intervention Tool Kit  version 4.1
canvas_typed/qtcanvas.h
Go to the documentation of this file.
1 /****************************************************************************
2 **
3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
4 ** All rights reserved.
5 **
6 ** Contact: Nokia Corporation (qt-info@nokia.com)
7 **
8 ** This file is part of a Qt Solutions component.
9 **
10 ** You may use this file under the terms of the BSD license as follows:
11 **
12 ** "Redistribution and use in source and binary forms, with or without
13 ** modification, are permitted provided that the following conditions are
14 ** met:
15 ** * Redistributions of source code must retain the above copyright
16 ** notice, this list of conditions and the following disclaimer.
17 ** * Redistributions in binary form must reproduce the above copyright
18 ** notice, this list of conditions and the following disclaimer in
19 ** the documentation and/or other materials provided with the
20 ** distribution.
21 ** * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
22 ** the names of its contributors may be used to endorse or promote
23 ** products derived from this software without specific prior written
24 ** permission.
25 **
26 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
27 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
28 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
29 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
30 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
31 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
32 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
33 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
34 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
35 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
36 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
37 **
38 ****************************************************************************/
39 
40 #ifndef QTCANVAS_H
41 #define QTCANVAS_H
42 
43 #include <QtGui/qpixmap.h>
44 #include <QtGui/qbrush.h>
45 #include <QtGui/qpen.h>
46 #include <QtGui/qpolygon.h>
47 #include <QtGui/qscrollarea.h>
48 
49 class QtCanvasSprite;
51 class QtCanvasRectangle;
52 class QtCanvasPolygon;
53 class QtCanvasEllipse;
54 class QtCanvasText;
55 class QtCanvasLine;
56 class QtCanvasChunk;
57 class QtCanvas;
58 class QtCanvasItem;
59 class QtCanvasView;
61 
62 typedef QList<QtCanvasItem*> QtCanvasItemList;
63 
64 
65 class QtCanvasItemExtra;
66 
67 class QtCanvasItem {
68 public:
70  virtual ~QtCanvasItem();
71 
72  double x() const {
73  return myx;
74  }
75  double y() const {
76  return myy;
77  }
78  double z() const {
79  return myz; // (depth)
80  }
81 
82  virtual void moveBy(double dx, double dy);
83  void move(double x, double y);
84  void setX(double a) {
85  move(a, y());
86  }
87  void setY(double a) {
88  move(x(), a);
89  }
90  void setZ(double a) {
91  myz = a;
92  changeChunks();
93  }
94 
95  bool animated() const;
96  virtual void setAnimated(bool y);
97  virtual void setVelocity(double vx, double vy);
98  void setXVelocity(double vx) {
99  setVelocity(vx, yVelocity());
100  }
101  void setYVelocity(double vy) {
102  setVelocity(xVelocity(), vy);
103  }
104  double xVelocity() const;
105  double yVelocity() const;
106  virtual void advance(int stage);
107 
108  virtual bool collidesWith(const QtCanvasItem*) const = 0;
109 
110  QtCanvasItemList collisions(bool exact /* NO DEFAULT */) const;
111 
112  virtual void setCanvas(QtCanvas*);
113 
114  virtual void draw(QPainter&) = 0;
115 
116  void show();
117  void hide();
118 
119  virtual void setVisible(bool yes);
120  bool isVisible() const {
121  return (bool)vis;
122  }
123  virtual void setSelected(bool yes);
124  bool isSelected() const {
125  return (bool)sel;
126  }
127  virtual void setEnabled(bool yes);
128  bool isEnabled() const {
129  return (bool)ena;
130  }
131  virtual void setActive(bool yes);
132  bool isActive() const {
133  return (bool)act;
134  }
135  bool visible() const {
136  return (bool)vis;
137  }
138  bool selected() const {
139  return (bool)sel;
140  }
141  bool enabled() const {
142  return (bool)ena;
143  }
144  bool active() const {
145  return (bool)act;
146  }
147 
148  enum RttiValues {
158  };
159 
160  virtual int rtti() const;
161  static int RTTI;
162 
163  virtual QRect boundingRect() const = 0;
164  virtual QRect boundingRectAdvanced() const;
165 
166  QtCanvas* canvas() const {
167  return cnv;
168  }
169 
170 protected:
171  void update() {
172  changeChunks();
173  }
174 
175 private:
176  // For friendly subclasses...
177 
178  friend class QtCanvasPolygonalItem;
179  friend class QtCanvasSprite;
180  friend class QtCanvasRectangle;
181  friend class QtCanvasPolygon;
182  friend class QtCanvasEllipse;
183  friend class QtCanvasText;
184  friend class QtCanvasLine;
185 
186  virtual QPolygon chunks() const;
187  virtual void addToChunks();
188  virtual void removeFromChunks();
189  virtual void changeChunks();
190  virtual bool collidesWith(const QtCanvasSprite*,
191  const QtCanvasPolygonalItem*,
192  const QtCanvasRectangle*,
193  const QtCanvasEllipse*,
194  const QtCanvasText*) const = 0;
195  // End of friend stuff
196 
199  double myx, myy, myz;
202  uint ani: 1;
203  uint vis: 1;
204  uint val: 1;
205  uint sel: 1;
206  uint ena: 1;
207  uint act: 1;
208 };
209 
210 
211 class QtCanvasData;
212 
213 class QtCanvas : public QObject {
214  Q_OBJECT
215 public:
216  QtCanvas(QObject* parent = 0);
217  QtCanvas(int w, int h);
218  QtCanvas(QPixmap p, int h, int v, int tilewidth, int tileheight);
219 
220  virtual ~QtCanvas();
221 
222  virtual void setTiles(QPixmap tiles, int h, int v,
223  int tilewidth, int tileheight);
224  virtual void setBackgroundPixmap(const QPixmap& p);
225  QPixmap backgroundPixmap() const;
226 
227  virtual void setBackgroundColor(const QColor& c);
228  QColor backgroundColor() const;
229 
230  virtual void setTile(int x, int y, int tilenum);
231  int tile(int x, int y) const {
232  return grid[x + y * htiles];
233  }
234 
235  int tilesHorizontally() const {
236  return htiles;
237  }
238  int tilesVertically() const {
239  return vtiles;
240  }
241 
242  int tileWidth() const {
243  return tilew;
244  }
245  int tileHeight() const {
246  return tileh;
247  }
248 
249  virtual void resize(int width, int height);
250  int width() const {
251  return awidth;
252  }
253  int height() const {
254  return aheight;
255  }
256  QSize size() const {
257  return QSize(awidth, aheight);
258  }
259  QRect rect() const {
260  return QRect(0, 0, awidth, aheight);
261  }
262  bool onCanvas(int x, int y) const {
263  return x >= 0 && y >= 0 && x < awidth && y < aheight;
264  }
265  bool onCanvas(const QPoint& p) const {
266  return onCanvas(p.x(), p.y());
267  }
268  bool validChunk(int x, int y) const {
269  return x >= 0 && y >= 0 && x < chwidth && y < chheight;
270  }
271  bool validChunk(const QPoint& p) const {
272  return validChunk(p.x(), p.y());
273  }
274 
275  int chunkSize() const {
276  return chunksize;
277  }
278  virtual void retune(int chunksize, int maxclusters = 100);
279 
280  bool sameChunk(int x1, int y1, int x2, int y2) const {
281  return x1 / chunksize == x2 / chunksize && y1 / chunksize == y2 / chunksize;
282  }
283  virtual void setChangedChunk(int i, int j);
284  virtual void setChangedChunkContaining(int x, int y);
285  virtual void setAllChanged();
286  virtual void setChanged(const QRect& area);
287  virtual void setUnchanged(const QRect& area);
288 
289  // These call setChangedChunk.
290  void addItemToChunk(QtCanvasItem*, int i, int j);
291  void removeItemFromChunk(QtCanvasItem*, int i, int j);
292  void addItemToChunkContaining(QtCanvasItem*, int x, int y);
293  void removeItemFromChunkContaining(QtCanvasItem*, int x, int y);
294 
295  QtCanvasItemList allItems();
296  QtCanvasItemList collisions(const QPoint&) const;
297  QtCanvasItemList collisions(const QRect&) const;
298  QtCanvasItemList collisions(const QPolygon& pa, const QtCanvasItem* item,
299  bool exact) const;
300 
301  void drawArea(const QRect&, QPainter* p, bool double_buffer = false);
302 
303  // These are for QtCanvasView to call
304  virtual void addView(QtCanvasView*);
305  virtual void removeView(QtCanvasView*);
306 
307  void drawCanvasArea(const QRect&, QPainter* p = 0, bool double_buffer = true);
308  void drawViewArea(QtCanvasView* view, QPainter* p, const QRect& r, bool dbuf);
309 
310  // These are for QtCanvasItem to call
311  virtual void addItem(QtCanvasItem*);
312  virtual void addAnimation(QtCanvasItem*);
313  virtual void removeItem(QtCanvasItem*);
314  virtual void removeAnimation(QtCanvasItem*);
315 
316  virtual void setAdvancePeriod(int ms);
317  virtual void setUpdatePeriod(int ms);
318 
319 signals:
320  void resized();
321 
322 public slots:
323  virtual void advance();
324  virtual void update();
325 
326 protected:
327  virtual void drawBackground(QPainter&, const QRect& area);
328  virtual void drawForeground(QPainter&, const QRect& area);
329 
330 private:
331  void init(int w, int h, int chunksze = 16, int maxclust = 100);
332 
333  QtCanvasChunk& chunk(int i, int j) const;
334  QtCanvasChunk& chunkContaining(int x, int y) const;
335 
336  QRect changeBounds();
337 
338  int awidth, aheight;
341  int chwidth, chheight;
343 
345 
346  void initTiles(QPixmap p, int h, int v, int tilewidth, int tileheight);
347  ushort* grid;
348  ushort htiles;
349  ushort vtiles;
350  ushort tilew;
351  ushort tileh;
352  bool oneone;
353  QPixmap pm;
354  QTimer* update_timer;
355  QColor bgcolor;
357 
358  friend void qt_unview(QtCanvas* c);
359 
360  Q_DISABLE_COPY(QtCanvas)
361 };
362 
363 class QtCanvasViewData;
364 
365 class QtCanvasView : public QScrollArea {
366  Q_OBJECT
367  Q_PROPERTY(bool highQualityRendering READ highQualityRendering WRITE setHighQualityRendering)
368 public:
369 
370  QtCanvasView(QWidget* parent = 0);
371  QtCanvasView(QtCanvas* viewing, QWidget* parent = 0);
372  ~QtCanvasView();
373 
374  QtCanvas* canvas() const {
375  return viewing;
376  }
377  void setCanvas(QtCanvas* v);
378 
379  const QMatrix& worldMatrix() const;
380  const QMatrix& inverseWorldMatrix() const;
381  bool setWorldMatrix(const QMatrix&);
382 
383  virtual QSize sizeHint() const;
384 
385  bool highQualityRendering() const;
386 public slots:
387  void setHighQualityRendering(bool enable);
388 
389 protected:
390  friend class QtCanvasWidget;
391  virtual void drawContents(QPainter* p, int cx, int cy, int cw, int ch);
392 
393  virtual void contentsMousePressEvent(QMouseEvent*);
394  virtual void contentsMouseReleaseEvent(QMouseEvent*);
395  virtual void contentsMouseDoubleClickEvent(QMouseEvent*);
396  virtual void contentsMouseMoveEvent(QMouseEvent*);
397  virtual void contentsDragEnterEvent(QDragEnterEvent*);
398  virtual void contentsDragMoveEvent(QDragMoveEvent*);
399  virtual void contentsDragLeaveEvent(QDragLeaveEvent*);
400  virtual void contentsDropEvent(QDropEvent*);
401  virtual void contentsWheelEvent(QWheelEvent*);
402  virtual void contentsContextMenuEvent(QContextMenuEvent*);
403 
404 private:
405  friend class QtCanvas;
406  void drawContents(QPainter*);
409 
410 private slots:
411  void updateContentsSize();
412 
413 private:
414  Q_DISABLE_COPY(QtCanvasView)
415 };
416 
417 
418 class QtCanvasPixmap : public QPixmap {
419 public:
420 #ifndef QT_NO_IMAGEIO
421  QtCanvasPixmap(const QString& datafilename);
422 #endif
423  QtCanvasPixmap(const QImage& image);
424  QtCanvasPixmap(const QPixmap&, const QPoint& hotspot);
425  ~QtCanvasPixmap();
426 
427  int offsetX() const {
428  return hotx;
429  }
430  int offsetY() const {
431  return hoty;
432  }
433  void setOffset(int x, int y) {
434  hotx = x;
435  hoty = y;
436  }
437 
438 private:
439  Q_DISABLE_COPY(QtCanvasPixmap)
440 
441  void init(const QImage&);
442  void init(const QPixmap& pixmap, int hx, int hy);
443 
444  friend class QtCanvasSprite;
445  friend class QtCanvasPixmapArray;
446  friend bool qt_testCollision(const QtCanvasSprite* s1, const QtCanvasSprite* s2);
447 
448  int hotx, hoty;
449 
450  QImage* collision_mask;
451 };
452 
453 
455 public:
457 #ifndef QT_NO_IMAGEIO
458  QtCanvasPixmapArray(const QString& datafilenamepattern, int framecount = 0);
459 #endif
460  QtCanvasPixmapArray(const QList<QPixmap>& pixmaps, const QPolygon& hotspots = QPolygon());
462 
463 #ifndef QT_NO_IMAGEIO
464  bool readPixmaps(const QString& datafilenamepattern, int framecount = 0);
465  bool readCollisionMasks(const QString& filenamepattern);
466 #endif
467 
468  // deprecated
469  bool operator!(); // Failure check.
470  bool isValid() const;
471 
472  QtCanvasPixmap* image(int i) const {
473  return img ? img[i] : 0;
474  }
475  void setImage(int i, QtCanvasPixmap* p);
476  uint count() const {
477  return (uint)framecount;
478  }
479 
480 private:
481  Q_DISABLE_COPY(QtCanvasPixmapArray)
482 
483 #ifndef QT_NO_IMAGEIO
484  bool readPixmaps(const QString& datafilenamepattern, int framecount, bool maskonly);
485 #endif
486 
487  void reset();
490 };
491 
492 
493 class QtCanvasSprite : public QtCanvasItem {
494 public:
496 
497  void setSequence(QtCanvasPixmapArray* seq);
498 
499  virtual ~QtCanvasSprite();
500 
501  void move(double x, double y);
502  virtual void move(double x, double y, int frame);
503  void setFrame(int);
504  enum FrameAnimationType { Cycle, Oscillate };
505  virtual void setFrameAnimation(FrameAnimationType = Cycle, int step = 1, int state = 0);
506  int frame() const {
507  return frm;
508  }
509  int frameCount() const {
510  return images->count();
511  }
512 
513  int rtti() const;
514  static int RTTI;
515 
516  bool collidesWith(const QtCanvasItem*) const;
517 
518  QRect boundingRect() const;
519 
520  // is there a reason for these to be protected? Lars
521 //protected:
522 
523  int width() const;
524  int height() const;
525 
526  int leftEdge() const;
527  int topEdge() const;
528  int rightEdge() const;
529  int bottomEdge() const;
530 
531  int leftEdge(int nx) const;
532  int topEdge(int ny) const;
533  int rightEdge(int nx) const;
534  int bottomEdge(int ny) const;
536  return images->image(frm);
537  }
538  virtual QtCanvasPixmap* imageAdvanced() const;
539  QtCanvasPixmap* image(int f) const {
540  return images->image(f);
541  }
542  virtual void advance(int stage);
543 
544 public:
545  void draw(QPainter& painter);
546 
547 private:
548  Q_DISABLE_COPY(QtCanvasSprite)
549 
550  void addToChunks();
551  void removeFromChunks();
552  void changeChunks();
553 
554  int frm;
555  ushort anim_val;
556  uint anim_state: 2;
557  uint anim_type: 14;
558  bool collidesWith(const QtCanvasSprite*,
559  const QtCanvasPolygonalItem*,
560  const QtCanvasRectangle*,
561  const QtCanvasEllipse*,
562  const QtCanvasText*) const;
563 
564  friend bool qt_testCollision(const QtCanvasSprite* s1,
565  const QtCanvasSprite* s2);
566 
568 };
569 
570 class QPolygonalProcessor;
571 
573 public:
575  virtual ~QtCanvasPolygonalItem();
576 
577  bool collidesWith(const QtCanvasItem*) const;
578 
579  virtual void setPen(QPen p);
580  virtual void setBrush(QBrush b);
581 
582  QPen pen() const {
583  return pn;
584  }
585  QBrush brush() const {
586  return br;
587  }
588 
589  virtual QPolygon areaPoints() const = 0;
590  virtual QPolygon areaPointsAdvanced() const;
591  QRect boundingRect() const;
592 
593  int rtti() const;
594  static int RTTI;
595 
596 protected:
597  void draw(QPainter&);
598  virtual void drawShape(QPainter&) = 0;
599 
600  bool winding() const;
601  void setWinding(bool);
602 
603  void invalidate();
604  bool isValid() const {
605  return (bool)val;
606  }
607 
608 private:
609  void scanPolygon(const QPolygon& pa, int winding,
610  QPolygonalProcessor& process) const;
611  QPolygon chunks() const;
612 
613  bool collidesWith(const QtCanvasSprite*,
614  const QtCanvasPolygonalItem*,
615  const QtCanvasRectangle*,
616  const QtCanvasEllipse*,
617  const QtCanvasText*) const;
618 
619  QBrush br;
620  QPen pn;
621  uint wind: 1;
622 };
623 
624 
626 public:
628  QtCanvasRectangle(const QRect&, QtCanvas* canvas);
629  QtCanvasRectangle(int x, int y, int width, int height, QtCanvas* canvas);
630 
632 
633  int width() const;
634  int height() const;
635  void setSize(int w, int h);
636  QSize size() const {
637  return QSize(w, h);
638  }
639  QPolygon areaPoints() const;
640  QRect rect() const {
641  return QRect(int(x()), int(y()), w, h);
642  }
643 
644  bool collidesWith(const QtCanvasItem*) const;
645 
646  int rtti() const;
647  static int RTTI;
648 
649 protected:
650  void drawShape(QPainter&);
651  QPolygon chunks() const;
652 
653 private:
654  bool collidesWith(const QtCanvasSprite*,
655  const QtCanvasPolygonalItem*,
656  const QtCanvasRectangle*,
657  const QtCanvasEllipse*,
658  const QtCanvasText*) const;
659 
660  int w, h;
661 };
662 
663 
665 public:
667  ~QtCanvasPolygon();
668  void setPoints(QPolygon);
669  QPolygon points() const;
670  void moveBy(double dx, double dy);
671 
672  QPolygon areaPoints() const;
673 
674  int rtti() const;
675  static int RTTI;
676 
677 protected:
678  void drawShape(QPainter&);
679  QPolygon poly;
680 };
681 
682 
684 public:
686  ~QtCanvasSpline();
687 
688  void setControlPoints(QPolygon, bool closed = true);
689  QPolygon controlPoints() const;
690  bool closed() const;
691 
692  int rtti() const;
693  static int RTTI;
694 
695 private:
696  void recalcPoly();
697  QPolygon bez;
698  bool cl;
699 };
700 
701 
703 public:
705  ~QtCanvasLine();
706  void setPoints(int x1, int y1, int x2, int y2);
707 
708  QPoint startPoint() const {
709  return QPoint(x1, y1);
710  }
711  QPoint endPoint() const {
712  return QPoint(x2, y2);
713  }
714 
715  int rtti() const;
716  static int RTTI;
717 
718  void setPen(QPen p);
719  void moveBy(double dx, double dy);
720 
721 protected:
722  void drawShape(QPainter&);
723  QPolygon areaPoints() const;
724 
725 private:
726  int x1, y1, x2, y2;
727 };
728 
729 
731 
732 public:
734  QtCanvasEllipse(int width, int height, QtCanvas* canvas);
735  QtCanvasEllipse(int width, int height, int startangle, int angle,
736  QtCanvas* canvas);
737 
738  ~QtCanvasEllipse();
739 
740  int width() const;
741  int height() const;
742  void setSize(int w, int h);
743  void setAngles(int start, int length);
744  int angleStart() const {
745  return a1;
746  }
747  int angleLength() const {
748  return a2;
749  }
750  QPolygon areaPoints() const;
751 
752  bool collidesWith(const QtCanvasItem*) const;
753 
754  int rtti() const;
755  static int RTTI;
756 
757 protected:
758  void drawShape(QPainter&);
759 
760 private:
761  bool collidesWith(const QtCanvasSprite*,
762  const QtCanvasPolygonalItem*,
763  const QtCanvasRectangle*,
764  const QtCanvasEllipse*,
765  const QtCanvasText*) const;
766  int w, h;
767  int a1, a2;
768 };
769 
770 
771 class QtCanvasTextExtra;
772 
773 class QtCanvasText : public QtCanvasItem {
774 public:
776  QtCanvasText(const QString&, QtCanvas* canvas);
777  QtCanvasText(const QString&, QFont, QtCanvas* canvas);
778 
779  virtual ~QtCanvasText();
780 
781  void setText(const QString&);
782  void setFont(const QFont&);
783  void setColor(const QColor&);
784  QString text() const;
785  QFont font() const;
786  QColor color() const;
787 
788  void moveBy(double dx, double dy);
789 
790  int textFlags() const {
791  return flags;
792  }
793  void setTextFlags(int);
794 
795  QRect boundingRect() const;
796 
797  bool collidesWith(const QtCanvasItem*) const;
798 
799  int rtti() const;
800  static int RTTI;
801 
802 protected:
803  virtual void draw(QPainter&);
804 
805 private:
806  Q_DISABLE_COPY(QtCanvasText)
807 
808  void addToChunks();
809  void removeFromChunks();
810  void changeChunks();
811 
812  void setRect();
813  QRect brect;
814  QString txt;
815  int flags;
816  QFont fnt;
817  QColor col;
818  QtCanvasTextExtra* extra;
819 
820  bool collidesWith(const QtCanvasSprite*,
821  const QtCanvasPolygonalItem*,
822  const QtCanvasRectangle*,
823  const QtCanvasEllipse*,
824  const QtCanvasText*) const;
825 };
826 
827 #endif // QTCANVAS_H
RttiValues
Definition: canvas_typed/qtcanvas.h:148
friend class QtCanvasPolygonalItem
Definition: canvas_typed/qtcanvas.h:178
int width() const
Definition: canvas_typed/qtcanvas.h:250
Definition: canvas_typed/qtcanvas.h:664
Definition: canvas_typed/qtcanvas.h:730
void update()
Definition: canvas_typed/qtcanvas.h:171
bool sameChunk(int x1, int y1, int x2, int y2) const
Definition: canvas_typed/qtcanvas.h:280
Definition: canvas_typed/qtcanvas.h:773
Definition: canvas_typed/qtcanvas.h:683
int maxclusters
Definition: canvas_typed/qtcanvas.h:340
int hoty
Definition: canvas_typed/qtcanvas.h:448
static int RTTI
Definition: canvas_typed/qtcanvas.h:755
double myy
Definition: canvas_typed/qtcanvas.h:199
int awidth
Definition: canvas_typed/qtcanvas.h:338
bool oneone
Definition: canvas_typed/qtcanvas.h:352
virtual void moveBy(double dx, double dy)
Definition: canvas_typed/qtcanvas.cpp:1669
QString txt
Definition: canvas_typed/qtcanvas.h:814
Definition: canvas_typed/qtcanvas.h:454
int tilesVertically() const
Definition: canvas_typed/qtcanvas.h:238
static int RTTI
Definition: canvas_typed/qtcanvas.h:800
QPoint startPoint() const
Definition: canvas_typed/qtcanvas.h:708
int offsetY() const
Definition: canvas_typed/qtcanvas.h:430
ushort tilew
Definition: canvas_typed/qtcanvas.h:350
ushort * grid
Definition: canvas_typed/qtcanvas.h:347
int chunkSize() const
Definition: canvas_typed/qtcanvas.h:275
int w
Definition: canvas_typed/qtcanvas.h:766
QtCanvasItemExtra * ext
Definition: canvas_typed/qtcanvas.h:200
QtCanvasItemExtra & extra()
Definition: canvas_typed/qtcanvas.cpp:1611
virtual QPolygon chunks() const
Definition: canvas_typed/qtcanvas.cpp:2918
bool cl
Definition: canvas_typed/qtcanvas.h:698
virtual QRect boundingRectAdvanced() const
Definition: canvas_typed/qtcanvas.cpp:2409
QRect rect() const
Definition: canvas_typed/qtcanvas.h:640
static int RTTI
Definition: canvas_typed/qtcanvas.h:594
Definition: canvas_typed/qtcanvas.h:213
bool qt_testCollision(const QtCanvasSprite *s1, const QtCanvasSprite *s2)
Definition: canvas_typed/qtcanvas.cpp:1950
ushort htiles
Definition: canvas_typed/qtcanvas.h:348
Definition: canvas_typed/qtcanvas.h:151
bool visible() const
Definition: canvas_typed/qtcanvas.h:135
bool isEnabled() const
Definition: canvas_typed/qtcanvas.h:128
uint ena
Definition: canvas_typed/qtcanvas.h:206
Definition: canvas_typed/qtcanvas.cpp:56
bool isValid() const
Definition: canvas_typed/qtcanvas.h:604
friend class QtCanvasPolygon
Definition: canvas_typed/qtcanvas.h:181
QtCanvasPixmap ** img
Definition: canvas_typed/qtcanvas.h:489
int textFlags() const
Definition: canvas_typed/qtcanvas.h:790
QImage * collision_mask
Definition: canvas_typed/qtcanvas.h:450
Definition: canvas_typed/qtcanvas.h:154
FrameAnimationType
Definition: canvas_typed/qtcanvas.h:504
Definition: canvas_typed/qtcanvas.h:156
QRect rect() const
Definition: canvas_typed/qtcanvas.h:259
Definition: canvas_typed/qtcanvas.cpp:3059
ushort anim_val
Definition: canvas_typed/qtcanvas.h:555
virtual void setCanvas(QtCanvas *)
Definition: canvas_typed/qtcanvas.cpp:1790
virtual void changeChunks()
Definition: canvas_typed/qtcanvas.cpp:2383
bool selected() const
Definition: canvas_typed/qtcanvas.h:138
QtCanvasChunk * chunks
Definition: canvas_typed/qtcanvas.h:342
void setYVelocity(double vy)
Definition: canvas_typed/qtcanvas.h:101
QtCanvasItemList collisions(bool exact) const
Definition: canvas_typed/qtcanvas.cpp:2285
int y2
Definition: canvas_typed/qtcanvas.h:726
friend class QtCanvasRectangle
Definition: canvas_typed/qtcanvas.h:180
int frm
Definition: canvas_typed/qtcanvas.h:554
Definition: canvas_typed/qtcanvas.h:572
QSize size() const
Definition: canvas_typed/qtcanvas.h:636
double yVelocity() const
Definition: canvas_typed/qtcanvas.cpp:1758
Definition: canvas_typed/qtcanvas.h:702
Definition: canvas_typed/qtcanvas.h:418
int tile(int x, int y) const
Definition: canvas_typed/qtcanvas.h:231
QPolygon poly
Definition: canvas_typed/qtcanvas.h:679
Definition: canvas_typed/qtcanvas.cpp:284
virtual void addToChunks()
Definition: canvas_typed/qtcanvas.cpp:2355
QtCanvasData * d
Definition: canvas_typed/qtcanvas.h:344
friend class QtCanvasLine
Definition: canvas_typed/qtcanvas.h:184
QtCanvasPixmap * image(int f) const
Definition: canvas_typed/qtcanvas.h:539
QPolygon bez
Definition: canvas_typed/qtcanvas.h:697
virtual void draw(QPainter &)=0
int chunksize
Definition: canvas_typed/qtcanvas.h:339
virtual void removeFromChunks()
Definition: canvas_typed/qtcanvas.cpp:2369
void setOffset(int x, int y)
Definition: canvas_typed/qtcanvas.h:433
static int RTTI
Definition: canvas_typed/qtcanvas.h:161
int w
Definition: canvas_typed/qtcanvas.h:660
Definition: canvas_typed/qtcanvas.h:493
double myz
Definition: canvas_typed/qtcanvas.h:199
double y() const
Definition: canvas_typed/qtcanvas.h:75
QtCanvas * viewing
Definition: canvas_typed/qtcanvas.h:407
Definition: canvas_typed/qtcanvas.cpp:1489
#define a
friend class QtCanvasSprite
Definition: canvas_typed/qtcanvas.h:179
Definition: canvas_typed/qtcanvas.h:149
uint vis
Definition: canvas_typed/qtcanvas.h:203
int tilesHorizontally() const
Definition: canvas_typed/qtcanvas.h:235
bool validChunk(int x, int y) const
Definition: canvas_typed/qtcanvas.h:268
Definition: canvas_typed/qtcanvas.h:153
int tileHeight() const
Definition: canvas_typed/qtcanvas.h:245
virtual void advance(int stage)
Definition: canvas_typed/qtcanvas.cpp:1773
bool isVisible() const
Definition: canvas_typed/qtcanvas.h:120
void setX(double a)
Definition: canvas_typed/qtcanvas.h:84
int angleStart() const
Definition: canvas_typed/qtcanvas.h:744
uint val
Definition: canvas_typed/qtcanvas.h:204
virtual void setVisible(bool yes)
Definition: canvas_typed/qtcanvas.cpp:1830
QtCanvas * canvas() const
Definition: canvas_typed/qtcanvas.h:166
bool active() const
Definition: canvas_typed/qtcanvas.h:144
virtual void setEnabled(bool yes)
Definition: canvas_typed/qtcanvas.cpp:1914
QtCanvasTextExtra * extra
Definition: canvas_typed/qtcanvas.h:818
double xVelocity() const
Definition: canvas_typed/qtcanvas.cpp:1751
uint wind
Definition: canvas_typed/qtcanvas.h:621
virtual ~QtCanvasItem()
Definition: canvas_typed/qtcanvas.cpp:1603
static int RTTI
Definition: canvas_typed/qtcanvas.h:693
uint ani
Definition: canvas_typed/qtcanvas.h:202
int frame() const
Definition: canvas_typed/qtcanvas.h:506
bool isActive() const
Definition: canvas_typed/qtcanvas.h:132
static int RTTI
Definition: canvas_typed/qtcanvas.h:514
int framecount
Definition: canvas_typed/qtcanvas.h:488
QPen pen() const
Definition: canvas_typed/qtcanvas.h:582
int chwidth
Definition: canvas_typed/qtcanvas.h:341
static int RTTI
Definition: canvas_typed/qtcanvas.h:647
int height() const
Definition: canvas_typed/qtcanvas.h:253
uint anim_state
Definition: canvas_typed/qtcanvas.h:556
int frameCount() const
Definition: canvas_typed/qtcanvas.h:509
void hide()
Definition: canvas_typed/qtcanvas.cpp:1821
bool validChunk(const QPoint &p) const
Definition: canvas_typed/qtcanvas.h:271
void setXVelocity(double vx)
Definition: canvas_typed/qtcanvas.h:98
QList< QtCanvasItem * > QtCanvasItemList
Definition: canvas_typed/qtcanvas.h:60
virtual int rtti() const
Definition: canvas_typed/qtcanvas.cpp:4604
static int RTTI
Definition: canvas_typed/qtcanvas.h:716
QBrush br
Definition: canvas_typed/qtcanvas.h:619
friend class QtCanvasEllipse
Definition: canvas_typed/qtcanvas.h:182
QColor col
Definition: canvas_typed/qtcanvas.h:817
virtual void setAnimated(bool y)
Definition: canvas_typed/qtcanvas.cpp:1704
bool onCanvas(int x, int y) const
Definition: canvas_typed/qtcanvas.h:262
QtCanvasItem(QtCanvas *canvas)
Definition: canvas_typed/qtcanvas.cpp:1584
Definition: canvas_typed/qtcanvas.h:152
Definition: canvas_typed/qtcanvas.cpp:3477
virtual void setSelected(bool yes)
Definition: canvas_typed/qtcanvas.cpp:1885
int flags
Definition: canvas_typed/qtcanvas.h:815
virtual void setVelocity(double vx, double vy)
Definition: canvas_typed/qtcanvas.cpp:1738
Definition: canvas_typed/qtcanvas.h:365
uint sel
Definition: canvas_typed/qtcanvas.h:205
QColor bgcolor
Definition: canvas_typed/qtcanvas.h:355
QRect brect
Definition: canvas_typed/qtcanvas.h:813
QtCanvas * canvas() const
Definition: canvas_typed/qtcanvas.h:374
static int RTTI
Definition: canvas_typed/qtcanvas.h:675
double myx
Definition: canvas_typed/qtcanvas.h:199
Definition: canvas_typed/qtcanvas.h:157
void move(double x, double y)
Definition: canvas_typed/qtcanvas.cpp:1682
QBrush brush() const
Definition: canvas_typed/qtcanvas.h:585
QtCanvasPixmapArray * images
Definition: canvas_typed/qtcanvas.h:567
double x() const
Definition: canvas_typed/qtcanvas.h:72
Definition: canvas_typed/qtcanvas.h:67
ushort vtiles
Definition: canvas_typed/qtcanvas.h:349
friend class QtCanvasText
Definition: canvas_typed/qtcanvas.h:183
bool enabled() const
Definition: canvas_typed/qtcanvas.h:141
Definition: canvas_typed/qtcanvas.h:150
QtCanvasViewData * d
Definition: canvas_typed/qtcanvas.h:408
bool onCanvas(const QPoint &p) const
Definition: canvas_typed/qtcanvas.h:265
Definition: canvas_typed/qtcanvas.cpp:66
QSize size() const
Definition: canvas_typed/qtcanvas.h:256
virtual bool collidesWith(const QtCanvasItem *) const =0
QtCanvasPixmap * image() const
Definition: canvas_typed/qtcanvas.h:535
QtCanvasPixmap * image(int i) const
Definition: canvas_typed/qtcanvas.h:472
int angleLength() const
Definition: canvas_typed/qtcanvas.h:747
QPoint endPoint() const
Definition: canvas_typed/qtcanvas.h:711
QPen pn
Definition: canvas_typed/qtcanvas.h:620
uint count() const
Definition: canvas_typed/qtcanvas.h:476
bool animated() const
Definition: canvas_typed/qtcanvas.cpp:1693
int offsetX() const
Definition: canvas_typed/qtcanvas.h:427
ushort tileh
Definition: canvas_typed/qtcanvas.h:351
int tileWidth() const
Definition: canvas_typed/qtcanvas.h:242
virtual QRect boundingRect() const =0
static QtCanvas * current_canvas
Definition: canvas_typed/qtcanvas.h:198
void setZ(double a)
Definition: canvas_typed/qtcanvas.h:90
uint anim_type
Definition: canvas_typed/qtcanvas.h:557
double z() const
Definition: canvas_typed/qtcanvas.h:78
uint act
Definition: canvas_typed/qtcanvas.h:207
virtual void setActive(bool yes)
Definition: canvas_typed/qtcanvas.cpp:1943
bool debug_redraw_areas
Definition: canvas_typed/qtcanvas.h:356
Definition: canvas_typed/qtcanvas.h:155
QTimer * update_timer
Definition: canvas_typed/qtcanvas.h:354
void show()
Definition: canvas_typed/qtcanvas.cpp:1816
bool isSelected() const
Definition: canvas_typed/qtcanvas.h:124
QtCanvas * cnv
Definition: canvas_typed/qtcanvas.h:197
void setY(double a)
Definition: canvas_typed/qtcanvas.h:87
Definition: canvas_typed/qtcanvas.h:625
QPixmap pm
Definition: canvas_typed/qtcanvas.h:353
QFont fnt
Definition: canvas_typed/qtcanvas.h:816
int a2
Definition: canvas_typed/qtcanvas.h:767