Index: /proj/ice/larour/issm-uci-clean/trunk-jpl/src/mex/TriMesh/TriMesh.h =================================================================== --- /proj/ice/larour/issm-uci-clean/trunk-jpl/src/mex/TriMesh/TriMesh.h (revision 11968) +++ /proj/ice/larour/issm-uci-clean/trunk-jpl/src/mex/TriMesh/TriMesh.h (revision 11969) @@ -12,7 +12,13 @@ #error "Cannot compile with HAVE_CONFIG_H symbol! run configure first!" #endif +/*Very important definition in case we are compiling a python module!: needs to come before header files inclusion*/ +#ifdef _HAVE_PYTHON_ +#define PY_ARRAY_UNIQUE_SYMBOL PythonIOSymbol +#endif + #include "../../c/include/globals.h" +#include "../../c/toolkits/toolkits.h" #include "../../c/include/include.h" #include "../../c/modules/modules.h" #include "../../c/Container/Container.h" @@ -34,7 +40,20 @@ #define SEGMENTMARKERLIST (mxArray**)&plhs[4] #endif +#ifdef _HAVE_PYTHON_ +/* serial input macros: */ +#define DOMAINOUTLINE PyTuple_GetItem(args,0) +#define AREA PyTuple_GetItem(args,1) +#define ORDER PyTuple_GetItem(args,2) +/* serial output macros: */ +#define INDEX output,0 +#define X output,1 +#define Y output,2 +#define SEGMENTS output,3 +#define SEGMENTMARKERLIST output,4 +#endif + /* local prototypes: */ void TriMeshUsage(void); Index: /proj/ice/larour/issm-uci-clean/trunk-jpl/src/mex/TriMesh/TriMesh.cpp =================================================================== --- /proj/ice/larour/issm-uci-clean/trunk-jpl/src/mex/TriMesh/TriMesh.cpp (revision 11968) +++ /proj/ice/larour/issm-uci-clean/trunk-jpl/src/mex/TriMesh/TriMesh.cpp (revision 11969) @@ -4,7 +4,7 @@ #include "./TriMesh.h" -WRAPPER(TriMesh, char* DOMAINOUTLINE, double AREA, bool ORDER){ +WRAPPER(TriMesh){ /* input: */ char* domainname=NULL; @@ -32,12 +32,14 @@ FetchData(&area,AREA); FetchData(&order,ORDER); + /*Read domain outline: */ domain=DomainOutlineRead(domainname,false); /*call x core: */ TriMeshx(&index,&x,&y,&segments,&segmentmarkerlist,domain,area,order); - + + /*write outputs: */ WriteData(INDEX,index); WriteData(X,x); @@ -55,9 +57,10 @@ /*end module: */ MODULEEND(); + } -void TriMeshUsage(void) +void TriMeshUsage(void) //{{{1 { printf("\n"); printf(" usage: [index,x,y,segments,segmentmarkers]=TriMesh(domainoutlinefilename,area,ordered) \n"); @@ -69,11 +72,4 @@ printf(" order they are made by Triangle (ie none), or ordered counter clockwise around the domain outline.\n"); printf("\n"); } - - -#ifdef _HAVE_PYTHON_ -BOOST_PYTHON_MODULE(TriMesh){ - boost::python::numeric::array::set_module_and_type( "numpy", "ndarray"); - def("TriMesh",TriMesh); -} -#endif +//}}}