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

#include "boost/python.hpp"
#include "__ctypes_integration.pypp.hpp"
#include "opencv_headers.hpp"
#include "ndarray.hpp"
#include "Rectd.pypp.hpp"

namespace bp = boost::python;

void register_Rectd_class(){

    { //::cv::Rect_< double >
        typedef bp::class_< cv::Rect_< double > > Rectd_exposer_t;
        Rectd_exposer_t Rectd_exposer = Rectd_exposer_t( "Rectd", bp::init< >() );
        bp::scope Rectd_scope( Rectd_exposer );
        Rectd_exposer.add_property( "this", pyplus_conv::make_addressof_inst_getter< cv::Rect_< double > >() );
        Rectd_exposer.def( bp::init< double, double, double, double >(( bp::arg("_x"), bp::arg("_y"), bp::arg("_width"), bp::arg("_height") )) );
        Rectd_exposer.def( bp::init< cv::Rect_< double > const & >(( bp::arg("r") )) );
        Rectd_exposer.def( bp::init< cv::Point_< double > const &, cv::Size_< double > const & >(( bp::arg("org"), bp::arg("sz") )) );
        Rectd_exposer.def( bp::init< cv::Point_< double > const &, cv::Point_< double > const & >(( bp::arg("pt1"), bp::arg("pt2") )) );
        { //::cv::Rect_< double >::area
        
            typedef cv::Rect_< double > exported_class_t;
            typedef double ( exported_class_t::*area_function_type )(  ) const;
            
            Rectd_exposer.def( 
                "area"
                , area_function_type( &::cv::Rect_< double >::area ) );
        
        }
        { //::cv::Rect_< double >::br
        
            typedef cv::Rect_< double > exported_class_t;
            typedef ::cv::Point_< double > ( exported_class_t::*br_function_type )(  ) const;
            
            Rectd_exposer.def( 
                "br"
                , br_function_type( &::cv::Rect_< double >::br ) );
        
        }
        { //::cv::Rect_< double >::contains
        
            typedef cv::Rect_< double > exported_class_t;
            typedef bool ( exported_class_t::*contains_function_type )( ::cv::Point_< double > const & ) const;
            
            Rectd_exposer.def( 
                "contains"
                , contains_function_type( &::cv::Rect_< double >::contains )
                , ( bp::arg("pt") ) );
        
        }
        { //::cv::Rect_< double >::operator=
        
            typedef cv::Rect_< double > exported_class_t;
            typedef ::cv::Rect_< double > & ( exported_class_t::*assign_function_type )( ::cv::Rect_< double > const & ) ;
            
            Rectd_exposer.def( 
                "assign"
                , assign_function_type( &::cv::Rect_< double >::operator= )
                , ( bp::arg("r") )
                , bp::return_self< >() );
        
        }
        { //::cv::Rect_< double >::size
        
            typedef cv::Rect_< double > exported_class_t;
            typedef ::cv::Size_< double > ( exported_class_t::*size_function_type )(  ) const;
            
            Rectd_exposer.def( 
                "size"
                , size_function_type( &::cv::Rect_< double >::size ) );
        
        }
        { //::cv::Rect_< double >::tl
        
            typedef cv::Rect_< double > exported_class_t;
            typedef ::cv::Point_< double > ( exported_class_t::*tl_function_type )(  ) const;
            
            Rectd_exposer.def( 
                "tl"
                , tl_function_type( &::cv::Rect_< double >::tl ) );
        
        }
        Rectd_exposer.def_readwrite( "height", &cv::Rect_< double >::height );
        Rectd_exposer.def_readwrite( "width", &cv::Rect_< double >::width );
        Rectd_exposer.def_readwrite( "x", &cv::Rect_< double >::x );
        Rectd_exposer.def_readwrite( "y", &cv::Rect_< double >::y );
        Rectd_exposer.def("from_ndarray", &bp::from_ndarray< cv::Rectd >, (bp::arg("arr")) );
        Rectd_exposer.staticmethod("from_ndarray");
        Rectd_exposer.add_property("ndarray", &bp::as_ndarray< cv::Rectd >);
    }

}
