| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | #include "BPy_UnaryFunction0DDouble.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #include "../BPy_Convert.h"
 | 
					
						
							|  |  |  | #include "../Iterator/BPy_Interface0DIterator.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | #include "UnaryFunction0D_double/BPy_Curvature2DAngleF0D.h"
 | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | #include "UnaryFunction0D_double/BPy_DensityF0D.h"
 | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | #include "UnaryFunction0D_double/BPy_GetProjectedXF0D.h"
 | 
					
						
							|  |  |  | #include "UnaryFunction0D_double/BPy_GetProjectedYF0D.h"
 | 
					
						
							|  |  |  | #include "UnaryFunction0D_double/BPy_GetProjectedZF0D.h"
 | 
					
						
							|  |  |  | #include "UnaryFunction0D_double/BPy_GetXF0D.h"
 | 
					
						
							|  |  |  | #include "UnaryFunction0D_double/BPy_GetYF0D.h"
 | 
					
						
							|  |  |  | #include "UnaryFunction0D_double/BPy_GetZF0D.h"
 | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | #include "UnaryFunction0D_double/BPy_LocalAverageDepthF0D.h"
 | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | #include "UnaryFunction0D_double/BPy_ZDiscontinuityF0D.h"
 | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-08-01 21:55:58 +00:00
										 |  |  | #include "../Director.h"
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | extern "C" { | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | ///////////////////////////////////////////////////////////////////////////////////////////
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | //-------------------MODULE INITIALIZATION--------------------------------
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | int UnaryFunction0DDouble_Init( PyObject *module ) { | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	if( module == NULL ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | 	if( PyType_Ready( &UnaryFunction0DDouble_Type ) < 0 ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | 	Py_INCREF( &UnaryFunction0DDouble_Type ); | 
					
						
							|  |  |  | 	PyModule_AddObject(module, "UnaryFunction0DDouble", (PyObject *)&UnaryFunction0DDouble_Type); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	if( PyType_Ready( &DensityF0D_Type ) < 0 ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | 	Py_INCREF( &DensityF0D_Type ); | 
					
						
							|  |  |  | 	PyModule_AddObject(module, "DensityF0D", (PyObject *)&DensityF0D_Type); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	if( PyType_Ready( &LocalAverageDepthF0D_Type ) < 0 ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | 	Py_INCREF( &LocalAverageDepthF0D_Type ); | 
					
						
							|  |  |  | 	PyModule_AddObject(module, "LocalAverageDepthF0D", (PyObject *)&LocalAverageDepthF0D_Type); | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | 	 | 
					
						
							|  |  |  | 	if( PyType_Ready( &Curvature2DAngleF0D_Type ) < 0 ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | 	Py_INCREF( &Curvature2DAngleF0D_Type ); | 
					
						
							|  |  |  | 	PyModule_AddObject(module, "Curvature2DAngleF0D", (PyObject *)&Curvature2DAngleF0D_Type); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	if( PyType_Ready( &GetProjectedXF0D_Type ) < 0 ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | 	Py_INCREF( &GetProjectedXF0D_Type ); | 
					
						
							|  |  |  | 	PyModule_AddObject(module, "GetProjectedXF0D", (PyObject *)&GetProjectedXF0D_Type); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	if( PyType_Ready( &GetProjectedYF0D_Type ) < 0 ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | 	Py_INCREF( &GetProjectedYF0D_Type ); | 
					
						
							|  |  |  | 	PyModule_AddObject(module, "GetProjectedYF0D", (PyObject *)&GetProjectedYF0D_Type); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	if( PyType_Ready( &GetProjectedZF0D_Type ) < 0 ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | 	Py_INCREF( &GetProjectedZF0D_Type ); | 
					
						
							|  |  |  | 	PyModule_AddObject(module, "GetProjectedZF0D", (PyObject *)&GetProjectedZF0D_Type); | 
					
						
							|  |  |  | 		 | 
					
						
							|  |  |  | 	if( PyType_Ready( &GetXF0D_Type ) < 0 ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | 	Py_INCREF( &GetXF0D_Type ); | 
					
						
							|  |  |  | 	PyModule_AddObject(module, "GetXF0D", (PyObject *)&GetXF0D_Type); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	if( PyType_Ready( &GetYF0D_Type ) < 0 ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | 	Py_INCREF( &GetYF0D_Type ); | 
					
						
							|  |  |  | 	PyModule_AddObject(module, "GetYF0D", (PyObject *)&GetYF0D_Type); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	if( PyType_Ready( &GetZF0D_Type ) < 0 ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | 	Py_INCREF( &GetZF0D_Type ); | 
					
						
							|  |  |  | 	PyModule_AddObject(module, "GetZF0D", (PyObject *)&GetZF0D_Type); | 
					
						
							|  |  |  | 	 | 
					
						
							|  |  |  | 	if( PyType_Ready( &ZDiscontinuityF0D_Type ) < 0 ) | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 		return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 06:57:46 +00:00
										 |  |  | 	Py_INCREF( &ZDiscontinuityF0D_Type ); | 
					
						
							|  |  |  | 	PyModule_AddObject(module, "ZDiscontinuityF0D", (PyObject *)&ZDiscontinuityF0D_Type); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 	return 0; | 
					
						
							| 
									
										
										
										
											2008-07-09 08:24:13 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | //------------------------INSTANCE METHODS ----------------------------------
 | 
					
						
							| 
									
										
										
										
											2008-07-09 08:24:13 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-17 23:47:47 +00:00
										 |  |  | static char UnaryFunction0DDouble___doc__[] = | 
					
						
							|  |  |  | "Base class for unary functions (functors) that work on\n" | 
					
						
							|  |  |  | ":class:`Interface0DIterator` and return a float value.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | ".. method:: __init__()\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "   Default constructor.\n"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static int UnaryFunction0DDouble___init__(BPy_UnaryFunction0DDouble* self, PyObject *args, PyObject *kwds) | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-08-03 15:19:51 +00:00
										 |  |  |     if ( !PyArg_ParseTuple(args, "") ) | 
					
						
							|  |  |  |         return -1; | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | 	self->uf0D_double = new UnaryFunction0D<double>(); | 
					
						
							| 
									
										
										
										
											2008-08-01 21:55:58 +00:00
										 |  |  | 	self->uf0D_double->py_uf0D = (PyObject *)self; | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | 	return 0; | 
					
						
							| 
									
										
										
										
											2008-07-09 08:24:13 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-17 23:47:47 +00:00
										 |  |  | static void UnaryFunction0DDouble___dealloc__(BPy_UnaryFunction0DDouble* self) | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-07-26 20:20:25 +00:00
										 |  |  | 	if (self->uf0D_double) | 
					
						
							|  |  |  | 		delete self->uf0D_double; | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | 	UnaryFunction0D_Type.tp_dealloc((PyObject*)self); | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-17 23:47:47 +00:00
										 |  |  | static PyObject * UnaryFunction0DDouble___repr__(BPy_UnaryFunction0DDouble* self) | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2009-09-27 00:32:20 +00:00
										 |  |  | 	return PyUnicode_FromFormat("type: %s - address: %p", self->uf0D_double->getName().c_str(), self->uf0D_double ); | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-17 23:47:47 +00:00
										 |  |  | static char UnaryFunction0DDouble_getName___doc__[] = | 
					
						
							|  |  |  | ".. method:: getName()\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "   Returns the name of the unary 0D predicate.\n" | 
					
						
							|  |  |  | "\n" | 
					
						
							|  |  |  | "   :return: The name of the unary 0D predicate.\n" | 
					
						
							|  |  |  | "   :rtype: string\n"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static PyObject * UnaryFunction0DDouble_getName( BPy_UnaryFunction0DDouble *self ) | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | { | 
					
						
							| 
									
										
										
										
											2010-05-23 12:10:31 +00:00
										 |  |  | 	return PyUnicode_FromString( self->uf0D_double->getName().c_str() ); | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-17 23:47:47 +00:00
										 |  |  | static PyObject * UnaryFunction0DDouble___call__( BPy_UnaryFunction0DDouble *self, PyObject *args, PyObject *kwds) | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | { | 
					
						
							|  |  |  | 	PyObject *obj; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-07-26 16:15:28 +00:00
										 |  |  | 	if( kwds != NULL ) { | 
					
						
							|  |  |  | 		PyErr_SetString(PyExc_TypeError, "keyword argument(s) not supported"); | 
					
						
							|  |  |  | 		return NULL; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2009-03-20 22:41:27 +00:00
										 |  |  | 	if(!PyArg_ParseTuple(args, "O!", &Interface0DIterator_Type, &obj)) | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | 		return NULL; | 
					
						
							|  |  |  | 	 | 
					
						
							| 
									
										
										
										
											2009-07-26 16:15:28 +00:00
										 |  |  | 	if( typeid(*(self->uf0D_double)) == typeid(UnaryFunction0D<double>) ) { | 
					
						
							| 
									
										
										
										
											2009-07-31 21:44:02 +00:00
										 |  |  | 		PyErr_SetString(PyExc_TypeError, "__call__ method not properly overridden"); | 
					
						
							| 
									
										
										
										
											2009-07-26 16:15:28 +00:00
										 |  |  | 		return NULL; | 
					
						
							|  |  |  | 	} | 
					
						
							| 
									
										
										
										
											2009-03-20 22:41:27 +00:00
										 |  |  | 	if (self->uf0D_double->operator()(*( ((BPy_Interface0DIterator *) obj)->if0D_it)) < 0) { | 
					
						
							|  |  |  | 		if (!PyErr_Occurred()) { | 
					
						
							|  |  |  | 			string msg(self->uf0D_double->getName() + " __call__ method failed"); | 
					
						
							|  |  |  | 			PyErr_SetString(PyExc_RuntimeError, msg.c_str()); | 
					
						
							|  |  |  | 		} | 
					
						
							|  |  |  | 		return NULL; | 
					
						
							|  |  |  | 	} | 
					
						
							|  |  |  | 	return PyFloat_FromDouble( self->uf0D_double->result ); | 
					
						
							| 
									
										
										
										
											2008-07-09 08:24:13 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-04-17 23:47:47 +00:00
										 |  |  | /*----------------------UnaryFunction0DDouble instance definitions ----------------------------*/ | 
					
						
							|  |  |  | static PyMethodDef BPy_UnaryFunction0DDouble_methods[] = { | 
					
						
							|  |  |  | 	{"getName", ( PyCFunction ) UnaryFunction0DDouble_getName, METH_NOARGS, UnaryFunction0DDouble_getName___doc__}, | 
					
						
							|  |  |  | 	{NULL, NULL, 0, NULL} | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | /*-----------------------BPy_UnaryFunction0DDouble type definition ------------------------------*/ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | PyTypeObject UnaryFunction0DDouble_Type = { | 
					
						
							|  |  |  | 	PyVarObject_HEAD_INIT(NULL, 0) | 
					
						
							|  |  |  | 	"UnaryFunction0DDouble",        /* tp_name */ | 
					
						
							|  |  |  | 	sizeof(BPy_UnaryFunction0DDouble), /* tp_basicsize */ | 
					
						
							|  |  |  | 	0,                              /* tp_itemsize */ | 
					
						
							|  |  |  | 	(destructor)UnaryFunction0DDouble___dealloc__, /* tp_dealloc */ | 
					
						
							|  |  |  | 	0,                              /* tp_print */ | 
					
						
							|  |  |  | 	0,                              /* tp_getattr */ | 
					
						
							|  |  |  | 	0,                              /* tp_setattr */ | 
					
						
							|  |  |  | 	0,                              /* tp_reserved */ | 
					
						
							|  |  |  | 	(reprfunc)UnaryFunction0DDouble___repr__, /* tp_repr */ | 
					
						
							|  |  |  | 	0,                              /* tp_as_number */ | 
					
						
							|  |  |  | 	0,                              /* tp_as_sequence */ | 
					
						
							|  |  |  | 	0,                              /* tp_as_mapping */ | 
					
						
							|  |  |  | 	0,                              /* tp_hash  */ | 
					
						
							|  |  |  | 	(ternaryfunc)UnaryFunction0DDouble___call__, /* tp_call */ | 
					
						
							|  |  |  | 	0,                              /* tp_str */ | 
					
						
							|  |  |  | 	0,                              /* tp_getattro */ | 
					
						
							|  |  |  | 	0,                              /* tp_setattro */ | 
					
						
							|  |  |  | 	0,                              /* tp_as_buffer */ | 
					
						
							|  |  |  | 	Py_TPFLAGS_DEFAULT | Py_TPFLAGS_BASETYPE, /* tp_flags */ | 
					
						
							|  |  |  | 	UnaryFunction0DDouble___doc__,  /* tp_doc */ | 
					
						
							|  |  |  | 	0,                              /* tp_traverse */ | 
					
						
							|  |  |  | 	0,                              /* tp_clear */ | 
					
						
							|  |  |  | 	0,                              /* tp_richcompare */ | 
					
						
							|  |  |  | 	0,                              /* tp_weaklistoffset */ | 
					
						
							|  |  |  | 	0,                              /* tp_iter */ | 
					
						
							|  |  |  | 	0,                              /* tp_iternext */ | 
					
						
							|  |  |  | 	BPy_UnaryFunction0DDouble_methods, /* tp_methods */ | 
					
						
							|  |  |  | 	0,                              /* tp_members */ | 
					
						
							|  |  |  | 	0,                              /* tp_getset */ | 
					
						
							|  |  |  | 	&UnaryFunction0D_Type,          /* tp_base */ | 
					
						
							|  |  |  | 	0,                              /* tp_dict */ | 
					
						
							|  |  |  | 	0,                              /* tp_descr_get */ | 
					
						
							|  |  |  | 	0,                              /* tp_descr_set */ | 
					
						
							|  |  |  | 	0,                              /* tp_dictoffset */ | 
					
						
							|  |  |  | 	(initproc)UnaryFunction0DDouble___init__, /* tp_init */ | 
					
						
							|  |  |  | 	0,                              /* tp_alloc */ | 
					
						
							|  |  |  | 	0,                              /* tp_new */ | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | ///////////////////////////////////////////////////////////////////////////////////////////
 | 
					
						
							| 
									
										
										
										
											2008-07-09 08:24:13 +00:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-07-27 03:40:37 +00:00
										 |  |  | #ifdef __cplusplus
 | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | #endif
 |