0001290: Add spiral tool in Part Module
This commit is contained in:
@@ -197,6 +197,7 @@ void PartExport initPart()
|
||||
Part::Cone ::init();
|
||||
Part::Torus ::init();
|
||||
Part::Helix ::init();
|
||||
Part::Spiral ::init();
|
||||
Part::Wedge ::init();
|
||||
Part::Part2DObject ::init();
|
||||
Part::Part2DObjectPython ::init();
|
||||
|
||||
@@ -39,6 +39,7 @@
|
||||
# include <BRepBuilderAPI_MakeSolid.hxx>
|
||||
# include <BRepBuilderAPI_MakePolygon.hxx>
|
||||
# include <BRepBuilderAPI_GTransform.hxx>
|
||||
# include <BRepProj_Projection.hxx>
|
||||
# include <gp_Circ.hxx>
|
||||
# include <gp_Elips.hxx>
|
||||
# include <gp_GTrsf.hxx>
|
||||
@@ -711,6 +712,98 @@ App::DocumentObjectExecReturn *Helix::execute(void)
|
||||
return App::DocumentObject::StdReturn;
|
||||
}
|
||||
|
||||
PROPERTY_SOURCE(Part::Spiral, Part::Primitive)
|
||||
|
||||
Spiral::Spiral(void)
|
||||
{
|
||||
ADD_PROPERTY_TYPE(Growth, (1.0),"Spiral",App::Prop_None,"The growth of the spiral per rotation");
|
||||
Growth.setConstraints(&floatRange);
|
||||
ADD_PROPERTY_TYPE(Radius,(1.0),"Spiral",App::Prop_None,"The radius of the spiral");
|
||||
Radius.setConstraints(&floatRange);
|
||||
ADD_PROPERTY_TYPE(Rotations,(2.0),"Spiral",App::Prop_None,"The number of rotations");
|
||||
Rotations.setConstraints(&floatRange);
|
||||
}
|
||||
|
||||
void Spiral::onChanged(const App::Property* prop)
|
||||
{
|
||||
if (!isRestoring()) {
|
||||
if (prop == &Growth || prop == &Rotations || prop == &Radius) {
|
||||
try {
|
||||
App::DocumentObjectExecReturn *ret = recompute();
|
||||
delete ret;
|
||||
}
|
||||
catch (...) {
|
||||
}
|
||||
}
|
||||
}
|
||||
Part::Feature::onChanged(prop);
|
||||
}
|
||||
|
||||
short Spiral::mustExecute() const
|
||||
{
|
||||
if (Growth.isTouched())
|
||||
return 1;
|
||||
if (Rotations.isTouched())
|
||||
return 1;
|
||||
if (Radius.isTouched())
|
||||
return 1;
|
||||
return Primitive::mustExecute();
|
||||
}
|
||||
|
||||
App::DocumentObjectExecReturn *Spiral::execute(void)
|
||||
{
|
||||
try {
|
||||
Standard_Real myNumRot = Rotations.getValue();
|
||||
Standard_Real myRadius = Radius.getValue();
|
||||
Standard_Real myGrowth = Growth.getValue();
|
||||
Standard_Real myPitch = 1.0;
|
||||
Standard_Real myHeight = myNumRot * myPitch;
|
||||
Standard_Real myAngle = atan(myGrowth / myPitch);
|
||||
TopoShape helix;
|
||||
|
||||
if (myGrowth < Precision::Confusion())
|
||||
Standard_Failure::Raise("Growth too small");
|
||||
|
||||
if (myNumRot < Precision::Confusion())
|
||||
Standard_Failure::Raise("Number of rotations too small");
|
||||
|
||||
gp_Ax2 cylAx2(gp_Pnt(0.0,0.0,0.0) , gp::DZ());
|
||||
Handle_Geom_Surface surf = new Geom_ConicalSurface(gp_Ax3(cylAx2), myAngle, myRadius);
|
||||
|
||||
gp_Pnt2d aPnt(0, 0);
|
||||
gp_Dir2d aDir(2. * M_PI, myPitch);
|
||||
gp_Ax2d aAx2d(aPnt, aDir);
|
||||
|
||||
Handle(Geom2d_Line) line = new Geom2d_Line(aAx2d);
|
||||
gp_Pnt2d beg = line->Value(0);
|
||||
gp_Pnt2d end = line->Value(sqrt(4.0*M_PI*M_PI+myPitch*myPitch)*(myHeight/myPitch));
|
||||
|
||||
// calculate end point for conical helix
|
||||
Standard_Real v = myHeight / cos(myAngle);
|
||||
Standard_Real u = (myHeight/myPitch) * 2.0 * M_PI;
|
||||
gp_Pnt2d cend(u, v);
|
||||
end = cend;
|
||||
|
||||
Handle(Geom2d_TrimmedCurve) segm = GCE2d_MakeSegment(beg , end);
|
||||
|
||||
TopoDS_Edge edgeOnSurf = BRepBuilderAPI_MakeEdge(segm , surf);
|
||||
TopoDS_Wire wire = BRepBuilderAPI_MakeWire(edgeOnSurf);
|
||||
BRepLib::BuildCurves3d(wire);
|
||||
|
||||
Handle_Geom_Plane aPlane = new Geom_Plane(gp_Pnt(0.0,0.0,0.0), gp::DZ());
|
||||
Standard_Real range = (myNumRot+1) * myGrowth + 1;
|
||||
BRepBuilderAPI_MakeFace mkFace(aPlane, -range, range, -range, range);
|
||||
BRepProj_Projection proj(wire, mkFace.Face(), gp::DZ());
|
||||
this->Shape.setValue(proj.Shape());
|
||||
}
|
||||
catch (Standard_Failure) {
|
||||
Handle_Standard_Failure e = Standard_Failure::Caught();
|
||||
return new App::DocumentObjectExecReturn(e->GetMessageString());
|
||||
}
|
||||
|
||||
return App::DocumentObject::StdReturn;
|
||||
}
|
||||
|
||||
PROPERTY_SOURCE(Part::Wedge, Part::Primitive)
|
||||
|
||||
Wedge::Wedge()
|
||||
|
||||
@@ -300,6 +300,32 @@ private:
|
||||
static const char* LocalCSEnums[];
|
||||
};
|
||||
|
||||
class PartExport Spiral : public Primitive
|
||||
{
|
||||
PROPERTY_HEADER(Part::Spiral);
|
||||
|
||||
public:
|
||||
Spiral();
|
||||
|
||||
App::PropertyFloatConstraint Growth;
|
||||
App::PropertyFloatConstraint Rotations;
|
||||
App::PropertyFloatConstraint Radius;
|
||||
|
||||
/** @name methods override feature */
|
||||
//@{
|
||||
/// recalculate the feature
|
||||
App::DocumentObjectExecReturn *execute(void);
|
||||
short mustExecute() const;
|
||||
/// returns the type name of the ViewProvider
|
||||
const char* getViewProviderName(void) const {
|
||||
return "PartGui::ViewProviderSpiralParametric";
|
||||
}
|
||||
//@}
|
||||
|
||||
protected:
|
||||
void onChanged (const App::Property* prop);
|
||||
};
|
||||
|
||||
class PartExport Wedge : public Primitive
|
||||
{
|
||||
PROPERTY_HEADER(Part::Wedge);
|
||||
|
||||
@@ -99,50 +99,51 @@ void PartGuiExport initPartGui()
|
||||
(void) Py_InitModule("PartGui", PartGui_methods); /* mod name, table ptr */
|
||||
Base::Console().Log("Loading GUI of Part module... done\n");
|
||||
|
||||
PartGui::SoBrepFaceSet ::initClass();
|
||||
PartGui::SoBrepEdgeSet ::initClass();
|
||||
PartGui::SoBrepPointSet ::initClass();
|
||||
PartGui::SoFCControlPoints ::initClass();
|
||||
PartGui::ViewProviderPartBase ::init();
|
||||
PartGui::ViewProviderPartExt ::init();
|
||||
PartGui::ViewProviderPart ::init();
|
||||
PartGui::ViewProviderEllipsoid ::init();
|
||||
PartGui::ViewProviderPython ::init();
|
||||
PartGui::ViewProviderBox ::init();
|
||||
PartGui::ViewProviderPrism ::init();
|
||||
PartGui::ViewProviderImport ::init();
|
||||
PartGui::ViewProviderCurveNet ::init();
|
||||
PartGui::ViewProviderExtrusion ::init();
|
||||
PartGui::ViewProvider2DObject ::init();
|
||||
PartGui::ViewProvider2DObjectPython ::init();
|
||||
PartGui::ViewProviderMirror ::init();
|
||||
PartGui::ViewProviderFillet ::init();
|
||||
PartGui::ViewProviderChamfer ::init();
|
||||
PartGui::ViewProviderRevolution ::init();
|
||||
PartGui::ViewProviderLoft ::init();
|
||||
PartGui::ViewProviderSweep ::init();
|
||||
PartGui::ViewProviderOffset ::init();
|
||||
PartGui::ViewProviderThickness ::init();
|
||||
PartGui::ViewProviderCustom ::init();
|
||||
PartGui::ViewProviderCustomPython ::init();
|
||||
PartGui::ViewProviderBoolean ::init();
|
||||
PartGui::ViewProviderMultiFuse ::init();
|
||||
PartGui::ViewProviderMultiCommon ::init();
|
||||
PartGui::ViewProviderCompound ::init();
|
||||
PartGui::ViewProviderCircleParametric ::init();
|
||||
PartGui::ViewProviderLineParametric ::init();
|
||||
PartGui::ViewProviderPointParametric ::init();
|
||||
PartGui::ViewProviderEllipseParametric ::init();
|
||||
PartGui::ViewProviderHelixParametric ::init();
|
||||
PartGui::ViewProviderPlaneParametric ::init();
|
||||
PartGui::ViewProviderSphereParametric ::init();
|
||||
PartGui::SoBrepFaceSet ::initClass();
|
||||
PartGui::SoBrepEdgeSet ::initClass();
|
||||
PartGui::SoBrepPointSet ::initClass();
|
||||
PartGui::SoFCControlPoints ::initClass();
|
||||
PartGui::ViewProviderPartBase ::init();
|
||||
PartGui::ViewProviderPartExt ::init();
|
||||
PartGui::ViewProviderPart ::init();
|
||||
PartGui::ViewProviderEllipsoid ::init();
|
||||
PartGui::ViewProviderPython ::init();
|
||||
PartGui::ViewProviderBox ::init();
|
||||
PartGui::ViewProviderPrism ::init();
|
||||
PartGui::ViewProviderImport ::init();
|
||||
PartGui::ViewProviderCurveNet ::init();
|
||||
PartGui::ViewProviderExtrusion ::init();
|
||||
PartGui::ViewProvider2DObject ::init();
|
||||
PartGui::ViewProvider2DObjectPython ::init();
|
||||
PartGui::ViewProviderMirror ::init();
|
||||
PartGui::ViewProviderFillet ::init();
|
||||
PartGui::ViewProviderChamfer ::init();
|
||||
PartGui::ViewProviderRevolution ::init();
|
||||
PartGui::ViewProviderLoft ::init();
|
||||
PartGui::ViewProviderSweep ::init();
|
||||
PartGui::ViewProviderOffset ::init();
|
||||
PartGui::ViewProviderThickness ::init();
|
||||
PartGui::ViewProviderCustom ::init();
|
||||
PartGui::ViewProviderCustomPython ::init();
|
||||
PartGui::ViewProviderBoolean ::init();
|
||||
PartGui::ViewProviderMultiFuse ::init();
|
||||
PartGui::ViewProviderMultiCommon ::init();
|
||||
PartGui::ViewProviderCompound ::init();
|
||||
PartGui::ViewProviderSpline ::init();
|
||||
PartGui::ViewProviderCircleParametric ::init();
|
||||
PartGui::ViewProviderLineParametric ::init();
|
||||
PartGui::ViewProviderPointParametric ::init();
|
||||
PartGui::ViewProviderEllipseParametric ::init();
|
||||
PartGui::ViewProviderHelixParametric ::init();
|
||||
PartGui::ViewProviderSpiralParametric ::init();
|
||||
PartGui::ViewProviderPlaneParametric ::init();
|
||||
PartGui::ViewProviderSphereParametric ::init();
|
||||
PartGui::ViewProviderCylinderParametric ::init();
|
||||
PartGui::ViewProviderConeParametric ::init();
|
||||
PartGui::ViewProviderTorusParametric ::init();
|
||||
PartGui::ViewProviderRuledSurface ::init();
|
||||
PartGui::ViewProviderSpline ::init();
|
||||
PartGui::ViewProviderConeParametric ::init();
|
||||
PartGui::ViewProviderTorusParametric ::init();
|
||||
PartGui::ViewProviderRuledSurface ::init();
|
||||
|
||||
PartGui::Workbench ::init();
|
||||
PartGui::Workbench ::init();
|
||||
|
||||
// instantiating the commands
|
||||
CreatePartCommands();
|
||||
|
||||
@@ -514,7 +514,21 @@ void DlgPrimitives::createPrimitive(const QString& placement)
|
||||
.arg(ui.helixLocalCS->currentIndex())
|
||||
.arg(placement);
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 10) { // circle
|
||||
else if (ui.comboBox1->currentIndex() == 10) { // spiral
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Spiral").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Spiral\",\"%1\")\n"
|
||||
"App.ActiveDocument.%1.Growth=%2\n"
|
||||
"App.ActiveDocument.%1.Rotations=%3\n"
|
||||
"App.ActiveDocument.%1.Radius=%4\n"
|
||||
"App.ActiveDocument.%1.Placement=%5\n")
|
||||
.arg(name)
|
||||
.arg(ui.spiralGrowth->value(),0,'f',2)
|
||||
.arg(ui.spiralRotation->value(),0,'f',2)
|
||||
.arg(ui.spiralRadius->value(),0,'f',2)
|
||||
.arg(placement);
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 11) { // circle
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Circle").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Circle\",\"%1\")\n"
|
||||
@@ -528,7 +542,7 @@ void DlgPrimitives::createPrimitive(const QString& placement)
|
||||
.arg(ui.circleAngle1->value(),0,'f',2)
|
||||
.arg(placement);
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 11) { // ellipse
|
||||
else if (ui.comboBox1->currentIndex() == 12) { // ellipse
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Ellipse").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Ellipse\",\"%1\")\n"
|
||||
@@ -544,7 +558,7 @@ void DlgPrimitives::createPrimitive(const QString& placement)
|
||||
.arg(ui.ellipseAngle1->value(),0,'f',2)
|
||||
.arg(placement);
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 12) { // vertex
|
||||
else if (ui.comboBox1->currentIndex() == 13) { // vertex
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Vertex").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Vertex\",\"%1\")\n"
|
||||
@@ -558,7 +572,7 @@ void DlgPrimitives::createPrimitive(const QString& placement)
|
||||
.arg(ui.vertexZ->value(),0,'f',2)
|
||||
.arg(placement);
|
||||
}
|
||||
else if (ui.comboBox1->currentIndex() == 13) { // line
|
||||
else if (ui.comboBox1->currentIndex() == 14) { // line
|
||||
name = QString::fromAscii(doc->getUniqueObjectName("Line").c_str());
|
||||
cmd = QString::fromAscii(
|
||||
"App.ActiveDocument.addObject(\"Part::Line\",\"%1\")\n"
|
||||
|
||||
@@ -78,6 +78,11 @@
|
||||
<string>Helix</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Spiral</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>Circle</string>
|
||||
@@ -1351,7 +1356,91 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page9_circle">
|
||||
<widget class="QWidget" name="page9_spiral">
|
||||
<layout class="QGridLayout">
|
||||
<property name="margin">
|
||||
<number>9</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="1" column="0">
|
||||
<spacer>
|
||||
<property name="orientation">
|
||||
<enum>Qt::Vertical</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>20</width>
|
||||
<height>40</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout">
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<property name="spacing">
|
||||
<number>6</number>
|
||||
</property>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_spiral_radius">
|
||||
<property name="text">
|
||||
<string>Radius:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_spiral_growth">
|
||||
<property name="text">
|
||||
<string>Growth:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QDoubleSpinBox" name="spiralRadius">
|
||||
<property name="maximum">
|
||||
<double>1000.000000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QDoubleSpinBox" name="spiralGrowth">
|
||||
<property name="maximum">
|
||||
<double>1000.000000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>1.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QDoubleSpinBox" name="spiralRotation">
|
||||
<property name="maximum">
|
||||
<double>1000.000000000000000</double>
|
||||
</property>
|
||||
<property name="value">
|
||||
<double>2.000000000000000</double>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_spiral_rotation">
|
||||
<property name="text">
|
||||
<string>Number of rotations:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
</layout>
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page10_circle">
|
||||
<layout class="QGridLayout" name="gridLayout_3">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="circleParameters">
|
||||
@@ -1554,7 +1643,7 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page10_vertex">
|
||||
<widget class="QWidget" name="page11_vertex">
|
||||
<layout class="QGridLayout" name="gridLayout_9">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_4">
|
||||
@@ -1614,7 +1703,7 @@
|
||||
</item>
|
||||
</layout>
|
||||
</widget>
|
||||
<widget class="QWidget" name="page11_edge">
|
||||
<widget class="QWidget" name="page12_edge">
|
||||
<layout class="QGridLayout" name="gridLayout_6">
|
||||
<item row="0" column="0">
|
||||
<layout class="QGridLayout" name="gridLayout_5">
|
||||
|
||||
@@ -36,6 +36,7 @@
|
||||
<file>icons/Part_CheckGeometry.svg</file>
|
||||
<file>icons/Part_Ellipse_Parametric.svg</file>
|
||||
<file>icons/Part_Helix_Parametric.svg</file>
|
||||
<file>icons/Part_Spiral_Parametric.svg</file>
|
||||
<file>icons/Part_Line_Parametric.svg</file>
|
||||
<file>icons/Part_Circle_Parametric.svg</file>
|
||||
<file>icons/Part_Point_Parametric.svg</file>
|
||||
|
||||
195
src/Mod/Part/Gui/Resources/icons/Part_Spiral_Parametric.svg
Normal file
195
src/Mod/Part/Gui/Resources/icons/Part_Spiral_Parametric.svg
Normal file
File diff suppressed because one or more lines are too long
|
After Width: | Height: | Size: 6.6 KiB |
@@ -26,29 +26,17 @@
|
||||
#ifndef _PreComp_
|
||||
#endif
|
||||
|
||||
/// Here the FreeCAD includes sorted by Base,App,Gui......
|
||||
#include <Base/Parameter.h>
|
||||
|
||||
#include "ViewProviderHelixParametric.h"
|
||||
|
||||
|
||||
//#include "Tree.h"
|
||||
|
||||
|
||||
|
||||
using namespace PartGui;
|
||||
using namespace std;
|
||||
|
||||
|
||||
//**************************************************************************
|
||||
// Construction/Destruction
|
||||
PROPERTY_SOURCE(PartGui::ViewProviderHelixParametric, PartGui::ViewProviderSpline)
|
||||
|
||||
PROPERTY_SOURCE(PartGui::ViewProviderHelixParametric, PartGui::ViewProviderPart)
|
||||
|
||||
|
||||
ViewProviderHelixParametric::ViewProviderHelixParametric()
|
||||
{
|
||||
sPixmap = "Part_Helix_Parametric.svg";
|
||||
sPixmap = "Part_Helix_Parametric.svg";
|
||||
}
|
||||
|
||||
ViewProviderHelixParametric::~ViewProviderHelixParametric()
|
||||
@@ -56,18 +44,37 @@ ViewProviderHelixParametric::~ViewProviderHelixParametric()
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
// **********************************************************************************
|
||||
|
||||
std::vector<std::string> ViewProviderHelixParametric::getDisplayModes(void) const
|
||||
{
|
||||
// get the modes of the father
|
||||
std::vector<std::string> StrList;
|
||||
// add your own modes
|
||||
std::vector<std::string> StrList;
|
||||
StrList.push_back("Wireframe");
|
||||
StrList.push_back("Points");
|
||||
|
||||
// add your own modes
|
||||
StrList.push_back("Wireframe");
|
||||
StrList.push_back("Points");
|
||||
|
||||
return StrList;
|
||||
return StrList;
|
||||
}
|
||||
|
||||
// ------------------------------------------------------------------
|
||||
|
||||
PROPERTY_SOURCE(PartGui::ViewProviderSpiralParametric, PartGui::ViewProviderSpline)
|
||||
|
||||
|
||||
ViewProviderSpiralParametric::ViewProviderSpiralParametric()
|
||||
{
|
||||
sPixmap = "Part_Spiral_Parametric.svg";
|
||||
}
|
||||
|
||||
ViewProviderSpiralParametric::~ViewProviderSpiralParametric()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
std::vector<std::string> ViewProviderSpiralParametric::getDisplayModes(void) const
|
||||
{
|
||||
// add your own modes
|
||||
std::vector<std::string> StrList;
|
||||
StrList.push_back("Wireframe");
|
||||
StrList.push_back("Points");
|
||||
|
||||
return StrList;
|
||||
}
|
||||
|
||||
@@ -24,24 +24,12 @@
|
||||
#ifndef PARTGUI_VIEWPROVIDERHELIXPARAMETRIC_H
|
||||
#define PARTGUI_VIEWPROVIDERHELIXPARAMETRIC_H
|
||||
|
||||
#include "ViewProvider.h"
|
||||
|
||||
|
||||
class TopoDS_Shape;
|
||||
class TopoDS_Face;
|
||||
class SoSeparator;
|
||||
class SbVec3f;
|
||||
class SoTransform;
|
||||
|
||||
namespace Gui {
|
||||
class View3DInventorViewer;
|
||||
class SoFCSelection;
|
||||
}
|
||||
#include "ViewProviderSpline.h"
|
||||
|
||||
namespace PartGui {
|
||||
|
||||
|
||||
class PartGuiExport ViewProviderHelixParametric:public ViewProviderPart
|
||||
class PartGuiExport ViewProviderHelixParametric : public ViewProviderSpline
|
||||
{
|
||||
PROPERTY_HEADER(PartGui::ViewProviderHelixParametric);
|
||||
|
||||
@@ -50,11 +38,19 @@ public:
|
||||
ViewProviderHelixParametric();
|
||||
/// destructor
|
||||
virtual ~ViewProviderHelixParametric();
|
||||
|
||||
std::vector<std::string> getDisplayModes(void) const;
|
||||
};
|
||||
|
||||
protected:
|
||||
class PartGuiExport ViewProviderSpiralParametric : public ViewProviderSpline
|
||||
{
|
||||
PROPERTY_HEADER(PartGui::ViewProviderSpiralParametric);
|
||||
|
||||
public:
|
||||
/// constructor
|
||||
ViewProviderSpiralParametric();
|
||||
/// destructor
|
||||
virtual ~ViewProviderSpiralParametric();
|
||||
std::vector<std::string> getDisplayModes(void) const;
|
||||
};
|
||||
|
||||
} // namespace PartGui
|
||||
|
||||
Reference in New Issue
Block a user