| 13 | |
| 14 | |
| 15 | WSITileGraphicsItem::WSITileGraphicsItem(QPixmap* item, unsigned int tileX, unsigned int tileY, unsigned int tileSize, unsigned int tileByteSize, unsigned int itemLevel, unsigned int lastRenderLevel, const std::vector<float>& imgDownsamples, TileManager* manager, QPixmap* foregroundPixmap, ImageSource* foregroundTile, float foregroundOpacity, bool renderForeground) : |
| 16 | QGraphicsItem(), |
| 17 | _item(NULL), |
| 18 | _manager(NULL), |
| 19 | _tileX(tileX), |
| 20 | _tileY(tileY), |
| 21 | _tileSize(tileSize), |
| 22 | _tileByteSize(tileByteSize), |
| 23 | _itemLevel(itemLevel), |
| 24 | _lastRenderLevel(lastRenderLevel), |
| 25 | _foregroundPixmap(foregroundPixmap), |
| 26 | _foregroundTile(foregroundTile), |
| 27 | _foregroundOpacity(foregroundOpacity), |
| 28 | _renderForeground(renderForeground) |
| 29 | { |
| 30 | if (item) { |
| 31 | _item = item; |
| 32 | } |
| 33 | if (manager) { |
| 34 | _manager = manager; |
| 35 | } |
| 36 | _physicalSize = _tileSize / (imgDownsamples[_lastRenderLevel] / imgDownsamples[_itemLevel]); |
| 37 | float lastRenderLevelDownsample = imgDownsamples[_lastRenderLevel]; |
| 38 | float itemLevelLOD = lastRenderLevelDownsample / imgDownsamples[_itemLevel]; |
| 39 | if (_itemLevel == _lastRenderLevel) { |
| 40 | _lowerLOD = 0.; |
| 41 | } |
| 42 | else { |
| 43 | float avgDownsample = (imgDownsamples[_itemLevel + 1] + imgDownsamples[_itemLevel]) / 2.; |
| 44 | _lowerLOD = lastRenderLevelDownsample / avgDownsample; |
| 45 | } |
| 46 | if (_itemLevel == 0) { |
| 47 | _upperLOD = std::numeric_limits<float>::max(); |
| 48 | } |
| 49 | else { |
| 50 | float avgDownsample = (imgDownsamples[_itemLevel - 1] + imgDownsamples[_itemLevel]) / 2.; |
| 51 | _upperLOD = lastRenderLevelDownsample / avgDownsample; |
| 52 | } |
| 53 | this->setFlag(QGraphicsItem::ItemUsesExtendedStyleOption); |
| 54 | _boundingRect = QRectF(-_physicalSize / 2., -_physicalSize / 2., _physicalSize, _physicalSize); |
| 55 | } |
| 56 | |
| 57 | WSITileGraphicsItem::~WSITileGraphicsItem() { |
| 58 | if (_item) { |
nothing calls this directly
no outgoing calls
no test coverage detected