PyObject *Any_BPy_Interface1D_from_Interface1D(Interface1D& if1D) { if (typeid(if1D) == typeid(ViewEdge)) { return BPy_ViewEdge_from_ViewEdge(dynamic_cast<ViewEdge&>(if1D)); } else if (typeid(if1D) == typeid(Chain)) { return BPy_Chain_from_Chain(dynamic_cast<Chain&>(if1D)); } else if (typeid(if1D) == typeid(Stroke)) { return BPy_Stroke_from_Stroke(dynamic_cast<Stroke&>(if1D)); } else if (typeid(if1D) == typeid(FEdgeSharp)) { return BPy_FEdgeSharp_from_FEdgeSharp(dynamic_cast<FEdgeSharp&>(if1D)); } else if (typeid(if1D) == typeid(FEdgeSmooth)) { return BPy_FEdgeSmooth_from_FEdgeSmooth(dynamic_cast<FEdgeSmooth&>(if1D)); } else if (typeid(if1D) == typeid(FEdge)) { return BPy_FEdge_from_FEdge(dynamic_cast<FEdge&>(if1D)); } else if (typeid(if1D) == typeid(Interface1D)) { return BPy_Interface1D_from_Interface1D(if1D); } string msg("unexpected type: " + if1D.getExactTypeName()); PyErr_SetString(PyExc_TypeError, msg.c_str()); return NULL; }
static PyObject *Operators_get_stroke_from_index(BPy_Operators * /*self*/, PyObject *args, PyObject *kwds) { static const char *kwlist[] = {"i", NULL}; unsigned int i; if (!PyArg_ParseTupleAndKeywords(args, kwds, "I", (char **)kwlist, &i)) return NULL; if (i >= Operators::getStrokesSize()) { PyErr_SetString(PyExc_IndexError, "index out of range"); return NULL; } return BPy_Stroke_from_Stroke(*(Operators::getStrokeFromIndex(i))); }
// StrokeShader: shade int Director_BPy_StrokeShader_shade(StrokeShader *ss, Stroke& s) { if (!ss->py_ss) { // internal error PyErr_SetString(PyExc_RuntimeError, "Reference to Python object (py_ss) not initialized"); return -1; } PyObject *arg = BPy_Stroke_from_Stroke(s); if (!arg) return -1; PyObject *result = PyObject_CallMethod((PyObject *)ss->py_ss, "shade", "O", arg); Py_DECREF(arg); if (!result) return -1; Py_DECREF(result); return 0; }