26#include <Inventor/C/errors/debugerror.h>
27#include "Inventor/Qt/SoQtRenderArea.h"
28#include <Inventor/Qt/viewers/SoQtExaminerViewer.h>
29#include "Inventor/nodes/SoNode.h"
30#include <Inventor/actions/SoLineHighlightRenderAction.h>
40 std::vector<VP1ExaminerViewer*>::iterator
it,
itE;
49 m_d->itE =
m_d->renderareas.end();
57 m_d->it =
m_d->renderareas.begin();
61 ra->setAutoRedraw(
false);
67 SoLineHighlightRenderAction * trick =
new SoLineHighlightRenderAction();
68 SoLineHighlightRenderAction * trick2 =
new SoLineHighlightRenderAction();
69 ra->setGLRenderAction(trick);
70 ra->setOverlayGLRenderAction(trick2);
86 m_d->it =
m_d->renderareas.begin();
88 (*(
m_d->it))->setAutoRedraw(enable);
90 IVP1ChannelWidget::setUpdatesEnabled(enable);
98 message(
"Error - tried to register NULL render area!");
104 m_d->renderareas.push_back(ra);
105 m_d->itE =
m_d->renderareas.end();
110 if (ra->getParentWidget()&&ra->getWidget())
111 ra->getParentWidget()->setFocusProxy(ra->getWidget());
118 m_d->it =
m_d->renderareas.begin();
121 if (ra->getTypeId().isDerivedFrom(SoQtViewer::getClassTypeId())) {
123 if (ra->getTypeId().isDerivedFrom(SoQtExaminerViewer::getClassTypeId())) {
124 if (
static_cast<SoQtExaminerViewer*
>(ra)->isAnimating())
125 static_cast<SoQtExaminerViewer*
>(ra)->stopAnimating();
137 VP1Msg::messageVerbose(
"(currently, we are not using the values - transp: "+QString::number(transp)+
" - width: "+QString::number(
width)+
")");
155 QPixmap pm(geometry().
size());
159 painter.drawPixmap(0,0,this->grab ( ));
161 m_d->it =
m_d->renderareas.begin();
164 QWidget * ra_w = ra->getNormalWidget();
167 message(
"Error rendering scene to QPixmap!");
170 QPoint pos = ra_w->mapTo(
this, QPoint(0,0) );
172 painter.drawPixmap(pos.x(),pos.y(),pmra);
184 QByteArray byteArray;
185 QBuffer buffer(&byteArray);
186 buffer.open(QIODevice::WriteOnly);
187 QDataStream out(&buffer);
198 QList<int> transptypes;
199 m_d->it =
m_d->renderareas.begin();
219 buffer.open(QIODevice::ReadOnly);
220 QDataStream
state(&buffer);
224 if (version!=0&&version!=1) {
225 message(
"Warning: State data in .vp1 file is in wrong format - ignoring!");
229 QByteArray basestate;
239 QList<int> transptypes;
240 state >> transptypes;
241 if (transptypes.count()!=
static_cast<int>(
m_d->renderareas.size())) {
242 message(
"Warning: State data in .vp1 file is in wrong format - ignoring!");
246 m_d->it =
m_d->renderareas.begin();
size_t size() const
Number of registered mappings.
static void abortAnyCurrentZoom(SoCamera *camera)
virtual void setSceneGraph(SoNode *)
virtual SoNode * getSceneGraph()
static void messageVerbose(const QString &)
static void ensureInitLineWidthAndPointSize(SoQtRenderArea *)
static QPixmap renderToPixmap(VP1ExaminerViewer *ra, int pixels_x, int pixels_y, bool transparent_background=false, double actualRenderedSizeFact=1.0)
static SoGLRenderAction::TransparencyType intToTransparencyType(int)
static int transparencyTypeToInt(SoGLRenderAction::TransparencyType)