#ifndef EFL_INTERPOLATOR_CUBIC_BEZIER_IMPL_HH
#define EFL_INTERPOLATOR_CUBIC_BEZIER_IMPL_HH

#include "efl_interpolator_cubic_bezier.eo.hh"

namespace efl { 
inline ::efl::eolian::return_traits<void>::type Interpolator_Cubic_Bezier::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_interpolator_cubic_bezier_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);
}
inline ::efl::eolian::return_traits<void>::type Interpolator_Cubic_Bezier::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_interpolator_cubic_bezier_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));
}
} 
namespace eo_cxx {
namespace efl { 
inline ::efl::eolian::return_traits<void>::type Interpolator_Cubic_Bezier::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_interpolator_cubic_bezier_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);
}
inline ::efl::eolian::return_traits<void>::type Interpolator_Cubic_Bezier::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_interpolator_cubic_bezier_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));
}
inline efl::Interpolator_Cubic_Bezier::operator ::efl::Interpolator_Cubic_Bezier() const { return *static_cast< ::efl::Interpolator_Cubic_Bezier const*>(static_cast<void const*>(this)); }
inline efl::Interpolator_Cubic_Bezier::operator ::efl::Interpolator_Cubic_Bezier&() { return *static_cast< ::efl::Interpolator_Cubic_Bezier*>(static_cast<void*>(this)); }
inline efl::Interpolator_Cubic_Bezier::operator ::efl::Interpolator_Cubic_Bezier const&() const { return *static_cast< ::efl::Interpolator_Cubic_Bezier const*>(static_cast<void const*>(this)); }
} }
#endif
