expose more methods of Geom_Curve to Python

This commit is contained in:
wmayer
2018-09-15 11:26:26 +02:00
parent 295bb8fa86
commit c6df59969b
2 changed files with 111 additions and 19 deletions

View File

@@ -164,7 +164,36 @@ of the nearest orthogonal projection of the point.</UserDocu>
</UserDocu>
</Documentation>
</Methode>
<Attribute Name="Continuity" ReadOnly="true">
<Methode Name="reverse">
<Documentation>
<UserDocu>Changes the direction of parametrization of the curve.</UserDocu>
</Documentation>
</Methode>
<Methode Name="reversedParameter" Const="true">
<Documentation>
<UserDocu>Returns the parameter on the reversed curve for
the point of parameter U on this curve.</UserDocu>
</Documentation>
</Methode>
<Methode Name="isPeriodic" Const="true">
<Documentation>
<UserDocu>Returns true if this curve is periodic.</UserDocu>
</Documentation>
</Methode>
<Methode Name="period" Const="true">
<Documentation>
<UserDocu>Returns the period of this curve
or raises an exception if it is not periodic.</UserDocu>
</Documentation>
</Methode>
<Methode Name="isClosed" Const="true">
<Documentation>
<UserDocu>
Returns true if the curve is closed.
</UserDocu>
</Documentation>
</Methode>
<Attribute Name="Continuity" ReadOnly="true">
<Documentation>
<UserDocu>
Returns the global continuity of the curve.

View File

@@ -116,7 +116,6 @@ PyObject* GeometryCurvePy::toShape(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -322,7 +321,6 @@ PyObject* GeometryCurvePy::length(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -348,7 +346,6 @@ PyObject* GeometryCurvePy::parameterAtDistance(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -371,7 +368,6 @@ PyObject* GeometryCurvePy::value(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -401,7 +397,6 @@ PyObject* GeometryCurvePy::tangent(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -426,7 +421,6 @@ PyObject* GeometryCurvePy::normal(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -450,7 +444,6 @@ PyObject* GeometryCurvePy::curvature(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -475,7 +468,6 @@ PyObject* GeometryCurvePy::centerOfCurvature(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -501,7 +493,6 @@ PyObject* GeometryCurvePy::parameter(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -543,7 +534,6 @@ PyObject* GeometryCurvePy::makeRuledSurface(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -578,7 +568,6 @@ PyObject* GeometryCurvePy::intersect2d(PyObject *args)
return Py::new_reference_to(list);
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -600,7 +589,6 @@ PyObject* GeometryCurvePy::toBSpline(PyObject * args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -625,7 +613,6 @@ PyObject* GeometryCurvePy::toNurbs(PyObject * args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -649,7 +636,6 @@ PyObject* GeometryCurvePy::trim(PyObject * args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -703,7 +689,6 @@ PyObject* GeometryCurvePy::approximateBSpline(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PartExceptionOCCError, e.GetMessageString());
return 0;
}
@@ -801,7 +786,6 @@ PyObject* GeometryCurvePy::intersectCS(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PyExc_RuntimeError, e.GetMessageString());
return 0;
}
@@ -839,7 +823,6 @@ PyObject* GeometryCurvePy::intersectCC(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PyExc_RuntimeError, e.GetMessageString());
return 0;
}
@@ -870,7 +853,6 @@ PyObject* GeometryCurvePy::intersect(PyObject *args)
}
}
catch (Standard_Failure& e) {
PyErr_SetString(PyExc_RuntimeError, e.GetMessageString());
return 0;
}
@@ -878,3 +860,84 @@ PyObject* GeometryCurvePy::intersect(PyObject *args)
PyErr_SetString(PyExc_TypeError, "Geometry is not a curve");
return 0;
}
PyObject* GeometryCurvePy::reverse(PyObject *args)
{
if (!PyArg_ParseTuple(args, ""))
return 0;
try {
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
c->Reverse();
}
catch (Standard_Failure& e) {
PyErr_SetString(PyExc_RuntimeError, e.GetMessageString());
return 0;
}
Py_Return;
}
PyObject* GeometryCurvePy::reversedParameter(PyObject *args)
{
double p;
if (!PyArg_ParseTuple(args, "d", &p))
return 0;
try {
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
Standard_Real val = c->ReversedParameter(p);
return PyFloat_FromDouble(val);
}
catch (Standard_Failure& e) {
PyErr_SetString(PyExc_RuntimeError, e.GetMessageString());
return 0;
}
}
PyObject* GeometryCurvePy::isPeriodic(PyObject *args)
{
if (!PyArg_ParseTuple(args, ""))
return 0;
try {
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
Standard_Boolean val = c->IsPeriodic();
return PyBool_FromLong(val ? 1 : 0);
}
catch (Standard_Failure& e) {
PyErr_SetString(PyExc_RuntimeError, e.GetMessageString());
return 0;
}
}
PyObject* GeometryCurvePy::period(PyObject *args)
{
if (!PyArg_ParseTuple(args, ""))
return 0;
try {
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
Standard_Real val = c->Period();
return PyFloat_FromDouble(val);
}
catch (Standard_Failure& e) {
PyErr_SetString(PyExc_RuntimeError, e.GetMessageString());
return 0;
}
}
PyObject* GeometryCurvePy::isClosed(PyObject *args)
{
if (!PyArg_ParseTuple(args, ""))
return 0;
try {
Handle(Geom_Geometry) g = getGeometryPtr()->handle();
Handle(Geom_Curve) c = Handle(Geom_Curve)::DownCast(g);
Standard_Boolean val = c->IsClosed();
return PyBool_FromLong(val ? 1 : 0);
}
catch (Standard_Failure& e) {
PyErr_SetString(PyExc_RuntimeError, e.GetMessageString());
return 0;
}
}