/*\file InputToResult.c *\brief: duplicate input */ #include "./InputToResult.h" void mexFunction( int nlhs, mxArray* plhs[], int nrhs, const mxArray* prhs[]){ /*input datasets: */ Elements* elements=NULL; Nodes* nodes=NULL; Vertices* vertices=NULL; Loads* loads=NULL; Materials* materials=NULL; Parameters* parameters=NULL; int enum_type,step; double time; /*Boot module: */ MODULEBOOT(); /*checks on arguments on the matlab side: */ //CheckNumMatlabArguments(nlhs,NLHS,nrhs,NRHS,__FUNCT__,&InputToResultUsage); Cant' use it here, as we have variable inputs. if((nlhs!=NLHS) || (nrhs!=7 && nrhs!=9)){ InputToResultUsage(); ISSMERROR(" usage. See above"); } /*Input datasets: */ FetchData((DataSet**)&elements,ELEMENTS); FetchData((DataSet**)&nodes,NODES); FetchData((DataSet**)&vertices,VERTICES); FetchData((DataSet**)&loads,LOADS); FetchData((DataSet**)&materials,MATERIALS); FetchParams(¶meters,PARAMETERS); FetchData(&enum_type,ENUMTYPE); /*configure: */ elements-> Configure(elements,loads, nodes,vertices, materials,parameters); nodes-> Configure(elements,loads, nodes,vertices, materials,parameters); loads-> Configure(elements, loads, nodes,vertices, materials,parameters); if(nrhs==9){ FetchData(&step,STEP); FetchData(&time,TIME); /*!Call core code: */ InputToResultx( elements, nodes, vertices, loads, materials,parameters,enum_type, step,time); } else{ /*!Call core code: */ InputToResultx( elements, nodes, vertices, loads, materials,parameters,enum_type); } /*write output : */ WriteData(ELEMENTSOUT,elements); /*Free ressources: */ delete elements; delete nodes; delete vertices; delete loads; delete materials; delete parameters; /*end module: */ MODULEEND(); } void InputToResultUsage(void) { _printf_("\n"); _printf_(" usage: [elements] = %s(elements, nodes, vertices, loads, materials, parameters, enum_type,step,time);\n",__FUNCT__); _printf_(" usage: [elements] = %s(elements, nodes, vertices, loads, materials, parameters, enum_type);\n",__FUNCT__); _printf_("\n"); }