00001 #ifndef ARENDER_H_ 00002 #define ARENDER_H_ 00003 00004 #include <QPixmap> 00005 #include "Data.h" 00006 00007 class QPainter; 00008 00014 class ARender { 00015 protected: 00016 ARender(const Data& aData) : mData(aData), 00017 mImageSize(mData.xdim(), mData.ydim()) 00018 {} 00019 00020 public: 00021 virtual ~ARender() {} 00022 00027 virtual QSize getImageSize() const { return mImageSize; } 00033 virtual void setImageSize(const QSize& s) { mImageSize = s; } 00034 00039 virtual void render(QPixmap* pixmap) = 0; 00040 00044 Vector<float> getFlow(int aX, int aY) const; 00045 00049 float getDataPiece(int aX, int aY, unsigned int aDataIndex) const; 00050 00051 protected: 00055 Vector<> getDataAt(float x, float y, float z) const; 00056 00061 QPointF imageToWorldCoords(int aX, int aY) const; 00062 00068 void setupCoordSystem(QPainter& aPainter) const; 00074 void setupCoordSystem(QMatrix& aMatrix) const; 00075 00076 const Data& mData; 00077 QSize mImageSize; 00078 00079 }; 00080 00081 #endif