43 lines
1.2 KiB
C
43 lines
1.2 KiB
C
|
#pragma once
|
||
|
#include "Common.h"
|
||
|
#include "Python.h"
|
||
|
|
||
|
typedef struct {
|
||
|
PyObject_HEAD
|
||
|
sf::Vector2f data;
|
||
|
} PyVectorObject;
|
||
|
|
||
|
class PyVector
|
||
|
{
|
||
|
public:
|
||
|
sf::Vector2f data;
|
||
|
PyVector(sf::Vector2f);
|
||
|
PyVector();
|
||
|
PyObject* pyObject();
|
||
|
static sf::Vector2f fromPy(PyObject*);
|
||
|
static sf::Vector2f fromPy(PyVectorObject*);
|
||
|
static PyObject* repr(PyObject*);
|
||
|
static Py_hash_t hash(PyObject*);
|
||
|
static int init(PyVectorObject*, PyObject*, PyObject*);
|
||
|
static PyObject* pynew(PyTypeObject* type, PyObject* args=NULL, PyObject* kwds=NULL);
|
||
|
static PyObject* get_member(PyObject*, void*);
|
||
|
static int set_member(PyObject*, PyObject*, void*);
|
||
|
|
||
|
static PyGetSetDef getsetters[];
|
||
|
};
|
||
|
|
||
|
namespace mcrfpydef {
|
||
|
static PyTypeObject PyVectorType = {
|
||
|
.tp_name = "mcrfpy.Vector",
|
||
|
.tp_basicsize = sizeof(PyVectorObject),
|
||
|
.tp_itemsize = 0,
|
||
|
.tp_repr = PyVector::repr,
|
||
|
.tp_hash = PyVector::hash,
|
||
|
.tp_flags = Py_TPFLAGS_DEFAULT,
|
||
|
.tp_doc = PyDoc_STR("SFML Vector Object"),
|
||
|
.tp_getset = PyVector::getsetters,
|
||
|
.tp_init = (initproc)PyVector::init,
|
||
|
.tp_new = PyVector::pynew,
|
||
|
};
|
||
|
}
|