builds and installs properly now
--HG-- branch : py3dutil
This commit is contained in:
parent
65350ebdfc
commit
439d8d013d
4 changed files with 46 additions and 41 deletions
|
@ -1,5 +1,6 @@
|
|||
#include "obarr.h"
|
||||
#include "cgrid.h"
|
||||
#include "vect.h"
|
||||
|
||||
|
||||
static PyMethodDef ModMethods[] = {
|
||||
|
@ -13,14 +14,17 @@ initpy3dutil(void)
|
|||
|
||||
ObarrObjectType.tp_new = PyType_GenericNew;
|
||||
CgridObjectType.tp_new = PyType_GenericNew;
|
||||
VectObjectType.tp_new = PyType_GenericNew;
|
||||
if (PyType_Ready(&ObarrObjectType) < 0)
|
||||
return;
|
||||
if (PyType_Ready(&CgridObjectType) < 0)
|
||||
return;
|
||||
if (PyType_Ready(&VectObjectType) < 0)
|
||||
return;
|
||||
|
||||
(void) Py_InitModule("py3dutil", ModMethods);
|
||||
m = Py_InitModule3("py3dutil", NULL,
|
||||
"Example module that creates an extension type.");
|
||||
"Various 3d utilities to accelerate 3d games");
|
||||
if (m == NULL)
|
||||
return;
|
||||
|
||||
|
@ -28,4 +32,5 @@ initpy3dutil(void)
|
|||
Py_INCREF(&CgridObjectType);
|
||||
PyModule_AddObject(m, "obarr", (PyObject *)&ObarrObjectType);
|
||||
PyModule_AddObject(m, "cgrid", (PyObject *)&CgridObjectType);
|
||||
PyModule_AddObject(m, "vect", (PyObject *)&VectObjectType);
|
||||
}
|
2
setup.py
2
setup.py
|
@ -2,7 +2,7 @@ from distutils.core import setup, Extension
|
|||
from cPickle import load, dump
|
||||
import os
|
||||
|
||||
module1 = Extension('pyobarr', sources = ['pyobarr.c', 'obarr.c', 'cgrid.c', 'red_black_tree.c', 'misc.c'])
|
||||
module1 = Extension('py3dutil', sources = ['py3dutil.c', 'obarr.c', 'cgrid.c', 'red_black_tree.c', 'misc.c', 'vect.c'])
|
||||
|
||||
buildno = 0
|
||||
if os.path.exists('buildno'):
|
||||
|
|
56
vect.c
56
vect.c
|
@ -1,4 +1,4 @@
|
|||
|
||||
#include "vect.h"
|
||||
#include <math.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
|
@ -22,8 +22,6 @@
|
|||
|
||||
|
||||
|
||||
staticforward PyTypeObject VectObjectType;
|
||||
|
||||
int Vect_init(VectObject *self, PyObject *args, PyObject *kwds)
|
||||
{
|
||||
#if defined (VEC3D)
|
||||
|
@ -46,7 +44,7 @@ int Vect_init(VectObject *self, PyObject *args, PyObject *kwds)
|
|||
return 0;
|
||||
}
|
||||
|
||||
PyObject* vect_get_element(PyObject* self_in, int index)
|
||||
PyObject* vect_get_element(PyObject* self_in, long index)
|
||||
{
|
||||
VectObject* self = (VectObject*)self_in;
|
||||
return PyFloat_FromDouble(self->elements[index]);
|
||||
|
@ -103,7 +101,7 @@ int Vect_true(PyObject *self_in)
|
|||
{
|
||||
VectObject *self = (VectObject*)self_in;
|
||||
int b = 1;
|
||||
int i;
|
||||
long i;
|
||||
double x;
|
||||
for (i = 0; i < VECLEN; i++)
|
||||
{
|
||||
|
@ -117,7 +115,7 @@ int Vect_true(PyObject *self_in)
|
|||
PyObject* Vect_add(PyObject *self_in, PyObject *other_in)
|
||||
{
|
||||
VectObject *self, *other, *rv;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in) || !Vect_Check(other_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "both arguments must be of type 'vect'");
|
||||
|
@ -135,7 +133,7 @@ PyObject* Vect_add(PyObject *self_in, PyObject *other_in)
|
|||
PyObject* Vect_sub(PyObject *self_in, PyObject *other_in)
|
||||
{
|
||||
VectObject *self, *other, *rv;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in) || !Vect_Check(other_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "both arguments must be of type 'vect'");
|
||||
|
@ -153,7 +151,7 @@ PyObject* Vect_sub(PyObject *self_in, PyObject *other_in)
|
|||
PyObject* Vect_mul(PyObject *self_in, PyObject *other_in)
|
||||
{
|
||||
VectObject *self, *rv;
|
||||
int i;
|
||||
long i;
|
||||
double scalar;
|
||||
if (!Vect_Check(self_in) || !PyFloat_Check(other_in))
|
||||
{
|
||||
|
@ -173,7 +171,7 @@ PyObject* Vect_mul(PyObject *self_in, PyObject *other_in)
|
|||
PyObject* Vect_div(PyObject *self_in, PyObject *other_in)
|
||||
{
|
||||
VectObject *self, *rv;
|
||||
int i;
|
||||
long i;
|
||||
double scalar;
|
||||
if (!Vect_Check(self_in) || !PyFloat_Check(other_in))
|
||||
{
|
||||
|
@ -192,7 +190,7 @@ PyObject* Vect_div(PyObject *self_in, PyObject *other_in)
|
|||
PyObject* Vect_ip_add(PyObject *self_in, PyObject *other_in)
|
||||
{
|
||||
VectObject *self, *other;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in) || !Vect_Check(other_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "both arguments must be of type 'vect'");
|
||||
|
@ -210,7 +208,7 @@ PyObject* Vect_ip_add(PyObject *self_in, PyObject *other_in)
|
|||
PyObject* Vect_ip_sub(PyObject *self_in, PyObject *other_in)
|
||||
{
|
||||
VectObject *self, *other;
|
||||
int i;
|
||||
long i;
|
||||
|
||||
if (!Vect_Check(self_in) || !Vect_Check(other_in))
|
||||
{
|
||||
|
@ -229,7 +227,7 @@ PyObject* Vect_ip_sub(PyObject *self_in, PyObject *other_in)
|
|||
PyObject* Vect_ip_mul(PyObject *self_in, PyObject *other_in)
|
||||
{
|
||||
VectObject *self;
|
||||
int i;
|
||||
long i;
|
||||
double scalar;
|
||||
if (!Vect_Check(self_in) || !PyFloat_Check(other_in))
|
||||
{
|
||||
|
@ -248,7 +246,7 @@ PyObject* Vect_ip_mul(PyObject *self_in, PyObject *other_in)
|
|||
PyObject* Vect_ip_div(PyObject *self_in, PyObject *other_in)
|
||||
{
|
||||
VectObject *self;
|
||||
int i;
|
||||
long i;
|
||||
double scalar;
|
||||
if (!Vect_Check(self_in) || !PyFloat_Check(other_in))
|
||||
{
|
||||
|
@ -267,7 +265,7 @@ PyObject* Vect_ip_div(PyObject *self_in, PyObject *other_in)
|
|||
PyObject* Vect_negate(PyObject *self_in)
|
||||
{
|
||||
VectObject *self, *rv;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -284,7 +282,7 @@ PyObject* Vect_negate(PyObject *self_in)
|
|||
PyObject* Vect_ip_negate(PyObject *self_in, PyObject *unused)
|
||||
{
|
||||
VectObject *self;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -301,7 +299,7 @@ PyObject* Vect_ip_negate(PyObject *self_in, PyObject *unused)
|
|||
PyObject* Vect_ip_zero(PyObject *self_in, PyObject *unused)
|
||||
{
|
||||
VectObject *self;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -319,7 +317,7 @@ PyObject* Vect_ip_normalize(PyObject *self_in, PyObject *unused)
|
|||
{
|
||||
VectObject *self;
|
||||
double mag, mag2;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -344,7 +342,7 @@ PyObject* Vect_mag(PyObject *self_in, PyObject *unused)
|
|||
{
|
||||
VectObject *self;
|
||||
double d;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -363,7 +361,7 @@ PyObject* Vect_mag2(PyObject *self_in, PyObject *unused)
|
|||
{
|
||||
VectObject *self;
|
||||
double d;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -381,7 +379,7 @@ PyObject* Vect_dotprod(PyObject *self_in, PyObject *args)
|
|||
{
|
||||
VectObject *self, *other;
|
||||
double d;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -413,7 +411,7 @@ PyObject* Vect_crossprod(PyObject *self_in, PyObject *unused)
|
|||
{
|
||||
VectObject *self;
|
||||
double d;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -431,7 +429,7 @@ PyObject* Vect_crossprod(PyObject *self_in, PyObject *unused)
|
|||
PyObject* Vect_average(PyObject *self_in, PyObject *args)
|
||||
{
|
||||
VectObject *self, *other, *rv;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -454,7 +452,7 @@ PyObject* Vect_dir(PyObject *self_in, PyObject *unused)
|
|||
{
|
||||
VectObject *self;
|
||||
double d;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -471,7 +469,7 @@ PyObject* Vect_dir(PyObject *self_in, PyObject *unused)
|
|||
PyObject* Vect_copy(PyObject *self_in, PyObject *unused)
|
||||
{
|
||||
VectObject *self, *rv;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -489,7 +487,7 @@ PyObject* Vect_dist(PyObject *self_in, PyObject *args)
|
|||
{
|
||||
VectObject *self, *other;
|
||||
double d, dd;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -516,7 +514,7 @@ PyObject* Vect_slerp(PyObject *self_in, PyObject *args)
|
|||
{
|
||||
VectObject *self, *other, *rv;
|
||||
double amt, oamt;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -544,7 +542,7 @@ PyObject* Vect_sserp(PyObject *self_in, PyObject *args)
|
|||
{
|
||||
VectObject *self, *other, *rv, *norm;
|
||||
double amt, oamt, smag, omag;
|
||||
int i;
|
||||
long i;
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
PyErr_SetString(PyExc_TypeError, "not a vector");
|
||||
|
@ -579,7 +577,7 @@ PyObject* Vect_sserp(PyObject *self_in, PyObject *args)
|
|||
}
|
||||
|
||||
|
||||
int Vect_len(PyObject *self_in)
|
||||
Py_ssize_t Vect_len(PyObject *self_in)
|
||||
{
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
|
@ -590,7 +588,7 @@ int Vect_len(PyObject *self_in)
|
|||
}
|
||||
|
||||
|
||||
PyObject* Vect_item(PyObject *self_in, int index)
|
||||
PyObject* Vect_item(PyObject *self_in, Py_ssize_t index)
|
||||
{
|
||||
if (!Vect_Check(self_in))
|
||||
{
|
||||
|
|
22
vect.h
22
vect.h
|
@ -7,13 +7,6 @@ typedef int Py_ssize_t;
|
|||
#define PY_SSIZE_T_MIN INT_MIN
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
PyObject_HEAD
|
||||
double elements[VECLEN];
|
||||
} VectObject;
|
||||
|
||||
|
||||
#define Vect_Check(op) PyObject_TypeCheck(op, &VectObjectType)
|
||||
#define VEC3D
|
||||
|
||||
#ifdef VEC3D
|
||||
|
@ -25,8 +18,17 @@ typedef struct {
|
|||
#endif
|
||||
|
||||
|
||||
typedef struct VectObject {
|
||||
PyObject_HEAD
|
||||
double elements[VECLEN];
|
||||
} VectObject;
|
||||
|
||||
|
||||
#define Vect_Check(op) PyObject_TypeCheck(op, &VectObjectType)
|
||||
|
||||
|
||||
// internal functions
|
||||
PyObject* vect_get_element(PyObject* self_in, int index);
|
||||
PyObject* vect_get_element(PyObject* self_in, long index);
|
||||
|
||||
// Python API functions
|
||||
int Vect_init(VectObject *self, PyObject *args, PyObject *kwds);
|
||||
|
@ -60,8 +62,8 @@ PyObject* Vect_copy(PyObject *self_in, PyObject *unused);
|
|||
PyObject* Vect_dist(PyObject *self_in, PyObject *args);
|
||||
PyObject* Vect_slerp(PyObject *self_in, PyObject *args);
|
||||
PyObject* Vect_sserp(PyObject *self_in, PyObject *args);
|
||||
int Vect_len(PyObject *self_in);
|
||||
PyObject* Vect_item(PyObject *self_in, int index);
|
||||
Py_ssize_t Vect_len(PyObject *self_in);
|
||||
PyObject* Vect_item(PyObject *self_in, Py_ssize_t index);
|
||||
|
||||
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue