-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdisplayI.cpp
More file actions
72 lines (64 loc) · 2.17 KB
/
displayI.cpp
File metadata and controls
72 lines (64 loc) · 2.17 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
/*
* Copyright (C) 2017 by YOUR NAME HERE
*
* This file is part of RoboComp
*
* RoboComp is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* RoboComp is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with RoboComp. If not, see <http://www.gnu.org/licenses/>.
*/
#include "displayI.h"
#include "specificworker.h"
DisplayI::DisplayI(std::shared_ptr<SpecificWorker> _worker)
{
worker = _worker;
}
DisplayI::~DisplayI()
{
}
void DisplayI::add(QString id_)
{
id=id_;
}
void DisplayI::remove(QString id)
{
}
void DisplayI::setImageFromFile(const string &pathImg, const Ice::Current&)
{
guard gl(worker->innerModel->mutex);
QString m = "RoboCompDisplay::setImage()";
InnerModelDisplay *aux = dynamic_cast<InnerModelDisplay*>(worker->getNode(id, m));
osg::Image *image = osgDB::readImageFile(pathImg);
aux->texture = QString::fromStdString(pathImg);
if (image == nullptr)
{
//qDebug() << __LINE__ << "Couldn't load texture:" << texture.c_str();
throw "SetImage::Couldn't load image" + pathImg;
}
worker->imv->planesHash[aux->id]->setImage(image);
}
void DisplayI::setImage(const RoboCompDisplay::Image &img, const Ice::Current&)
{
guard gl(worker->innerModel->mutex);
QImage im = QImage(&img.Img[0],img.width,img.height, QImage::Format_ARGB32);
im.save("/var/tmp/tmp.jpg");
QString m = "RoboCompDisplay::setImage()";
InnerModelDisplay *aux = dynamic_cast<InnerModelDisplay*>(worker->getNode(id, m));
aux->texture = QString("/var/tmp/tmp.jpg");
osg::Image *image = osgDB::readImageFile("/var/tmp/tmp.jpg");
if (image == nullptr)
{
//qDebug() << __LINE__ << "Couldn't load texture:" << texture.c_str();
throw "SetImage::Couldn't load image";
}
worker->imv->planesHash[aux->id]->setImage(image);
}