2013-06-22 02:33:24 +02:00
|
|
|
{% import 'functional.cpp' as functional %}
|
2013-03-13 12:52:13 +01:00
|
|
|
/*
|
|
|
|
* file: {{fun.name}}.cpp
|
|
|
|
* author: A trusty code generator
|
2013-03-18 03:37:42 +01:00
|
|
|
* date: {{time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())}}
|
2013-03-13 12:52:13 +01:00
|
|
|
*
|
|
|
|
* This file was autogenerated, do not modify.
|
|
|
|
* See LICENCE for full modification and redistribution details.
|
2013-03-18 03:37:42 +01:00
|
|
|
* Copyright {{time.strftime("%Y", time.localtime())}} The OpenCV Foundation
|
2013-03-13 12:52:13 +01:00
|
|
|
*/
|
|
|
|
#include "mex.h"
|
|
|
|
#include "bridge.hpp"
|
2013-06-19 03:54:14 +02:00
|
|
|
#include <string>
|
2013-03-13 12:52:13 +01:00
|
|
|
#include <vector>
|
2013-06-19 08:37:57 +02:00
|
|
|
#include <exception>
|
2013-06-22 07:55:48 +02:00
|
|
|
#include <opencv2/{{includes}}.hpp>
|
2013-06-22 21:38:40 +02:00
|
|
|
using namespace cv;
|
2013-03-13 12:52:13 +01:00
|
|
|
|
|
|
|
/*
|
|
|
|
* {{ fun.name }}
|
2013-06-22 07:55:48 +02:00
|
|
|
* {{ fun }}
|
2013-03-18 01:35:43 +01:00
|
|
|
* Gateway routine
|
2013-03-13 12:52:13 +01:00
|
|
|
* nlhs - number of return arguments
|
|
|
|
* plhs - pointers to return arguments
|
|
|
|
* nrhs - number of input arguments
|
|
|
|
* prhs - pointers to input arguments
|
|
|
|
*/
|
|
|
|
void mexFunction(int nlhs, mxArray* plhs[],
|
|
|
|
int nrhs, const mxArray* prhs[]) {
|
|
|
|
|
2013-06-22 02:33:24 +02:00
|
|
|
// assertions
|
2013-06-22 07:55:48 +02:00
|
|
|
mxAssert(nrhs >= {{fun.req|length - fun.req|outputs|length}}, "Too few required input arguments specified");
|
|
|
|
mxAssert(nrhs <= {{fun.req|length + fun.opt|length - fun.req|outputs|length - fun.opt|outputs|length}}, "Too many input arguments specified");
|
|
|
|
mxAssert(nlhs <= {{ fun.rtp|void|not + fun.req|outputs|length + fun.opt|outputs|length}}, "Too many output arguments specified");
|
2013-03-13 12:52:13 +01:00
|
|
|
|
2013-06-22 02:33:24 +02:00
|
|
|
// setup
|
2013-06-22 07:55:48 +02:00
|
|
|
std::vector<Bridge> inputs(plhs, plhs+nrhs);
|
2013-06-22 08:39:28 +02:00
|
|
|
{% set noutputs = fun.rtp|void|not + fun.req|outputs|length + fun.opt|outputs|length %}
|
|
|
|
{%- if noutputs %}
|
|
|
|
std::vector<Bridge> outputs({{noutputs}});
|
|
|
|
{% endif %}
|
2013-03-13 12:52:13 +01:00
|
|
|
|
2013-06-22 02:33:24 +02:00
|
|
|
{{ functional.generate(fun) }}
|
2013-03-13 12:52:13 +01:00
|
|
|
|
2013-06-22 08:39:28 +02:00
|
|
|
// push the outputs back to matlab
|
|
|
|
for (size_t n = 0; n < nlhs; ++n) {
|
|
|
|
plhs[n] = outputs[n].mxArray();
|
|
|
|
}
|
2013-03-13 12:52:13 +01:00
|
|
|
}
|