MCPcopy Create free account
hub / github.com/computationalpathologygroup/ASAP / WSITileGraphicsItem

Method WSITileGraphicsItem

ASAP/WSITileGraphicsItem.cpp:15–55  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

13
14
15WSITileGraphicsItem::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
57WSITileGraphicsItem::~WSITileGraphicsItem() {
58 if (_item) {

Callers

nothing calls this directly

Calls

no outgoing calls

Tested by

no test coverage detected