2008-07-12 04:02:08 +00:00
# include "BinaryPredicate1D.h"
# include "Convert.h"
# include "Interface1D.h"
# ifdef __cplusplus
extern " C " {
# endif
///////////////////////////////////////////////////////////////////////////////////////////
2008-07-15 01:07:19 +00:00
/*--------------- Python API function prototypes for BinaryPredicate1D instance -----------*/
static PyObject * BinaryPredicate1D___new__ ( PyTypeObject * type , PyObject * args , PyObject * kwds ) ;
static void BinaryPredicate1D___dealloc__ ( BPy_BinaryPredicate1D * self ) ;
static PyObject * BinaryPredicate1D___repr__ ( BPy_BinaryPredicate1D * self ) ;
static PyObject * BinaryPredicate1D_getName ( BPy_BinaryPredicate1D * self , PyObject * args ) ;
static PyObject * BinaryPredicate1D___call__ ( BPy_BinaryPredicate1D * self , PyObject * args ) ;
/*----------------------BinaryPredicate1D instance definitions ----------------------------*/
static PyMethodDef BPy_BinaryPredicate1D_methods [ ] = {
{ " getName " , ( PyCFunction ) BinaryPredicate1D_getName , METH_NOARGS , " ( ) Returns the string of the name of the binary predicate." } ,
{ " __call__ " , ( PyCFunction ) BinaryPredicate1D___call__ , METH_VARARGS , " BinaryPredicate1D( Interface1D, Interface1D ) . Must be overloaded by inherited classes. It evaluates a relation between two Interface1D. " } ,
2008-07-12 04:02:08 +00:00
{ NULL , NULL , 0 , NULL }
} ;
2008-07-15 01:07:19 +00:00
/*-----------------------BPy_BinaryPredicate1D type definition ------------------------------*/
2008-07-12 04:02:08 +00:00
PyTypeObject BinaryPredicate1D_Type = {
PyObject_HEAD_INIT ( NULL )
2008-07-15 01:07:19 +00:00
0 , /* ob_size */
2008-07-12 04:02:08 +00:00
" BinaryPredicate1D " , /* tp_name */
sizeof ( BPy_BinaryPredicate1D ) , /* tp_basicsize */
2008-07-15 01:07:19 +00:00
0 , /* tp_itemsize */
2008-07-12 04:02:08 +00:00
/* methods */
2008-07-15 01:07:19 +00:00
( destructor ) BinaryPredicate1D___dealloc__ , /* tp_dealloc */
NULL , /* printfunc tp_print; */
NULL , /* getattrfunc tp_getattr; */
NULL , /* setattrfunc tp_setattr; */
NULL , /* tp_compare */
( reprfunc ) BinaryPredicate1D___repr__ , /* tp_repr */
2008-07-12 04:02:08 +00:00
/* Method suites for standard classes */
NULL , /* PyNumberMethods *tp_as_number; */
NULL , /* PySequenceMethods *tp_as_sequence; */
NULL , /* PyMappingMethods *tp_as_mapping; */
/* More standard operations (here for binary compatibility) */
NULL , /* hashfunc tp_hash; */
NULL , /* ternaryfunc tp_call; */
NULL , /* reprfunc tp_str; */
NULL , /* getattrofunc tp_getattro; */
NULL , /* setattrofunc tp_setattro; */
2008-07-09 08:24:13 +00:00
2008-07-12 04:02:08 +00:00
/* Functions to access object as input/output buffer */
NULL , /* PyBufferProcs *tp_as_buffer; */
2008-07-09 08:24:13 +00:00
2008-07-12 04:02:08 +00:00
/*** Flags to define presence of optional/expanded features ***/
Py_TPFLAGS_DEFAULT , /* long tp_flags; */
NULL , /* char *tp_doc; Documentation string */
/*** Assigned meaning in release 2.0 ***/
/* call function for all accessible objects */
NULL , /* traverseproc tp_traverse; */
/* delete references to contained objects */
NULL , /* inquiry tp_clear; */
/*** Assigned meaning in release 2.1 ***/
/*** rich comparisons ***/
NULL , /* richcmpfunc tp_richcompare; */
/*** weak reference enabler ***/
0 , /* long tp_weaklistoffset; */
/*** Added in release 2.2 ***/
/* Iterators */
NULL , /* getiterfunc tp_iter; */
NULL , /* iternextfunc tp_iternext; */
/*** Attribute descriptor and subclassing stuff ***/
2008-07-15 01:07:19 +00:00
BPy_BinaryPredicate1D_methods , /* struct PyMethodDef *tp_methods; */
NULL , /* struct PyMemberDef *tp_members; */
NULL , /* struct PyGetSetDef *tp_getset; */
NULL , /* struct _typeobject *tp_base; */
NULL , /* PyObject *tp_dict; */
NULL , /* descrgetfunc tp_descr_get; */
NULL , /* descrsetfunc tp_descr_set; */
0 , /* long tp_dictoffset; */
NULL , /* initproc tp_init; */
NULL , /* allocfunc tp_alloc; */
BinaryPredicate1D___new__ , /* newfunc tp_new; */
2008-07-12 04:02:08 +00:00
/* Low-level free-memory routine */
NULL , /* freefunc tp_free; */
/* For PyObject_IS_GC */
NULL , /* inquiry tp_is_gc; */
NULL , /* PyObject *tp_bases; */
/* method resolution order */
NULL , /* PyObject *tp_mro; */
NULL , /* PyObject *tp_cache; */
NULL , /* PyObject *tp_subclasses; */
NULL , /* PyObject *tp_weaklist; */
NULL
} ;
//-------------------MODULE INITIALIZATION--------------------------------
2008-07-15 01:07:19 +00:00
PyMODINIT_FUNC BinaryPredicate1D_Init ( PyObject * module )
2008-07-12 04:02:08 +00:00
{
2008-07-15 01:07:19 +00:00
if ( module = = NULL )
return ;
2008-07-12 04:02:08 +00:00
if ( PyType_Ready ( & BinaryPredicate1D_Type ) < 0 )
2008-07-15 01:07:19 +00:00
return ;
Py_INCREF ( & BinaryPredicate1D_Type ) ;
PyModule_AddObject ( module , " BinaryPredicate1D " , ( PyObject * ) & BinaryPredicate1D_Type ) ;
2008-07-09 08:24:13 +00:00
}
2008-07-15 01:07:19 +00:00
2008-07-12 04:02:08 +00:00
//------------------------INSTANCE METHODS ----------------------------------
2008-07-15 01:07:19 +00:00
PyObject * BinaryPredicate1D___new__ ( PyTypeObject * type , PyObject * args , PyObject * kwds )
{
BPy_BinaryPredicate1D * self ;
self = ( BPy_BinaryPredicate1D * ) type - > tp_alloc ( type , 0 ) ;
if ( self ! = NULL ) {
self - > bp1D = new BinaryPredicate1D ( ) ;
}
return ( PyObject * ) self ;
}
void BinaryPredicate1D___dealloc__ ( BPy_BinaryPredicate1D * self )
{
delete self - > bp1D ;
self - > ob_type - > tp_free ( ( PyObject * ) self ) ;
}
PyObject * BinaryPredicate1D___repr__ ( BPy_BinaryPredicate1D * self )
{
return PyString_FromFormat ( " type: %s - address: %p " , self - > bp1D - > getName ( ) . c_str ( ) , self - > bp1D ) ;
}
2008-07-12 04:02:08 +00:00
PyObject * BinaryPredicate1D_getName ( BPy_BinaryPredicate1D * self , PyObject * args )
{
return PyString_FromString ( self - > bp1D - > getName ( ) . c_str ( ) ) ;
}
2008-07-09 08:24:13 +00:00
2008-07-12 04:02:08 +00:00
PyObject * BinaryPredicate1D___call__ ( BPy_BinaryPredicate1D * self , PyObject * args )
{
2008-07-15 01:07:19 +00:00
BPy_Interface1D * obj1 , * obj2 ;
2008-07-12 04:02:08 +00:00
bool b ;
2008-07-15 01:07:19 +00:00
if ( ! PyArg_ParseTuple ( args , ( char * ) " OO:BinaryPredicate1D___call__ " , & obj1 , & obj2 ) ) {
2008-07-12 04:02:08 +00:00
cout < < " ERROR: BinaryPredicate1D___call__ " < < endl ;
2008-07-15 01:07:19 +00:00
return NULL ;
}
2008-07-12 04:02:08 +00:00
2008-07-15 01:07:19 +00:00
b = self - > bp1D - > operator ( ) ( * ( obj1 - > if1D ) , * ( obj2 - > if1D ) ) ;
2008-07-12 04:02:08 +00:00
return PyBool_from_bool ( b ) ;
2008-07-09 08:24:13 +00:00
}
2008-07-12 04:02:08 +00:00
///////////////////////////////////////////////////////////////////////////////////////////
# ifdef __cplusplus
}
# endif