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

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

namespace bp = boost::python;

struct SavedIndexParams_wrapper : cv::flann::SavedIndexParams, bp::wrapper< cv::flann::SavedIndexParams > {

    SavedIndexParams_wrapper(cv::flann::SavedIndexParams const & arg )
    : cv::flann::SavedIndexParams( arg )
      , bp::wrapper< cv::flann::SavedIndexParams >(){
        // copy constructor
        
    }

    SavedIndexParams_wrapper( )
    : cv::flann::SavedIndexParams( )
      , bp::wrapper< cv::flann::SavedIndexParams >(){
        // null constructor
    
    }

    SavedIndexParams_wrapper(::std::string filename_ )
    : cv::flann::SavedIndexParams( filename_ )
      , bp::wrapper< cv::flann::SavedIndexParams >(){
        // constructor
    
    }

    virtual ::flann::Index * createIndex( ::cv::Mat const & dataset ) const  {
        if( bp::override func_createIndex = this->get_override( "createIndex" ) )
            return func_createIndex( boost::ref(dataset) );
        else{
            return this->cv::flann::SavedIndexParams::createIndex( boost::ref(dataset) );
        }
    }
    
    ::flann::Index * default_createIndex( ::cv::Mat const & dataset ) const  {
        return cv::flann::SavedIndexParams::createIndex( boost::ref(dataset) );
    }

};

void register_SavedIndexParams_class(){

    { //::cv::flann::SavedIndexParams
        typedef bp::class_< SavedIndexParams_wrapper, bp::bases< cv::flann::IndexParams > > SavedIndexParams_exposer_t;
        SavedIndexParams_exposer_t SavedIndexParams_exposer = SavedIndexParams_exposer_t( "SavedIndexParams", bp::init< >() );
        bp::scope SavedIndexParams_scope( SavedIndexParams_exposer );
        SavedIndexParams_exposer.add_property( "this", pyplus_conv::make_addressof_inst_getter< cv::flann::SavedIndexParams >() );
        SavedIndexParams_exposer.def( bp::init< std::string >(( bp::arg("filename_") )) );
        bp::implicitly_convertible< std::string, cv::flann::SavedIndexParams >();
        { //::cv::flann::SavedIndexParams::createIndex
        
            typedef ::flann::Index * ( ::cv::flann::SavedIndexParams::*createIndex_function_type )( ::cv::Mat const & ) const;
            typedef ::flann::Index * ( SavedIndexParams_wrapper::*default_createIndex_function_type )( ::cv::Mat const & ) const;
            
            SavedIndexParams_exposer.def( 
                "createIndex"
                , createIndex_function_type(&::cv::flann::SavedIndexParams::createIndex)
                , default_createIndex_function_type(&SavedIndexParams_wrapper::default_createIndex)
                , ( bp::arg("dataset") )
                , bp::return_value_policy< bp::reference_existing_object >() );
        
        }
        SavedIndexParams_exposer.def_readwrite( "filename", &cv::flann::SavedIndexParams::filename );
    }

}
