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

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

namespace bp = boost::python;

void register_KeyFrame_class(){

    { //::CEGUI::KeyFrame
        typedef bp::class_< CEGUI::KeyFrame > KeyFrame_exposer_t;
        KeyFrame_exposer_t KeyFrame_exposer = KeyFrame_exposer_t( "KeyFrame", "*!\n\
        \n\
            Defines a 'key frame' class\n\
        \n\
            Key frames are defined inside Affectors. The values they hold are used\n\
            when animation is precisely at the key frame's position. If it's between\n\
            two key frames, the value is interpolated.\n\
        \n\
        @see\n\
            Affector\n\
        *\n", bp::init< CEGUI::Affector *, float >(( bp::arg("parent"), bp::arg("position") ), "! internal constructor, please use Affector.createKeyFrame\n") );
        bp::scope KeyFrame_scope( KeyFrame_exposer );
        bp::enum_< CEGUI::KeyFrame::Progression>("Progression")
            .value("P_Linear", CEGUI::KeyFrame::P_Linear)
            .value("P_QuadraticAccelerating", CEGUI::KeyFrame::P_QuadraticAccelerating)
            .value("P_QuadraticDecelerating", CEGUI::KeyFrame::P_QuadraticDecelerating)
            .value("P_Discrete", CEGUI::KeyFrame::P_Discrete)
            .export_values()
            ;
        { //::CEGUI::KeyFrame::alterInterpolationPosition
        
            typedef float ( ::CEGUI::KeyFrame::*alterInterpolationPosition_function_type )( float ) ;
            
            KeyFrame_exposer.def( 
                "alterInterpolationPosition"
                , alterInterpolationPosition_function_type( &::CEGUI::KeyFrame::alterInterpolationPosition )
                , ( bp::arg("position") )
                , "*!\n\
            \n\
                Internal method, alters interpolation position based on progression\n\
                method. Don't use unless you know what you're doing!\n\
            *\n" );
        
        }
        { //::CEGUI::KeyFrame::getParent
        
            typedef ::CEGUI::Affector * ( ::CEGUI::KeyFrame::*getParent_function_type )(  ) const;
            
            KeyFrame_exposer.def( 
                "getParent"
                , getParent_function_type( &::CEGUI::KeyFrame::getParent )
                , bp::return_value_policy< bp::reference_existing_object >()
                , "*!\n\
            \n\
                Retrieves parent Affector of this Key Frame\n\
            *\n" );
        
        }
        { //::CEGUI::KeyFrame::getPosition
        
            typedef float ( ::CEGUI::KeyFrame::*getPosition_function_type )(  ) const;
            
            KeyFrame_exposer.def( 
                "getPosition"
                , getPosition_function_type( &::CEGUI::KeyFrame::getPosition )
                , "*!\n\
            \n\
                Retrieves position of this key frame in the animation (in seconds)\n\
            *\n" );
        
        }
        { //::CEGUI::KeyFrame::getProgression
        
            typedef ::CEGUI::KeyFrame::Progression ( ::CEGUI::KeyFrame::*getProgression_function_type )(  ) const;
            
            KeyFrame_exposer.def( 
                "getProgression"
                , getProgression_function_type( &::CEGUI::KeyFrame::getProgression )
                , "*!\n\
            \n\
                Retrieves progression method of this key frame\n\
            *\n" );
        
        }
        { //::CEGUI::KeyFrame::getSourceProperty
        
            typedef ::CEGUI::String const & ( ::CEGUI::KeyFrame::*getSourceProperty_function_type )(  ) const;
            
            KeyFrame_exposer.def( 
                "getSourceProperty"
                , getSourceProperty_function_type( &::CEGUI::KeyFrame::getSourceProperty )
                , bp::return_value_policy< bp::copy_const_reference >()
                , "*!\n\
            \n\
                Gets the source property of this key frame\n\
            *\n" );
        
        }
        { //::CEGUI::KeyFrame::getValue
        
            typedef ::CEGUI::String const & ( ::CEGUI::KeyFrame::*getValue_function_type )(  ) const;
            
            KeyFrame_exposer.def( 
                "getValue"
                , getValue_function_type( &::CEGUI::KeyFrame::getValue )
                , bp::return_value_policy< bp::copy_const_reference >()
                , "*!\n\
            \n\
                Retrieves value of this key frame\n\
            *\n" );
        
        }
        { //::CEGUI::KeyFrame::getValueForAnimation
        
            typedef ::CEGUI::String const & ( ::CEGUI::KeyFrame::*getValueForAnimation_function_type )( ::CEGUI::AnimationInstance * ) const;
            
            KeyFrame_exposer.def( 
                "getValueForAnimation"
                , getValueForAnimation_function_type( &::CEGUI::KeyFrame::getValueForAnimation )
                , ( bp::arg("instance") )
                , bp::return_value_policy< bp::copy_const_reference >()
                , "*!\n\
                \n\
                    Retrieves value of this for use when animating\n\
            \n\
                \n\
                    This is an internal method! Only use if you know what you're doing!\n\
            \n\
                \n\
                    This returns the base property value if source property is set on this\n\
                    keyframe, it works the same as getValue() if source property is empty\n\
                *\n" );
        
        }
        { //::CEGUI::KeyFrame::moveToPosition
        
            typedef void ( ::CEGUI::KeyFrame::*moveToPosition_function_type )( float ) ;
            
            KeyFrame_exposer.def( 
                "moveToPosition"
                , moveToPosition_function_type( &::CEGUI::KeyFrame::moveToPosition )
                , ( bp::arg("newPosition") )
                , "*!\n\
            \n\
                Moves this keyframe to a new given position\n\
            *\n" );
        
        }
        { //::CEGUI::KeyFrame::notifyPositionChanged
        
            typedef void ( ::CEGUI::KeyFrame::*notifyPositionChanged_function_type )( float ) ;
            
            KeyFrame_exposer.def( 
                "notifyPositionChanged"
                , notifyPositionChanged_function_type( &::CEGUI::KeyFrame::notifyPositionChanged )
                , ( bp::arg("newPosition") )
                , "*!\n\
                \n\
                    internal method, notifies this keyframe that it has been moved\n\
            \n\
                \n\
                    DO NOT CALL DIRECTLY, should only be used by Affector class\n\
            \n\
                @see\n\
                    KeyFrame.moveToPosition\n\
                *\n" );
        
        }
        { //::CEGUI::KeyFrame::savePropertyValue
        
            typedef void ( ::CEGUI::KeyFrame::*savePropertyValue_function_type )( ::CEGUI::AnimationInstance * ) ;
            
            KeyFrame_exposer.def( 
                "savePropertyValue"
                , savePropertyValue_function_type( &::CEGUI::KeyFrame::savePropertyValue )
                , ( bp::arg("instance") )
                , "*!\n\
            \n\
                Internal method, if this keyframe is using source property, this\n\
                saves it's value to given instance before it's affected\n\
            *\n" );
        
        }
        { //::CEGUI::KeyFrame::setProgression
        
            typedef void ( ::CEGUI::KeyFrame::*setProgression_function_type )( ::CEGUI::KeyFrame::Progression ) ;
            
            KeyFrame_exposer.def( 
                "setProgression"
                , setProgression_function_type( &::CEGUI::KeyFrame::setProgression )
                , ( bp::arg("p") )
                , "*!\n\
                \n\
                    Sets the progression method of this key frame\n\
            \n\
                \n\
                    This controls how the animation will progress TOWARDS this key frame,\n\
                    whether it will be a linear motion, accelerated, decelerated, etc...\n\
            \n\
                    That means that the progression of the first key frame is never used!\n\
            \n\
                    Please see KeyFrame.Progression\n\
                *\n" );
        
        }
        { //::CEGUI::KeyFrame::setSourceProperty
        
            typedef void ( ::CEGUI::KeyFrame::*setSourceProperty_function_type )( ::CEGUI::String const & ) ;
            
            KeyFrame_exposer.def( 
                "setSourceProperty"
                , setSourceProperty_function_type( &::CEGUI::KeyFrame::setSourceProperty )
                , ( bp::arg("sourceProperty") )
                , "*!\n\
                \n\
                    Sets the source property of this key frame\n\
            \n\
                \n\
                    Key frame can get it's value from 2 places, it's either stored inside\n\
                    it (setValue, getValue methods) or it's linked to a property\n\
                    (setSourcePropery, getSourceProperty).\n\
            \n\
                    The decision about what value is used is simple, if there is a source\n\
                    property (sourceProperty is not empty, it's used)\n\
                *\n" );
        
        }
        { //::CEGUI::KeyFrame::setValue
        
            typedef void ( ::CEGUI::KeyFrame::*setValue_function_type )( ::CEGUI::String const & ) ;
            
            KeyFrame_exposer.def( 
                "setValue"
                , setValue_function_type( &::CEGUI::KeyFrame::setValue )
                , ( bp::arg("value") )
                , "*!\n\
                \n\
                    Sets the value of this key frame\n\
            \n\
                \n\
                    This is only used if source property is empty!\n\
            \n\
                @see\n\
                    KeyFrame.setSourceProperty\n\
                *\n" );
        
        }
    }

}
