#ifndef EFL_CUBIC_BEZIER_INTERPOLATOR_IMPL_HH
#define EFL_CUBIC_BEZIER_INTERPOLATOR_IMPL_HH

#include "efl_cubic_bezier_interpolator.eo.hh"

namespace efl { 
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Cubic_Bezier_Interpolator::factors_get( ::efl::eolian::out_traits<double>::type factor1,  ::efl::eolian::out_traits<double>::type factor2,  ::efl::eolian::out_traits<double>::type factor3,  ::efl::eolian::out_traits<double>::type factor4) const
{
    double __out_param_factor1 = {};
    double __out_param_factor2 = {};
    double __out_param_factor3 = {};
    double __out_param_factor4 = {};
     ::efl_cubic_bezier_interpolator_factors_get(_eo_ptr(),
        & __out_param_factor1,
        & __out_param_factor2,
        & __out_param_factor3,
        & __out_param_factor4);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<double>::type, double>(factor1, __out_param_factor1);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<double>::type, double>(factor2, __out_param_factor2);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<double>::type, double>(factor3, __out_param_factor3);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<double>::type, double>(factor4, __out_param_factor4);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Cubic_Bezier_Interpolator::factors_set( ::efl::eolian::in_traits<double>::type factor1,  ::efl::eolian::in_traits<double>::type factor2,  ::efl::eolian::in_traits<double>::type factor3,  ::efl::eolian::in_traits<double>::type factor4) const
{
     ::efl_cubic_bezier_interpolator_factors_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<double,  ::efl::eolian::in_traits<double>::type>(factor1),
         ::efl::eolian::convert_to_c<double,  ::efl::eolian::in_traits<double>::type>(factor2),
         ::efl::eolian::convert_to_c<double,  ::efl::eolian::in_traits<double>::type>(factor3),
         ::efl::eolian::convert_to_c<double,  ::efl::eolian::in_traits<double>::type>(factor4));
}
#endif
} 
namespace eo_cxx {
namespace efl { 
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Cubic_Bezier_Interpolator::factors_get( ::efl::eolian::out_traits<double>::type factor1,  ::efl::eolian::out_traits<double>::type factor2,  ::efl::eolian::out_traits<double>::type factor3,  ::efl::eolian::out_traits<double>::type factor4) const
{
    double __out_param_factor1 = {};
    double __out_param_factor2 = {};
    double __out_param_factor3 = {};
    double __out_param_factor4 = {};
     ::efl_cubic_bezier_interpolator_factors_get(_eo_ptr(),
        & __out_param_factor1,
        & __out_param_factor2,
        & __out_param_factor3,
        & __out_param_factor4);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<double>::type, double>(factor1, __out_param_factor1);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<double>::type, double>(factor2, __out_param_factor2);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<double>::type, double>(factor3, __out_param_factor3);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<double>::type, double>(factor4, __out_param_factor4);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Cubic_Bezier_Interpolator::factors_set( ::efl::eolian::in_traits<double>::type factor1,  ::efl::eolian::in_traits<double>::type factor2,  ::efl::eolian::in_traits<double>::type factor3,  ::efl::eolian::in_traits<double>::type factor4) const
{
     ::efl_cubic_bezier_interpolator_factors_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<double,  ::efl::eolian::in_traits<double>::type>(factor1),
         ::efl::eolian::convert_to_c<double,  ::efl::eolian::in_traits<double>::type>(factor2),
         ::efl::eolian::convert_to_c<double,  ::efl::eolian::in_traits<double>::type>(factor3),
         ::efl::eolian::convert_to_c<double,  ::efl::eolian::in_traits<double>::type>(factor4));
}
#endif
inline efl::Cubic_Bezier_Interpolator::operator ::efl::Cubic_Bezier_Interpolator() const { return *static_cast< ::efl::Cubic_Bezier_Interpolator const*>(static_cast<void const*>(this)); }
inline efl::Cubic_Bezier_Interpolator::operator ::efl::Cubic_Bezier_Interpolator&() { return *static_cast< ::efl::Cubic_Bezier_Interpolator*>(static_cast<void*>(this)); }
inline efl::Cubic_Bezier_Interpolator::operator ::efl::Cubic_Bezier_Interpolator const&() const { return *static_cast< ::efl::Cubic_Bezier_Interpolator const*>(static_cast<void const*>(this)); }
} }
#endif
