Exemplo n.º 1
0
z.add_declaration_code('''
static boost::shared_ptr<cv::NAryMatNDIterator> NAryMatNDIterator__init1__(std::vector<cv::MatND> const &arrays)
{
    std::vector<cv::MatND const *> buf_arrays(arrays.size());
    for(size_t i_arrays = 0; i_arrays<arrays.size(); ++i_arrays)
        buf_arrays[i_arrays] = (cv::MatND const *)&(arrays[i_arrays]);
        
    return boost::shared_ptr<cv::NAryMatNDIterator>(new cv::NAryMatNDIterator((cv::MatND const * *)(&buf_arrays[0]), arrays.size()));
}

''')
z.add_registration_code(
    'def("__init__", bp::make_constructor(&NAryMatNDIterator__init1__, bp::default_call_policies(), (bp::arg("arrays"))))'
)
z.mem_fun('init')._transformer_creators.append(
    FT.input_as_list_of_Matlike('arrays', 'count'))
z.add_wrapper_code('''    
    NAryMatNDIterator_wrapper const &iter() { return *this; }
    
    bp::object next()
    {
        if(idx >= nplanes)
        {
            PyErr_SetString(PyExc_StopIteration, "No more plane.");
            throw bp::error_already_set(); 
        }
        bp::object result(planes);
        if(idx >= nplanes-1) ++idx;
        else ++(*this);
        return result;
    }
Exemplo n.º 2
0
for t in ('ptr', 'hdr'): # wait until requested 
    z.var(t).exclude()
sb.cc.write('''
CV_MAX_ARR = 10

CV_NO_DEPTH_CHECK     = 1
CV_NO_CN_CHECK        = 2
CV_NO_SIZE_CHECK      = 4

''')


# cvInitNArrayIterator
z = sb.mb.free_fun('cvInitNArrayIterator')
z.include()
z._transformer_creators.append(FT.input_as_list_of_Matlike('arrs', 'count'))


# functions
for z in ('cvNextNArraySlice', 'cvGetElemType'):
    sb.mb.free_fun(z).include()

# Arithmetic, logic and comparison operations
sb.cc.write('''
#-----------------------------------------------------------------------------
# Arithmetic, logic and comparison operations
#-----------------------------------------------------------------------------

    
''')
    
Exemplo n.º 3
0
z.include()
for t in ('ptr', 'hdr'):  # wait until requested
    z.var(t).exclude()
sb.cc.write('''
CV_MAX_ARR = 10

CV_NO_DEPTH_CHECK     = 1
CV_NO_CN_CHECK        = 2
CV_NO_SIZE_CHECK      = 4

''')

# cvInitNArrayIterator
z = sb.mb.free_fun('cvInitNArrayIterator')
z.include()
z._transformer_creators.append(FT.input_as_list_of_Matlike('arrs', 'count'))

# functions
for z in ('cvNextNArraySlice', 'cvGetElemType'):
    sb.mb.free_fun(z).include()

# Arithmetic, logic and comparison operations
sb.cc.write('''
#-----------------------------------------------------------------------------
# Arithmetic, logic and comparison operations
#-----------------------------------------------------------------------------

    
''')

# Math operations
Exemplo n.º 4
0
z = sb.mb.class_('NAryMatNDIterator')
sb.init_class(z)
z.constructors(lambda x: "MatND const *" in x.partial_decl_string).exclude() # don't need them
z.add_declaration_code('''
static boost::shared_ptr<cv::NAryMatNDIterator> NAryMatNDIterator__init1__(std::vector<cv::MatND> const &arrays)
{
    std::vector<cv::MatND const *> buf_arrays(arrays.size());
    for(size_t i_arrays = 0; i_arrays<arrays.size(); ++i_arrays)
        buf_arrays[i_arrays] = (cv::MatND const *)&(arrays[i_arrays]);
        
    return boost::shared_ptr<cv::NAryMatNDIterator>(new cv::NAryMatNDIterator((cv::MatND const * *)(&buf_arrays[0]), arrays.size()));
}

''')    
z.add_registration_code('def("__init__", bp::make_constructor(&NAryMatNDIterator__init1__, bp::default_call_policies(), (bp::arg("arrays"))))')
z.mem_fun('init')._transformer_creators.append(FT.input_as_list_of_Matlike('arrays', 'count'))
z.add_wrapper_code('''    
    NAryMatNDIterator_wrapper const &iter() { return *this; }
    
    bp::object next()
    {
        if(idx >= nplanes)
        {
            PyErr_SetString(PyExc_StopIteration, "No more plane.");
            throw bp::error_already_set(); 
        }
        bp::object result(planes);
        if(idx >= nplanes-1) ++idx;
        else ++(*this);
        return result;
    }