29 "Class hierarchy: :class:`Interface1D` > :class:`Curve`\n"
31 "Base class for curves made of CurvePoints. :class:`SVertex` is the\n"
32 "type of the initial curve vertices. A :class:`Chain` is a\n"
33 "specialization of a Curve.\n"
35 ".. method:: __init__()\n"
36 " __init__(brother)\n"
39 " Builds a :class:`FrsCurve` using a default constructor,\n"
40 " copy constructor or from an :class:`Id`.\n"
42 " :arg brother: A Curve object.\n"
43 " :type brother: :class:`Curve`\n"
44 " :arg id: An Id object.\n"
45 " :type id: :class:`Id`");
49 static const char *kwlist_1[] = {
"brother",
nullptr};
50 static const char *kwlist_2[] = {
"id",
nullptr};
51 PyObject *obj =
nullptr;
53 if (PyArg_ParseTupleAndKeywords(args, kwds,
"|O!", (
char **)kwlist_1, &
FrsCurve_Type, &obj)) {
61 else if ((
void)PyErr_Clear(),
62 PyArg_ParseTupleAndKeywords(args, kwds,
"O!", (
char **)kwlist_2, &
Id_Type, &obj))
67 PyErr_SetString(PyExc_TypeError,
"invalid argument(s)");
71 self->py_if1D.borrowed =
false;
77 FrsCurve_push_vertex_back_doc,
78 ".. method:: push_vertex_back(vertex)\n"
80 " Adds a single vertex at the end of the Curve.\n"
82 " :arg vertex: A vertex object.\n"
83 " :type vertex: :class:`SVertex` | :class:`CurvePoint`");
87 static const char *kwlist[] = {
"vertex",
nullptr};
88 PyObject *obj =
nullptr;
90 if (!PyArg_ParseTupleAndKeywords(args, kwds,
"O", (
char **)kwlist, &obj)) {
101 PyErr_SetString(PyExc_TypeError,
"invalid argument");
109 FrsCurve_push_vertex_front_doc,
110 ".. method:: push_vertex_front(vertex)\n"
112 " Adds a single vertex at the front of the Curve.\n"
114 " :arg vertex: A vertex object.\n"
115 " :type vertex: :class:`SVertex` | :class:`CurvePoint`");
119 static const char *kwlist[] = {
"vertex",
nullptr};
120 PyObject *obj =
nullptr;
122 if (!PyArg_ParseTupleAndKeywords(args, kwds,
"O", (
char **)kwlist, &obj)) {
133 PyErr_SetString(PyExc_TypeError,
"invalid argument");
142 METH_VARARGS | METH_KEYWORDS,
143 FrsCurve_push_vertex_back_doc},
144 {
"push_vertex_front",
146 METH_VARARGS | METH_KEYWORDS,
147 FrsCurve_push_vertex_front_doc},
148 {
nullptr,
nullptr, 0,
nullptr},
155 FrsCurve_is_empty_doc,
156 "True if the Curve doesn't have any Vertex yet.\n"
167 FrsCurve_segments_size_doc,
168 "The number of segments in the polyline constituting the Curve.\n"
174 return PyLong_FromLong(
self->c->nSegments());
182 FrsCurve_segments_size_doc,
184 {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr}
190 PyVarObject_HEAD_INIT(
nullptr, 0)
209 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
PyObject * PyBool_from_bool(bool b)
#define BPy_CurvePoint_Check(v)
static PyObject * FrsCurve_push_vertex_back(BPy_FrsCurve *self, PyObject *args, PyObject *kwds)
static int FrsCurve_init(BPy_FrsCurve *self, PyObject *args, PyObject *kwds)
PyTypeObject FrsCurve_Type
static PyGetSetDef BPy_FrsCurve_getseters[]
static PyMethodDef BPy_FrsCurve_methods[]
static PyObject * FrsCurve_segments_size_get(BPy_FrsCurve *self, void *)
PyDoc_STRVAR(FrsCurve_doc, "Class hierarchy: :class:`Interface1D` > :class:`Curve`\n" "\n" "Base class for curves made of CurvePoints. :class:`SVertex` is the\n" "type of the initial curve vertices. A :class:`Chain` is a\n" "specialization of a Curve.\n" "\n" ".. method:: __init__()\n" " __init__(brother)\n" " __init__(id)\n" "\n" " Builds a :class:`FrsCurve` using a default constructor,\n" " copy constructor or from an :class:`Id`.\n" "\n" " :arg brother: A Curve object.\n" " :type brother: :class:`Curve`\n" " :arg id: An Id object.\n" " :type id: :class:`Id`")
static PyObject * FrsCurve_push_vertex_front(BPy_FrsCurve *self, PyObject *args, PyObject *kwds)
static PyObject * FrsCurve_is_empty_get(BPy_FrsCurve *self, void *)
PyTypeObject Interface1D_Type
#define BPy_SVertex_Check(v)