implement OffsetCurve2d
This commit is contained in:
@@ -68,7 +68,18 @@
|
||||
#include <Base/Tools.h>
|
||||
|
||||
#include "Geometry2d.h"
|
||||
#include <Mod/Part/App/Geom2d/Circle2dPy.h>
|
||||
#include <Mod/Part/App/Geom2d/Ellipse2dPy.h>
|
||||
#include <Mod/Part/App/Geom2d/Hyperbola2dPy.h>
|
||||
#include <Mod/Part/App/Geom2d/Parabola2dPy.h>
|
||||
#include <Mod/Part/App/Geom2d/ArcOfCircle2dPy.h>
|
||||
#include <Mod/Part/App/Geom2d/ArcOfEllipse2dPy.h>
|
||||
#include <Mod/Part/App/Geom2d/ArcOfHyperbola2dPy.h>
|
||||
#include <Mod/Part/App/Geom2d/ArcOfParabola2dPy.h>
|
||||
#include <Mod/Part/App/Geom2d/BezierCurve2dPy.h>
|
||||
#include <Mod/Part/App/Geom2d/BSplineCurve2dPy.h>
|
||||
#include <Mod/Part/App/Geom2d/Line2dSegmentPy.h>
|
||||
#include <Mod/Part/App/Geom2d/OffsetCurve2dPy.h>
|
||||
|
||||
using namespace Part;
|
||||
|
||||
@@ -373,8 +384,7 @@ void Geom2dBezierCurve::Restore(Base::XMLReader &/*reader*/)
|
||||
|
||||
PyObject *Geom2dBezierCurve::getPyObject(void)
|
||||
{
|
||||
return 0;
|
||||
//return new BezierCurvePy((GeomBezierCurve*)this->clone());
|
||||
return new BezierCurve2dPy(static_cast<Geom2dBezierCurve*>(this->clone()));
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
@@ -572,8 +582,7 @@ void Geom2dBSplineCurve::Restore(Base::XMLReader &/*reader*/)
|
||||
|
||||
PyObject *Geom2dBSplineCurve::getPyObject(void)
|
||||
{
|
||||
return 0;
|
||||
//return new BSplineCurvePy((GeomBSplineCurve*)this->clone());
|
||||
return new BSplineCurve2dPy(static_cast<Geom2dBSplineCurve*>(this->clone()));
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
@@ -892,8 +901,7 @@ void Geom2dCircle::Restore(Base::XMLReader& reader)
|
||||
|
||||
PyObject *Geom2dCircle::getPyObject(void)
|
||||
{
|
||||
//return new CirclePy((GeomCircle*)this->clone());
|
||||
return 0;
|
||||
return new Circle2dPy(static_cast<Geom2dCircle*>(this->clone()));
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
@@ -1018,8 +1026,7 @@ void Geom2dArcOfCircle::Restore(Base::XMLReader &reader)
|
||||
|
||||
PyObject *Geom2dArcOfCircle::getPyObject(void)
|
||||
{
|
||||
return 0;
|
||||
//return new ArcOfCirclePy(static_cast<GeomArcOfCircle*>(this->clone()));
|
||||
return new ArcOfCircle2dPy(static_cast<Geom2dArcOfCircle*>(this->clone()));
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
@@ -1178,8 +1185,7 @@ void Geom2dEllipse::Restore(Base::XMLReader& reader)
|
||||
|
||||
PyObject *Geom2dEllipse::getPyObject(void)
|
||||
{
|
||||
return 0;
|
||||
//return new EllipsePy((GeomEllipse*)this->clone());
|
||||
return new Ellipse2dPy(static_cast<Geom2dEllipse*>(this->clone()));
|
||||
}
|
||||
|
||||
void Geom2dEllipse::setHandle(const Handle_Geom2d_Ellipse &e)
|
||||
@@ -1369,8 +1375,7 @@ void Geom2dArcOfEllipse::Restore(Base::XMLReader &reader)
|
||||
|
||||
PyObject *Geom2dArcOfEllipse::getPyObject(void)
|
||||
{
|
||||
return 0;
|
||||
//return new ArcOfEllipsePy(static_cast<GeomArcOfEllipse*>(this->clone()));
|
||||
return new ArcOfEllipse2dPy(static_cast<Geom2dArcOfEllipse*>(this->clone()));
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
@@ -1493,8 +1498,7 @@ void Geom2dHyperbola::Restore(Base::XMLReader& reader)
|
||||
|
||||
PyObject *Geom2dHyperbola::getPyObject(void)
|
||||
{
|
||||
return 0;
|
||||
//return new HyperbolaPy((GeomHyperbola*)this->clone());
|
||||
return new Hyperbola2dPy(static_cast<Geom2dHyperbola*>(this->clone()));
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
@@ -1639,8 +1643,7 @@ void Geom2dArcOfHyperbola::Restore(Base::XMLReader &reader)
|
||||
|
||||
PyObject *Geom2dArcOfHyperbola::getPyObject(void)
|
||||
{
|
||||
return 0;
|
||||
//return new ArcOfHyperbolaPy(static_cast<GeomArcOfHyperbola*>(this->clone()));
|
||||
return new ArcOfHyperbola2dPy(static_cast<Geom2dArcOfHyperbola*>(this->clone()));
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
@@ -1867,8 +1870,7 @@ void Geom2dArcOfParabola::Restore(Base::XMLReader &reader)
|
||||
|
||||
PyObject *Geom2dArcOfParabola::getPyObject(void)
|
||||
{
|
||||
return 0;
|
||||
//return new ArcOfParabolaPy(static_cast<GeomArcOfParabola*>(this->clone()));
|
||||
return new ArcOfParabola2dPy(static_cast<Geom2dArcOfParabola*>(this->clone()));
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
@@ -2115,8 +2117,7 @@ void Geom2dLineSegment::Restore(Base::XMLReader &reader)
|
||||
|
||||
PyObject *Geom2dLineSegment::getPyObject(void)
|
||||
{
|
||||
return 0;
|
||||
//return new LinePy((GeomLineSegment*)this->clone());
|
||||
return new Line2dSegmentPy(static_cast<Geom2dLineSegment*>(this->clone()));
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
@@ -2174,8 +2175,7 @@ void Geom2dOffsetCurve::Restore(Base::XMLReader &/*reader*/)
|
||||
|
||||
PyObject *Geom2dOffsetCurve::getPyObject(void)
|
||||
{
|
||||
//return new OffsetCurvePy((GeomOffsetCurve*)this->clone());
|
||||
return 0;
|
||||
return new OffsetCurve2dPy(static_cast<Geom2dOffsetCurve*>(this->clone()));
|
||||
}
|
||||
|
||||
// -------------------------------------------------
|
||||
@@ -2228,5 +2228,45 @@ void Geom2dTrimmedCurve::Restore(Base::XMLReader &/*reader*/)
|
||||
|
||||
PyObject *Geom2dTrimmedCurve::getPyObject(void)
|
||||
{
|
||||
Handle_Geom2d_Curve basis = this->myCurve->BasisCurve();
|
||||
if (basis.IsNull())
|
||||
Py_Return;
|
||||
if (basis->IsKind(STANDARD_TYPE (Geom2d_Parabola))) {
|
||||
Geom2dArcOfParabola c;
|
||||
c.setHandle(this->myCurve);
|
||||
return c.getPyObject();
|
||||
}
|
||||
if (basis->IsKind(STANDARD_TYPE (Geom2d_Hyperbola))) {
|
||||
Geom2dArcOfHyperbola c;
|
||||
c.setHandle(this->myCurve);
|
||||
return c.getPyObject();
|
||||
}
|
||||
if (basis->IsKind(STANDARD_TYPE (Geom2d_Ellipse))) {
|
||||
Geom2dArcOfEllipse c;
|
||||
c.setHandle(this->myCurve);
|
||||
return c.getPyObject();
|
||||
}
|
||||
if (basis->IsKind(STANDARD_TYPE (Geom2d_Circle))) {
|
||||
Geom2dArcOfCircle c;
|
||||
c.setHandle(this->myCurve);
|
||||
return c.getPyObject();
|
||||
}
|
||||
if (basis->IsKind(STANDARD_TYPE (Geom2d_Line))) {
|
||||
Geom2dLineSegment c;
|
||||
c.setHandle(this->myCurve);
|
||||
return c.getPyObject();
|
||||
}
|
||||
if (basis->IsKind(STANDARD_TYPE (Geom2d_BSplineCurve))) {
|
||||
Geom2dBSplineCurve c;
|
||||
c.setHandle(Handle_Geom2d_BSplineCurve::DownCast(basis));
|
||||
return c.getPyObject();
|
||||
}
|
||||
if (basis->IsKind(STANDARD_TYPE (Geom2d_BezierCurve))) {
|
||||
Geom2dBezierCurve c;
|
||||
c.setHandle(Handle_Geom2d_BezierCurve::DownCast(basis));
|
||||
return c.getPyObject();
|
||||
}
|
||||
|
||||
PyErr_SetString(PyExc_RuntimeError, "Unknown curve type");
|
||||
return 0;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user