opencv/modules/matlab/generator/templates/template_function_base.cpp

45 lines
1.4 KiB
C++
Raw Normal View History

{% import 'functional.cpp' as functional %}
/*
* file: {{fun.name}}.cpp
* author: A trusty code generator
2013-03-18 10:37:42 +08:00
* date: {{time.strftime("%a, %d %b %Y %H:%M:%S", time.localtime())}}
*
* This file was autogenerated, do not modify.
* See LICENCE for full modification and redistribution details.
2013-03-18 10:37:42 +08:00
* Copyright {{time.strftime("%Y", time.localtime())}} The OpenCV Foundation
*/
#include "mex.h"
#include "bridge.hpp"
#include <string>
#include <vector>
#include <exception>
#include <opencv2/{{includes}}.hpp>
{% block includes %}
{% endblock %}
/*
* {{ fun.name }}
* {{ fun }}
2013-03-18 08:35:43 +08:00
* Gateway routine
* 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[]) {
// assertions
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");
// setup
std::vector<Bridge> inputs(plhs, plhs+nrhs);
std::vector<Bridge> outputs(nlhs);
{{ functional.generate(fun) }}
// setdown
}