[Part/PD] Remove measure tools
@@ -39,9 +39,7 @@
|
||||
#include "PropertyEnumAttacherItem.h"
|
||||
#include "DlgSettings3DViewPartImp.h"
|
||||
#include "DlgSettingsGeneral.h"
|
||||
#include "DlgSettingsMeasure.h"
|
||||
#include "DlgSettingsObjectColor.h"
|
||||
#include "TaskDimension.h"
|
||||
#include "SoBrepEdgeSet.h"
|
||||
#include "SoBrepFaceSet.h"
|
||||
#include "SoBrepPointSet.h"
|
||||
@@ -136,7 +134,6 @@ PyMOD_INIT_FUNC(PartGui)
|
||||
|
||||
Gui::BitmapFactory().addPath(QString::fromLatin1(":/icons/booleans"));
|
||||
Gui::BitmapFactory().addPath(QString::fromLatin1(":/icons/create"));
|
||||
Gui::BitmapFactory().addPath(QString::fromLatin1(":/icons/measure"));
|
||||
Gui::BitmapFactory().addPath(QString::fromLatin1(":/icons/parametric"));
|
||||
Gui::BitmapFactory().addPath(QString::fromLatin1(":/icons/tools"));
|
||||
|
||||
@@ -212,8 +209,6 @@ PyMOD_INIT_FUNC(PartGui)
|
||||
PartGui::ViewProviderRuledSurface ::init();
|
||||
PartGui::ViewProviderFace ::init();
|
||||
PartGui::ViewProviderProjectOnSurface ::init();
|
||||
PartGui::DimensionLinear ::initClass();
|
||||
PartGui::DimensionAngular ::initClass();
|
||||
|
||||
PartGui::Workbench ::init();
|
||||
auto manip = std::make_shared<PartGui::WorkbenchManipulator>();
|
||||
@@ -237,7 +232,6 @@ PyMOD_INIT_FUNC(PartGui)
|
||||
(void)new Gui::PrefPageProducer<PartGui::DlgSettingsGeneral>(QT_TRANSLATE_NOOP("QObject", "Part/Part Design"));
|
||||
(void)new Gui::PrefPageProducer<PartGui::DlgSettings3DViewPart>(QT_TRANSLATE_NOOP("QObject", "Part/Part Design"));
|
||||
(void)new Gui::PrefPageProducer<PartGui::DlgSettingsObjectColor>(QT_TRANSLATE_NOOP("QObject", "Part/Part Design"));
|
||||
(void)new Gui::PrefPageProducer<PartGui::DlgSettingsMeasure>(QT_TRANSLATE_NOOP("QObject", "Part/Part Design"));
|
||||
(void)new Gui::PrefPageProducer<PartGui::DlgImportExportIges>(QT_TRANSLATE_NOOP("QObject", "Import-Export"));
|
||||
(void)new Gui::PrefPageProducer<PartGui::DlgImportExportStep>(QT_TRANSLATE_NOOP("QObject", "Import-Export"));
|
||||
Gui::ViewProviderBuilder::add(
|
||||
|
||||
@@ -57,7 +57,6 @@ set(PartGui_UIC_SRCS
|
||||
DlgRevolution.ui
|
||||
DlgSettings3DViewPart.ui
|
||||
DlgSettingsGeneral.ui
|
||||
DlgSettingsMeasure.ui
|
||||
DlgSettingsObjectColor.ui
|
||||
DlgProjectionOnSurface.ui
|
||||
SectionCutting.ui
|
||||
@@ -133,15 +132,9 @@ SET(PartGui_SRCS
|
||||
DlgSettingsGeneral.cpp
|
||||
DlgSettingsGeneral.h
|
||||
DlgSettingsGeneral.ui
|
||||
DlgSettingsMeasure.cpp
|
||||
DlgSettingsMeasure.h
|
||||
DlgSettingsMeasure.ui
|
||||
DlgSettingsObjectColor.cpp
|
||||
DlgSettingsObjectColor.h
|
||||
DlgSettingsObjectColor.ui
|
||||
DlgSettingsMeasure.cpp
|
||||
DlgSettingsMeasure.h
|
||||
DlgSettingsMeasure.ui
|
||||
DlgProjectionOnSurface.cpp
|
||||
DlgProjectionOnSurface.h
|
||||
DlgProjectionOnSurface.ui
|
||||
@@ -248,8 +241,6 @@ SET(PartGui_SRCS
|
||||
TaskSweep.ui
|
||||
TaskThickness.cpp
|
||||
TaskThickness.h
|
||||
TaskDimension.cpp
|
||||
TaskDimension.h
|
||||
TaskCheckGeometry.cpp
|
||||
TaskCheckGeometry.h
|
||||
TaskAttacher.h
|
||||
|
||||
@@ -63,7 +63,6 @@
|
||||
#include "Mirroring.h"
|
||||
#include "SectionCutting.h"
|
||||
#include "TaskCheckGeometry.h"
|
||||
#include "TaskDimension.h"
|
||||
#include "TaskLoft.h"
|
||||
#include "TaskShapeBuilder.h"
|
||||
#include "TaskSweep.h"
|
||||
@@ -2123,225 +2122,6 @@ bool CmdColorPerFace::isActive()
|
||||
return (hasActiveDocument() && !Gui::Control().activeDialog() && objectSelected);
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// Part_Measure_Linear
|
||||
//===========================================================================
|
||||
|
||||
DEF_STD_CMD_A(CmdMeasureLinear)
|
||||
|
||||
CmdMeasureLinear::CmdMeasureLinear()
|
||||
: Command("Part_Measure_Linear")
|
||||
{
|
||||
sAppModule = "Part";
|
||||
sGroup = QT_TR_NOOP("Part");
|
||||
sMenuText = QT_TR_NOOP("Measure Linear");
|
||||
sToolTipText = QT_TR_NOOP("Measure the linear distance between two points;\n"
|
||||
"if edges or faces are picked, it will measure\n"
|
||||
"between two vertices of them.");
|
||||
sWhatsThis = "Part_Measure_Linear";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "Part_Measure_Linear";
|
||||
}
|
||||
|
||||
void CmdMeasureLinear::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(iMsg);
|
||||
PartGui::goDimensionLinearRoot();
|
||||
}
|
||||
|
||||
bool CmdMeasureLinear::isActive()
|
||||
{
|
||||
return hasActiveDocument();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// Part_Measure_Angular
|
||||
//===========================================================================
|
||||
|
||||
DEF_STD_CMD_A(CmdMeasureAngular)
|
||||
|
||||
CmdMeasureAngular::CmdMeasureAngular()
|
||||
: Command("Part_Measure_Angular")
|
||||
{
|
||||
sAppModule = "Part";
|
||||
sGroup = QT_TR_NOOP("Part");
|
||||
sMenuText = QT_TR_NOOP("Measure Angular");
|
||||
sToolTipText = QT_TR_NOOP("Measure the angle between two edges.");
|
||||
sWhatsThis = "Part_Measure_Angular";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "Part_Measure_Angular";
|
||||
}
|
||||
|
||||
void CmdMeasureAngular::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(iMsg);
|
||||
PartGui::goDimensionAngularRoot();
|
||||
}
|
||||
|
||||
bool CmdMeasureAngular::isActive()
|
||||
{
|
||||
return hasActiveDocument();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// Part_Measure_Refresh
|
||||
//===========================================================================
|
||||
|
||||
DEF_STD_CMD_A(CmdMeasureRefresh)
|
||||
|
||||
CmdMeasureRefresh::CmdMeasureRefresh()
|
||||
: Command("Part_Measure_Refresh")
|
||||
{
|
||||
sAppModule = "Part";
|
||||
sGroup = QT_TR_NOOP("Part");
|
||||
sMenuText = QT_TR_NOOP("Refresh");
|
||||
sToolTipText = QT_TR_NOOP("Recalculate the dimensions\n"
|
||||
"if the measured points have moved.");
|
||||
sWhatsThis = "Part_Measure_Refresh";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "Part_Measure_Refresh";
|
||||
}
|
||||
|
||||
void CmdMeasureRefresh::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(iMsg);
|
||||
PartGui::refreshDimensions();
|
||||
}
|
||||
|
||||
bool CmdMeasureRefresh::isActive()
|
||||
{
|
||||
return hasActiveDocument();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// Part_Measure_Clear_All
|
||||
//===========================================================================
|
||||
|
||||
DEF_STD_CMD_A(CmdMeasureClearAll)
|
||||
|
||||
CmdMeasureClearAll::CmdMeasureClearAll()
|
||||
: Command("Part_Measure_Clear_All")
|
||||
{
|
||||
sAppModule = "Part";
|
||||
sGroup = QT_TR_NOOP("Part");
|
||||
sMenuText = QT_TR_NOOP("Clear All");
|
||||
sToolTipText = QT_TR_NOOP("Clear all dimensions from the active 3D view.");
|
||||
sWhatsThis = "Part_Measure_Clear_All";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "Part_Measure_Clear_All";
|
||||
}
|
||||
|
||||
void CmdMeasureClearAll::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(iMsg);
|
||||
PartGui::eraseAllDimensions();
|
||||
}
|
||||
|
||||
bool CmdMeasureClearAll::isActive()
|
||||
{
|
||||
return hasActiveDocument();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// Part_Measure_Toggle_All
|
||||
//===========================================================================
|
||||
|
||||
DEF_STD_CMD_A(CmdMeasureToggleAll)
|
||||
|
||||
CmdMeasureToggleAll::CmdMeasureToggleAll()
|
||||
: Command("Part_Measure_Toggle_All")
|
||||
{
|
||||
sAppModule = "Part";
|
||||
sGroup = QT_TR_NOOP("Part");
|
||||
sMenuText = QT_TR_NOOP("Toggle All");
|
||||
sToolTipText = QT_TR_NOOP("Toggle on and off "
|
||||
"all currently visible dimensions,\n"
|
||||
"direct, orthogonal, and angular.");
|
||||
sWhatsThis = "Part_Measure_Toggle_All";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "Part_Measure_Toggle_All";
|
||||
}
|
||||
|
||||
void CmdMeasureToggleAll::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(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);
|
||||
}
|
||||
|
||||
bool CmdMeasureToggleAll::isActive()
|
||||
{
|
||||
return hasActiveDocument();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// Part_Measure_Toggle_3D
|
||||
//===========================================================================
|
||||
|
||||
DEF_STD_CMD_A(CmdMeasureToggle3d)
|
||||
|
||||
CmdMeasureToggle3d::CmdMeasureToggle3d()
|
||||
: Command("Part_Measure_Toggle_3D")
|
||||
{
|
||||
sAppModule = "Part";
|
||||
sGroup = QT_TR_NOOP("Part");
|
||||
sMenuText = QT_TR_NOOP("Toggle 3D");
|
||||
sToolTipText = QT_TR_NOOP("Toggle on and off "
|
||||
"all direct dimensions,\n"
|
||||
"including angular.");
|
||||
sWhatsThis = "Part_Measure_Toggle_3D";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "Part_Measure_Toggle_3D";
|
||||
}
|
||||
|
||||
void CmdMeasureToggle3d::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(iMsg);
|
||||
PartGui::toggle3d();
|
||||
}
|
||||
|
||||
bool CmdMeasureToggle3d::isActive()
|
||||
{
|
||||
return hasActiveDocument();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// Part_Measure_Toggle_Delta
|
||||
//===========================================================================
|
||||
|
||||
DEF_STD_CMD_A(CmdMeasureToggleDelta)
|
||||
|
||||
CmdMeasureToggleDelta::CmdMeasureToggleDelta()
|
||||
: Command("Part_Measure_Toggle_Delta")
|
||||
{
|
||||
sAppModule = "Part";
|
||||
sGroup = QT_TR_NOOP("Part");
|
||||
sMenuText = QT_TR_NOOP("Toggle Delta");
|
||||
sToolTipText = QT_TR_NOOP("Toggle on and off "
|
||||
"all orthogonal dimensions,\n"
|
||||
"meaning that a direct dimension will be decomposed\n"
|
||||
"into its X, Y, and Z components.");
|
||||
sWhatsThis = "Part_Measure_Toggle_Delta";
|
||||
sStatusTip = sToolTipText;
|
||||
sPixmap = "Part_Measure_Toggle_Delta";
|
||||
}
|
||||
|
||||
void CmdMeasureToggleDelta::activated(int iMsg)
|
||||
{
|
||||
Q_UNUSED(iMsg);
|
||||
PartGui::toggleDelta();
|
||||
}
|
||||
|
||||
bool CmdMeasureToggleDelta::isActive()
|
||||
{
|
||||
return hasActiveDocument();
|
||||
}
|
||||
|
||||
//===========================================================================
|
||||
// Part_BoxSelection
|
||||
//===========================================================================
|
||||
@@ -2486,13 +2266,6 @@ void CreatePartCommands()
|
||||
rcCmdMgr.addCommand(new CmdPartThickness());
|
||||
rcCmdMgr.addCommand(new CmdCheckGeometry());
|
||||
rcCmdMgr.addCommand(new CmdColorPerFace());
|
||||
rcCmdMgr.addCommand(new CmdMeasureLinear());
|
||||
rcCmdMgr.addCommand(new CmdMeasureAngular());
|
||||
rcCmdMgr.addCommand(new CmdMeasureRefresh());
|
||||
rcCmdMgr.addCommand(new CmdMeasureClearAll());
|
||||
rcCmdMgr.addCommand(new CmdMeasureToggleAll());
|
||||
rcCmdMgr.addCommand(new CmdMeasureToggle3d());
|
||||
rcCmdMgr.addCommand(new CmdMeasureToggleDelta());
|
||||
rcCmdMgr.addCommand(new CmdBoxSelection());
|
||||
rcCmdMgr.addCommand(new CmdPartProjectionOnSurface());
|
||||
rcCmdMgr.addCommand(new CmdPartSectionCut());
|
||||
|
||||
@@ -1,91 +0,0 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2022 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library 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 Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#include "PreCompiled.h"
|
||||
|
||||
#include <Gui/Command.h>
|
||||
|
||||
#include "DlgSettingsMeasure.h"
|
||||
#include "ui_DlgSettingsMeasure.h"
|
||||
|
||||
|
||||
using namespace PartGui;
|
||||
|
||||
DlgSettingsMeasure::DlgSettingsMeasure(QWidget* parent)
|
||||
: PreferencePage(parent) , ui(new Ui_DlgSettingsMeasure)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
connect(ui->pushButtonRefresh, &QPushButton::clicked, this, &DlgSettingsMeasure::onMeasureRefresh);
|
||||
}
|
||||
|
||||
/**
|
||||
* Destroys the object and frees any allocated resources
|
||||
*/
|
||||
DlgSettingsMeasure::~DlgSettingsMeasure() = default;
|
||||
|
||||
void DlgSettingsMeasure::saveSettings()
|
||||
{
|
||||
ui->dim3dColorButton->onSave();
|
||||
ui->dimDeltaColorButton->onSave();
|
||||
ui->dimAngularColorButton->onSave();
|
||||
|
||||
ui->fontSizeSpinBox->onSave();
|
||||
ui->fontNameComboBox->onSave();
|
||||
|
||||
ui->fontStyleBoldCheckBox->onSave();
|
||||
ui->fontStyleItalicCheckBox->onSave();
|
||||
}
|
||||
|
||||
void DlgSettingsMeasure::loadSettings()
|
||||
{
|
||||
ui->dim3dColorButton->onRestore();
|
||||
ui->dimDeltaColorButton->onRestore();
|
||||
ui->dimAngularColorButton->onRestore();
|
||||
|
||||
ui->fontSizeSpinBox->onRestore();
|
||||
ui->fontNameComboBox->onRestore();
|
||||
ui->fontNameComboBox->addItems(QStringList({QString::fromUtf8("defaultFont")}));
|
||||
|
||||
ui->fontStyleBoldCheckBox->onRestore();
|
||||
ui->fontStyleItalicCheckBox->onRestore();
|
||||
}
|
||||
|
||||
/**
|
||||
* Sets the strings of the subwidgets using the current language.
|
||||
*/
|
||||
void DlgSettingsMeasure::changeEvent(QEvent *e)
|
||||
{
|
||||
if (e->type() == QEvent::LanguageChange) {
|
||||
ui->retranslateUi(this);
|
||||
}
|
||||
else {
|
||||
QWidget::changeEvent(e);
|
||||
}
|
||||
}
|
||||
|
||||
void DlgSettingsMeasure::onMeasureRefresh()
|
||||
{
|
||||
DlgSettingsMeasure::saveSettings();
|
||||
Gui::Command::runCommand(Gui::Command::Gui, "Gui.runCommand('Part_Measure_Refresh',0)");
|
||||
}
|
||||
|
||||
#include "moc_DlgSettingsMeasure.cpp"
|
||||
@@ -1,58 +0,0 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2022 *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library 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 Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
|
||||
#ifndef PARTGUI_DIALOG_DLGSETTINGSMEASURE_H
|
||||
#define PARTGUI_DIALOG_DLGSETTINGSMEASURE_H
|
||||
|
||||
#include <Gui/PropertyPage.h>
|
||||
#include <memory>
|
||||
|
||||
namespace PartGui {
|
||||
class Ui_DlgSettingsMeasure;
|
||||
|
||||
/**
|
||||
* The DlgSettingsMeasure class implements a preference page to change color
|
||||
* and font settings for Measure Dimensions
|
||||
*/
|
||||
class DlgSettingsMeasure : public Gui::Dialog::PreferencePage
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit DlgSettingsMeasure(QWidget* parent = nullptr);
|
||||
~DlgSettingsMeasure() override;
|
||||
|
||||
void saveSettings() override;
|
||||
void loadSettings() override;
|
||||
|
||||
protected:
|
||||
void changeEvent(QEvent *e) override;
|
||||
|
||||
private:
|
||||
std::unique_ptr<Ui_DlgSettingsMeasure> ui;
|
||||
void onMeasureRefresh();
|
||||
};
|
||||
|
||||
} // namespace PartGui
|
||||
|
||||
#endif // PARTGUI_DIALOG_DLGSETTINGSMEASURE_H
|
||||
@@ -1,279 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>PartGui::DlgSettingsMeasure</class>
|
||||
<widget class="QWidget" name="PartGui::DlgSettingsMeasure">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>400</width>
|
||||
<height>282</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="sizePolicy">
|
||||
<sizepolicy hsizetype="Preferred" vsizetype="Minimum">
|
||||
<horstretch>0</horstretch>
|
||||
<verstretch>0</verstretch>
|
||||
</sizepolicy>
|
||||
</property>
|
||||
<property name="windowTitle">
|
||||
<string>Measure</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout_2">
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>Measurement settings</string>
|
||||
</property>
|
||||
<layout class="QVBoxLayout" name="verticalLayout">
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="Gui::PrefColorButton" name="dim3dColorButton">
|
||||
<property name="color">
|
||||
<color>
|
||||
<red>255</red>
|
||||
<green>0</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>Dimensions3dColor</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Part</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QLabel" name="label_1">
|
||||
<property name="text">
|
||||
<string>3D color</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="4">
|
||||
<spacer name="horizontalSpacer_3">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="Gui::PrefColorButton" name="dimDeltaColorButton">
|
||||
<property name="color">
|
||||
<color>
|
||||
<red>0</red>
|
||||
<green>255</green>
|
||||
<blue>0</blue>
|
||||
</color>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>DimensionsDeltaColor</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Part</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>Delta color</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="Gui::PrefColorButton" name="dimAngularColorButton">
|
||||
<property name="color">
|
||||
<color>
|
||||
<red>0</red>
|
||||
<green>0</green>
|
||||
<blue>255</blue>
|
||||
</color>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>DimensionsAngularColor</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Part</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>Angular color</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string/>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<widget class="Gui::PrefSpinBox" name="fontSizeSpinBox">
|
||||
<property name="maximumSize">
|
||||
<size>
|
||||
<width>80</width>
|
||||
<height>28</height>
|
||||
</size>
|
||||
</property>
|
||||
<property name="value">
|
||||
<number>30</number>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>DimensionsFontSize</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Part</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>Font size</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="2">
|
||||
<widget class="Gui::PrefCheckBox" name="fontStyleBoldCheckBox">
|
||||
<property name="font">
|
||||
<font>
|
||||
<weight>75</weight>
|
||||
<bold>true</bold>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Bold</string>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>DimensionsFontStyleBold</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Part</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="3">
|
||||
<widget class="Gui::PrefCheckBox" name="fontStyleItalicCheckBox">
|
||||
<property name="font">
|
||||
<font>
|
||||
<italic>true</italic>
|
||||
</font>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>Italic</string>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>DimensionsFontStyleItalic</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Part</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0" colspan="2">
|
||||
<widget class="Gui::PrefFontBox" name="fontNameComboBox">
|
||||
<property name="currentText">
|
||||
<string>defaultFont</string>
|
||||
</property>
|
||||
<property name="prefEntry" stdset="0">
|
||||
<cstring>DimensionsFontName</cstring>
|
||||
</property>
|
||||
<property name="prefPath" stdset="0">
|
||||
<cstring>Mod/Part</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="2">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>Font name</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout">
|
||||
<item>
|
||||
<widget class="QPushButton" name="pushButtonRefresh">
|
||||
<property name="text">
|
||||
<string>Refresh existing measurements</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="horizontalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
<item>
|
||||
<spacer name="verticalSpacer">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<customwidgets>
|
||||
<customwidget>
|
||||
<class>Gui::ColorButton</class>
|
||||
<extends>QPushButton</extends>
|
||||
<header>Gui/Widgets.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>Gui::PrefSpinBox</class>
|
||||
<extends>QSpinBox</extends>
|
||||
<header>Gui/PrefWidgets.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>Gui::PrefColorButton</class>
|
||||
<extends>Gui::ColorButton</extends>
|
||||
<header>Gui/PrefWidgets.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>Gui::PrefCheckBox</class>
|
||||
<extends>QCheckBox</extends>
|
||||
<header>Gui/PrefWidgets.h</header>
|
||||
</customwidget>
|
||||
<customwidget>
|
||||
<class>Gui::PrefFontBox</class>
|
||||
<extends>QFontComboBox</extends>
|
||||
<header>Gui/PrefWidgets.h</header>
|
||||
</customwidget>
|
||||
</customwidgets>
|
||||
<resources/>
|
||||
<connections/>
|
||||
</ui>
|
||||
@@ -30,15 +30,6 @@
|
||||
<file>icons/create/Part_Torus.svg</file>
|
||||
<file>icons/create/Part_Tube.svg</file>
|
||||
</qresource>
|
||||
<qresource>
|
||||
<file>icons/measure/Part_Measure_Angular.svg</file>
|
||||
<file>icons/measure/Part_Measure_Linear.svg</file>
|
||||
<file>icons/measure/Part_Measure_Refresh.svg</file>
|
||||
<file>icons/measure/Part_Measure_Step_Active.svg</file>
|
||||
<file>icons/measure/Part_Measure_Step_Done.svg</file>
|
||||
<file>icons/measure/Part_Measure_Toggle_3D.svg</file>
|
||||
<file>icons/measure/Part_Measure_Toggle_Delta.svg</file>
|
||||
</qresource>
|
||||
<qresource>
|
||||
<file>icons/parametric/Part_Box_Parametric.svg</file>
|
||||
<file>icons/parametric/Part_Circle_Parametric.svg</file>
|
||||
|
||||
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 13 KiB |
@@ -1,659 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:osb="http://www.openswatchbook.org/uri/2009/osb"
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:xlink="http://www.w3.org/1999/xlink"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="64px"
|
||||
height="64px"
|
||||
id="svg2943"
|
||||
sodipodi:version="0.32"
|
||||
inkscape:version="0.91 r13725"
|
||||
sodipodi:docname="Part_Measure_Refresh.svg"
|
||||
inkscape:output_extension="org.inkscape.output.svg.inkscape"
|
||||
version="1.1">
|
||||
<defs
|
||||
id="defs2945">
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3961">
|
||||
<stop
|
||||
style="stop-color:#babdb6;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop3963" />
|
||||
<stop
|
||||
style="stop-color:#d3d7cf;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop3965" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3953">
|
||||
<stop
|
||||
style="stop-color:#babdb6;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop3955" />
|
||||
<stop
|
||||
style="stop-color:#555753;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop3957" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4158">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4160" />
|
||||
<stop
|
||||
style="stop-color:#f6f6f6;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4162" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4122">
|
||||
<stop
|
||||
style="stop-color:#e3d328;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4124" />
|
||||
<stop
|
||||
style="stop-color:#e1dec3;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4126" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4088">
|
||||
<stop
|
||||
style="stop-color:#e9cd23;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4090" />
|
||||
<stop
|
||||
style="stop-color:#040000;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4092" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient4060">
|
||||
<stop
|
||||
style="stop-color:#ada9a9;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4062" />
|
||||
<stop
|
||||
style="stop-color:#ada9a9;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4064" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4052">
|
||||
<stop
|
||||
style="stop-color:#ada9a9;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4054" />
|
||||
<stop
|
||||
style="stop-color:#ada9a9;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop4056" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient4349">
|
||||
<stop
|
||||
style="stop-color:#898709;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop4351" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop4353" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5241">
|
||||
<stop
|
||||
style="stop-color:#212c45;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5243" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop5245" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient5227"
|
||||
osb:paint="solid">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop5229" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3902">
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.58823532;"
|
||||
offset="0"
|
||||
id="stop3904" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:0.39215687;"
|
||||
offset="1"
|
||||
id="stop3906" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3894">
|
||||
<stop
|
||||
style="stop-color:#45351d;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3896" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3898" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3886">
|
||||
<stop
|
||||
style="stop-color:#45351d;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3888" />
|
||||
<stop
|
||||
style="stop-color:#000000;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3890" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3792">
|
||||
<stop
|
||||
style="stop-color:#aaaaaa;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3794" />
|
||||
<stop
|
||||
style="stop-color:#d2d2d2;stop-opacity:1;"
|
||||
offset="1"
|
||||
id="stop3796" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3784">
|
||||
<stop
|
||||
style="stop-color:#bebebe;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop3786" />
|
||||
<stop
|
||||
style="stop-color:#ffffff;stop-opacity:0.39215687;"
|
||||
offset="1"
|
||||
id="stop3788" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
id="linearGradient3377">
|
||||
<stop
|
||||
id="stop3379"
|
||||
offset="0"
|
||||
style="stop-color:#71b2f8;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop3381"
|
||||
offset="1"
|
||||
style="stop-color:#002795;stop-opacity:1;" />
|
||||
</linearGradient>
|
||||
<inkscape:perspective
|
||||
sodipodi:type="inkscape:persp3d"
|
||||
inkscape:vp_x="0 : 32 : 1"
|
||||
inkscape:vp_y="0 : 1000 : 0"
|
||||
inkscape:vp_z="64 : 32 : 1"
|
||||
inkscape:persp3d-origin="32 : 21.333333 : 1"
|
||||
id="perspective2951" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4158"
|
||||
id="linearGradient3092"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-129.22376,-0.88388348)"
|
||||
x1="419.99387"
|
||||
y1="102.77802"
|
||||
x2="458.7193"
|
||||
y2="69.431564" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4052"
|
||||
id="linearGradient3094"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(168.6744,65.825928)"
|
||||
x1="138.99986"
|
||||
y1="44.863674"
|
||||
x2="92.497559"
|
||||
y2="-14.356517" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4122"
|
||||
id="linearGradient3096"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(-88.034794,-1.0606602)"
|
||||
x1="391.3074"
|
||||
y1="120.81136"
|
||||
x2="394.43201"
|
||||
y2="112.43636" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient4060"
|
||||
id="linearGradient3098"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(168.6744,65.825928)"
|
||||
x1="103.93729"
|
||||
y1="49.179436"
|
||||
x2="120.49899"
|
||||
y2="0.21229285" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3953"
|
||||
id="linearGradient3959"
|
||||
x1="214.70918"
|
||||
y1="80.886589"
|
||||
x2="218.70918"
|
||||
y2="104.88659"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(80,0)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3961"
|
||||
id="linearGradient3967"
|
||||
x1="196.70918"
|
||||
y1="106.88659"
|
||||
x2="190.70918"
|
||||
y2="80.886589"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(80,0)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3953-5"
|
||||
id="linearGradient3959-3"
|
||||
x1="214.70918"
|
||||
y1="80.886589"
|
||||
x2="218.70918"
|
||||
y2="104.88659"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="translate(80,0)" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
id="linearGradient3953-5">
|
||||
<stop
|
||||
style="stop-color:#babdb6;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop3955-6" />
|
||||
<stop
|
||||
style="stop-color:#555753;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop3957-2" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2831-2"
|
||||
id="linearGradient4585"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.370336,0,0,1.3589114,0.02150968,-18.214919)"
|
||||
x1="13.478554"
|
||||
y1="10.612206"
|
||||
x2="15.419417"
|
||||
y2="19.115122" />
|
||||
<linearGradient
|
||||
id="linearGradient2831-2">
|
||||
<stop
|
||||
style="stop-color:#3465a4;stop-opacity:1;"
|
||||
offset="0"
|
||||
id="stop2833-3" />
|
||||
<stop
|
||||
id="stop2855-1"
|
||||
offset="0.33333334"
|
||||
style="stop-color:#5b86be;stop-opacity:1;" />
|
||||
<stop
|
||||
style="stop-color:#83a8d8;stop-opacity:0;"
|
||||
offset="1"
|
||||
id="stop2835-6" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2871"
|
||||
id="linearGradient1488"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.370336,0,0,-1.3589114,64.512944,44.464873)"
|
||||
x1="37.128052"
|
||||
y1="29.729605"
|
||||
x2="37.065414"
|
||||
y2="26.194071" />
|
||||
<linearGradient
|
||||
id="linearGradient2871"
|
||||
inkscape:collect="always">
|
||||
<stop
|
||||
id="stop2873"
|
||||
offset="0"
|
||||
style="stop-color:#3465a4;stop-opacity:1;" />
|
||||
<stop
|
||||
id="stop2875"
|
||||
offset="1"
|
||||
style="stop-color:#3465a4;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3063-2"
|
||||
id="linearGradient4587"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="42.703487"
|
||||
y1="20.547306"
|
||||
x2="26.605606"
|
||||
y2="33.634254" />
|
||||
<linearGradient
|
||||
id="linearGradient3063-2">
|
||||
<stop
|
||||
id="stop3065-6"
|
||||
offset="0"
|
||||
style="stop-color:#729fcf;stop-opacity:1" />
|
||||
<stop
|
||||
id="stop3067-0"
|
||||
offset="1"
|
||||
style="stop-color:#204a87;stop-opacity:1" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2380-9"
|
||||
id="linearGradient3034"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="41.791897"
|
||||
y1="20.134634"
|
||||
x2="23.705669"
|
||||
y2="34.083359" />
|
||||
<linearGradient
|
||||
id="linearGradient2380-9">
|
||||
<stop
|
||||
style="stop-color:#729fcf;stop-opacity:1"
|
||||
offset="0"
|
||||
id="stop2382-4" />
|
||||
<stop
|
||||
style="stop-color:#3465a4;stop-opacity:1"
|
||||
offset="1"
|
||||
id="stop2384-6" />
|
||||
</linearGradient>
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2380-9"
|
||||
id="linearGradient3034-4"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="26.221533"
|
||||
y1="31.125586"
|
||||
x2="46.731483"
|
||||
y2="21.766298" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2831-2"
|
||||
id="linearGradient4295"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(1.370336,0,0,1.3589114,0.02150968,-18.214919)"
|
||||
x1="13.478554"
|
||||
y1="10.612206"
|
||||
x2="15.419417"
|
||||
y2="19.115122" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient2871"
|
||||
id="linearGradient4297"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
gradientTransform="matrix(-1.370336,0,0,-1.3589114,64.512944,44.464873)"
|
||||
x1="37.128052"
|
||||
y1="29.729605"
|
||||
x2="37.065414"
|
||||
y2="26.194071" />
|
||||
<linearGradient
|
||||
inkscape:collect="always"
|
||||
xlink:href="#linearGradient3063-2"
|
||||
id="linearGradient4299"
|
||||
gradientUnits="userSpaceOnUse"
|
||||
x1="42.703487"
|
||||
y1="20.547306"
|
||||
x2="26.605606"
|
||||
y2="33.634254" />
|
||||
</defs>
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="7.6761244"
|
||||
inkscape:cx="44.088329"
|
||||
inkscape:cy="36.738683"
|
||||
inkscape:current-layer="g3629"
|
||||
showgrid="true"
|
||||
inkscape:document-units="px"
|
||||
inkscape:grid-bbox="true"
|
||||
inkscape:window-width="1375"
|
||||
inkscape:window-height="876"
|
||||
inkscape:window-x="65"
|
||||
inkscape:window-y="24"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:snap-bbox="false"
|
||||
inkscape:snap-nodes="true">
|
||||
<inkscape:grid
|
||||
type="xygrid"
|
||||
id="grid3059"
|
||||
empspacing="2"
|
||||
visible="true"
|
||||
enabled="true"
|
||||
snapvisiblegridlinesonly="true" />
|
||||
</sodipodi:namedview>
|
||||
<metadata
|
||||
id="metadata2948">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
<dc:creator>
|
||||
<cc:Agent>
|
||||
<dc:title>[blobfish]</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:creator>
|
||||
<dc:title>Part_Measure_Linear</dc:title>
|
||||
<dc:date>2013-12-17</dc:date>
|
||||
<dc:relation>https://www.freecad.org/wiki/index.php?title=Artwork</dc:relation>
|
||||
<dc:publisher>
|
||||
<cc:Agent>
|
||||
<dc:title>FreeCAD</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:publisher>
|
||||
<dc:identifier>FreeCAD/src/Mod/Part/Gui/Resources/icons/Part_Measure_Linear.svg</dc:identifier>
|
||||
<dc:rights>
|
||||
<cc:Agent>
|
||||
<dc:title>FreeCAD LGPL2+</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:rights>
|
||||
<cc:license>https://www.gnu.org/copyleft/lesser.html</cc:license>
|
||||
<dc:contributor>
|
||||
<cc:Agent>
|
||||
<dc:title>[agryson] Alexander Gryson</dc:title>
|
||||
</cc:Agent>
|
||||
</dc:contributor>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
id="layer1"
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer">
|
||||
<g
|
||||
id="g3629"
|
||||
transform="translate(-256.70919,-66.886588)">
|
||||
<path
|
||||
style="fill:#e3d328;fill-opacity:1;stroke:#040400;stroke-width:0.08838835;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d=""
|
||||
id="path4102"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="translate(256.70919,66.886588)" />
|
||||
<path
|
||||
style="fill:#babdb6;stroke:#2e3436;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="m 285.70919,77.886588 -26,-4 c 0,11 0,26 2,36.000002 l 30,12 0,-6 -2,-4 c 8,-12.000002 0,-24.000002 -4,-34.000002 z"
|
||||
id="path3100"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:#555753;stroke:#2e3436;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="m 291.70919,121.88659 12,-4 0,-6 -12,4 z"
|
||||
id="path3890"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#d3d7cf;stroke:#2e3436;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 301.70919,107.88659 -12,4 2,4 12,-4 z"
|
||||
id="path3892"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:#888a85;stroke:#2e3436;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 285.70919,77.886588 c 4,10 12,22 4,34.000002 l 12,-4 c 8,-12.000002 0,-24.000002 -4,-34.000002 z"
|
||||
id="path3894"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#d3d7cf;stroke:#2e3436;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="m 259.70919,73.886588 12,-4 26,4 -12,4 z"
|
||||
id="path3888"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:url(#linearGradient3967);fill-opacity:1;stroke:#d3d7cf;stroke-width:1.99999975999999990;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
d="m 284.30919,79.786588 -22.6,-3.9 c 0,10.043478 -0.0125,23.469561 1.8,32.600002 l 26.2,10.4 0,-2.5 -2.2,-4.5 c 8,-12.000002 1.2,-22.000002 -3.2,-32.100002 z"
|
||||
id="path3100-6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccccc" />
|
||||
<path
|
||||
style="fill:url(#linearGradient3959);fill-opacity:1;stroke:#babdb6;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 288.30919,79.086588 c 4,10 9.4,18.3 5.4,29.300002 l 6.6,-2.2 c 6,-9.000002 1.4,-19.300002 -3.8,-29.900002 z"
|
||||
id="path3894-7"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
sodipodi:type="arc"
|
||||
style="fill:#555753;fill-opacity:1;stroke:#2e3436;stroke-width:2.25831866;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none;stroke-dashoffset:1.6"
|
||||
id="path3932"
|
||||
sodipodi:cx="-93"
|
||||
sodipodi:cy="39"
|
||||
sodipodi:rx="15"
|
||||
sodipodi:ry="15"
|
||||
d="m -78,39 a 15,15 0 0 1 -15,15 15,15 0 0 1 -15,-15 15,15 0 0 1 15,-15 15,15 0 0 1 15,15 z"
|
||||
transform="matrix(0.79999998,0.19607832,0,0.9803916,350.10919,74.8866)" />
|
||||
<path
|
||||
style="fill:#edd400;fill-opacity:1;stroke:#302b00;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dashoffset:1.6"
|
||||
d="m 287.70919,97.827762 -24,-5.882349 c 0,0 -0.82229,-14.095015 12,-11.764699 11.12322,2.021527 12,17.647048 12,17.647048 z"
|
||||
id="path3932-5"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccsc" />
|
||||
<path
|
||||
style="fill:#edd400;fill-opacity:1;stroke:#302b00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 294.70919,90.886588 c 2,4 3,11.000002 1,15.000002 l 4,-1 c 2,-4 2,-11.000002 0,-15.000002 z"
|
||||
id="path3894-7-9"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#edd400;stroke:#302b00;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
|
||||
d="m 37,51 8,-3 16,5 -6,4 z"
|
||||
id="path4003"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="translate(256.70919,66.886588)"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<path
|
||||
style="fill:#d3d7cf;stroke:#2e3436;stroke-width:2;stroke-linecap:butt;stroke-linejoin:round;stroke-opacity:1"
|
||||
d="m 61,53 0,4 -6,4 0,-4 z"
|
||||
id="path4005"
|
||||
inkscape:connector-curvature="0"
|
||||
transform="translate(256.70919,66.886588)"
|
||||
sodipodi:nodetypes="ccccc" />
|
||||
<g
|
||||
id="g4314">
|
||||
<g
|
||||
id="g3863"
|
||||
transform="matrix(0.59299466,0,0,0.59299466,283.4333,77.218635)">
|
||||
<path
|
||||
style="color:#000000;display:block;overflow:visible;visibility:visible;fill:url(#linearGradient4295);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient4297);stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||
d="m 27,-3.6915582 c 0,0 -12.247378,-0.8493196 -8.478954,13.4192502 l -10.534458,0 c 0,0 0.685168,-16.137073 19.013412,-13.4192502 z"
|
||||
id="path2865-9"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g1878-1"
|
||||
transform="matrix(-0.79349441,-0.66481753,-0.67040672,0.78687903,77.66003,0.94046451)"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
style="fill:url(#linearGradient4299);fill-opacity:1;stroke:#204a87;stroke-width:0.73280919;stroke-opacity:1">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
id="path1880-27"
|
||||
d="M 44.306783,50.229694 C 62.821497,35.818859 49.664587,13.411704 22.462411,12.49765 L 22.113843,3.1515478 7.6245439,20.496754 22.714328,33.219189 c 0,0 -0.251917,-9.88122 -0.251917,-9.88122 18.82976,0.998977 32.981627,14.071729 21.844372,26.891725 z"
|
||||
style="color:#000000;display:block;overflow:visible;visibility:visible;fill:url(#linearGradient3034);fill-opacity:1;fill-rule:nonzero;stroke:#0b1521;stroke-width:3.26039815;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
style="fill:none;stroke:#729fcf;stroke-width:0.73280919;stroke-opacity:1"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:r_cx="true"
|
||||
transform="matrix(-0.69686517,-0.58385766,-0.58876622,0.69105539,72.350404,1.0127423)"
|
||||
id="g2805-0">
|
||||
<path
|
||||
inkscape:r_cy="true"
|
||||
inkscape:r_cx="true"
|
||||
style="color:#000000;display:block;overflow:visible;visibility:visible;fill:none;stroke:#729fcf;stroke-width:2.20148993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:21;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||
d="M 52.368857,42.344789 C 57.336994,33.465615 49.176003,12.601866 19.05552,12.672851 L 18.677956,5.6633463 7.4378077,19.282655 19.129354,29.167094 18.807724,20.554957 c 18.244937,0.381972 33.804002,9.457851 33.561133,21.789832 z"
|
||||
id="path2807-9"
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
<g
|
||||
id="g3863-0"
|
||||
transform="matrix(-0.59299466,0,0,-0.59299466,322.563,94.41548)">
|
||||
<path
|
||||
style="color:#000000;display:block;overflow:visible;visibility:visible;fill:url(#linearGradient4585);fill-opacity:1;fill-rule:nonzero;stroke:url(#linearGradient1488);stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||
d="m 27,-3.6915582 c 0,0 -12.247378,-0.8493196 -8.478954,13.4192502 l -10.534458,0 c 0,0 0.685168,-16.137073 19.013412,-13.4192502 z"
|
||||
id="path2865-3"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
sodipodi:nodetypes="cccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
<g
|
||||
id="g1878-6"
|
||||
transform="matrix(-0.79349441,-0.66481753,-0.67040672,0.78687903,77.66003,0.94046451)"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
style="fill:url(#linearGradient4587);fill-opacity:1;stroke:#204a87;stroke-width:0.73280919;stroke-opacity:1">
|
||||
<path
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
id="path1880-2"
|
||||
d="M 44.306783,50.229694 C 62.821497,35.818859 49.664587,13.411704 22.462411,12.49765 L 22.113843,3.1515478 7.6245439,20.496754 22.714328,33.219189 c 0,0 -0.251917,-9.88122 -0.251917,-9.88122 18.82976,0.998977 32.981627,14.071729 21.844372,26.891725 z"
|
||||
style="color:#000000;display:block;overflow:visible;visibility:visible;fill:url(#linearGradient3034-4);fill-opacity:1;fill-rule:nonzero;stroke:#0b1521;stroke-width:3.26039815;stroke-linecap:butt;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||
inkscape:r_cx="true"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
<g
|
||||
style="fill:none;stroke:#729fcf;stroke-width:0.73280919;stroke-opacity:1"
|
||||
inkscape:r_cy="true"
|
||||
inkscape:r_cx="true"
|
||||
transform="matrix(-0.69686517,-0.58385766,-0.58876622,0.69105539,72.350404,1.0127423)"
|
||||
id="g2805-4">
|
||||
<path
|
||||
inkscape:r_cy="true"
|
||||
inkscape:r_cx="true"
|
||||
style="color:#000000;display:block;overflow:visible;visibility:visible;fill:none;stroke:#729fcf;stroke-width:2.20148993;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:21;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1;marker:none"
|
||||
d="M 52.368857,42.344789 C 57.864671,33.591679 49.176003,12.601866 19.05552,12.672851 L 18.677956,5.6633463 7.4378077,19.282655 19.129354,29.167094 18.807724,20.554957 c 18.244937,0.381972 33.804002,9.457851 33.561133,21.789832 z"
|
||||
id="path2807-5"
|
||||
sodipodi:nodetypes="ccccccc"
|
||||
inkscape:connector-curvature="0" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 14 KiB |
@@ -1,337 +0,0 @@
|
||||
/***************************************************************************
|
||||
* Copyright (c) 2013 Thomas Anderson <blobfish[at]gmx.com> *
|
||||
* *
|
||||
* This file is part of the FreeCAD CAx development system. *
|
||||
* *
|
||||
* This library is free software; you can redistribute it and/or *
|
||||
* modify it under the terms of the GNU Library General Public *
|
||||
* License as published by the Free Software Foundation; either *
|
||||
* version 2 of the License, or (at your option) any later version. *
|
||||
* *
|
||||
* This library 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 Library General Public License for more details. *
|
||||
* *
|
||||
* You should have received a copy of the GNU Library General Public *
|
||||
* License along with this library; see the file COPYING.LIB. If not, *
|
||||
* write to the Free Software Foundation, Inc., 59 Temple Place, *
|
||||
* Suite 330, Boston, MA 02111-1307, USA *
|
||||
* *
|
||||
***************************************************************************/
|
||||
|
||||
#ifndef TASKDIMENSION_H
|
||||
#define TASKDIMENSION_H
|
||||
|
||||
#include <gp_Lin.hxx>
|
||||
#include <gp_Vec.hxx>
|
||||
|
||||
#include <Inventor/engines/SoSubEngine.h>
|
||||
#include <Inventor/engines/SoEngine.h>
|
||||
#include <Inventor/fields/SoSFColor.h>
|
||||
#include <Inventor/fields/SoSFFloat.h>
|
||||
#include <Inventor/fields/SoSFMatrix.h>
|
||||
#include <Inventor/fields/SoSFRotation.h>
|
||||
#include <Inventor/fields/SoSFString.h>
|
||||
#include <Inventor/fields/SoSFVec3f.h>
|
||||
#include <Inventor/nodekits/SoSeparatorKit.h>
|
||||
#include <Mod/Part/App/VectorAdapter.h>
|
||||
|
||||
#include <Base/Matrix.h>
|
||||
#include <Gui/TaskView/TaskDialog.h>
|
||||
#include <Gui/TaskView/TaskView.h>
|
||||
|
||||
|
||||
class TopoDS_Shape;
|
||||
class TopoDS_Face;
|
||||
class TopoDS_Edge;
|
||||
class TopoDS_Vertex;
|
||||
class gp_Pnt;
|
||||
class BRepExtrema_DistShapeShape;
|
||||
|
||||
class QPushButton;
|
||||
class QPixmap;
|
||||
class QLabel;
|
||||
|
||||
using namespace Part;
|
||||
|
||||
namespace Gui{class View3dInventorViewer;}
|
||||
|
||||
namespace PartGui
|
||||
{
|
||||
/*!find shape from selection strings
|
||||
* @param shapeOut search results.
|
||||
* @param doc document name to search.
|
||||
* @param object object name to search.
|
||||
* @param sub sub-object name to search.
|
||||
* @return signal if the search was successful.
|
||||
*/
|
||||
bool getShapeFromStrings(TopoDS_Shape &shapeOut, const std::string &doc, const std::string &object, const std::string &sub, Base::Matrix4D *mat=nullptr);
|
||||
/*!examine pre selection
|
||||
* @param shape1 first shape in current selection
|
||||
* @param shape2 second shape in current selection
|
||||
* @return signal if preselection is valid. false means shape1 and shape2 are invalid.
|
||||
*/
|
||||
bool evaluateLinearPreSelection(TopoDS_Shape &shape1, TopoDS_Shape &shape2);
|
||||
/*!start of the measure linear command*/
|
||||
void goDimensionLinearRoot();
|
||||
/*!does the measure and create dimensions without a dialog
|
||||
* @param shape1 first shape.
|
||||
* @param shape2 second shape.
|
||||
* @todo incorporate some form of "adapt to topods_shape". so we can expand to other types outside OCC.
|
||||
*/
|
||||
void goDimensionLinearNoTask(const TopoDS_Shape &shape1, const TopoDS_Shape &shape2);
|
||||
/*!prints results of measuring to console.
|
||||
* @param measure object containing the measure information
|
||||
*/
|
||||
void dumpLinearResults(const BRepExtrema_DistShapeShape &measure);
|
||||
/*!convenience function to get the viewer*/
|
||||
Gui::View3DInventorViewer* getViewer();
|
||||
/*!adds 3d and delta dimensions to the viewer
|
||||
* @param measure object containing the measure information.
|
||||
*/
|
||||
void addLinearDimensions(const BRepExtrema_DistShapeShape &measure);
|
||||
/*!creates one dimension from points with color
|
||||
* @param point1 first point
|
||||
* @param point2 second point
|
||||
* @param color color of dimension
|
||||
* @return an inventor node to add to a scenegraph
|
||||
*/
|
||||
SoNode* createLinearDimension(const gp_Pnt &point1, const gp_Pnt &point2, const SbColor &color);
|
||||
/*!erases all the dimensions in the viewer.*/
|
||||
void eraseAllDimensions();
|
||||
/*!refresh all the dimensions in the viewer.*/
|
||||
void refreshDimensions();
|
||||
/*!toggles the display status of the 3d dimensions*/
|
||||
void toggle3d();
|
||||
/*!toggles the display status of the delta dimensions*/
|
||||
void toggleDelta();
|
||||
/*!make sure measure command isn't working with everything invisible. Confusing the user*/
|
||||
void ensureSomeDimensionVisible();
|
||||
/*!make sure angle measure command isn't working with 3d off. Confusing the user*/
|
||||
void ensure3dDimensionVisible();
|
||||
/*convert a vertex to vector*/
|
||||
gp_Vec convert(const TopoDS_Vertex &vertex);
|
||||
|
||||
auto getDimensionsFontName();
|
||||
auto getDimensionsFontSize();
|
||||
|
||||
class DimensionLinear : public SoSeparatorKit
|
||||
{
|
||||
SO_KIT_HEADER(DimensionLinear);
|
||||
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(transformation);
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(annotate);
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(leftArrow);
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(rightArrow);
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(line);
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(textSep);
|
||||
public:
|
||||
DimensionLinear();
|
||||
static void initClass();
|
||||
SbBool affectsState() const override;
|
||||
void setupDimension();
|
||||
|
||||
SoSFVec3f point1;
|
||||
SoSFVec3f point2;
|
||||
SoSFString text;
|
||||
SoSFColor dColor;
|
||||
protected:
|
||||
SoSFRotation rotate;
|
||||
SoSFFloat length;
|
||||
SoSFVec3f origin;
|
||||
|
||||
private:
|
||||
~DimensionLinear() override;
|
||||
};
|
||||
|
||||
/*kit for anglular dimensions*/
|
||||
class DimensionAngular : public SoSeparatorKit
|
||||
{
|
||||
SO_KIT_HEADER(DimensionAngular);
|
||||
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(transformation);
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(annotate);
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(arrow1);
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(arrow2);
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(arcSep);
|
||||
SO_KIT_CATALOG_ENTRY_HEADER(textSep);
|
||||
public:
|
||||
DimensionAngular();
|
||||
static void initClass();
|
||||
SbBool affectsState() const override;
|
||||
|
||||
SoSFFloat radius;//radians.
|
||||
SoSFFloat angle;//radians.
|
||||
SoSFString text;
|
||||
SoSFColor dColor;
|
||||
SoSFMatrix matrix;
|
||||
void setupDimension();
|
||||
private:
|
||||
~DimensionAngular() override;
|
||||
};
|
||||
|
||||
/*used for generating points for arc display*/
|
||||
class ArcEngine : public SoEngine
|
||||
{
|
||||
SO_ENGINE_HEADER(ArcEngine);
|
||||
public:
|
||||
ArcEngine();
|
||||
static void initClass();
|
||||
|
||||
SoSFFloat radius;
|
||||
SoSFFloat angle;
|
||||
SoSFFloat deviation;
|
||||
|
||||
SoEngineOutput points;
|
||||
SoEngineOutput pointCount;
|
||||
protected:
|
||||
void evaluate() override;
|
||||
private:
|
||||
~ArcEngine() override = default;
|
||||
void defaultValues(); //some non error values if something goes wrong.
|
||||
};
|
||||
|
||||
/*! a widget with buttons and icons for a controlled selection process*/
|
||||
class SteppedSelection : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit SteppedSelection(const uint &buttonCountIn, QWidget *parent = nullptr);
|
||||
~SteppedSelection() override;
|
||||
QPushButton* getButton(const uint &index);
|
||||
void setIconDone(const uint &index);
|
||||
|
||||
protected:
|
||||
using ButtonIconPairType = std::pair<QPushButton *, QLabel *>;
|
||||
std::vector<ButtonIconPairType> buttons;
|
||||
QPixmap *stepActive;
|
||||
QPixmap *stepDone;
|
||||
|
||||
private Q_SLOTS:
|
||||
void selectionSlot(bool checked);
|
||||
void buildPixmaps();
|
||||
|
||||
};
|
||||
|
||||
/*! just convenience container*/
|
||||
class DimSelections
|
||||
{
|
||||
public:
|
||||
enum ShapeType{None, Vertex, Edge, Face};
|
||||
struct DimSelection
|
||||
{
|
||||
std::string documentName;
|
||||
std::string objectName;
|
||||
std::string subObjectName;
|
||||
float x;
|
||||
float y;
|
||||
float z;
|
||||
ShapeType shapeType;
|
||||
};
|
||||
std::vector<DimSelection> selections;
|
||||
};
|
||||
|
||||
/*!widget for buttons controlling the display of dimensions*/
|
||||
class DimensionControl : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DimensionControl(QWidget* parent);
|
||||
QPushButton *resetButton;
|
||||
public Q_SLOTS:
|
||||
void toggle3dSlot(bool);
|
||||
void toggleDeltaSlot(bool);
|
||||
void clearAllSlot(bool);
|
||||
};
|
||||
|
||||
/*!linear dialog*/
|
||||
class TaskMeasureLinear : public Gui::TaskView::TaskDialog, public Gui::SelectionObserver
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
TaskMeasureLinear();
|
||||
~TaskMeasureLinear() override;
|
||||
|
||||
QDialogButtonBox::StandardButtons getStandardButtons() const override
|
||||
{return QDialogButtonBox::Close;}
|
||||
bool isAllowedAlterDocument() const override {return false;}
|
||||
bool needsFullSpace() const override {return false;}
|
||||
protected:
|
||||
void onSelectionChanged(const Gui::SelectionChanges& msg) override;
|
||||
|
||||
protected Q_SLOTS:
|
||||
void selection1Slot(bool checked);
|
||||
void selection2Slot(bool checked);
|
||||
void resetDialogSlot(bool);
|
||||
void toggle3dSlot(bool);
|
||||
void toggleDeltaSlot(bool);
|
||||
void clearAllSlot(bool);
|
||||
void selectionClearDelayedSlot();
|
||||
|
||||
public:
|
||||
static void buildDimension(const DimSelections &sel1, const DimSelections &sel2);
|
||||
|
||||
private:
|
||||
void setUpGui();
|
||||
void buildDimension();
|
||||
void clearSelectionStrings();
|
||||
DimSelections selections1;
|
||||
DimSelections selections2;
|
||||
uint buttonSelectedIndex;
|
||||
SteppedSelection *stepped;
|
||||
|
||||
};
|
||||
|
||||
|
||||
/*!angular dialog class*/
|
||||
class TaskMeasureAngular : public Gui::TaskView::TaskDialog, public Gui::SelectionObserver
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
TaskMeasureAngular();
|
||||
~TaskMeasureAngular() override;
|
||||
|
||||
QDialogButtonBox::StandardButtons getStandardButtons() const override
|
||||
{return QDialogButtonBox::Close;}
|
||||
bool isAllowedAlterDocument() const override {return false;}
|
||||
bool needsFullSpace() const override {return false;}
|
||||
protected:
|
||||
void onSelectionChanged(const Gui::SelectionChanges& msg) override;
|
||||
|
||||
protected Q_SLOTS:
|
||||
void selection1Slot(bool checked);
|
||||
void selection2Slot(bool checked);
|
||||
void resetDialogSlot(bool);
|
||||
void toggle3dSlot(bool);
|
||||
void toggleDeltaSlot(bool);
|
||||
void clearAllSlot(bool);
|
||||
void selectionClearDelayedSlot();
|
||||
|
||||
public:
|
||||
static void buildDimension(const DimSelections &sel1, const DimSelections &sel2);
|
||||
|
||||
private:
|
||||
void buildDimension();
|
||||
void setUpGui();
|
||||
void clearSelection();
|
||||
DimSelections selections1;
|
||||
DimSelections selections2;
|
||||
uint buttonSelectedIndex;
|
||||
SteppedSelection *stepped;
|
||||
static VectorAdapter buildAdapter(const DimSelections &selection);
|
||||
};
|
||||
|
||||
/*!start of the measure angular command*/
|
||||
void goDimensionAngularRoot();
|
||||
/*!examine angular pre selection
|
||||
* @param vector1Out first shape in current selection
|
||||
* @param vector2Out second shape in current selection
|
||||
* @return signal if preselection is valid. false means vector1Out and vector2Out are invalid.
|
||||
*/
|
||||
bool evaluateAngularPreSelection(VectorAdapter &vector1Out, VectorAdapter &vector2Out);
|
||||
/*!build angular dimension*/
|
||||
void goDimensionAngularNoTask(const VectorAdapter &vector1Adapter, const VectorAdapter &vector2Adapter);
|
||||
}
|
||||
|
||||
#endif // TASKDIMENSION_H
|
||||
@@ -41,7 +41,6 @@ using namespace PartGui;
|
||||
qApp->translate("Workbench", "Split");
|
||||
qApp->translate("Workbench", "Compound");
|
||||
qApp->translate("Workbench", "Create a copy");
|
||||
qApp->translate("Workbench", "Measure");
|
||||
#endif
|
||||
|
||||
/// @namespace PartGui @class Workbench
|
||||
@@ -140,18 +139,6 @@ Gui::MenuItem* Workbench::setupMenuBar() const
|
||||
<< "Separator"
|
||||
<< "Part_EditAttachment";
|
||||
|
||||
Gui::MenuItem* measure = new Gui::MenuItem;
|
||||
root->insertItem(item,measure);
|
||||
measure->setCommand("Measure");
|
||||
*measure << "Part_Measure_Linear"
|
||||
<< "Part_Measure_Angular"
|
||||
<< "Separator"
|
||||
<< "Part_Measure_Refresh"
|
||||
<< "Part_Measure_Clear_All"
|
||||
<< "Part_Measure_Toggle_All"
|
||||
<< "Part_Measure_Toggle_3D"
|
||||
<< "Part_Measure_Toggle_Delta";
|
||||
|
||||
Gui::MenuItem* view = root->findItem("&View");
|
||||
if (view) {
|
||||
Gui::MenuItem* appr = view->findItem("Std_RandomColor");
|
||||
@@ -210,17 +197,6 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
|
||||
<< "Part_CheckGeometry"
|
||||
<< "Part_Defeaturing";
|
||||
|
||||
Gui::ToolBarItem* measure = new Gui::ToolBarItem(root);
|
||||
measure->setCommand("Measure");
|
||||
*measure << "Part_Measure_Linear"
|
||||
<< "Part_Measure_Angular"
|
||||
<< "Separator"
|
||||
<< "Part_Measure_Refresh"
|
||||
<< "Part_Measure_Clear_All"
|
||||
<< "Part_Measure_Toggle_All"
|
||||
<< "Part_Measure_Toggle_3D"
|
||||
<< "Part_Measure_Toggle_Delta";
|
||||
|
||||
return root;
|
||||
}
|
||||
|
||||
|
||||
@@ -34,13 +34,6 @@ void WorkbenchManipulator::modifyMenuBar([[maybe_unused]] Gui::MenuItem* menuBar
|
||||
addSectionCut(menuBar);
|
||||
}
|
||||
|
||||
void WorkbenchManipulator::modifyContextMenu(const char* recipient, Gui::MenuItem* menuBar)
|
||||
{
|
||||
if (strcmp(recipient, "View") == 0) {
|
||||
addSelectionFilter(menuBar);
|
||||
}
|
||||
}
|
||||
|
||||
void WorkbenchManipulator::modifyToolBars(Gui::ToolBarItem* toolBar)
|
||||
{
|
||||
addSelectionFilter(toolBar);
|
||||
@@ -78,12 +71,3 @@ void WorkbenchManipulator::addSelectionFilter(Gui::ToolBarItem* toolBar)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void WorkbenchManipulator::addSelectionFilter(Gui::MenuItem* menuBar)
|
||||
{
|
||||
if (auto measure = menuBar->findItem("Measure")) {
|
||||
auto add = new Gui::MenuItem(); // NOLINT
|
||||
add->setCommand("Part_SelectFilter");
|
||||
menuBar->insertItem(measure, add);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -38,12 +38,6 @@ protected:
|
||||
* The default implementation doesn't change anything.SectionCut
|
||||
*/
|
||||
void modifyMenuBar(Gui::MenuItem* menuBar) override;
|
||||
/*!
|
||||
* \brief modifyContextMenu
|
||||
* Method to manipulate the contextmenu structure of a workbench.
|
||||
* The default implementation doesn't change anything.
|
||||
*/
|
||||
void modifyContextMenu(const char* recipient, Gui::MenuItem* menuBar) override;
|
||||
/*!
|
||||
* \brief modifyToolBars
|
||||
* Method to manipulate the toolbar structure of a workbench
|
||||
@@ -60,7 +54,6 @@ protected:
|
||||
private:
|
||||
static void addSectionCut(Gui::MenuItem* menuBar);
|
||||
static void addSelectionFilter(Gui::ToolBarItem* toolBar);
|
||||
static void addSelectionFilter(Gui::MenuItem* menuBar);
|
||||
};
|
||||
|
||||
} // namespace PartGui
|
||||
|
||||
@@ -580,20 +580,6 @@ Gui::MenuItem* Workbench::setupMenuBar() const
|
||||
*part << "Separator" << "PartDesign_WizardShaft";
|
||||
}
|
||||
|
||||
// use Part's measure features also for PartDesign
|
||||
Gui::MenuItem* measure = new Gui::MenuItem;
|
||||
root->insertItem(item, measure);
|
||||
measure->setCommand("Measure");
|
||||
|
||||
*measure << "Part_Measure_Linear"
|
||||
<< "Part_Measure_Angular"
|
||||
<< "Separator"
|
||||
<< "Part_Measure_Refresh"
|
||||
<< "Part_Measure_Clear_All"
|
||||
<< "Part_Measure_Toggle_All"
|
||||
<< "Part_Measure_Toggle_3D"
|
||||
<< "Part_Measure_Toggle_Delta";
|
||||
|
||||
Gui::MenuItem* view = root->findItem("&View");
|
||||
if (view) {
|
||||
Gui::MenuItem* appr = view->findItem("Std_RandomColor");
|
||||
@@ -662,19 +648,6 @@ Gui::ToolBarItem* Workbench::setupToolBars() const
|
||||
<< "Separator"
|
||||
<< "PartDesign_Boolean";
|
||||
|
||||
// use Part's measure features also for PartDesign
|
||||
Gui::ToolBarItem* measure = new Gui::ToolBarItem(root);
|
||||
measure->setCommand("Measure");
|
||||
|
||||
*measure << "Part_Measure_Linear"
|
||||
<< "Part_Measure_Angular"
|
||||
<< "Separator"
|
||||
<< "Part_Measure_Refresh"
|
||||
<< "Part_Measure_Clear_All"
|
||||
<< "Part_Measure_Toggle_All"
|
||||
<< "Part_Measure_Toggle_3D"
|
||||
<< "Part_Measure_Toggle_Delta";
|
||||
|
||||
return root;
|
||||
}
|
||||
|
||||
|
||||