From 2b53da4eee2d179da10c0e0e0922fa4cd22e700b Mon Sep 17 00:00:00 2001 From: wmayer Date: Tue, 30 Jun 2015 17:48:03 +0200 Subject: [PATCH] + include missing header files --- src/Gui/Application.cpp | 2 + src/Gui/ApplicationPy.cpp | 1 + src/Gui/Command.cpp | 1 + src/Gui/DlgToolbarsImp.cpp | 2 + src/Gui/DlgWorkbenchesImp.cpp | 1 + src/Mod/Sandbox/Gui/AppSandboxGui.cpp | 2 +- src/Mod/Sandbox/Gui/Command.cpp | 1 + src/Mod/Sandbox/Gui/Workbench.cpp | 245 +++++++++++++------------- 8 files changed, 132 insertions(+), 123 deletions(-) diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp index b10adbeb1..49f58e869 100644 --- a/src/Gui/Application.cpp +++ b/src/Gui/Application.cpp @@ -41,7 +41,9 @@ # include #endif # include +# include # include +# include #endif #include diff --git a/src/Gui/ApplicationPy.cpp b/src/Gui/ApplicationPy.cpp index 0457290d2..1abab307b 100644 --- a/src/Gui/ApplicationPy.cpp +++ b/src/Gui/ApplicationPy.cpp @@ -24,6 +24,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ +# include # include # include # include diff --git a/src/Gui/Command.cpp b/src/Gui/Command.cpp index 384af52ec..ba6f5ca10 100644 --- a/src/Gui/Command.cpp +++ b/src/Gui/Command.cpp @@ -24,6 +24,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ # include +# include # include # include # include diff --git a/src/Gui/DlgToolbarsImp.cpp b/src/Gui/DlgToolbarsImp.cpp index fe193cbb9..c5857c9e5 100644 --- a/src/Gui/DlgToolbarsImp.cpp +++ b/src/Gui/DlgToolbarsImp.cpp @@ -25,8 +25,10 @@ #ifndef _PreComp_ # include # include +# include # include # include +# include #endif #include "DlgToolbarsImp.h" diff --git a/src/Gui/DlgWorkbenchesImp.cpp b/src/Gui/DlgWorkbenchesImp.cpp index 72c8da6ef..5fcc31330 100644 --- a/src/Gui/DlgWorkbenchesImp.cpp +++ b/src/Gui/DlgWorkbenchesImp.cpp @@ -25,6 +25,7 @@ #include "PreCompiled.h" #ifndef _PreComp_ +# include # include #endif diff --git a/src/Mod/Sandbox/Gui/AppSandboxGui.cpp b/src/Mod/Sandbox/Gui/AppSandboxGui.cpp index 710029993..ffb09cf80 100644 --- a/src/Mod/Sandbox/Gui/AppSandboxGui.cpp +++ b/src/Mod/Sandbox/Gui/AppSandboxGui.cpp @@ -92,7 +92,7 @@ private: try { Base::Vector3d m1 = arc->getCenter(); //Base::Vector3d a3 = arc->getStartPoint(); - Base::Vector3d a3 = arc->getEndPoint(); + Base::Vector3d a3 = arc->getEndPoint(true); Base::Vector3d l1 = seg->getStartPoint(); Base::Vector3d l2 = seg->getEndPoint(); #if 0 diff --git a/src/Mod/Sandbox/Gui/Command.cpp b/src/Mod/Sandbox/Gui/Command.cpp index 5edf5a051..a69aaeab8 100644 --- a/src/Mod/Sandbox/Gui/Command.cpp +++ b/src/Mod/Sandbox/Gui/Command.cpp @@ -26,6 +26,7 @@ # ifdef FC_OS_WIN32 # include # endif +# include # include # include # include diff --git a/src/Mod/Sandbox/Gui/Workbench.cpp b/src/Mod/Sandbox/Gui/Workbench.cpp index 4ab9517c0..f27ae91a3 100644 --- a/src/Mod/Sandbox/Gui/Workbench.cpp +++ b/src/Mod/Sandbox/Gui/Workbench.cpp @@ -25,12 +25,13 @@ #ifndef _PreComp_ # include +# include # include -# include -# include -# include -# include -# include +# include +# include +# include +# include +# include #endif #include "Workbench.h" @@ -135,135 +136,135 @@ Gui::DockWindowItems* Workbench::setupDockWindows() const // ---------------------------------------------------- - -SO_NODE_SOURCE(SoWidgetShape); - -void SoWidgetShape::initClass() -{ - SO_NODE_INIT_CLASS(SoWidgetShape, SoShape, "Shape"); -} - -SoWidgetShape::SoWidgetShape() -{ - SO_NODE_CONSTRUCTOR(SoWidgetShape); -} - -void SoWidgetShape::GLRender(SoGLRenderAction *action) -{ -#if 1 + +SO_NODE_SOURCE(SoWidgetShape); + +void SoWidgetShape::initClass() +{ + SO_NODE_INIT_CLASS(SoWidgetShape, SoShape, "Shape"); +} + +SoWidgetShape::SoWidgetShape() +{ + SO_NODE_CONSTRUCTOR(SoWidgetShape); +} + +void SoWidgetShape::GLRender(SoGLRenderAction *action) +{ +#if 1 this->image = QPixmap::grabWidget(w, w->rect()).toImage(); this->image = QGLWidget::convertToGLFormat(this->image); #endif glRasterPos2d(10,10); glDrawPixels(this->image.width(),this->image.height(),GL_RGBA,GL_UNSIGNED_BYTE,this->image.bits()); -} +} void SoWidgetShape::computeBBox(SoAction *action, SbBox3f &box, SbVec3f ¢er) { - // ignore if node is empty - if (this->image.isNull()) return; - - SbVec3f v0, v1, v2, v3; - // this will cause a cache dependency on the view volume, - // model matrix and viewport. - this->getQuad(action->getState(), v0, v1, v2, v3); - - box.makeEmpty(); - box.extendBy(v0); - box.extendBy(v1); - box.extendBy(v2); - box.extendBy(v3); - center = box.getCenter(); + // ignore if node is empty + if (this->image.isNull()) return; + + SbVec3f v0, v1, v2, v3; + // this will cause a cache dependency on the view volume, + // model matrix and viewport. + this->getQuad(action->getState(), v0, v1, v2, v3); + + box.makeEmpty(); + box.extendBy(v0); + box.extendBy(v1); + box.extendBy(v2); + box.extendBy(v3); + center = box.getCenter(); +} + +// Calculates the quad in 3D. +void +SoWidgetShape::getQuad(SoState * state, SbVec3f & v0, SbVec3f & v1, + SbVec3f & v2, SbVec3f & v3) +{ + SbVec3f nilpoint(0.0f, 0.0f, 0.0f); + const SbMatrix & mat = SoModelMatrixElement::get(state); + mat.multVecMatrix(nilpoint, nilpoint); + + const SbViewVolume &vv = SoViewVolumeElement::get(state); + + SbVec3f screenpoint; + vv.projectToScreen(nilpoint, screenpoint); + + const SbViewportRegion & vp = SoViewportRegionElement::get(state); + SbVec2s vpsize = vp.getViewportSizePixels(); + + // find normalized width and height of image + float nw = (float)this->image.width(); + nw /= (float)vpsize[0]; + float nh = (float)this->image.height(); + nh /= (float)vpsize[1]; + + // need only half the width + nw *= 0.5f; + nh *= 0.5f; + + SbVec2f n0, n1, n2, n3; + + n0 = SbVec2f(screenpoint[0]-nw, screenpoint[1]-nh); + n1 = SbVec2f(screenpoint[0]+nw, screenpoint[1]-nh); + n2 = SbVec2f(screenpoint[0]+nw, screenpoint[1]+nh); + n3 = SbVec2f(screenpoint[0]-nw, screenpoint[1]+nh); + + // get distance from nilpoint to camera plane + float dist = -vv.getPlane(0.0f).getDistance(nilpoint); + + // find the four image points in the plane + v0 = vv.getPlanePoint(dist, n0); + v1 = vv.getPlanePoint(dist, n1); + v2 = vv.getPlanePoint(dist, n2); + v3 = vv.getPlanePoint(dist, n3); + + // transform back to object space + SbMatrix inv = mat.inverse(); + inv.multVecMatrix(v0, v0); + inv.multVecMatrix(v1, v1); + inv.multVecMatrix(v2, v2); + inv.multVecMatrix(v3, v3); } - -// Calculates the quad in 3D. -void -SoWidgetShape::getQuad(SoState * state, SbVec3f & v0, SbVec3f & v1, - SbVec3f & v2, SbVec3f & v3) -{ - SbVec3f nilpoint(0.0f, 0.0f, 0.0f); - const SbMatrix & mat = SoModelMatrixElement::get(state); - mat.multVecMatrix(nilpoint, nilpoint); - - const SbViewVolume &vv = SoViewVolumeElement::get(state); - - SbVec3f screenpoint; - vv.projectToScreen(nilpoint, screenpoint); - - const SbViewportRegion & vp = SoViewportRegionElement::get(state); - SbVec2s vpsize = vp.getViewportSizePixels(); - - // find normalized width and height of image - float nw = (float)this->image.width(); - nw /= (float)vpsize[0]; - float nh = (float)this->image.height(); - nh /= (float)vpsize[1]; - - // need only half the width - nw *= 0.5f; - nh *= 0.5f; - - SbVec2f n0, n1, n2, n3; - - n0 = SbVec2f(screenpoint[0]-nw, screenpoint[1]-nh); - n1 = SbVec2f(screenpoint[0]+nw, screenpoint[1]-nh); - n2 = SbVec2f(screenpoint[0]+nw, screenpoint[1]+nh); - n3 = SbVec2f(screenpoint[0]-nw, screenpoint[1]+nh); - - // get distance from nilpoint to camera plane - float dist = -vv.getPlane(0.0f).getDistance(nilpoint); - - // find the four image points in the plane - v0 = vv.getPlanePoint(dist, n0); - v1 = vv.getPlanePoint(dist, n1); - v2 = vv.getPlanePoint(dist, n2); - v3 = vv.getPlanePoint(dist, n3); - - // transform back to object space - SbMatrix inv = mat.inverse(); - inv.multVecMatrix(v0, v0); - inv.multVecMatrix(v1, v1); - inv.multVecMatrix(v2, v2); - inv.multVecMatrix(v3, v3); -} void SoWidgetShape::generatePrimitives(SoAction *action) { - if (this->image.isNull()) return; - - SoState *state = action->getState(); - state->push(); - - SbVec2s size; - SbVec3f v0, v1, v2, v3; - this->getQuad(action->getState(), v0, v1, v2, v3); - - SbVec3f n = (v1-v0).cross(v2-v0); - n.normalize(); - - this->beginShape(action, SoShape::QUADS); - SoPrimitiveVertex vertex; - vertex.setNormal(n); - - vertex.setTextureCoords(SbVec2f(0,0)); - vertex.setPoint(v0); - this->shapeVertex(&vertex); - - vertex.setTextureCoords(SbVec2f(1,0)); - vertex.setPoint(v1); - this->shapeVertex(&vertex); - - vertex.setTextureCoords(SbVec2f(1,1)); - vertex.setPoint(v2); - this->shapeVertex(&vertex); - - vertex.setTextureCoords(SbVec2f(0,1)); - vertex.setPoint(v3); - this->shapeVertex(&vertex); - - this->endShape(); - - state->pop(); + if (this->image.isNull()) return; + + SoState *state = action->getState(); + state->push(); + + SbVec2s size; + SbVec3f v0, v1, v2, v3; + this->getQuad(action->getState(), v0, v1, v2, v3); + + SbVec3f n = (v1-v0).cross(v2-v0); + n.normalize(); + + this->beginShape(action, SoShape::QUADS); + SoPrimitiveVertex vertex; + vertex.setNormal(n); + + vertex.setTextureCoords(SbVec2f(0,0)); + vertex.setPoint(v0); + this->shapeVertex(&vertex); + + vertex.setTextureCoords(SbVec2f(1,0)); + vertex.setPoint(v1); + this->shapeVertex(&vertex); + + vertex.setTextureCoords(SbVec2f(1,1)); + vertex.setPoint(v2); + this->shapeVertex(&vertex); + + vertex.setTextureCoords(SbVec2f(0,1)); + vertex.setPoint(v3); + this->shapeVertex(&vertex); + + this->endShape(); + + state->pop(); } void SoWidgetShape::setWidget(QWidget* w)