// WARNING: Please don't edit this file. It was generated by Python/WinRT v3.2.1

#pragma once

#include "pybase.h"
static_assert(winrt::check_version(PYWINRT_VERSION, "3.2.1"), "Mismatched Py/WinRT headers.");
#include <winrt/Windows.Foundation.h>
#include <winrt/Windows.Foundation.Numerics.h>
#include <winrt/Windows.Perception.h>
#include <winrt/Windows.Perception.Spatial.h>
#include <winrt/Windows.UI.Input.h>
#include <winrt/Windows.UI.Input.Spatial.h>

#include <winrt/Windows.Perception.People.h>

namespace py::proj::Windows::Perception::People
{
}

namespace py
{
    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::People::HandJointKind> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::People::JointPoseAccuracy> = "i";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::People::HandMeshVertex> = "T{T{f:x:f:y:f:z:}:position:T{f:x:f:y:f:z:}:normal:}";

    template<>
    inline constexpr const char* buffer_format<winrt::Windows::Perception::People::JointPose> = "T{T{f:x:f:y:f:z:f:w:}:orientation:T{f:x:f:y:f:z:}:position:f:radius:i:accuracy:}";


    template<>
    struct py_type<winrt::Windows::Perception::People::HandJointKind>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.people.HandJointKind";
        static constexpr const char* module_name = "winrt.windows.perception.people";
        static constexpr const char* type_name = "HandJointKind";
    };

    template<>
    struct py_type<winrt::Windows::Perception::People::JointPoseAccuracy>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.people.JointPoseAccuracy";
        static constexpr const char* module_name = "winrt.windows.perception.people";
        static constexpr const char* type_name = "JointPoseAccuracy";
    };

    template<>
    struct py_type<winrt::Windows::Perception::People::EyesPose>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.people.EyesPose";
        static constexpr const char* module_name = "winrt.windows.perception.people";
        static constexpr const char* type_name = "EyesPose";
    };

    template<>
    struct py_type<winrt::Windows::Perception::People::HandMeshObserver>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.people.HandMeshObserver";
        static constexpr const char* module_name = "winrt.windows.perception.people";
        static constexpr const char* type_name = "HandMeshObserver";
    };

    template<>
    struct py_type<winrt::Windows::Perception::People::HandMeshVertexState>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.people.HandMeshVertexState";
        static constexpr const char* module_name = "winrt.windows.perception.people";
        static constexpr const char* type_name = "HandMeshVertexState";
    };

    template<>
    struct py_type<winrt::Windows::Perception::People::HandPose>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.people.HandPose";
        static constexpr const char* module_name = "winrt.windows.perception.people";
        static constexpr const char* type_name = "HandPose";
    };

    template<>
    struct py_type<winrt::Windows::Perception::People::HeadPose>
    {
        static constexpr std::string_view qualified_name = "winrt.windows.perception.people.HeadPose";
        static constexpr const char* module_name = "winrt.windows.perception.people";
        static constexpr const char* type_name = "HeadPose";
    };

    template<>
    struct py_type<winrt::Windows::Perception::People::HandMeshVertex>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_perception_people.HandMeshVertex_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.perception.people.HandMeshVertex";
        static constexpr const char* module_name = "winrt.windows.perception.people";
        static constexpr const char* type_name = "HandMeshVertex";
    };

    template<>
    struct py_type<winrt::Windows::Perception::People::JointPose>
    {
        static constexpr std::string_view from_tuple = "winrt._winrt_windows_perception_people.JointPose_from_tuple";
        static constexpr std::string_view qualified_name = "winrt.windows.perception.people.JointPose";
        static constexpr const char* module_name = "winrt.windows.perception.people";
        static constexpr const char* type_name = "JointPose";
    };
}

#if __has_include("py.Windows.Foundation.h")
#include "py.Windows.Foundation.h"
#endif

#if __has_include("py.Windows.Foundation.Numerics.h")
#include "py.Windows.Foundation.Numerics.h"
#endif

#if __has_include("py.Windows.Perception.h")
#include "py.Windows.Perception.h"
#endif

#if __has_include("py.Windows.Perception.Spatial.h")
#include "py.Windows.Perception.Spatial.h"
#endif

#if __has_include("py.Windows.UI.Input.h")
#include "py.Windows.UI.Input.h"
#endif

#if __has_include("py.Windows.UI.Input.Spatial.h")
#include "py.Windows.UI.Input.Spatial.h"
#endif

namespace py::impl::Windows::Perception::People
{
}

namespace py::wrapper::Windows::Perception::People
{
    using EyesPose = py::winrt_wrapper<winrt::Windows::Perception::People::EyesPose>;
    using HandMeshObserver = py::winrt_wrapper<winrt::Windows::Perception::People::HandMeshObserver>;
    using HandMeshVertexState = py::winrt_wrapper<winrt::Windows::Perception::People::HandMeshVertexState>;
    using HandPose = py::winrt_wrapper<winrt::Windows::Perception::People::HandPose>;
    using HeadPose = py::winrt_wrapper<winrt::Windows::Perception::People::HeadPose>;
    using HandMeshVertex = py::winrt_struct_wrapper<winrt::Windows::Perception::People::HandMeshVertex>;
    using JointPose = py::winrt_struct_wrapper<winrt::Windows::Perception::People::JointPose>;
}

namespace py
{
}
