ganeswidgets/inc/hgquadrenderer.h
changeset 2 49c70dcc3f17
parent 1 e48454f237ca
child 5 4fa04caf0f43
--- a/ganeswidgets/inc/hgquadrenderer.h	Mon May 03 13:32:54 2010 +0300
+++ b/ganeswidgets/inc/hgquadrenderer.h	Fri May 14 16:57:01 2010 +0300
@@ -29,7 +29,7 @@
 class QMatrix4x4;
 class QPolygonF;
 class HgImage;
-class HgImageFader;
+
 /**
  *
  * Abstract class to be inherited by differend quad renderer implementations.
@@ -58,26 +58,25 @@
      * @return quad under the pointer position or -1 if nothing is there.
      */
     virtual HgQuad* getQuadAt(const QPointF& point) const = 0;
+
     /**
-     * Transform quads with view and projection transformation for rendering.
-     * @param view view transformation matrix.
-     * @param projection transformation matrix.
-     * @rect window rectangle.
+     * Rasterize 3D quads to 2D screen using painter or underlying Native graphics API.
+     * This should be called inside Widgets draw method.
+     * @param painter QPainter-object.
+     * @param rect window rectangle.
+     * @param viewMatrix view matrix
+     * @param projectionMatrix projection matrix
+     * @param orientation current screen orientation
      */
-    virtual void transformQuads(const QMatrix4x4& view, const QMatrix4x4& proj, 
-        const QRectF& rect)=0;
-    /**
-     * Draw transformed quads using painter or underlying Native graphics API.
-     * This should be called inside Widgets draw method.
-     * @param rect window rectangle.
-     * @param painter QPainter-object.
-     */
-    virtual void drawQuads(const QRectF& rect, QPainter* painter)=0;
+    virtual void drawQuads(QPainter* painter, const QRectF& rect, 
+        const QMatrix4x4& viewMatrix, const QMatrix4x4& projectionMatrix, 
+        const Qt::Orientation orientation, 
+        const QTransform& sceneTransform)=0;
     
     /**
      * 
      */
-    virtual bool getQuadTranformedPoints(QPolygonF& points, int index) const=0;
+    virtual bool getQuadTranformedPointsByUserData(QPolygonF& points, const QVariant& userData) const=0;
     
     /**
      * 
@@ -88,17 +87,15 @@
      * 
      */
     virtual HgImage* createNativeImage()=0;
-    
-    /**
-     * 
-     */
-    virtual void setImageFader(HgImageFader* fader);
-    
+        
     /**
      * 
      */
     virtual QList<HgQuad*> getVisibleQuads(const QRectF& rect) const=0;
     
+    /**
+     * 
+     */
     virtual void setDefaultImage(QImage defaultImage);
 
     /**
@@ -116,14 +113,24 @@
      */
     virtual QImage getDefaultImage() const;
     
+    /**
+     * 
+     */
+    virtual void enableReflections(bool enabled);
+    
+    /**
+     * 
+     */
+    virtual bool reflectionsEnabled() const;
+    
 protected:    
     HgQuadRenderer(int maxQuads);
 
     QList<HgQuad*> mQuads;
     qreal mMirroringPlaneY;
-    HgImageFader* mImageFader;
     QImage mDefaultImage;
     QVector2D mTranslation;
+    bool mReflectionsEnabled;
 };
 
 #endif