Represents a VisualGestureBuilderDatabase.
public ref class VisualGestureBuilderDatabase sealed : IClosable
VisualGestureBuilderDatabase represents a VGB database. This class operates on a VGB database generated on a PC using the Visual Gesture Builder tool. A VGB database contains gestures that can be detected using NUI streams.
To setup a gesture for detectio:
The following code shows the typical usage of this.
ref class MyClass
{
Microsoft::Kinect::VisualGestureBuilderFrameReader^ m_pVgbFrameReader;
Microsoft::Kinect::Gesture^ m_pMyGesture;
void Init()
{
auto pVgbDatabase = ref new VisualGestureBuilderDatabase( ref new Platform::String( L”D:\\MyGestureDatabase.gbd” ) );
auto pGestureList = pVgbDatabase->AvailableGestures;
// Look for the L”MyGesture” gesture
m_pMyGesture = nullptr;
for ( auto pGesture : pGestureList )
{
if ( Platform::String::CompareOrdinal( pGesture->Name, L”MyGesture” ) == 0 )
{
m_pMyGesture = pGesture;
break;
}
}
// associate gesture with the player object.
auto pPlayer = ref new VisualGestureBuilderFrameSource(KinectSensor:: GetDefault(), 0);
pPlayer->AddGesture( pMyGesture );
m_pVgbFrameReader = pPlayer->OpenReader();
// subscribe for gesture events.
m_pVgbFrameReader->FrameArrived += ref new Windows::Foundation::TypedEventHandler<VisualGestureBuilderFrameReader^,VisualGestureBuilderFrameArrivedEventArgs^>(this, &MyClass::OnVGBFrameArrived);
// note: the player is not associated with any valid tracking id yet. Once you receive NUI body frames, you need to find the tracking id for
// player and set it in the player object by
// m_pVgbFrameReader-> VisualGestureBuilderFrameSource->TrackingID = newTrackingID;
}
// This would get called for everyframe with
void MyClass::OnVGBFrameArrived(VisualGestureBuilderFrameReader^ sender, VisualGestureBuilderFrameArrivedEventArgs^ args)
{
auto pLatestGestureFrame = args->AcquireFrame();
if (pLatestGestureFrame)
{
auto GestureDetectionResult = pLatestGestureFrame->DiscreteGestureResults->Lookup( m_pMyGesture );
if (GestureDetectionResult && GestureDetectionResult->Detected)
{
// gesture was detected!
}
}
}
Namespace: Microsoft.Kinect
Metadata: microsoft.kinect.winmd