Part: Wrap PyArg_ParseTupleAndKeywords
This commit is contained in:
@@ -58,6 +58,7 @@
|
||||
#endif
|
||||
|
||||
#include <Base/GeometryPyCXX.h>
|
||||
#include <Base/PyWrapParseTupleAndKeywords.h>
|
||||
#include <Base/VectorPy.h>
|
||||
|
||||
#include "GeometryCurvePy.h"
|
||||
@@ -160,16 +161,16 @@ PyObject* GeometryCurvePy::discretize(PyObject *args, PyObject *kwds)
|
||||
}
|
||||
else {
|
||||
// use Number kwds
|
||||
static char* kwds_numPoints[] = {"Number","First","Last",nullptr};
|
||||
static const std::array<const char *, 4> kwds_numPoints {"Number", "First", "Last", nullptr};
|
||||
PyErr_Clear();
|
||||
if (PyArg_ParseTupleAndKeywords(args, kwds, "i|dd", kwds_numPoints, &numPoints, &first, &last)) {
|
||||
if (Base::Wrapped_ParseTupleAndKeywords(args, kwds, "i|dd", kwds_numPoints, &numPoints, &first, &last)) {
|
||||
uniformAbscissaPoints = true;
|
||||
}
|
||||
else {
|
||||
// use Abscissa kwds
|
||||
static char* kwds_Distance[] = {"Distance","First","Last",nullptr};
|
||||
static const std::array<const char *, 4> kwds_Distance {"Distance", "First", "Last", nullptr};
|
||||
PyErr_Clear();
|
||||
if (PyArg_ParseTupleAndKeywords(args, kwds, "d|dd", kwds_Distance, &distance, &first, &last)) {
|
||||
if (Base::Wrapped_ParseTupleAndKeywords(args, kwds, "d|dd", kwds_Distance, &distance, &first, &last)) {
|
||||
uniformAbscissaDistance = true;
|
||||
}
|
||||
}
|
||||
@@ -199,10 +200,10 @@ PyObject* GeometryCurvePy::discretize(PyObject *args, PyObject *kwds)
|
||||
}
|
||||
|
||||
// use Deflection kwds
|
||||
static char* kwds_Deflection[] = {"Deflection","First","Last",nullptr};
|
||||
static const std::array<const char *, 4> kwds_Deflection {"Deflection", "First", "Last", nullptr};
|
||||
PyErr_Clear();
|
||||
double deflection;
|
||||
if (PyArg_ParseTupleAndKeywords(args, kwds, "d|dd", kwds_Deflection, &deflection, &first, &last)) {
|
||||
if (Base::Wrapped_ParseTupleAndKeywords(args, kwds, "d|dd", kwds_Deflection, &deflection, &first, &last)) {
|
||||
GCPnts_UniformDeflection discretizer(adapt, deflection, first, last);
|
||||
if (discretizer.IsDone () && discretizer.NbPoints () > 0) {
|
||||
Py::List points;
|
||||
@@ -221,12 +222,14 @@ PyObject* GeometryCurvePy::discretize(PyObject *args, PyObject *kwds)
|
||||
}
|
||||
|
||||
// use TangentialDeflection kwds
|
||||
static char* kwds_TangentialDeflection[] = {"Angular","Curvature","First","Last","Minimum",nullptr};
|
||||
static const std::array<const char *, 6> kwds_TangentialDeflection{"Angular", "Curvature", "First", "Last",
|
||||
"Minimum", nullptr};
|
||||
PyErr_Clear();
|
||||
double angular;
|
||||
double curvature;
|
||||
int minimumPoints = 2;
|
||||
if (PyArg_ParseTupleAndKeywords(args, kwds, "dd|ddi", kwds_TangentialDeflection, &angular, &curvature, &first, &last, &minimumPoints)) {
|
||||
if (Base::Wrapped_ParseTupleAndKeywords(args, kwds, "dd|ddi", kwds_TangentialDeflection, &angular, &curvature,
|
||||
&first, &last, &minimumPoints)) {
|
||||
GCPnts_TangentialDeflection discretizer(adapt, first, last, angular, curvature, minimumPoints);
|
||||
if (discretizer.NbPoints () > 0) {
|
||||
Py::List points;
|
||||
@@ -245,10 +248,11 @@ PyObject* GeometryCurvePy::discretize(PyObject *args, PyObject *kwds)
|
||||
}
|
||||
|
||||
// use QuasiNumber kwds
|
||||
static char* kwds_QuasiNumPoints[] = {"QuasiNumber","First","Last",nullptr};
|
||||
static const std::array<const char *, 4> kwds_QuasiNumPoints {"QuasiNumber", "First", "Last", nullptr};
|
||||
PyErr_Clear();
|
||||
int quasiNumPoints;
|
||||
if (PyArg_ParseTupleAndKeywords(args, kwds, "i|dd", kwds_QuasiNumPoints, &quasiNumPoints, &first, &last)) {
|
||||
if (Base::Wrapped_ParseTupleAndKeywords(args, kwds, "i|dd", kwds_QuasiNumPoints, &quasiNumPoints, &first,
|
||||
&last)) {
|
||||
GCPnts_QuasiUniformAbscissa discretizer(adapt, quasiNumPoints, first, last);
|
||||
if (discretizer.NbPoints () > 0) {
|
||||
Py::List points;
|
||||
@@ -267,10 +271,11 @@ PyObject* GeometryCurvePy::discretize(PyObject *args, PyObject *kwds)
|
||||
}
|
||||
|
||||
// use QuasiDeflection kwds
|
||||
static char* kwds_QuasiDeflection[] = {"QuasiDeflection","First","Last",nullptr};
|
||||
static const std::array<const char *, 4> kwds_QuasiDeflection {"QuasiDeflection", "First", "Last", nullptr};
|
||||
PyErr_Clear();
|
||||
double quasiDeflection;
|
||||
if (PyArg_ParseTupleAndKeywords(args, kwds, "d|dd", kwds_QuasiDeflection, &quasiDeflection, &first, &last)) {
|
||||
if (Base::Wrapped_ParseTupleAndKeywords(args, kwds, "d|dd", kwds_QuasiDeflection, &quasiDeflection, &first,
|
||||
&last)) {
|
||||
GCPnts_QuasiUniformDeflection discretizer(adapt, quasiDeflection, first, last);
|
||||
if (discretizer.NbPoints () > 0) {
|
||||
Py::List points;
|
||||
@@ -554,12 +559,13 @@ PyObject* GeometryCurvePy::normal(PyObject *args)
|
||||
|
||||
PyObject* GeometryCurvePy::projectPoint(PyObject *args, PyObject* kwds)
|
||||
{
|
||||
PyObject* v;
|
||||
const char* meth = "NearestPoint";
|
||||
static char *kwlist[] = {"Point", "Method", nullptr};
|
||||
if (!PyArg_ParseTupleAndKeywords(args, kwds, "O!|s", kwlist,
|
||||
&Base::VectorPy::Type, &v, &meth))
|
||||
PyObject *v;
|
||||
const char *meth = "NearestPoint";
|
||||
static const std::array<const char *, 3> kwlist{"Point", "Method", nullptr};
|
||||
if (Base::Wrapped_ParseTupleAndKeywords(args, kwds, "O!|s", kwlist,
|
||||
&Base::VectorPy::Type, &v, &meth)) {
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
try {
|
||||
Base::Vector3d vec = Py::Vector(v, false).toVector();
|
||||
|
||||
Reference in New Issue
Block a user