Skip to content

Commit

Permalink
Merge branch 'refs/heads/tanderson-rev-partdimension'
Browse files Browse the repository at this point in the history
  • Loading branch information
jriegel committed Dec 19, 2013
2 parents 246f8b7 + 109729e commit 3f4f5c8
Show file tree
Hide file tree
Showing 20 changed files with 5,855 additions and 19 deletions.
58 changes: 58 additions & 0 deletions src/Gui/CommandView.cpp
Expand Up @@ -2215,6 +2215,62 @@ void StdCmdDemoMode::activated(int iMsg)
dlg->show();
}

//===========================================================================
// Part_Measure_Clear_All
//===========================================================================

DEF_STD_CMD(CmdViewMeasureClearAll);

CmdViewMeasureClearAll::CmdViewMeasureClearAll()
: Command("View_Measure_Clear_All")
{
sGroup = QT_TR_NOOP("Measure");
sMenuText = QT_TR_NOOP("Clear All");
sToolTipText = QT_TR_NOOP("Clear All");
sWhatsThis = sToolTipText;
sStatusTip = sToolTipText;
sPixmap = "Part_Measure_Clear_All";
}

void CmdViewMeasureClearAll::activated(int iMsg)
{
Gui::View3DInventor *view = dynamic_cast<Gui::View3DInventor*>(Gui::Application::Instance->
activeDocument()->getActiveView());
if (!view)
return;
Gui::View3DInventorViewer *viewer = view->getViewer();
if (!viewer)
return;
viewer->eraseAllDimensions();
}

//===========================================================================
// Part_Measure_Toggle_All
//===========================================================================

DEF_STD_CMD(CmdViewMeasureToggleAll);

CmdViewMeasureToggleAll::CmdViewMeasureToggleAll()
: Command("View_Measure_Toggle_All")
{
sGroup = QT_TR_NOOP("Measure");
sMenuText = QT_TR_NOOP("Toggle All");
sToolTipText = QT_TR_NOOP("Toggle All");
sWhatsThis = sToolTipText;
sStatusTip = sToolTipText;
sPixmap = "Part_Measure_Toggle_All";
}

void CmdViewMeasureToggleAll::activated(int iMsg)
{
ParameterGrp::handle group = App::GetApplication().GetUserParameter().
GetGroup("BaseApp")->GetGroup("Preferences")->GetGroup("View");
bool visibility = group->GetBool("DimensionsVisible", true);
if (visibility)
group->SetBool("DimensionsVisible", false);
else
group->SetBool("DimensionsVisible", true);
}

//===========================================================================
// Instantiation
Expand Down Expand Up @@ -2280,6 +2336,8 @@ void CreateViewStdCommands(void)
rcCmdMgr.addCommand(new StdCmdDemoMode());
rcCmdMgr.addCommand(new StdCmdToggleNavigation());
rcCmdMgr.addCommand(new StdCmdAxisCross());
rcCmdMgr.addCommand(new CmdViewMeasureClearAll());
rcCmdMgr.addCommand(new CmdViewMeasureToggleAll());
}

} // namespace Gui
Expand Down
26 changes: 25 additions & 1 deletion src/Gui/View3DInventor.cpp
Expand Up @@ -152,6 +152,9 @@ View3DInventor::View3DInventor(Gui::Document* pcDocument, QWidget* parent, Qt::W
OnChange(*hGrp,"OrbitStyle");
OnChange(*hGrp,"Sensitivity");
OnChange(*hGrp,"ResetCursorPosition");
OnChange(*hGrp,"DimensionsVisible");
OnChange(*hGrp,"Dimensions3dVisible");
OnChange(*hGrp,"DimensionsDeltaVisible");

stopSpinTimer = new QTimer(this);
connect(stopSpinTimer, SIGNAL(timeout()), this, SLOT(stopAnimating()));
Expand Down Expand Up @@ -360,7 +363,28 @@ void View3DInventor::OnChange(ParameterGrp::SubjectType &rCaller,ParameterGrp::M
else
_viewer->setCameraType(SoPerspectiveCamera::getClassTypeId());
}
else {
else if (strcmp(Reason, "DimensionsVisible") == 0)
{
if (rGrp.GetBool("DimensionsVisible", true))
_viewer->turnAllDimensionsOn();
else
_viewer->turnAllDimensionsOff();
}
else if (strcmp(Reason, "Dimensions3dVisible") == 0)
{
if (rGrp.GetBool("Dimensions3dVisible", true))
_viewer->turn3dDimensionsOn();
else
_viewer->turn3dDimensionsOff();
}
else if (strcmp(Reason, "DimensionsDeltaVisible") == 0)
{
if (rGrp.GetBool("DimensionsDeltaVisible", true))
_viewer->turnDeltaDimensionsOn();
else
_viewer->turnDeltaDimensionsOff();
}
else{
unsigned long col1 = rGrp.GetUnsigned("BackgroundColor",3940932863UL);
unsigned long col2 = rGrp.GetUnsigned("BackgroundColor2",859006463UL); // default color (dark blue)
unsigned long col3 = rGrp.GetUnsigned("BackgroundColor3",2880160255UL); // default color (blue/grey)
Expand Down
51 changes: 51 additions & 0 deletions src/Gui/View3DInventorViewer.cpp
Expand Up @@ -250,6 +250,11 @@ View3DInventorViewer::View3DInventorViewer (QWidget *parent, const char *name,
pEventCallback->ref();
pcViewProviderRoot->addChild(pEventCallback);
pEventCallback->addEventCallback(SoEvent::getClassTypeId(), handleEventCB, this);

dimensionRoot = new SoSwitch(SO_SWITCH_NONE);
pcViewProviderRoot->addChild(dimensionRoot);
dimensionRoot->addChild(new SoSwitch()); //first one will be for the 3d dimensions.
dimensionRoot->addChild(new SoSwitch()); //second one for the delta dimensions.

// This is a callback node that logs all action that traverse the Inventor tree.
#if defined (FC_DEBUG) && defined(FC_LOGGING_CB)
Expand Down Expand Up @@ -2182,3 +2187,49 @@ std::vector<ViewProvider*> View3DInventorViewer::getViewProvidersOfType(const Ba
}
return views;
}

void View3DInventorViewer::turnAllDimensionsOn()
{
dimensionRoot->whichChild = SO_SWITCH_ALL;
}

void View3DInventorViewer::turnAllDimensionsOff()
{
dimensionRoot->whichChild = SO_SWITCH_NONE;
}

void View3DInventorViewer::eraseAllDimensions()
{
static_cast<SoSwitch *>(dimensionRoot->getChild(0))->removeAllChildren();
static_cast<SoSwitch *>(dimensionRoot->getChild(1))->removeAllChildren();
}

void View3DInventorViewer::turn3dDimensionsOn()
{
static_cast<SoSwitch *>(dimensionRoot->getChild(0))->whichChild = SO_SWITCH_ALL;
}

void View3DInventorViewer::turn3dDimensionsOff()
{
static_cast<SoSwitch *>(dimensionRoot->getChild(0))->whichChild = SO_SWITCH_NONE;
}

void View3DInventorViewer::addDimension3d(SoNode *node)
{
static_cast<SoSwitch *>(dimensionRoot->getChild(0))->addChild(node);
}

void View3DInventorViewer::addDimensionDelta(SoNode *node)
{
static_cast<SoSwitch *>(dimensionRoot->getChild(1))->addChild(node);
}

void View3DInventorViewer::turnDeltaDimensionsOn()
{
static_cast<SoSwitch *>(dimensionRoot->getChild(1))->whichChild = SO_SWITCH_ALL;
}

void View3DInventorViewer::turnDeltaDimensionsOff()
{
static_cast<SoSwitch *>(dimensionRoot->getChild(1))->whichChild = SO_SWITCH_NONE;
}
45 changes: 31 additions & 14 deletions src/Gui/View3DInventorViewer.h
Expand Up @@ -112,25 +112,25 @@ class GuiExport View3DInventorViewer : public SoQtViewer, public Gui::SelectionS
SbBool isBacklight(void) const;
void setSceneGraph (SoNode *root);

void setAnimationEnabled(const SbBool enable);
SbBool isAnimationEnabled(void) const;
void setAnimationEnabled(const SbBool enable);
SbBool isAnimationEnabled(void) const;

void setPopupMenuEnabled(const SbBool on);
SbBool isPopupMenuEnabled(void) const;

void startAnimating(const SbVec3f& axis, float velocity);
void stopAnimating(void);
SbBool isAnimating(void) const;

void setFeedbackVisibility(const SbBool enable);
SbBool isFeedbackVisible(void) const;

void setFeedbackSize(const int size);
int getFeedbackSize(void) const;

void setRenderFramebuffer(const SbBool enable);
SbBool isRenderFramebuffer() const;
void renderToFramebuffer(QGLFramebufferObject*);
void setFeedbackVisibility(const SbBool enable);
SbBool isFeedbackVisible(void) const;

void setFeedbackSize(const int size);
int getFeedbackSize(void) const;

void setRenderFramebuffer(const SbBool enable);
SbBool isRenderFramebuffer() const;
void renderToFramebuffer(QGLFramebufferObject*);

virtual void setViewing(SbBool enable);
virtual void setCursorEnabled(SbBool enable);
Expand Down Expand Up @@ -193,8 +193,8 @@ class GuiExport View3DInventorViewer : public SoQtViewer, public Gui::SelectionS
void setEditingCursor (const QCursor& cursor);
void setRedirectToSceneGraph(SbBool redirect) { this->redirected = redirect; }
SbBool isRedirectedToSceneGraph() const { return this->redirected; }
void setRedirectToSceneGraphEnabled(SbBool enable) { this->allowredir = enable; }
SbBool isRedirectToSceneGraphEnabled(void) const { return this->allowredir; }
void setRedirectToSceneGraphEnabled(SbBool enable) { this->allowredir = enable; }
SbBool isRedirectToSceneGraphEnabled(void) const { return this->allowredir; }
//@}

/** @name Pick actions */
Expand Down Expand Up @@ -241,6 +241,23 @@ class GuiExport View3DInventorViewer : public SoQtViewer, public Gui::SelectionS
/** Project the given normalized 2d point onto the far plane */
SbVec3f projectOnFarPlane(const SbVec2f&) const;
//@}

/** @name Dimension controls
* the "turn*" functions are wired up to parameter groups through view3dinventor.
* don't call them directly. instead set the parameter groups.
* @see TaskDimension
*/
//@{
void turnAllDimensionsOn();
void turnAllDimensionsOff();
void turn3dDimensionsOn();
void turn3dDimensionsOff();
void turnDeltaDimensionsOn();
void turnDeltaDimensionsOff();
void eraseAllDimensions();
void addDimension3d(SoNode *node);
void addDimensionDelta(SoNode *node);
//@}

/**
* Set the camera's orientation. If isAnimationEnabled() returns
Expand Down Expand Up @@ -320,14 +337,14 @@ class GuiExport View3DInventorViewer : public SoQtViewer, public Gui::SelectionS
SoFCBackgroundGradient *pcBackGround;
SoSeparator * backgroundroot;
SoSeparator * foregroundroot;
SoRotationXYZ * arrowrotation;
SoDirectionalLight* backlight;

SoSeparator * pcViewProviderRoot;
SoEventCallback* pEventCallback;
NavigationStyle* navigation;
SoFCUnifiedSelection* selectionRoot;
QGLFramebufferObject* framebuffer;
SoSwitch *dimensionRoot;

// small axis cross in the corner
SbBool axiscrossEnabled;
Expand Down
6 changes: 5 additions & 1 deletion src/Gui/Workbench.cpp
Expand Up @@ -399,7 +399,11 @@ void StdWorkbench::setupContextMenu(const char* recipient, MenuItem* item) const
<< "Std_ViewRear" << "Std_ViewBottom" << "Std_ViewLeft"
<< "Separator" << "Std_ViewRotateLeft" << "Std_ViewRotateRight";

*item << "Std_ViewFitAll" << "Std_ViewFitSelection" << StdViews
MenuItem *measure = new MenuItem();
measure->setCommand("Measure");
*measure << "View_Measure_Toggle_All" << "View_Measure_Clear_All";

*item << "Std_ViewFitAll" << "Std_ViewFitSelection" << StdViews << measure
<< "Separator" << "Std_ViewDockUndockFullscreen";

if (Gui::Selection().countObjectsOfType(App::DocumentObject::getClassTypeId()) > 0 )
Expand Down
5 changes: 4 additions & 1 deletion src/Mod/Part/Gui/AppPartGui.cpp
Expand Up @@ -53,7 +53,7 @@
#include "ViewProviderPrism.h"
#include "ViewProviderSpline.h"
#include "ViewProviderRegularPolygon.h"

#include "TaskDimension.h"
#include "DlgSettingsGeneral.h"
#include "DlgSettingsObjectColor.h"
#include "DlgSettings3DViewPartImp.h"
Expand Down Expand Up @@ -146,6 +146,9 @@ void PartGuiExport initPartGui()
PartGui::ViewProviderConeParametric ::init();
PartGui::ViewProviderTorusParametric ::init();
PartGui::ViewProviderRuledSurface ::init();
PartGui::DimensionLinear ::initClass();
PartGui::DimensionAngular ::initClass();
PartGui::ArcEngine ::initClass();

PartGui::Workbench ::init();

Expand Down
3 changes: 3 additions & 0 deletions src/Mod/Part/Gui/CMakeLists.txt
Expand Up @@ -45,6 +45,7 @@ set(PartGui_MOC_HDRS
TaskOffset.h
TaskSweep.h
TaskThickness.h
TaskDimension.h
TaskCheckGeometry.h
)
fc_wrap_cpp(PartGui_MOC_SRCS ${PartGui_MOC_HDRS})
Expand Down Expand Up @@ -208,6 +209,8 @@ SET(PartGui_SRCS
TaskSweep.ui
TaskThickness.cpp
TaskThickness.h
TaskDimension.cpp
TaskDimension.h
TaskCheckGeometry.cpp
TaskCheckGeometry.h
)
Expand Down

0 comments on commit 3f4f5c8

Please sign in to comment.