#ifndef EVAS_CANVAS3D_LIGHT_IMPL_HH
#define EVAS_CANVAS3D_LIGHT_IMPL_HH

#include "evas_canvas3d_light.eo.hh"

namespace evas { namespace canvas3d { 
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Light::directional_get() const
{
    Eina_Bool __return_value =  ::evas_canvas3d_light_directional_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::directional_set( ::efl::eolian::in_traits<bool>::type directional) const
{
     ::evas_canvas3d_light_directional_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Eina_Bool,  ::efl::eolian::in_traits<bool>::type>(directional));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Evas_Real>::type Light::spot_exponent_get() const
{
    Evas_Real __return_value =  ::evas_canvas3d_light_spot_exponent_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Evas_Real>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::spot_exponent_set( ::efl::eolian::in_traits<Evas_Real>::type exponent) const
{
     ::evas_canvas3d_light_spot_exponent_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(exponent));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Evas_Real>::type Light::spot_cutoff_get() const
{
    Evas_Real __return_value =  ::evas_canvas3d_light_spot_cutoff_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Evas_Real>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::spot_cutoff_set( ::efl::eolian::in_traits<Evas_Real>::type cutoff) const
{
     ::evas_canvas3d_light_spot_cutoff_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(cutoff));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Light::attenuation_enable_get() const
{
    Eina_Bool __return_value =  ::evas_canvas3d_light_attenuation_enable_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::attenuation_enable_set( ::efl::eolian::in_traits<bool>::type enable) const
{
     ::evas_canvas3d_light_attenuation_enable_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Eina_Bool,  ::efl::eolian::in_traits<bool>::type>(enable));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::ambient_set( ::efl::eolian::in_traits<Evas_Real>::type r,  ::efl::eolian::in_traits<Evas_Real>::type g,  ::efl::eolian::in_traits<Evas_Real>::type b,  ::efl::eolian::in_traits<Evas_Real>::type a) const
{
     ::evas_canvas3d_light_ambient_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(r),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(g),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(b),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(a));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::ambient_get( ::efl::eolian::out_traits<Evas_Real>::type r,  ::efl::eolian::out_traits<Evas_Real>::type g,  ::efl::eolian::out_traits<Evas_Real>::type b,  ::efl::eolian::out_traits<Evas_Real>::type a) const
{
    Evas_Real __out_param_r = {};
    Evas_Real __out_param_g = {};
    Evas_Real __out_param_b = {};
    Evas_Real __out_param_a = {};
     ::evas_canvas3d_light_ambient_get(_eo_ptr(),
        & __out_param_r,
        & __out_param_g,
        & __out_param_b,
        & __out_param_a);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(r, __out_param_r);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(g, __out_param_g);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(b, __out_param_b);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(a, __out_param_a);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::diffuse_set( ::efl::eolian::in_traits<Evas_Real>::type r,  ::efl::eolian::in_traits<Evas_Real>::type g,  ::efl::eolian::in_traits<Evas_Real>::type b,  ::efl::eolian::in_traits<Evas_Real>::type a) const
{
     ::evas_canvas3d_light_diffuse_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(r),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(g),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(b),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(a));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::diffuse_get( ::efl::eolian::out_traits<Evas_Real>::type r,  ::efl::eolian::out_traits<Evas_Real>::type g,  ::efl::eolian::out_traits<Evas_Real>::type b,  ::efl::eolian::out_traits<Evas_Real>::type a) const
{
    Evas_Real __out_param_r = {};
    Evas_Real __out_param_g = {};
    Evas_Real __out_param_b = {};
    Evas_Real __out_param_a = {};
     ::evas_canvas3d_light_diffuse_get(_eo_ptr(),
        & __out_param_r,
        & __out_param_g,
        & __out_param_b,
        & __out_param_a);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(r, __out_param_r);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(g, __out_param_g);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(b, __out_param_b);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(a, __out_param_a);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::specular_set( ::efl::eolian::in_traits<Evas_Real>::type r,  ::efl::eolian::in_traits<Evas_Real>::type g,  ::efl::eolian::in_traits<Evas_Real>::type b,  ::efl::eolian::in_traits<Evas_Real>::type a) const
{
     ::evas_canvas3d_light_specular_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(r),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(g),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(b),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(a));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::specular_get( ::efl::eolian::out_traits<Evas_Real>::type r,  ::efl::eolian::out_traits<Evas_Real>::type g,  ::efl::eolian::out_traits<Evas_Real>::type b,  ::efl::eolian::out_traits<Evas_Real>::type a) const
{
    Evas_Real __out_param_r = {};
    Evas_Real __out_param_g = {};
    Evas_Real __out_param_b = {};
    Evas_Real __out_param_a = {};
     ::evas_canvas3d_light_specular_get(_eo_ptr(),
        & __out_param_r,
        & __out_param_g,
        & __out_param_b,
        & __out_param_a);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(r, __out_param_r);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(g, __out_param_g);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(b, __out_param_b);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(a, __out_param_a);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::attenuation_set( ::efl::eolian::in_traits<Evas_Real>::type constant,  ::efl::eolian::in_traits<Evas_Real>::type linear,  ::efl::eolian::in_traits<Evas_Real>::type quadratic) const
{
     ::evas_canvas3d_light_attenuation_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(constant),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(linear),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(quadratic));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::attenuation_get( ::efl::eolian::out_traits<Evas_Real>::type constant,  ::efl::eolian::out_traits<Evas_Real>::type linear,  ::efl::eolian::out_traits<Evas_Real>::type quadratic) const
{
    Evas_Real __out_param_constant = {};
    Evas_Real __out_param_linear = {};
    Evas_Real __out_param_quadratic = {};
     ::evas_canvas3d_light_attenuation_get(_eo_ptr(),
        & __out_param_constant,
        & __out_param_linear,
        & __out_param_quadratic);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(constant, __out_param_constant);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(linear, __out_param_linear);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(quadratic, __out_param_quadratic);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::projection_matrix_set( ::efl::eolian::in_traits<Evas_Real const&>::type matrix) const
{
     ::evas_canvas3d_light_projection_matrix_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<const Evas_Real *,  ::efl::eolian::in_traits<Evas_Real const&>::type>(matrix));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::projection_matrix_get( ::efl::eolian::out_traits<Evas_Real>::type matrix) const
{
    Evas_Real __out_param_matrix = {};
     ::evas_canvas3d_light_projection_matrix_get(_eo_ptr(),
        & __out_param_matrix);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(matrix, __out_param_matrix);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::projection_perspective_set( ::efl::eolian::in_traits<Evas_Real>::type fovy,  ::efl::eolian::in_traits<Evas_Real>::type aspect,  ::efl::eolian::in_traits<Evas_Real>::type dnear,  ::efl::eolian::in_traits<Evas_Real>::type dfar) const
{
     ::evas_canvas3d_light_projection_perspective_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(fovy),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(aspect),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dnear),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dfar));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::projection_frustum_set( ::efl::eolian::in_traits<Evas_Real>::type left,  ::efl::eolian::in_traits<Evas_Real>::type right,  ::efl::eolian::in_traits<Evas_Real>::type bottom,  ::efl::eolian::in_traits<Evas_Real>::type top,  ::efl::eolian::in_traits<Evas_Real>::type dnear,  ::efl::eolian::in_traits<Evas_Real>::type dfar) const
{
     ::evas_canvas3d_light_projection_frustum_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(left),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(right),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(bottom),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(top),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dnear),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dfar));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::projection_ortho_set( ::efl::eolian::in_traits<Evas_Real>::type left,  ::efl::eolian::in_traits<Evas_Real>::type right,  ::efl::eolian::in_traits<Evas_Real>::type bottom,  ::efl::eolian::in_traits<Evas_Real>::type top,  ::efl::eolian::in_traits<Evas_Real>::type dnear,  ::efl::eolian::in_traits<Evas_Real>::type dfar) const
{
     ::evas_canvas3d_light_projection_ortho_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(left),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(right),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(bottom),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(top),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dnear),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dfar));
}
#endif
} } 
namespace eo_cxx {
namespace evas { namespace canvas3d { 
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Light::directional_get() const
{
    Eina_Bool __return_value =  ::evas_canvas3d_light_directional_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::directional_set( ::efl::eolian::in_traits<bool>::type directional) const
{
     ::evas_canvas3d_light_directional_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Eina_Bool,  ::efl::eolian::in_traits<bool>::type>(directional));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Evas_Real>::type Light::spot_exponent_get() const
{
    Evas_Real __return_value =  ::evas_canvas3d_light_spot_exponent_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Evas_Real>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::spot_exponent_set( ::efl::eolian::in_traits<Evas_Real>::type exponent) const
{
     ::evas_canvas3d_light_spot_exponent_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(exponent));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Evas_Real>::type Light::spot_cutoff_get() const
{
    Evas_Real __return_value =  ::evas_canvas3d_light_spot_cutoff_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Evas_Real>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::spot_cutoff_set( ::efl::eolian::in_traits<Evas_Real>::type cutoff) const
{
     ::evas_canvas3d_light_spot_cutoff_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(cutoff));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<bool>::type Light::attenuation_enable_get() const
{
    Eina_Bool __return_value =  ::evas_canvas3d_light_attenuation_enable_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<bool>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::attenuation_enable_set( ::efl::eolian::in_traits<bool>::type enable) const
{
     ::evas_canvas3d_light_attenuation_enable_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Eina_Bool,  ::efl::eolian::in_traits<bool>::type>(enable));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::ambient_set( ::efl::eolian::in_traits<Evas_Real>::type r,  ::efl::eolian::in_traits<Evas_Real>::type g,  ::efl::eolian::in_traits<Evas_Real>::type b,  ::efl::eolian::in_traits<Evas_Real>::type a) const
{
     ::evas_canvas3d_light_ambient_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(r),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(g),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(b),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(a));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::ambient_get( ::efl::eolian::out_traits<Evas_Real>::type r,  ::efl::eolian::out_traits<Evas_Real>::type g,  ::efl::eolian::out_traits<Evas_Real>::type b,  ::efl::eolian::out_traits<Evas_Real>::type a) const
{
    Evas_Real __out_param_r = {};
    Evas_Real __out_param_g = {};
    Evas_Real __out_param_b = {};
    Evas_Real __out_param_a = {};
     ::evas_canvas3d_light_ambient_get(_eo_ptr(),
        & __out_param_r,
        & __out_param_g,
        & __out_param_b,
        & __out_param_a);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(r, __out_param_r);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(g, __out_param_g);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(b, __out_param_b);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(a, __out_param_a);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::diffuse_set( ::efl::eolian::in_traits<Evas_Real>::type r,  ::efl::eolian::in_traits<Evas_Real>::type g,  ::efl::eolian::in_traits<Evas_Real>::type b,  ::efl::eolian::in_traits<Evas_Real>::type a) const
{
     ::evas_canvas3d_light_diffuse_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(r),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(g),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(b),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(a));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::diffuse_get( ::efl::eolian::out_traits<Evas_Real>::type r,  ::efl::eolian::out_traits<Evas_Real>::type g,  ::efl::eolian::out_traits<Evas_Real>::type b,  ::efl::eolian::out_traits<Evas_Real>::type a) const
{
    Evas_Real __out_param_r = {};
    Evas_Real __out_param_g = {};
    Evas_Real __out_param_b = {};
    Evas_Real __out_param_a = {};
     ::evas_canvas3d_light_diffuse_get(_eo_ptr(),
        & __out_param_r,
        & __out_param_g,
        & __out_param_b,
        & __out_param_a);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(r, __out_param_r);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(g, __out_param_g);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(b, __out_param_b);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(a, __out_param_a);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::specular_set( ::efl::eolian::in_traits<Evas_Real>::type r,  ::efl::eolian::in_traits<Evas_Real>::type g,  ::efl::eolian::in_traits<Evas_Real>::type b,  ::efl::eolian::in_traits<Evas_Real>::type a) const
{
     ::evas_canvas3d_light_specular_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(r),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(g),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(b),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(a));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::specular_get( ::efl::eolian::out_traits<Evas_Real>::type r,  ::efl::eolian::out_traits<Evas_Real>::type g,  ::efl::eolian::out_traits<Evas_Real>::type b,  ::efl::eolian::out_traits<Evas_Real>::type a) const
{
    Evas_Real __out_param_r = {};
    Evas_Real __out_param_g = {};
    Evas_Real __out_param_b = {};
    Evas_Real __out_param_a = {};
     ::evas_canvas3d_light_specular_get(_eo_ptr(),
        & __out_param_r,
        & __out_param_g,
        & __out_param_b,
        & __out_param_a);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(r, __out_param_r);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(g, __out_param_g);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(b, __out_param_b);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(a, __out_param_a);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::attenuation_set( ::efl::eolian::in_traits<Evas_Real>::type constant,  ::efl::eolian::in_traits<Evas_Real>::type linear,  ::efl::eolian::in_traits<Evas_Real>::type quadratic) const
{
     ::evas_canvas3d_light_attenuation_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(constant),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(linear),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(quadratic));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::attenuation_get( ::efl::eolian::out_traits<Evas_Real>::type constant,  ::efl::eolian::out_traits<Evas_Real>::type linear,  ::efl::eolian::out_traits<Evas_Real>::type quadratic) const
{
    Evas_Real __out_param_constant = {};
    Evas_Real __out_param_linear = {};
    Evas_Real __out_param_quadratic = {};
     ::evas_canvas3d_light_attenuation_get(_eo_ptr(),
        & __out_param_constant,
        & __out_param_linear,
        & __out_param_quadratic);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(constant, __out_param_constant);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(linear, __out_param_linear);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(quadratic, __out_param_quadratic);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::projection_matrix_set( ::efl::eolian::in_traits<Evas_Real const&>::type matrix) const
{
     ::evas_canvas3d_light_projection_matrix_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<const Evas_Real *,  ::efl::eolian::in_traits<Evas_Real const&>::type>(matrix));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::projection_matrix_get( ::efl::eolian::out_traits<Evas_Real>::type matrix) const
{
    Evas_Real __out_param_matrix = {};
     ::evas_canvas3d_light_projection_matrix_get(_eo_ptr(),
        & __out_param_matrix);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(matrix, __out_param_matrix);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::projection_perspective_set( ::efl::eolian::in_traits<Evas_Real>::type fovy,  ::efl::eolian::in_traits<Evas_Real>::type aspect,  ::efl::eolian::in_traits<Evas_Real>::type dnear,  ::efl::eolian::in_traits<Evas_Real>::type dfar) const
{
     ::evas_canvas3d_light_projection_perspective_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(fovy),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(aspect),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dnear),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dfar));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::projection_frustum_set( ::efl::eolian::in_traits<Evas_Real>::type left,  ::efl::eolian::in_traits<Evas_Real>::type right,  ::efl::eolian::in_traits<Evas_Real>::type bottom,  ::efl::eolian::in_traits<Evas_Real>::type top,  ::efl::eolian::in_traits<Evas_Real>::type dnear,  ::efl::eolian::in_traits<Evas_Real>::type dfar) const
{
     ::evas_canvas3d_light_projection_frustum_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(left),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(right),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(bottom),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(top),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dnear),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dfar));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Light::projection_ortho_set( ::efl::eolian::in_traits<Evas_Real>::type left,  ::efl::eolian::in_traits<Evas_Real>::type right,  ::efl::eolian::in_traits<Evas_Real>::type bottom,  ::efl::eolian::in_traits<Evas_Real>::type top,  ::efl::eolian::in_traits<Evas_Real>::type dnear,  ::efl::eolian::in_traits<Evas_Real>::type dfar) const
{
     ::evas_canvas3d_light_projection_ortho_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(left),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(right),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(bottom),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(top),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dnear),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(dfar));
}
#endif
inline evas::canvas3d::Light::operator ::evas::canvas3d::Light() const { return *static_cast< ::evas::canvas3d::Light const*>(static_cast<void const*>(this)); }
inline evas::canvas3d::Light::operator ::evas::canvas3d::Light&() { return *static_cast< ::evas::canvas3d::Light*>(static_cast<void*>(this)); }
inline evas::canvas3d::Light::operator ::evas::canvas3d::Light const&() const { return *static_cast< ::evas::canvas3d::Light const*>(static_cast<void const*>(this)); }
} } }
#endif
