56 * Gets quads index at pointer position. |
56 * Gets quads index at pointer position. |
57 * @param pointer position. |
57 * @param pointer position. |
58 * @return quad under the pointer position or -1 if nothing is there. |
58 * @return quad under the pointer position or -1 if nothing is there. |
59 */ |
59 */ |
60 virtual HgQuad* getQuadAt(const QPointF& point) const = 0; |
60 virtual HgQuad* getQuadAt(const QPointF& point) const = 0; |
|
61 |
61 /** |
62 /** |
62 * Transform quads with view and projection transformation for rendering. |
63 * Rasterize 3D quads to 2D screen using painter or underlying Native graphics API. |
63 * @param view view transformation matrix. |
64 * This should be called inside Widgets draw method. |
64 * @param projection transformation matrix. |
65 * @param painter QPainter-object. |
65 * @rect window rectangle. |
66 * @param rect window rectangle. |
|
67 * @param viewMatrix view matrix |
|
68 * @param projectionMatrix projection matrix |
|
69 * @param orientation current screen orientation |
66 */ |
70 */ |
67 virtual void transformQuads(const QMatrix4x4& view, const QMatrix4x4& proj, |
71 virtual void drawQuads(QPainter* painter, const QRectF& rect, |
68 const QRectF& rect)=0; |
72 const QMatrix4x4& viewMatrix, const QMatrix4x4& projectionMatrix, |
69 /** |
73 const Qt::Orientation orientation, |
70 * Draw transformed quads using painter or underlying Native graphics API. |
74 const QTransform& sceneTransform)=0; |
71 * This should be called inside Widgets draw method. |
|
72 * @param rect window rectangle. |
|
73 * @param painter QPainter-object. |
|
74 */ |
|
75 virtual void drawQuads(const QRectF& rect, QPainter* painter)=0; |
|
76 |
75 |
77 /** |
76 /** |
78 * |
77 * |
79 */ |
78 */ |
80 virtual bool getQuadTranformedPoints(QPolygonF& points, int index) const=0; |
79 virtual bool getQuadTranformedPointsByUserData(QPolygonF& points, const QVariant& userData) const=0; |
81 |
80 |
82 /** |
81 /** |
83 * |
82 * |
84 */ |
83 */ |
85 virtual void setMirroringPlaneY(qreal mirroringPlaneY); |
84 virtual void setMirroringPlaneY(qreal mirroringPlaneY); |
86 |
85 |
87 /** |
86 /** |
88 * |
87 * |
89 */ |
88 */ |
90 virtual HgImage* createNativeImage()=0; |
89 virtual HgImage* createNativeImage()=0; |
91 |
90 |
92 /** |
|
93 * |
|
94 */ |
|
95 virtual void setImageFader(HgImageFader* fader); |
|
96 |
|
97 /** |
91 /** |
98 * |
92 * |
99 */ |
93 */ |
100 virtual QList<HgQuad*> getVisibleQuads(const QRectF& rect) const=0; |
94 virtual QList<HgQuad*> getVisibleQuads(const QRectF& rect) const=0; |
101 |
95 |
|
96 /** |
|
97 * |
|
98 */ |
102 virtual void setDefaultImage(QImage defaultImage); |
99 virtual void setDefaultImage(QImage defaultImage); |
103 |
100 |
104 /** |
101 /** |
105 * |
102 * |
106 */ |
103 */ |
114 /** |
111 /** |
115 * |
112 * |
116 */ |
113 */ |
117 virtual QImage getDefaultImage() const; |
114 virtual QImage getDefaultImage() const; |
118 |
115 |
|
116 /** |
|
117 * |
|
118 */ |
|
119 virtual void enableReflections(bool enabled); |
|
120 |
|
121 /** |
|
122 * |
|
123 */ |
|
124 virtual bool reflectionsEnabled() const; |
|
125 |
119 protected: |
126 protected: |
120 HgQuadRenderer(int maxQuads); |
127 HgQuadRenderer(int maxQuads); |
121 |
128 |
122 QList<HgQuad*> mQuads; |
129 QList<HgQuad*> mQuads; |
123 qreal mMirroringPlaneY; |
130 qreal mMirroringPlaneY; |
124 HgImageFader* mImageFader; |
|
125 QImage mDefaultImage; |
131 QImage mDefaultImage; |
126 QVector2D mTranslation; |
132 QVector2D mTranslation; |
|
133 bool mReflectionsEnabled; |
127 }; |
134 }; |
128 |
135 |
129 #endif |
136 #endif |