// This file has been generated by Py++.

#include "boost/python.hpp"
#include "__ctypes_integration.pypp.hpp"
#include "opencv_headers.hpp"
#include "RNG.pypp.hpp"

namespace bp = boost::python;

void register_RNG_class(){

    { //::cv::RNG
        typedef bp::class_< cv::RNG > RNG_exposer_t;
        RNG_exposer_t RNG_exposer = RNG_exposer_t( "RNG", bp::init< >() );
        bp::scope RNG_scope( RNG_exposer );
        RNG_exposer.add_property( "this", pyplus_conv::make_addressof_inst_getter< cv::RNG >() );
        bp::scope().attr("A") = (int)cv::RNG::A;
        bp::scope().attr("UNIFORM") = (int)cv::RNG::UNIFORM;
        bp::scope().attr("NORMAL") = (int)cv::RNG::NORMAL;
        RNG_exposer.def( bp::init< uint64 >(( bp::arg("_state") )) );
        bp::implicitly_convertible< uint64, cv::RNG >();
        { //::cv::RNG::fill
        
            typedef void ( ::cv::RNG::*fill_function_type )( ::cv::Mat &,int,::cv::Scalar const &,::cv::Scalar const & ) ;
            
            RNG_exposer.def( 
                "fill"
                , fill_function_type( &::cv::RNG::fill )
                , ( bp::arg("mat"), bp::arg("distType"), bp::arg("a"), bp::arg("b") ) );
        
        }
        { //::cv::RNG::fill
        
            typedef void ( ::cv::RNG::*fill_function_type )( ::cv::MatND &,int,::cv::Scalar const &,::cv::Scalar const & ) ;
            
            RNG_exposer.def( 
                "fill"
                , fill_function_type( &::cv::RNG::fill )
                , ( bp::arg("mat"), bp::arg("distType"), bp::arg("a"), bp::arg("b") ) );
        
        }
        { //::cv::RNG::gaussian
        
            typedef double ( ::cv::RNG::*gaussian_function_type )( double ) ;
            
            RNG_exposer.def( 
                "gaussian"
                , gaussian_function_type( &::cv::RNG::gaussian )
                , ( bp::arg("sigma") ) );
        
        }
        { //::cv::RNG::next
        
            typedef unsigned int ( ::cv::RNG::*next_function_type )(  ) ;
            
            RNG_exposer.def( 
                "next"
                , next_function_type( &::cv::RNG::next ) );
        
        }
        RNG_exposer.def( "as_int8", &cv::RNG::operator ::schar  );
        RNG_exposer.def( "as_uint8", &cv::RNG::operator ::uchar  );
        RNG_exposer.def( "as_uint16", &cv::RNG::operator ::ushort  );
        RNG_exposer.def( "as_float64", &cv::RNG::operator double  );
        RNG_exposer.def( "as_float32", &cv::RNG::operator float  );
        RNG_exposer.def( "as_int32", &cv::RNG::operator int  );
        RNG_exposer.def( "as_int16", &cv::RNG::operator short int  );
        RNG_exposer.def( "as_uint32", &cv::RNG::operator unsigned int  );
        { //::cv::RNG::operator()
        
            typedef unsigned int ( ::cv::RNG::*__call___function_type )( unsigned int ) ;
            
            RNG_exposer.def( 
                "__call__"
                , __call___function_type( &::cv::RNG::operator() )
                , ( bp::arg("N") ) );
        
        }
        { //::cv::RNG::operator()
        
            typedef unsigned int ( ::cv::RNG::*__call___function_type )(  ) ;
            
            RNG_exposer.def( 
                "__call__"
                , __call___function_type( &::cv::RNG::operator() ) );
        
        }
        { //::cv::RNG::uniform
        
            typedef int ( ::cv::RNG::*uniform_function_type )( int,int ) ;
            
            RNG_exposer.def( 
                "uniform"
                , uniform_function_type( &::cv::RNG::uniform )
                , ( bp::arg("a"), bp::arg("b") ) );
        
        }
        { //::cv::RNG::uniform
        
            typedef float ( ::cv::RNG::*uniform_function_type )( float,float ) ;
            
            RNG_exposer.def( 
                "uniform"
                , uniform_function_type( &::cv::RNG::uniform )
                , ( bp::arg("a"), bp::arg("b") ) );
        
        }
        { //::cv::RNG::uniform
        
            typedef double ( ::cv::RNG::*uniform_function_type )( double,double ) ;
            
            RNG_exposer.def( 
                "uniform"
                , uniform_function_type( &::cv::RNG::uniform )
                , ( bp::arg("a"), bp::arg("b") ) );
        
        }
        RNG_exposer.def_readwrite( "state", &cv::RNG::state );
    }

}
