#ifndef EVAS_CANVAS3D_PRIMITIVE_IMPL_HH
#define EVAS_CANVAS3D_PRIMITIVE_IMPL_HH

#include "evas_canvas3d_primitive.eo.hh"

namespace evas { namespace canvas3d { 
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Evas_Canvas3D_Mesh_Primitive>::type Primitive::form_get() const
{
    Evas_Canvas3D_Mesh_Primitive __return_value =  ::evas_canvas3d_primitive_form_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Evas_Canvas3D_Mesh_Primitive>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::form_set( ::efl::eolian::in_traits<Evas_Canvas3D_Mesh_Primitive>::type form) const
{
     ::evas_canvas3d_primitive_form_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Canvas3D_Mesh_Primitive,  ::efl::eolian::in_traits<Evas_Canvas3D_Mesh_Primitive>::type>(form));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Evas_Canvas3D_Primitive_Mode>::type Primitive::mode_get() const
{
    Evas_Canvas3D_Primitive_Mode __return_value =  ::evas_canvas3d_primitive_mode_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Evas_Canvas3D_Primitive_Mode>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::mode_set( ::efl::eolian::in_traits<Evas_Canvas3D_Primitive_Mode>::type mode) const
{
     ::evas_canvas3d_primitive_mode_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Canvas3D_Primitive_Mode,  ::efl::eolian::in_traits<Evas_Canvas3D_Primitive_Mode>::type>(mode));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Evas_Real>::type Primitive::ratio_get() const
{
    Evas_Real __return_value =  ::evas_canvas3d_primitive_ratio_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 Primitive::ratio_set( ::efl::eolian::in_traits<Evas_Real>::type ratio) const
{
     ::evas_canvas3d_primitive_ratio_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(ratio));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<int>::type Primitive::precision_get() const
{
    int __return_value =  ::evas_canvas3d_primitive_precision_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<int>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::precision_set( ::efl::eolian::in_traits<int>::type precision) const
{
     ::evas_canvas3d_primitive_precision_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(precision));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::surface_set( ::efl::eolian::in_traits<Evas_Canvas3D_Surface_Func const*>::type surface) const
{
     ::evas_canvas3d_primitive_surface_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Canvas3D_Surface_Func *,  ::efl::eolian::in_traits<Evas_Canvas3D_Surface_Func const*>::type>(surface));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::tex_scale_get( ::efl::eolian::out_traits<Evas_Real>::type tex_scale_x,  ::efl::eolian::out_traits<Evas_Real>::type tex_scale_y) const
{
    Evas_Real __out_param_tex_scale_x = {};
    Evas_Real __out_param_tex_scale_y = {};
     ::evas_canvas3d_primitive_tex_scale_get(_eo_ptr(),
        & __out_param_tex_scale_x,
        & __out_param_tex_scale_y);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(tex_scale_x, __out_param_tex_scale_x);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(tex_scale_y, __out_param_tex_scale_y);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::tex_scale_set( ::efl::eolian::in_traits<Evas_Real>::type tex_scale_x,  ::efl::eolian::in_traits<Evas_Real>::type tex_scale_y) const
{
     ::evas_canvas3d_primitive_tex_scale_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(tex_scale_x),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(tex_scale_y));
}
#endif
} } 
namespace eo_cxx {
namespace evas { namespace canvas3d { 
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Evas_Canvas3D_Mesh_Primitive>::type Primitive::form_get() const
{
    Evas_Canvas3D_Mesh_Primitive __return_value =  ::evas_canvas3d_primitive_form_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Evas_Canvas3D_Mesh_Primitive>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::form_set( ::efl::eolian::in_traits<Evas_Canvas3D_Mesh_Primitive>::type form) const
{
     ::evas_canvas3d_primitive_form_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Canvas3D_Mesh_Primitive,  ::efl::eolian::in_traits<Evas_Canvas3D_Mesh_Primitive>::type>(form));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Evas_Canvas3D_Primitive_Mode>::type Primitive::mode_get() const
{
    Evas_Canvas3D_Primitive_Mode __return_value =  ::evas_canvas3d_primitive_mode_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<Evas_Canvas3D_Primitive_Mode>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::mode_set( ::efl::eolian::in_traits<Evas_Canvas3D_Primitive_Mode>::type mode) const
{
     ::evas_canvas3d_primitive_mode_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Canvas3D_Primitive_Mode,  ::efl::eolian::in_traits<Evas_Canvas3D_Primitive_Mode>::type>(mode));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<Evas_Real>::type Primitive::ratio_get() const
{
    Evas_Real __return_value =  ::evas_canvas3d_primitive_ratio_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 Primitive::ratio_set( ::efl::eolian::in_traits<Evas_Real>::type ratio) const
{
     ::evas_canvas3d_primitive_ratio_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(ratio));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<int>::type Primitive::precision_get() const
{
    int __return_value =  ::evas_canvas3d_primitive_precision_get(_eo_ptr());
    return ::efl::eolian::convert_to_return< ::efl::eolian::return_traits<int>::type>(__return_value);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::precision_set( ::efl::eolian::in_traits<int>::type precision) const
{
     ::evas_canvas3d_primitive_precision_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<int,  ::efl::eolian::in_traits<int>::type>(precision));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::surface_set( ::efl::eolian::in_traits<Evas_Canvas3D_Surface_Func const*>::type surface) const
{
     ::evas_canvas3d_primitive_surface_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Canvas3D_Surface_Func *,  ::efl::eolian::in_traits<Evas_Canvas3D_Surface_Func const*>::type>(surface));
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::tex_scale_get( ::efl::eolian::out_traits<Evas_Real>::type tex_scale_x,  ::efl::eolian::out_traits<Evas_Real>::type tex_scale_y) const
{
    Evas_Real __out_param_tex_scale_x = {};
    Evas_Real __out_param_tex_scale_y = {};
     ::evas_canvas3d_primitive_tex_scale_get(_eo_ptr(),
        & __out_param_tex_scale_x,
        & __out_param_tex_scale_y);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(tex_scale_x, __out_param_tex_scale_x);
    ::efl::eolian::assign_out< ::efl::eolian::out_traits<Evas_Real>::type, Evas_Real>(tex_scale_y, __out_param_tex_scale_y);
}
#endif
#ifdef EFL_BETA_API_SUPPORT
inline ::efl::eolian::return_traits<void>::type Primitive::tex_scale_set( ::efl::eolian::in_traits<Evas_Real>::type tex_scale_x,  ::efl::eolian::in_traits<Evas_Real>::type tex_scale_y) const
{
     ::evas_canvas3d_primitive_tex_scale_set(_eo_ptr(),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(tex_scale_x),
         ::efl::eolian::convert_to_c<Evas_Real,  ::efl::eolian::in_traits<Evas_Real>::type>(tex_scale_y));
}
#endif
inline evas::canvas3d::Primitive::operator ::evas::canvas3d::Primitive() const { return *static_cast< ::evas::canvas3d::Primitive const*>(static_cast<void const*>(this)); }
inline evas::canvas3d::Primitive::operator ::evas::canvas3d::Primitive&() { return *static_cast< ::evas::canvas3d::Primitive*>(static_cast<void*>(this)); }
inline evas::canvas3d::Primitive::operator ::evas::canvas3d::Primitive const&() const { return *static_cast< ::evas::canvas3d::Primitive const*>(static_cast<void const*>(this)); }
} } }
#endif
