25 "Class hierarchy: :class:`Interface1D` > :class:`FEdge` > :class:`FEdgeSmooth`\n"
27 "Class defining a smooth edge. This kind of edge typically runs across\n"
28 "a face of the input mesh. It can be a silhouette, a ridge or valley,\n"
29 "a suggestive contour.\n"
31 ".. method:: __init__()\n"
32 " __init__(brother)\n"
33 " __init__(first_vertex, second_vertex)\n"
35 " Builds an :class:`FEdgeSmooth` using the default constructor,\n"
36 " copy constructor, or between two :class:`SVertex`.\n"
38 " :arg brother: An FEdgeSmooth object.\n"
39 " :type brother: :class:`FEdgeSmooth`\n"
40 " :arg first_vertex: The first SVertex object.\n"
41 " :type first_vertex: :class:`SVertex`\n"
42 " :arg second_vertex: The second SVertex object.\n"
43 " :type second_vertex: :class:`SVertex`\n");
46 static const char *kwlist_1[] = {
"brother",
nullptr};
47 static const char *kwlist_2[] = {
"first_vertex",
"second_vertex",
nullptr};
48 PyObject *obj1 =
nullptr, *obj2 =
nullptr;
50 if (PyArg_ParseTupleAndKeywords(args, kwds,
"|O!", (
char **)kwlist_1, &
FEdgeSmooth_Type, &obj1))
59 else if ((
void)PyErr_Clear(),
60 PyArg_ParseTupleAndKeywords(
66 PyErr_SetString(PyExc_TypeError,
"invalid argument(s)");
70 self->py_fe.py_if1D.if1D =
self->fes;
71 self->py_fe.py_if1D.borrowed =
false;
98 Vec3r p(bmo->data[0], bmo->data[1], bmo->data[2]);
99 self->fes->setNormal(p);
107 bmo->data[index] = p[index];
115 p[index] = bmo->data[index];
116 self->fes->setNormal(p);
139 FEdgeSmooth_normal_doc,
140 "The normal of the face that this FEdge is running across.\n"
142 ":type: :class:`mathutils.Vector`\n");
155 self->fes->setNormal(p);
161 FEdgeSmooth_material_index_doc,
162 "The index of the material of the face that this FEdge is running across.\n"
167 return PyLong_FromLong(
self->fes->frs_materialIndex());
174 uint i = PyLong_AsUnsignedLong(value);
175 if (PyErr_Occurred()) {
178 self->fes->setFrsMaterialIndex(
i);
184 FEdgeSmooth_material_doc,
185 "The material of the face that this FEdge is running across.\n"
187 ":type: :class:`Material`\n");
195 FEdgeSmooth_face_mark_doc,
196 "The face mark of the face that this FEdge is running across.\n"
206 if (!PyBool_Check(value)) {
217 FEdgeSmooth_normal_doc,
222 FEdgeSmooth_material_index_doc,
227 FEdgeSmooth_material_doc,
232 FEdgeSmooth_face_mark_doc,
234 {
nullptr,
nullptr,
nullptr,
nullptr,
nullptr}
240 PyVarObject_HEAD_INIT(
nullptr, 0)
259 Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE,
bool bool_from_PyBool(PyObject *b)
PyObject * PyBool_from_bool(bool b)
PyObject * BPy_FrsMaterial_from_FrsMaterial(const FrsMaterial &m)
static Mathutils_Callback FEdgeSmooth_mathutils_cb
static int FEdgeSmooth_material_index_set(BPy_FEdgeSmooth *self, PyObject *value, void *)
static int FEdgeSmooth_mathutils_get(BaseMathObject *bmo, int)
PyDoc_STRVAR(FEdgeSmooth_doc, "Class hierarchy: :class:`Interface1D` > :class:`FEdge` > :class:`FEdgeSmooth`\n" "\n" "Class defining a smooth edge. This kind of edge typically runs across\n" "a face of the input mesh. It can be a silhouette, a ridge or valley,\n" "a suggestive contour.\n" "\n" ".. method:: __init__()\n" " __init__(brother)\n" " __init__(first_vertex, second_vertex)\n" "\n" " Builds an :class:`FEdgeSmooth` using the default constructor,\n" " copy constructor, or between two :class:`SVertex`.\n" "\n" " :arg brother: An FEdgeSmooth object.\n" " :type brother: :class:`FEdgeSmooth`\n" " :arg first_vertex: The first SVertex object.\n" " :type first_vertex: :class:`SVertex`\n" " :arg second_vertex: The second SVertex object.\n" " :type second_vertex: :class:`SVertex`\n")
void FEdgeSmooth_mathutils_register_callback()
static int FEdgeSmooth_mathutils_set_index(BaseMathObject *bmo, int, int index)
static PyObject * FEdgeSmooth_normal_get(BPy_FEdgeSmooth *self, void *)
static int FEdgeSmooth_normal_set(BPy_FEdgeSmooth *self, PyObject *value, void *)
static PyObject * FEdgeSmooth_material_index_get(BPy_FEdgeSmooth *self, void *)
static int FEdgeSmooth_mathutils_check(BaseMathObject *bmo)
PyTypeObject FEdgeSmooth_Type
static PyObject * FEdgeSmooth_face_mark_get(BPy_FEdgeSmooth *self, void *)
static int FEdgeSmooth_mathutils_set(BaseMathObject *bmo, int)
static int FEdgeSmooth_init(BPy_FEdgeSmooth *self, PyObject *args, PyObject *kwds)
static uchar FEdgeSmooth_mathutils_cb_index
static PyObject * FEdgeSmooth_material_get(BPy_FEdgeSmooth *self, void *)
static int FEdgeSmooth_face_mark_set(BPy_FEdgeSmooth *self, PyObject *value, void *)
static int FEdgeSmooth_mathutils_get_index(BaseMathObject *bmo, int, int index)
static PyGetSetDef BPy_FEdgeSmooth_getseters[]
#define BPy_FEdgeSmooth_Check(v)
PyTypeObject SVertex_Type
ATTR_WARN_UNUSED_RESULT const BMVert * v
int mathutils_array_parse(float *array, int array_num_min, int array_num_max, PyObject *value, const char *error_prefix)
uchar Mathutils_RegisterCallback(Mathutils_Callback *cb)
PyObject * Vector_CreatePyObject_cb(PyObject *cb_user, int vec_num, uchar cb_type, uchar cb_subtype)
VecMat::Vec3< real > Vec3r