Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'source/blender/freestyle/intern/python/Interface0D/BPy_CurvePoint.cpp')
-rw-r--r--source/blender/freestyle/intern/python/Interface0D/BPy_CurvePoint.cpp388
1 files changed, 206 insertions, 182 deletions
diff --git a/source/blender/freestyle/intern/python/Interface0D/BPy_CurvePoint.cpp b/source/blender/freestyle/intern/python/Interface0D/BPy_CurvePoint.cpp
index d000677ab55..e685491f682 100644
--- a/source/blender/freestyle/intern/python/Interface0D/BPy_CurvePoint.cpp
+++ b/source/blender/freestyle/intern/python/Interface0D/BPy_CurvePoint.cpp
@@ -32,236 +32,260 @@ extern "C" {
/*----------------------CurvePoint methods----------------------------*/
PyDoc_STRVAR(CurvePoint_doc,
-"Class hierarchy: :class:`Interface0D` > :class:`CurvePoint`\n"
-"\n"
-"Class to represent a point of a curve. A CurvePoint can be any point\n"
-"of a 1D curve (it doesn't have to be a vertex of the curve). Any\n"
-":class:`Interface1D` is built upon ViewEdges, themselves built upon\n"
-"FEdges. Therefore, a curve is basically a polyline made of a list of\n"
-":class:`SVertex` objects. Thus, a CurvePoint is built by linearly\n"
-"interpolating two :class:`SVertex` instances. CurvePoint can be used\n"
-"as virtual points while querying 0D information along a curve at a\n"
-"given resolution.\n"
-"\n"
-".. method:: __init__()\n"
-"\n"
-" Defult constructor.\n"
-"\n"
-".. method:: __init__(brother)\n"
-"\n"
-" Copy constructor.\n"
-"\n"
-" :arg brother: A CurvePoint object.\n"
-" :type brother: :class:`CurvePoint`\n"
-"\n"
-".. method:: __init__(first_vertex, second_vertex, t2d)\n"
-"\n"
-" Builds a CurvePoint from two SVertex objects and an interpolation parameter.\n"
-"\n"
-" :arg first_vertex: The first SVertex.\n"
-" :type first_vertex: :class:`SVertex`\n"
-" :arg second_vertex: The second SVertex.\n"
-" :type second_vertex: :class:`SVertex`\n"
-" :arg t2d: A 2D interpolation parameter used to linearly interpolate\n"
-" first_vertex and second_vertex.\n"
-" :type t2d: float\n"
-"\n"
-".. method:: __init__(first_point, second_point, t2d)\n"
-"\n"
-" Builds a CurvePoint from two CurvePoint objects and an interpolation\n"
-" parameter.\n"
-"\n"
-" :arg first_point: The first CurvePoint.\n"
-" :type first_point: :class:`CurvePoint`\n"
-" :arg second_point: The second CurvePoint.\n"
-" :type second_point: :class:`CurvePoint`\n"
-" :arg t2d: The 2D interpolation parameter used to linearly interpolate\n"
-" first_point and second_point.\n"
-" :type t2d: float");
+ "Class hierarchy: :class:`Interface0D` > :class:`CurvePoint`\n"
+ "\n"
+ "Class to represent a point of a curve. A CurvePoint can be any point\n"
+ "of a 1D curve (it doesn't have to be a vertex of the curve). Any\n"
+ ":class:`Interface1D` is built upon ViewEdges, themselves built upon\n"
+ "FEdges. Therefore, a curve is basically a polyline made of a list of\n"
+ ":class:`SVertex` objects. Thus, a CurvePoint is built by linearly\n"
+ "interpolating two :class:`SVertex` instances. CurvePoint can be used\n"
+ "as virtual points while querying 0D information along a curve at a\n"
+ "given resolution.\n"
+ "\n"
+ ".. method:: __init__()\n"
+ "\n"
+ " Defult constructor.\n"
+ "\n"
+ ".. method:: __init__(brother)\n"
+ "\n"
+ " Copy constructor.\n"
+ "\n"
+ " :arg brother: A CurvePoint object.\n"
+ " :type brother: :class:`CurvePoint`\n"
+ "\n"
+ ".. method:: __init__(first_vertex, second_vertex, t2d)\n"
+ "\n"
+ " Builds a CurvePoint from two SVertex objects and an interpolation parameter.\n"
+ "\n"
+ " :arg first_vertex: The first SVertex.\n"
+ " :type first_vertex: :class:`SVertex`\n"
+ " :arg second_vertex: The second SVertex.\n"
+ " :type second_vertex: :class:`SVertex`\n"
+ " :arg t2d: A 2D interpolation parameter used to linearly interpolate\n"
+ " first_vertex and second_vertex.\n"
+ " :type t2d: float\n"
+ "\n"
+ ".. method:: __init__(first_point, second_point, t2d)\n"
+ "\n"
+ " Builds a CurvePoint from two CurvePoint objects and an interpolation\n"
+ " parameter.\n"
+ "\n"
+ " :arg first_point: The first CurvePoint.\n"
+ " :type first_point: :class:`CurvePoint`\n"
+ " :arg second_point: The second CurvePoint.\n"
+ " :type second_point: :class:`CurvePoint`\n"
+ " :arg t2d: The 2D interpolation parameter used to linearly interpolate\n"
+ " first_point and second_point.\n"
+ " :type t2d: float");
static int CurvePoint_init(BPy_CurvePoint *self, PyObject *args, PyObject *kwds)
{
- static const char *kwlist_1[] = {"brother", NULL};
- static const char *kwlist_2[] = {"first_vertex", "second_vertex", "t2d", NULL};
- static const char *kwlist_3[] = {"first_point", "second_point", "t2d", NULL};
- PyObject *obj1 = 0, *obj2 = 0;
- float t2d;
+ static const char *kwlist_1[] = {"brother", NULL};
+ static const char *kwlist_2[] = {"first_vertex", "second_vertex", "t2d", NULL};
+ static const char *kwlist_3[] = {"first_point", "second_point", "t2d", NULL};
+ PyObject *obj1 = 0, *obj2 = 0;
+ float t2d;
- if (PyArg_ParseTupleAndKeywords(args, kwds, "|O!", (char **)kwlist_1, &CurvePoint_Type, &obj1)) {
- if (!obj1)
- self->cp = new CurvePoint();
- else
- self->cp = new CurvePoint(*(((BPy_CurvePoint *)obj1)->cp));
- }
- else if (PyErr_Clear(),
- PyArg_ParseTupleAndKeywords(args, kwds, "O!O!f", (char **)kwlist_2,
- &SVertex_Type, &obj1, &SVertex_Type, &obj2, &t2d))
- {
- self->cp = new CurvePoint(((BPy_SVertex *)obj1)->sv, ((BPy_SVertex *)obj2)->sv, t2d);
- }
- else if (PyErr_Clear(),
- PyArg_ParseTupleAndKeywords(args, kwds, "O!O!f", (char **)kwlist_3,
- &CurvePoint_Type, &obj1, &CurvePoint_Type, &obj2, &t2d))
- {
- CurvePoint *cp1 = ((BPy_CurvePoint *)obj1)->cp;
- CurvePoint *cp2 = ((BPy_CurvePoint *)obj2)->cp;
- if (!cp1 || cp1->A() == 0 || cp1->B() == 0) {
- PyErr_SetString(PyExc_TypeError, "argument 1 is an invalid CurvePoint object");
- return -1;
- }
- if (!cp2 || cp2->A() == 0 || cp2->B() == 0) {
- PyErr_SetString(PyExc_TypeError, "argument 2 is an invalid CurvePoint object");
- return -1;
- }
- self->cp = new CurvePoint(cp1, cp2, t2d);
- }
- else {
- PyErr_SetString(PyExc_TypeError, "invalid argument(s)");
- return -1;
- }
- self->py_if0D.if0D = self->cp;
- self->py_if0D.borrowed = false;
- return 0;
+ if (PyArg_ParseTupleAndKeywords(args, kwds, "|O!", (char **)kwlist_1, &CurvePoint_Type, &obj1)) {
+ if (!obj1)
+ self->cp = new CurvePoint();
+ else
+ self->cp = new CurvePoint(*(((BPy_CurvePoint *)obj1)->cp));
+ }
+ else if (PyErr_Clear(),
+ PyArg_ParseTupleAndKeywords(args,
+ kwds,
+ "O!O!f",
+ (char **)kwlist_2,
+ &SVertex_Type,
+ &obj1,
+ &SVertex_Type,
+ &obj2,
+ &t2d)) {
+ self->cp = new CurvePoint(((BPy_SVertex *)obj1)->sv, ((BPy_SVertex *)obj2)->sv, t2d);
+ }
+ else if (PyErr_Clear(),
+ PyArg_ParseTupleAndKeywords(args,
+ kwds,
+ "O!O!f",
+ (char **)kwlist_3,
+ &CurvePoint_Type,
+ &obj1,
+ &CurvePoint_Type,
+ &obj2,
+ &t2d)) {
+ CurvePoint *cp1 = ((BPy_CurvePoint *)obj1)->cp;
+ CurvePoint *cp2 = ((BPy_CurvePoint *)obj2)->cp;
+ if (!cp1 || cp1->A() == 0 || cp1->B() == 0) {
+ PyErr_SetString(PyExc_TypeError, "argument 1 is an invalid CurvePoint object");
+ return -1;
+ }
+ if (!cp2 || cp2->A() == 0 || cp2->B() == 0) {
+ PyErr_SetString(PyExc_TypeError, "argument 2 is an invalid CurvePoint object");
+ return -1;
+ }
+ self->cp = new CurvePoint(cp1, cp2, t2d);
+ }
+ else {
+ PyErr_SetString(PyExc_TypeError, "invalid argument(s)");
+ return -1;
+ }
+ self->py_if0D.if0D = self->cp;
+ self->py_if0D.borrowed = false;
+ return 0;
}
-///bool operator== (const CurvePoint &b)
+///bool operator== (const CurvePoint &b)
/*----------------------CurvePoint get/setters ----------------------------*/
PyDoc_STRVAR(CurvePoint_first_svertex_doc,
-"The first SVertex upon which the CurvePoint is built.\n"
-"\n"
-":type: :class:`SVertex`");
+ "The first SVertex upon which the CurvePoint is built.\n"
+ "\n"
+ ":type: :class:`SVertex`");
static PyObject *CurvePoint_first_svertex_get(BPy_CurvePoint *self, void *UNUSED(closure))
{
- SVertex *A = self->cp->A();
- if (A)
- return BPy_SVertex_from_SVertex(*A);
- Py_RETURN_NONE;
+ SVertex *A = self->cp->A();
+ if (A)
+ return BPy_SVertex_from_SVertex(*A);
+ Py_RETURN_NONE;
}
-static int CurvePoint_first_svertex_set(BPy_CurvePoint *self, PyObject *value, void *UNUSED(closure))
+static int CurvePoint_first_svertex_set(BPy_CurvePoint *self,
+ PyObject *value,
+ void *UNUSED(closure))
{
- if (!BPy_SVertex_Check(value)) {
- PyErr_SetString(PyExc_TypeError, "value must be an SVertex");
- return -1;
- }
- self->cp->setA(((BPy_SVertex *)value)->sv);
- return 0;
+ if (!BPy_SVertex_Check(value)) {
+ PyErr_SetString(PyExc_TypeError, "value must be an SVertex");
+ return -1;
+ }
+ self->cp->setA(((BPy_SVertex *)value)->sv);
+ return 0;
}
PyDoc_STRVAR(CurvePoint_second_svertex_doc,
-"The second SVertex upon which the CurvePoint is built.\n"
-"\n"
-":type: :class:`SVertex`");
+ "The second SVertex upon which the CurvePoint is built.\n"
+ "\n"
+ ":type: :class:`SVertex`");
static PyObject *CurvePoint_second_svertex_get(BPy_CurvePoint *self, void *UNUSED(closure))
{
- SVertex *B = self->cp->B();
- if (B)
- return BPy_SVertex_from_SVertex(*B);
- Py_RETURN_NONE;
+ SVertex *B = self->cp->B();
+ if (B)
+ return BPy_SVertex_from_SVertex(*B);
+ Py_RETURN_NONE;
}
-static int CurvePoint_second_svertex_set(BPy_CurvePoint *self, PyObject *value, void *UNUSED(closure))
+static int CurvePoint_second_svertex_set(BPy_CurvePoint *self,
+ PyObject *value,
+ void *UNUSED(closure))
{
- if (!BPy_SVertex_Check(value)) {
- PyErr_SetString(PyExc_TypeError, "value must be an SVertex");
- return -1;
- }
- self->cp->setB(((BPy_SVertex *)value)->sv);
- return 0;
+ if (!BPy_SVertex_Check(value)) {
+ PyErr_SetString(PyExc_TypeError, "value must be an SVertex");
+ return -1;
+ }
+ self->cp->setB(((BPy_SVertex *)value)->sv);
+ return 0;
}
PyDoc_STRVAR(CurvePoint_fedge_doc,
-"Gets the FEdge for the two SVertices that given CurvePoints consists out of.\n"
-"A shortcut for CurvePoint.first_svertex.get_fedge(CurvePoint.second_svertex).\n"
-"\n"
-":type: :class:`FEdge`");
+ "Gets the FEdge for the two SVertices that given CurvePoints consists out of.\n"
+ "A shortcut for CurvePoint.first_svertex.get_fedge(CurvePoint.second_svertex).\n"
+ "\n"
+ ":type: :class:`FEdge`");
static PyObject *CurvePoint_fedge_get(BPy_CurvePoint *self, void *UNUSED(closure))
{
- SVertex *A = self->cp->A();
- Interface0D *B = (Interface0D *)self->cp->B();
- // B can be NULL under certain circumstances
- if (B)
- return Any_BPy_Interface1D_from_Interface1D(*(A->getFEdge(*B)));
- Py_RETURN_NONE;
+ SVertex *A = self->cp->A();
+ Interface0D *B = (Interface0D *)self->cp->B();
+ // B can be NULL under certain circumstances
+ if (B)
+ return Any_BPy_Interface1D_from_Interface1D(*(A->getFEdge(*B)));
+ Py_RETURN_NONE;
}
PyDoc_STRVAR(CurvePoint_t2d_doc,
-"The 2D interpolation parameter.\n"
-"\n"
-":type: float");
+ "The 2D interpolation parameter.\n"
+ "\n"
+ ":type: float");
static PyObject *CurvePoint_t2d_get(BPy_CurvePoint *self, void *UNUSED(closure))
{
- return PyFloat_FromDouble(self->cp->t2d());
+ return PyFloat_FromDouble(self->cp->t2d());
}
static int CurvePoint_t2d_set(BPy_CurvePoint *self, PyObject *value, void *UNUSED(closure))
{
- float scalar;
- if ((scalar = PyFloat_AsDouble(value)) == -1.0f && PyErr_Occurred()) {
- PyErr_SetString(PyExc_TypeError, "value must be a number");
- return -1;
- }
- self->cp->setT2d(scalar);
- return 0;
+ float scalar;
+ if ((scalar = PyFloat_AsDouble(value)) == -1.0f && PyErr_Occurred()) {
+ PyErr_SetString(PyExc_TypeError, "value must be a number");
+ return -1;
+ }
+ self->cp->setT2d(scalar);
+ return 0;
}
static PyGetSetDef BPy_CurvePoint_getseters[] = {
- {(char *)"first_svertex", (getter)CurvePoint_first_svertex_get, (setter)CurvePoint_first_svertex_set,
- (char *)CurvePoint_first_svertex_doc, NULL},
- {(char *)"second_svertex", (getter)CurvePoint_second_svertex_get, (setter)CurvePoint_second_svertex_set,
- (char *)CurvePoint_second_svertex_doc, NULL},
- {(char *)"fedge", (getter)CurvePoint_fedge_get, NULL,
- CurvePoint_fedge_doc, NULL},
- {(char *)"t2d", (getter)CurvePoint_t2d_get, (setter)CurvePoint_t2d_set, (char *)CurvePoint_t2d_doc, NULL},
- {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
+ {(char *)"first_svertex",
+ (getter)CurvePoint_first_svertex_get,
+ (setter)CurvePoint_first_svertex_set,
+ (char *)CurvePoint_first_svertex_doc,
+ NULL},
+ {(char *)"second_svertex",
+ (getter)CurvePoint_second_svertex_get,
+ (setter)CurvePoint_second_svertex_set,
+ (char *)CurvePoint_second_svertex_doc,
+ NULL},
+ {(char *)"fedge", (getter)CurvePoint_fedge_get, NULL, CurvePoint_fedge_doc, NULL},
+ {(char *)"t2d",
+ (getter)CurvePoint_t2d_get,
+ (setter)CurvePoint_t2d_set,
+ (char *)CurvePoint_t2d_doc,
+ NULL},
+ {NULL, NULL, NULL, NULL, NULL} /* Sentinel */
};
/*-----------------------BPy_CurvePoint type definition ------------------------------*/
PyTypeObject CurvePoint_Type = {
- PyVarObject_HEAD_INIT(NULL, 0)
- "CurvePoint", /* tp_name */
- sizeof(BPy_CurvePoint), /* tp_basicsize */
- 0, /* tp_itemsize */
- 0, /* tp_dealloc */
- 0, /* tp_print */
- 0, /* tp_getattr */
- 0, /* tp_setattr */
- 0, /* tp_reserved */
- 0, /* tp_repr */
- 0, /* tp_as_number */
- 0, /* tp_as_sequence */
- 0, /* tp_as_mapping */
- 0, /* tp_hash */
- 0, /* tp_call */
- 0, /* tp_str */
- 0, /* tp_getattro */
- 0, /* tp_setattro */
- 0, /* tp_as_buffer */
- Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
- CurvePoint_doc, /* tp_doc */
- 0, /* tp_traverse */
- 0, /* tp_clear */
- 0, /* tp_richcompare */
- 0, /* tp_weaklistoffset */
- 0, /* tp_iter */
- 0, /* tp_iternext */
- 0, /* tp_methods */
- 0, /* tp_members */
- BPy_CurvePoint_getseters, /* tp_getset */
- &Interface0D_Type, /* tp_base */
- 0, /* tp_dict */
- 0, /* tp_descr_get */
- 0, /* tp_descr_set */
- 0, /* tp_dictoffset */
- (initproc)CurvePoint_init, /* tp_init */
- 0, /* tp_alloc */
- 0, /* tp_new */
+ PyVarObject_HEAD_INIT(NULL, 0) "CurvePoint", /* tp_name */
+ sizeof(BPy_CurvePoint), /* tp_basicsize */
+ 0, /* tp_itemsize */
+ 0, /* tp_dealloc */
+ 0, /* tp_print */
+ 0, /* tp_getattr */
+ 0, /* tp_setattr */
+ 0, /* tp_reserved */
+ 0, /* tp_repr */
+ 0, /* tp_as_number */
+ 0, /* tp_as_sequence */
+ 0, /* tp_as_mapping */
+ 0, /* tp_hash */
+ 0, /* tp_call */
+ 0, /* tp_str */
+ 0, /* tp_getattro */
+ 0, /* tp_setattro */
+ 0, /* tp_as_buffer */
+ Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */
+ CurvePoint_doc, /* tp_doc */
+ 0, /* tp_traverse */
+ 0, /* tp_clear */
+ 0, /* tp_richcompare */
+ 0, /* tp_weaklistoffset */
+ 0, /* tp_iter */
+ 0, /* tp_iternext */
+ 0, /* tp_methods */
+ 0, /* tp_members */
+ BPy_CurvePoint_getseters, /* tp_getset */
+ &Interface0D_Type, /* tp_base */
+ 0, /* tp_dict */
+ 0, /* tp_descr_get */
+ 0, /* tp_descr_set */
+ 0, /* tp_dictoffset */
+ (initproc)CurvePoint_init, /* tp_init */
+ 0, /* tp_alloc */
+ 0, /* tp_new */
};
///////////////////////////////////////////////////////////////////////////////////////////