5
5
#include <Eigen/Array>
6
6
#include <Eigen/Geometry>
9
12
PyGetSetDef Vector3f_getset[] = {
10
{"x", (getter)Vector3f_getx, (setter)Vector3f_setx, "x", NULL},
11
{"y", (getter)Vector3f_gety, (setter)Vector3f_sety, "y", NULL},
12
{"z", (getter)Vector3f_getz, (setter)Vector3f_setz, "z", NULL},
13
{"x", (getter)Vector3f_get_x, (setter)Vector3f_set_x, "", NULL},
14
{"y", (getter)Vector3f_get_y, (setter)Vector3f_set_y, "", NULL},
15
{"z", (getter)Vector3f_get_z, (setter)Vector3f_set_z, "", NULL},
17
{"norm", (getter)Vector3f_get_norm, NULL, "", NULL},
18
{"norm_sq", (getter)Vector3f_get_norm_sq, NULL, "", NULL},
19
{"normalized", (getter)Vector3f_get_normalized, NULL, "", NULL},
30
38
{"cross", (PyCFunction)Vector3f_cross, METH_O,
33
{"norm", (PyCFunction)Vector3f_norm, METH_NOARGS,
35
{"norm_sq", (PyCFunction)Vector3f_norm_sq, METH_NOARGS,
37
{"normalized", (PyCFunction)Vector3f_normalized, METH_NOARGS,
39
41
{"normalize", (PyCFunction)Vector3f_normalize, METH_NOARGS,
89
91
"pyeigen.Vector3f", // tp_name
90
92
sizeof(Vector3f), // tp_basicsize
92
(destructor)Vector3f_dealloc, // tp_dealloc
146
PyObject* Vector3f_new(PyTypeObject* type, PyObject* args,
148
PyObject* Vector3f_new(PyTypeObject* type, PyObject* args, PyObject* kwds)
149
Vector3f* self = (Vector3f*)type->tp_alloc(type, 0);
150
return (PyObject*)self;
150
return type->tp_alloc(type, 0);
153
153
int Vector3f_init(Vector3f* self, PyObject* args, PyObject* kwds)
161
void Vector3f_dealloc(Vector3f* self)
163
self->ob_type->tp_free((PyObject*)self);
167
PyObject* Vector3f_getx(Vector3f* self, void* closure)
162
PyObject* Vector3f_get_x(Vector3f* self, void* closure)
169
164
return PyFloat_FromDouble(self->vector.x());
172
int Vector3f_setx(Vector3f* self, PyObject* value, void* closure)
167
int Vector3f_set_x(Vector3f* self, PyObject* value, void* closure)
174
169
self->vector.x() = (float)PyFloat_AsDouble(value);
175
170
if(PyErr_Occurred() != NULL)
181
PyObject* Vector3f_gety(Vector3f* self, void* closure)
176
PyObject* Vector3f_get_y(Vector3f* self, void* closure)
183
178
return PyFloat_FromDouble(self->vector.y());
186
int Vector3f_sety(Vector3f* self, PyObject* value, void* closure)
181
int Vector3f_set_y(Vector3f* self, PyObject* value, void* closure)
188
183
self->vector.y() = (float)PyFloat_AsDouble(value);
189
184
if(PyErr_Occurred() != NULL)
195
PyObject* Vector3f_getz(Vector3f* self, void* closure)
190
PyObject* Vector3f_get_z(Vector3f* self, void* closure)
197
192
return PyFloat_FromDouble(self->vector.z());
200
int Vector3f_setz(Vector3f* self, PyObject* value, void* closure)
195
int Vector3f_set_z(Vector3f* self, PyObject* value, void* closure)
202
197
self->vector.z() = (float)PyFloat_AsDouble(value);
203
198
if(PyErr_Occurred() != NULL)
204
PyObject* Vector3f_get_norm(Vector3f* self, void* closure)
206
return PyFloat_FromDouble(self->vector.norm());
209
PyObject* Vector3f_get_norm_sq(Vector3f* self, void* closure)
211
return PyFloat_FromDouble(self->vector.squaredNorm());
214
PyObject* Vector3f_get_normalized(Vector3f* self, void* closure)
216
Vector3f* result = PyObject_New(Vector3f, &Vector3fType);
218
result->vector = self->vector.normalized();
220
return (PyObject*)result;
210
224
PyObject* Vector3f_set(Vector3f* self, PyObject* args)
275
289
return (PyObject*)result;
278
PyObject* Vector3f_norm(Vector3f* self, PyObject* noargs)
280
return PyFloat_FromDouble(self->vector.norm());
283
PyObject* Vector3f_norm_sq(Vector3f* self, PyObject* noargs)
285
return PyFloat_FromDouble(self->vector.squaredNorm());
288
PyObject* Vector3f_normalized(Vector3f* self, PyObject* noargs)
290
Vector3f* result = PyObject_New(Vector3f, &Vector3fType);
292
result->vector = self->vector.normalized();
294
return (PyObject*)result;
297
292
PyObject* Vector3f_normalize(Vector3f* self, PyObject* noargs)
299
294
self->vector.normalize();