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

#include "boost/python.hpp"
#include "python_CEGUI.h"
#include "UVector2.pypp.hpp"

namespace bp = boost::python;

void register_UVector2_class(){

    { //::CEGUI::UVector2
        typedef bp::class_< CEGUI::UVector2 > UVector2_exposer_t;
        UVector2_exposer_t UVector2_exposer = UVector2_exposer_t( "UVector2", "*!\n\
        \n\
            Two dimensional vector class built using unified dimensions (UDims).\n\
            The UVector2 class is used for representing both positions and sizes.\n\
        *\n", bp::init< >() );
        bp::scope UVector2_scope( UVector2_exposer );
        UVector2_exposer.def( bp::init< CEGUI::UDim const &, CEGUI::UDim const & >(( bp::arg("x"), bp::arg("y") )) );
        UVector2_exposer.def( bp::init< CEGUI::UVector2 const & >(( bp::arg("v") )) );
        { //::CEGUI::UVector2::asAbsolute
        
            typedef ::CEGUI::Vector2 ( ::CEGUI::UVector2::*asAbsolute_function_type )( ::CEGUI::Size const & ) const;
            
            UVector2_exposer.def( 
                "asAbsolute"
                , asAbsolute_function_type( &::CEGUI::UVector2::asAbsolute )
                , ( bp::arg("base") ) );
        
        }
        { //::CEGUI::UVector2::asRelative
        
            typedef ::CEGUI::Vector2 ( ::CEGUI::UVector2::*asRelative_function_type )( ::CEGUI::Size const & ) const;
            
            UVector2_exposer.def( 
                "asRelative"
                , asRelative_function_type( &::CEGUI::UVector2::asRelative )
                , ( bp::arg("base") ) );
        
        }
        UVector2_exposer.def( bp::self != bp::self );
        UVector2_exposer.def( bp::self * bp::self );
        UVector2_exposer.def( bp::self * bp::other< CEGUI::UDim >() );
        UVector2_exposer.def( bp::self *= bp::self );
        UVector2_exposer.def( bp::self *= bp::other< CEGUI::UDim >() );
        UVector2_exposer.def( bp::self + bp::self );
        UVector2_exposer.def( bp::self + bp::other< CEGUI::UDim >() );
        UVector2_exposer.def( bp::self += bp::self );
        UVector2_exposer.def( bp::self += bp::other< CEGUI::UDim >() );
        UVector2_exposer.def( bp::self - bp::self );
        UVector2_exposer.def( bp::self - bp::other< CEGUI::UDim >() );
        UVector2_exposer.def( bp::self -= bp::self );
        UVector2_exposer.def( bp::self -= bp::other< CEGUI::UDim >() );
        UVector2_exposer.def( bp::self / bp::self );
        UVector2_exposer.def( bp::self / bp::other< CEGUI::UDim >() );
        UVector2_exposer.def( bp::self /= bp::self );
        UVector2_exposer.def( bp::self /= bp::other< CEGUI::UDim >() );
        UVector2_exposer.def( bp::self == bp::self );
        UVector2_exposer.def_readwrite( "d_x", &CEGUI::UVector2::d_x );
        UVector2_exposer.def_readwrite( "d_y", &CEGUI::UVector2::d_y );
    }

}
