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

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

namespace bp = boost::python;

struct CvBlobTrackSeq_wrapper : CvBlobTrackSeq, bp::wrapper< CvBlobTrackSeq > {

    CvBlobTrackSeq_wrapper(CvBlobTrackSeq const & arg )
    : CvBlobTrackSeq( arg )
      , bp::wrapper< CvBlobTrackSeq >(){
        // copy constructor
        
    }

    CvBlobTrackSeq_wrapper(int TrackSize=12u )
    : CvBlobTrackSeq( TrackSize )
      , bp::wrapper< CvBlobTrackSeq >(){
        // constructor
    
    }

    virtual void AddBlobTrack( int TrackID, int StartFrame=0 ) {
        if( bp::override func_AddBlobTrack = this->get_override( "AddBlobTrack" ) )
            func_AddBlobTrack( TrackID, StartFrame );
        else{
            this->CvBlobTrackSeq::AddBlobTrack( TrackID, StartFrame );
        }
    }
    
    void default_AddBlobTrack( int TrackID, int StartFrame=0 ) {
        CvBlobTrackSeq::AddBlobTrack( TrackID, StartFrame );
    }

    virtual void Clear(  ) {
        if( bp::override func_Clear = this->get_override( "Clear" ) )
            func_Clear(  );
        else{
            this->CvBlobTrackSeq::Clear(  );
        }
    }
    
    void default_Clear(  ) {
        CvBlobTrackSeq::Clear( );
    }

    virtual void DelBlobTrack( int TrackIndex ) {
        if( bp::override func_DelBlobTrack = this->get_override( "DelBlobTrack" ) )
            func_DelBlobTrack( TrackIndex );
        else{
            this->CvBlobTrackSeq::DelBlobTrack( TrackIndex );
        }
    }
    
    void default_DelBlobTrack( int TrackIndex ) {
        CvBlobTrackSeq::DelBlobTrack( TrackIndex );
    }

    virtual void DelBlobTrackByID( int TrackID ) {
        if( bp::override func_DelBlobTrackByID = this->get_override( "DelBlobTrackByID" ) )
            func_DelBlobTrackByID( TrackID );
        else{
            this->CvBlobTrackSeq::DelBlobTrackByID( TrackID );
        }
    }
    
    void default_DelBlobTrackByID( int TrackID ) {
        CvBlobTrackSeq::DelBlobTrackByID( TrackID );
    }

    virtual ::CvBlobTrack * GetBlobTrack( int TrackIndex ) {
        if( bp::override func_GetBlobTrack = this->get_override( "GetBlobTrack" ) )
            return func_GetBlobTrack( TrackIndex );
        else{
            return this->CvBlobTrackSeq::GetBlobTrack( TrackIndex );
        }
    }
    
    ::CvBlobTrack * default_GetBlobTrack( int TrackIndex ) {
        return CvBlobTrackSeq::GetBlobTrack( TrackIndex );
    }

    virtual ::CvBlobTrack * GetBlobTrackByID( int TrackID ) {
        if( bp::override func_GetBlobTrackByID = this->get_override( "GetBlobTrackByID" ) )
            return func_GetBlobTrackByID( TrackID );
        else{
            return this->CvBlobTrackSeq::GetBlobTrackByID( TrackID );
        }
    }
    
    ::CvBlobTrack * default_GetBlobTrackByID( int TrackID ) {
        return CvBlobTrackSeq::GetBlobTrackByID( TrackID );
    }

    virtual int GetBlobTrackNum(  ) {
        if( bp::override func_GetBlobTrackNum = this->get_override( "GetBlobTrackNum" ) )
            return func_GetBlobTrackNum(  );
        else{
            return this->CvBlobTrackSeq::GetBlobTrackNum(  );
        }
    }
    
    int default_GetBlobTrackNum(  ) {
        return CvBlobTrackSeq::GetBlobTrackNum( );
    }

};

void register_CvBlobTrackSeq_class(){

    { //::CvBlobTrackSeq
        typedef bp::class_< CvBlobTrackSeq_wrapper > CvBlobTrackSeq_exposer_t;
        CvBlobTrackSeq_exposer_t CvBlobTrackSeq_exposer = CvBlobTrackSeq_exposer_t( "CvBlobTrackSeq", bp::init< bp::optional< int > >(( bp::arg("TrackSize")=(int)(12u) )) );
        bp::scope CvBlobTrackSeq_scope( CvBlobTrackSeq_exposer );
        CvBlobTrackSeq_exposer.add_property( "this", pyplus_conv::make_addressof_inst_getter< CvBlobTrackSeq >() );
        bp::implicitly_convertible< int, CvBlobTrackSeq >();
        { //::CvBlobTrackSeq::AddBlobTrack
        
            typedef void ( ::CvBlobTrackSeq::*AddBlobTrack_function_type )( int,int ) ;
            typedef void ( CvBlobTrackSeq_wrapper::*default_AddBlobTrack_function_type )( int,int ) ;
            
            CvBlobTrackSeq_exposer.def( 
                "AddBlobTrack"
                , AddBlobTrack_function_type(&::CvBlobTrackSeq::AddBlobTrack)
                , default_AddBlobTrack_function_type(&CvBlobTrackSeq_wrapper::default_AddBlobTrack)
                , ( bp::arg("TrackID"), bp::arg("StartFrame")=(int)(0) ) );
        
        }
        { //::CvBlobTrackSeq::Clear
        
            typedef void ( ::CvBlobTrackSeq::*Clear_function_type )(  ) ;
            typedef void ( CvBlobTrackSeq_wrapper::*default_Clear_function_type )(  ) ;
            
            CvBlobTrackSeq_exposer.def( 
                "Clear"
                , Clear_function_type(&::CvBlobTrackSeq::Clear)
                , default_Clear_function_type(&CvBlobTrackSeq_wrapper::default_Clear) );
        
        }
        { //::CvBlobTrackSeq::DelBlobTrack
        
            typedef void ( ::CvBlobTrackSeq::*DelBlobTrack_function_type )( int ) ;
            typedef void ( CvBlobTrackSeq_wrapper::*default_DelBlobTrack_function_type )( int ) ;
            
            CvBlobTrackSeq_exposer.def( 
                "DelBlobTrack"
                , DelBlobTrack_function_type(&::CvBlobTrackSeq::DelBlobTrack)
                , default_DelBlobTrack_function_type(&CvBlobTrackSeq_wrapper::default_DelBlobTrack)
                , ( bp::arg("TrackIndex") ) );
        
        }
        { //::CvBlobTrackSeq::DelBlobTrackByID
        
            typedef void ( ::CvBlobTrackSeq::*DelBlobTrackByID_function_type )( int ) ;
            typedef void ( CvBlobTrackSeq_wrapper::*default_DelBlobTrackByID_function_type )( int ) ;
            
            CvBlobTrackSeq_exposer.def( 
                "DelBlobTrackByID"
                , DelBlobTrackByID_function_type(&::CvBlobTrackSeq::DelBlobTrackByID)
                , default_DelBlobTrackByID_function_type(&CvBlobTrackSeq_wrapper::default_DelBlobTrackByID)
                , ( bp::arg("TrackID") ) );
        
        }
        { //::CvBlobTrackSeq::GetBlobTrack
        
            typedef ::CvBlobTrack * ( ::CvBlobTrackSeq::*GetBlobTrack_function_type )( int ) ;
            typedef ::CvBlobTrack * ( CvBlobTrackSeq_wrapper::*default_GetBlobTrack_function_type )( int ) ;
            
            CvBlobTrackSeq_exposer.def( 
                "GetBlobTrack"
                , GetBlobTrack_function_type(&::CvBlobTrackSeq::GetBlobTrack)
                , default_GetBlobTrack_function_type(&CvBlobTrackSeq_wrapper::default_GetBlobTrack)
                , ( bp::arg("TrackIndex") )
                , bp::return_internal_reference< >() );
        
        }
        { //::CvBlobTrackSeq::GetBlobTrackByID
        
            typedef ::CvBlobTrack * ( ::CvBlobTrackSeq::*GetBlobTrackByID_function_type )( int ) ;
            typedef ::CvBlobTrack * ( CvBlobTrackSeq_wrapper::*default_GetBlobTrackByID_function_type )( int ) ;
            
            CvBlobTrackSeq_exposer.def( 
                "GetBlobTrackByID"
                , GetBlobTrackByID_function_type(&::CvBlobTrackSeq::GetBlobTrackByID)
                , default_GetBlobTrackByID_function_type(&CvBlobTrackSeq_wrapper::default_GetBlobTrackByID)
                , ( bp::arg("TrackID") )
                , bp::return_internal_reference< >() );
        
        }
        { //::CvBlobTrackSeq::GetBlobTrackNum
        
            typedef int ( ::CvBlobTrackSeq::*GetBlobTrackNum_function_type )(  ) ;
            typedef int ( CvBlobTrackSeq_wrapper::*default_GetBlobTrackNum_function_type )(  ) ;
            
            CvBlobTrackSeq_exposer.def( 
                "GetBlobTrackNum"
                , GetBlobTrackNum_function_type(&::CvBlobTrackSeq::GetBlobTrackNum)
                , default_GetBlobTrackNum_function_type(&CvBlobTrackSeq_wrapper::default_GetBlobTrackNum) );
        
        }
    }

}
