<?xml version="1.0" encoding="utf-8"?>
<rss xmlns:atom="https://www.w3.org/2005/Atom" xmlns:sy="https://purl.org/rss/1.0/modules/syndication/" xmlns:dc="https://purl.org/dc/elements/1.1/" xmlns:content="https://purl.org/rss/1.0/modules/content/" xmlns:wfw="https://wellformedweb.org/CommentAPI/" xmlns:slash="https://purl.org/rss/1.0/modules/slash/"
  version="2.0">
  <channel>
    <title>Amit Puri's blog</title>
    <atom:link
      href="https://docs.microsoft.com/archive/blogs/ampuri/feed.xml"
      rel="self"
      type="application/rss+xml" />
    <link>https://docs.microsoft.com/archive/blogs/ampuri/feed.xml</link>
    <description>Die hard C#, ASP.NET developer, Server and Cloud technologies - Azure, SharePoint, BizTalk, and electronics hobbyist on .NET Gadgeteer and Kinect</description>
    <lastBuildDate>Wed, 17 Apr 2019 03:47:20 GMT</lastBuildDate>
    <language>en-US</language>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>1</sy:updateFrequency>
    <item>
      <title>Software Design principles and design pattern reading</title>
      <link>https://docs.microsoft.com/archive/blogs/ampuri/software-design-principles-and-design-pattern-reading</link>
      <pubDate>Wed, 24 Jul 2013 18:14:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Puri]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ampuri/2013/07/24/software-design-principles-and-design-pattern-reading/</guid>
      <description><![CDATA[Here are the&nbsp;links which answers a commonly asked question, where do we go to read about design...]]></description>
      <content:encoded><![CDATA[<p>Here are the&nbsp;links which answers a commonly asked question, where do we go to read about design principles or design patterns.</p>
<p style="padding-bottom: 5px; margin-bottom: 5px;"><span style="font-size: small;">OO Design <a href="https://www.oodesign.com/" target="_blank">https://www.oodesign.com/</a></span></p>
<p style="padding-bottom: 5px; margin-bottom: 5px;"><span style="font-size: small;">.NET Design Patterns <a href="https://www.dofactory.com/Patterns/Patterns.aspx">https://www.dofactory.com/Patterns/Patterns.aspx</a></span></p>
<p><span style="color: #1f497d;"><a href="https://martinfowler.com/" rel="author">Martin Fowler</a></span></p>
<p style="padding-left: 30px;"><span style="color: #1f497d;"><a href="https://martinfowler.com/articles/writingPatterns.html">https://martinfowler.com/articles/writingPatterns.html</a></span></p>
<p style="padding-left: 30px;"><span style="color: #1f497d;"><span style="color: #1f497d;"><a href="https://www.martinfowler.com/eaaCatalog/index.html">https://www.martinfowler.com/eaaCatalog/index.html</a></span></span></p>
<p><span style="color: #1f497d;" lang="EN-IN">The SOLID Principles in C# </span></p>
<div style="margin: 0in 0in 0pt; padding-left: 30px;"><span style="color: #1f497d;" lang="EN-IN"><a href="https://www.remondo.net/category/solid-series/" target="_blank">https://www.remondo.net/category/solid-series/</a></span></div>
<p>&nbsp;<span style="color: #1f497d;">MSDN</span></p>
<p style="padding-left: 30px;"><a href="https://msdn.microsoft.com/en-us/library/ee817667.aspx">Exploring the Factory Design Pattern</a></p>
<p style="padding-left: 30px;"><a href="https://msdn.microsoft.com/en-us/library/ee817669.aspx">Exploring the Observer Design Pattern</a></p>
<p style="padding-left: 30px;"><span style="color: #1f497d;" lang="EN-IN"><a href="https://msdn.microsoft.com/en-us/library/ff650316.aspx" target="_blank"><em><span style="color: #0066cc;">Implementing Singleton in C#</span></em></a>, </span></p>
<p style="padding-left: 30px;"><span style="color: #1f497d;" lang="EN-IN"><a href="https://msdn.microsoft.com/en-us/library/ff648108.aspx" target="_blank"><em><span style="color: #0066cc;">Implementing Observer in .NET</span></em></a>, </span></p>
<p style="padding-left: 30px;"><span style="color: #1f497d;" lang="EN-IN"><a href="https://msdn.microsoft.com/en-us/library/ff647462.aspx" target="_blank"><em><span style="color: #0066cc;">Implementing Model-View-Controller in ASP.NET</span></em></a></span></p>
<p style="padding-left: 30px;"><span style="color: #1f497d;" lang="EN-IN"><a href="https://msdn.microsoft.com/en-us/library/ff647095.aspx">Enterprise Solution Patterns Using Microsoft .NET </a></span></p>
<p style="padding-left: 30px;"><span style="color: #1f497d;" lang="EN-IN"><a href="https://go.microsoft.com/fwlink/?LinkID=213903" target="_blank">ASP.NET&nbsp;MVC</a></span></p>
<p style="padding-left: 30px;"><span style="color: #1f497d;" lang="EN-IN"><span style="color: #1f497d;" lang="EN-IN"><a href="https://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application" target="_blank">https://www.asp.net/mvc/tutorials/getting-started-with-ef-using-mvc/implementing-the-repository-and-unit-of-work-patterns-in-an-asp-net-mvc-application</a></span></span></p>
<p style="padding-left: 30px;"><span style="color: #1f497d;" lang="EN-IN"><span style="color: #1f497d;"><a href="https://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx">https://blogs.msdn.com/b/adonet/archive/2009/06/16/using-repository-and-unit-of-work-patterns-with-entity-framework-4-0.aspx</a></span></span></p>
<p>&nbsp;</p>
<p>&nbsp;and recent one <a href="https://www.microsoft.com/net/nettechnologyguidance">https://www.microsoft.com/net/nettechnologyguidance</a></p>
<p>&nbsp;</p>]]></content:encoded>
    </item>
    <item>
      <title>Kinect for Windows SDK– color stream</title>
      <link>https://docs.microsoft.com/archive/blogs/ampuri/kinect-for-windows-sdk-color-stream</link>
      <pubDate>Mon, 16 Apr 2012 07:59:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Puri]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ampuri/2012/04/16/kinect-for-windows-sdk-color-stream/</guid>
      <description><![CDATA[&#160;  Color Stream in WPF Application  Add Image control in MainWindow.xaml in the Window Grid...]]></description>
      <content:encoded><![CDATA[<p>&#160;</p>  <h4>Color Stream in WPF Application</h4>  <p>Add Image control in MainWindow.xaml in the Window Grid</p>  <pre class="code"><span style="color: blue;">&lt;</span><span style="color: rgb(163, 21, 21);">Image </span><span style="color: red;">Name</span><span style="color: blue;">=&quot;kinectColorImage&quot; /&gt;
</span></pre>

<pre class="code"><span style="color: rgb(43, 145, 175);"><font color="#000000" face="Segoe UI">Setup Kinect sensor object to retrieve first available sensor, other variables to hold color pixel data and a writeable bitmap object to write pixel onto it.</font></span></pre>

<pre class="code"><span style="color: rgb(43, 145, 175);">KinectSensor </span>sensor = <span style="color: rgb(43, 145, 175);">KinectSensor</span>.KinectSensors[0];
<span style="color: blue;">private byte</span>[] colorPixelData;
<span style="color: blue;">private </span><span style="color: rgb(43, 145, 175);">WriteableBitmap </span>outputImage;    </pre>

<hr />

<div align="justify">
  <pre><font face="Segoe UI">Add enabling color stream in MainWindow() constructor of Main.Window.xaml, using sensor object, enable color stream, also setting up rgb resolution to <br />640x480 at the 30 frames per seconds(FPS). Add color frame ready handler so that color frame stream can be handled appropriately. And invoke Start method <br />of sensor to start the sensor, which will actually start receiving streams from the sensor.</font></pre>
</div>

<blockquote>
  <pre>sensor.ColorStream.Enable(<span style="color: rgb(43, 145, 175);">ColorImageFormat</span>.RgbResolution640x480Fps30);
sensor.ColorFrameReady += <span style="color: blue;">new </span><span style="color: rgb(43, 145, 175);">EventHandler</span>&lt;<span style="color: rgb(43, 145, 175);">ColorImageFrameReadyEventArgs</span>&gt;(sensor_ColorFrameReady);
sensor.Start();</pre>
</blockquote>

<pre><a href="https://msdn.microsoft.com/en-us/library/microsoft.kinect.colorimageformat.aspx" target="_blank">Color Image formats</a> on MSDN</pre>

<hr />

<div align="justify">
  <div align="justify">
    <pre><font face="Segoe UI">Add color frame ready handler,which will invoke as sensor starts receiving color frame includes arg e, which can be used to open the color image frame, <br />CopyPixeDataTo the colorPixelData byte array declared earlier, use WriteableBitmap for desired width and height of the bitmap, horizontal and vertical <br />dots per inch of the bitmap, PixelFormat and null bitmap palette.later use WritePixels method to update the pixels in the specified region of the bitmap, <br />create a rectangle using 0,0, width and height of the color frame, using colorPixelData for input buffer used for updating bitmap, size of the buffer <br />and stride, which is 0, and finally assign outputImage to the source of image control named kinectColorImage.</font></pre>
  </div>
</div>

<pre class="code"><span style="color: blue;">      void </span>sensor_ColorFrameReady(<span style="color: blue;">object </span>sender, <span style="color: rgb(43, 145, 175);">ColorImageFrameReadyEventArgs </span>e)
        {
            <span style="color: blue;">using </span>(<span style="color: rgb(43, 145, 175);">ColorImageFrame </span>colorFrame = e.OpenColorImageFrame())
            {
                <span style="color: blue;">if </span>(colorFrame != <span style="color: blue;">null</span>)
                {
                    <span style="color: green;">//Using standard SDK
                    </span><span style="color: blue;">this</span>.colorPixelData = <span style="color: blue;">new byte</span>[colorFrame.PixelDataLength];

                    colorFrame.CopyPixelDataTo(<span style="color: blue;">this</span>.colorPixelData);

                    <span style="color: blue;">this</span>.outputImage = <span style="color: blue;">new </span><span style="color: rgb(43, 145, 175);">WriteableBitmap</span>(
                    colorFrame.Width,
                    colorFrame.Height,
                    96,  <span style="color: green;">// DpiX
                    </span>96,  <span style="color: green;">// DpiY
                    </span><span style="color: rgb(43, 145, 175);">PixelFormats</span>.Bgr32,
                    <span style="color: blue;">null</span>);

                    <span style="color: blue;">this</span>.outputImage.WritePixels(
                    <span style="color: blue;">new </span><span style="color: rgb(43, 145, 175);">Int32Rect</span>(0, 0, colorFrame.Width, colorFrame.Height),
                    <span style="color: blue;">this</span>.colorPixelData,
                    colorFrame.Width * 4,
                    0);
                    <span style="color: blue;">this</span>.kinectColorImage.Source = <span style="color: blue;">this</span>.outputImage;

                    <span style="color: green;">//Using Coding4Fun Kinect Toolkit
                    //kinectColorImage.Source = imageFrame.ToBitmapSource();

                </span>}
            }<br />          }</pre>

<p>or, in case you want to use <a title="https://c4fkinect.codeplex.com/" href="https://c4fkinect.codeplex.com/" target="_blank">Code4fun Kinect toolkit</a>, install it via NuGet Install-Package Coding4Fun.Kinect.Wpf and use ToBitmapSource() method to do the same stuff. Happy Kinecting!!!</p>]]></content:encoded>
    </item>
    <item>
      <title>Kinect for Windows SDK–Depth stream</title>
      <link>https://docs.microsoft.com/archive/blogs/ampuri/kinect-for-windows-sdkdepth-stream</link>
      <pubDate>Mon, 16 Apr 2012 07:58:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Puri]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ampuri/2012/04/16/kinect-for-windows-sdkdepth-stream/</guid>
      <description><![CDATA[&nbsp;
Depth Stream in WPF Application
Add Image control in MainWindow.xaml in the Window...]]></description>
      <content:encoded><![CDATA[<h4>&nbsp;</h4>
<h4>Depth Stream in WPF Application</h4>
<p>Add Image control in MainWindow.xaml in the Window grid</p>
<pre class="code"><span style="color: blue;">&lt;</span><span style="color: #a31515;">Image </span><span style="color: red;">Name</span><span style="color: blue;">="kinectDepthImage" /&gt; </span></pre>
<hr />
<pre class="code"><span style="color: #2b91af;">KinectSensor </span>sensor = <span style="color: #2b91af;">KinectSensor</span>.KinectSensors[0];
<span style="color: blue;">private short</span>[] depthPixelData;
<span style="color: blue;">private byte</span>[] depthFrame32;
<span style="color: blue;">private </span><span style="color: #2b91af;">WriteableBitmap </span>outputBitmap;</pre>
<hr />
<pre>Add enabling depth stream in MainWindow() constructor of Main.Window.xaml</pre>
<pre class="code">sensor.DepthStream.Enable(<span style="color: #2b91af;">DepthImageFormat</span>.Resolution640x480Fps30);
sensor.DepthFrameReady += <span style="color: blue;">new </span><span style="color: #2b91af;">EventHandler</span>&lt;<span style="color: #2b91af;">DepthImageFrameReadyEventArgs</span>&gt;(sensor_DepthFrameReady);
sensor.Start();</pre>
<hr />
<pre>Add Depth frame ready handler</pre>
<pre class="code"><span style="color: blue;">void </span>sensor_DepthFrameReady(<span style="color: blue;">object </span>sender, <span style="color: #2b91af;">DepthImageFrameReadyEventArgs </span>e)
{

    <span style="color: blue;">using </span>(<span style="color: #2b91af;">DepthImageFrame </span>depthFrame = e.OpenDepthImageFrame())
    {
        <span style="color: blue;">if </span>(depthFrame != <span style="color: blue;">null</span>)
        {
            <span style="color: green;">//Using standard SDK </span><span style="color: blue;">this</span>.depthPixelData = <span style="color: blue;">new short</span>[depthFrame.PixelDataLength];
            <span style="color: blue;">this</span>.depthFrame32 = <span style="color: blue;">new byte</span>[depthFrame.Width * depthFrame.Height * 4];
            depthFrame.CopyPixelDataTo(<span style="color: blue;">this</span>.depthPixelData);
            <span style="color: blue;">byte</span>[] convertedDepthBits = <span style="color: blue;">this</span>.ConvertDepthFrame(<span style="color: blue;">this</span>.depthPixelData, ((<span style="color: #2b91af;">KinectSensor</span>)sender).DepthStream);

            <span style="color: blue;">this</span>.outputBitmap = <span style="color: blue;">new </span><span style="color: #2b91af;">WriteableBitmap</span>(
                    depthFrame.Width,
                    depthFrame.Height,
                    96,  <span style="color: green;">// DpiX </span>96,  <span style="color: green;">// DpiY </span><span style="color: #2b91af;">PixelFormats</span>.Bgr32,
                    <span style="color: blue;">null</span>);

            <span style="color: blue;">this</span>.outputBitmap.WritePixels(
                <span style="color: blue;">new </span><span style="color: #2b91af;">Int32Rect</span>(0, 0, depthFrame.Width, depthFrame.Height),
                convertedDepthBits,
                depthFrame.Width * 4,
                0);

            <span style="color: blue;">this</span>.kinectDepthImage.Source = <span style="color: blue;">this</span>.outputBitmap;

            <span style="color: green;">//Using Coding4Fun Kinect Toolkit ////turn raw data into an array of distances; //var depthArray = depthFrame.ToDepthArray(); ////image //kinectDepthImage.Source = depthFrame.ToBitmapSource(); </span>}
    }

}

<span style="color: green;">// color divisors for tinting depth pixels </span><span style="color: blue;">private static readonly int</span>[] IntensityShiftByPlayerR = { 1, 2, 0, 2, 0, 0, 2, 0 };
<span style="color: blue;">private static readonly int</span>[] IntensityShiftByPlayerG = { 1, 2, 2, 0, 2, 0, 0, 1 };
<span style="color: blue;">private static readonly int</span>[] IntensityShiftByPlayerB = { 1, 0, 2, 2, 0, 2, 0, 2 };

<span style="color: blue;">private const int </span>RedIndex = 2;
<span style="color: blue;">private const int </span>GreenIndex = 1;
<span style="color: blue;">private const int </span>BlueIndex = 0;

<span style="color: green;">// Converts a 16-bit grayscale depth frame which includes player indexes into a 32-bit frame // that displays different players in different colors </span><span style="color: blue;">private byte</span>[] ConvertDepthFrame(<span style="color: blue;">short</span>[] depthFrame, <span style="color: #2b91af;">DepthImageStream </span>depthStream)
{
    <span style="color: blue;">int </span>tooNearDepth = depthStream.TooNearDepth;
    <span style="color: blue;">int </span>tooFarDepth = depthStream.TooFarDepth;
    <span style="color: blue;">int </span>unknownDepth = depthStream.UnknownDepth;

    <span style="color: blue;">for </span>(<span style="color: blue;">int </span>i16 = 0, i32 = 0; i16 &lt; depthFrame.Length &amp;&amp; i32 &lt; <span style="color: blue;">this</span>.depthFrame32.Length; i16++, i32 += 4)
    {
        <span style="color: blue;">int </span>player = depthFrame[i16] &amp; <span style="color: #2b91af;">DepthImageFrame</span>.PlayerIndexBitmask;
        <span style="color: blue;">int </span>realDepth = depthFrame[i16] &gt;&gt; <span style="color: #2b91af;">DepthImageFrame</span>.PlayerIndexBitmaskWidth;

        <span style="color: green;">// transform 13-bit depth information into an 8-bit intensity appropriate // for display (we disregard information in most significant bit) </span><span style="color: blue;">byte </span>intensity = (<span style="color: blue;">byte</span>)(~(realDepth &gt;&gt; 4));

        <span style="color: blue;">if </span>(player == 0 &amp;&amp; realDepth == 0)
        {
            <span style="color: green;">// white </span><span style="color: blue;">this</span>.depthFrame32[i32 + RedIndex] = 255;
            <span style="color: blue;">this</span>.depthFrame32[i32 + GreenIndex] = 255;
            <span style="color: blue;">this</span>.depthFrame32[i32 + BlueIndex] = 255;
        }
        <span style="color: blue;">else if </span>(player == 0 &amp;&amp; realDepth == tooFarDepth)
        {
            <span style="color: green;">// dark purple </span><span style="color: blue;">this</span>.depthFrame32[i32 + RedIndex] = 66;
            <span style="color: blue;">this</span>.depthFrame32[i32 + GreenIndex] = 0;
            <span style="color: blue;">this</span>.depthFrame32[i32 + BlueIndex] = 66;
        }
        <span style="color: blue;">else if </span>(player == 0 &amp;&amp; realDepth == unknownDepth)
        {
            <span style="color: green;">// dark brown </span><span style="color: blue;">this</span>.depthFrame32[i32 + RedIndex] = 66;
            <span style="color: blue;">this</span>.depthFrame32[i32 + GreenIndex] = 66;
            <span style="color: blue;">this</span>.depthFrame32[i32 + BlueIndex] = 33;
        }
        <span style="color: blue;">else </span>{
            <span style="color: green;">// tint the intensity by dividing by per-player values </span><span style="color: blue;">this</span>.depthFrame32[i32 + RedIndex] = (<span style="color: blue;">byte</span>)(intensity &gt;&gt; IntensityShiftByPlayerR[player]);
            <span style="color: blue;">this</span>.depthFrame32[i32 + GreenIndex] = (<span style="color: blue;">byte</span>)(intensity &gt;&gt; IntensityShiftByPlayerG[player]);
            <span style="color: blue;">this</span>.depthFrame32[i32 + BlueIndex] = (<span style="color: blue;">byte</span>)(intensity &gt;&gt; IntensityShiftByPlayerB[player]);
        }
    }

    <span style="color: blue;">return this</span>.depthFrame32;
}</pre>]]></content:encoded>
    </item>
    <item>
      <title>Kinect for Windows SDK - NUI - SDK Architecture</title>
      <link>https://docs.microsoft.com/archive/blogs/ampuri/kinect-for-windows-sdk-nui-sdk-architecture</link>
      <pubDate>Thu, 09 Feb 2012 04:13:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Puri]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ampuri/2012/02/09/kinect-for-windows-sdk-nui-sdk-architecture/</guid>
      <description><![CDATA[&nbsp;
The Kinect for Windows SDK provides the tools and APIs, both native and managed to develop...]]></description>
      <content:encoded><![CDATA[<p>&nbsp;</p>
<p>The Kinect for Windows SDK provides the tools and APIs, both native and managed to develop Kinect-enabled applications for Microsoft Windows. Developing Kinect-enabled application includes additional NUI processing support for color images, depth images, audio input, and skeletal data.</p>
<h3><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/07/68/0160.InsideKinect.PNG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-68/0160.InsideKinect.PNG"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/07/68/0160.InsideKinect.PNG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-68/0160.InsideKinect.PNG" /></a></h3>
<h3>Kinect for Windows Architecture</h3>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/07/68/0647.SDKArchitecture.PNG" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-68/0647.SDKArchitecture.PNG"><img border="0" alt="" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/07/68/0647.SDKArchitecture.PNG" original-url="https://blogs.msdn.com/resized-image.ashx/__size/550x0/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-68/0647.SDKArchitecture.PNG" /></a></p>
<p></p>]]></content:encoded>
    </item>
    <item>
      <title>Playing with “Kinect for Windows SDK” Series</title>
      <link>https://docs.microsoft.com/archive/blogs/ampuri/playing-with-kinect-for-windows-sdk-series</link>
      <pubDate>Fri, 13 Jan 2012 15:39:00 GMT</pubDate>
      <dc:creator><![CDATA[Amit Puri]]></dc:creator>
      <guid
        isPermaLink="false">https://blogs.msdn.microsoft.com/ampuri/2012/01/13/playing-with-kinect-for-windows-sdk-series/</guid>
      <description><![CDATA[&lt;&lt;Based on Kinect for Windows SDK beta 2&gt;&gt;
I have been playing with Kinect for Windows...]]></description>
      <content:encoded><![CDATA[<h3><a href="https://blogs.msdn.com/kinectforwindows" target="_blank"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; float: right; padding-top: 0px; border-width: 0px;" title="KinectForWindows" border="0" alt="KinectForWindows" align="right" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/07/68/metablogapi/3835.KinectForWindows_0651CDD1.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-68-metablogapi/3835.KinectForWindows_5F00_0651CDD1.png" width="167" height="77" /></a><strong>&lt;&lt;Based on Kinect for Windows SDK beta 2&gt;&gt;</strong></h3>
<p>I have been playing with Kinect for Windows SDK from last few weeks. It&rsquo;s really a fun. With several things happening on Kinect, apart from Xbox gaming and Entertainment, Kinect is coming out from Living room, check out <a title="The Kinect Effect How The World is Using Kinect" href="https://www.xbox.com/Kinect/Kinect-Effect" target="_blank">The Kinect Effect</a>, announcement on Kinect for Windows commercially available <a title="https://blogs.msdn.com/b/kinectforwindows/archive/2012/01/09/kinect-for-windows-commercial-program-announced.aspx" href="https://blogs.msdn.com/b/kinectforwindows/archive/2012/01/09/kinect-for-windows-commercial-program-announced.aspx" target="_blank">Starting February 1, 2012: Use the Power of Kinect for Windows to Change the World</a> and <a href="https://www.microsoft.com/bizspark/kinectaccelerator/?WT.mc_id=kinectaccelerator_offer" target="_blank">The Kinect Accelerator on Microsoft BizSpark</a>.</p>
<h5>I really got excited to explore SDK.</h5>
<p>What you need to begin -&nbsp; Kinect Sensor, USB powered cable for Kinect&nbsp;Sensor and <a title="Kinect for Windows SDK Beta 2" href="https://download.microsoft.com/download/F/9/9/F99791F2-D5BE-478A-B77A-830AD14950C3/KinectSDK-v1.0-beta2-x64.msi" target="_blank">Kinect for Windows SDK</a>&nbsp;beta 2. I recommend <a title="https://channel9.msdn.com/Series/KinectSDKQuickstarts/Understanding-Kinect-Hardware" href="https://channel9.msdn.com/Series/KinectSDKQuickstarts/Understanding-Kinect-Hardware" target="_blank">Understanding Kinect Hardware</a> on channel 9.</p>
<p>This week in this series, I am covering how to get started with Kinect for Windows SDK</p>
<ul>
<li>Start a new WPF Application Project using Visual Studio 2010</li>
<li>Add reference Microsoft.Research.Kinect.dll from "%KINECTSDK_DIR%\Assemblies"</li>
<li>Add using directive in MainWindow.xaml <br /><span style="font-family: consolas;" face="Consolas"><span><span style="color: #0000ff;" color="#0000ff"><span style="font-size: 9.8pt;">using</span></span></span><span style="color: #000000; font-size: 9.8pt;" color="#000000"> Microsoft.Research.Kinect.Nui;</span></span></li>
<li>Declare Runtime variable named nui in MainWindow class level <br /><span style="font-family: consolas;" face="Consolas"><span><span style="color: #2b91af;" color="#2b91af"><span style="font-size: 9.8pt;">Runtime</span></span></span><span style="color: #000000; font-size: 9.8pt;" color="#000000"> nui;</span></span></li>
<li>Add Window_Loaded event handler for MainWindow <br /><span style="font-family: consolas;" face="Consolas"><span><span style="color: #0000ff;" color="#0000ff"><span style="font-size: 9.8pt;">if</span></span></span><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000"> (</span><span><span style="color: #2b91af;" color="#2b91af">Runtime</span></span></span></span><span style="font-size: 9.8pt;"><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.Kinects.Count &gt; 0) <br />{ <br />nui = </span><span><span style="color: #2b91af;" color="#2b91af">Runtime</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.Kinects[0]; <br />nui.Initialize(</span><span><span style="color: #2b91af;" color="#2b91af">RuntimeOptions</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.UseColor); <br /></span></span></span><span style="font-family: consolas;" face="Consolas"><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000">}</span></span></span></li>
<li>Add StatusChanged <br /><span style="font-family: consolas;" face="Consolas"><span><span style="color: #2b91af;" color="#2b91af"><span style="font-size: 9.8pt;">Runtime</span></span></span><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000">.Kinects.StatusChanged += </span><span><span style="color: #0000ff;" color="#0000ff">new</span></span><span style="color: #000000;" color="#000000">&nbsp;</span><span><span style="color: #2b91af;" color="#2b91af">EventHandler</span></span><span style="color: #000000;" color="#000000">&lt;</span><span><span style="color: #2b91af;" color="#2b91af">StatusChangedEventArgs</span></span><span style="color: #000000;" color="#000000">&gt;(Kinects_StatusChanged);</span></span></span></li>
<li>Define Kinects_StatusChanged <br /><span style="font-family: consolas;" face="Consolas"><span><span style="color: #0000ff;" color="#0000ff"><span style="font-size: 9.8pt;">void</span></span></span><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000"> Kinects_StatusChanged(</span><span><span style="color: #0000ff;" color="#0000ff">object</span></span><span style="color: #000000;" color="#000000"> sender, </span><span><span style="color: #2b91af;" color="#2b91af">StatusChangedEventArgs</span></span></span></span><span style="font-size: 9.8pt;"><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000"> e) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span><span style="font-family: consolas;" face="Consolas"><span><span style="color: #0000ff;" color="#0000ff">switch</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000"> (e.Status) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">case</span></span><span style="color: #000000;" color="#000000">&nbsp;</span><span><span style="color: #2b91af;" color="#2b91af">KinectStatus</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.Connected: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nui = e.KinectRuntime; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nui.Initialize(</span><span><span style="color: #2b91af;" color="#2b91af">RuntimeOptions</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.UseColor); <br /></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">break</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">case</span></span><span style="color: #000000;" color="#000000">&nbsp;</span><span><span style="color: #2b91af;" color="#2b91af">KinectStatus</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.Disconnected: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #008000;" color="#008000">//handle what to do when disconnected</span></span> <br /><span style="color: #000000;" color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">break</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">case</span></span><span style="color: #000000;" color="#000000">&nbsp;</span><span><span style="color: #2b91af;" color="#2b91af">KinectStatus</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.Error: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #008000;" color="#008000">//handle what to do when error</span></span> <br /><span style="color: #000000;" color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">break</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">case</span></span><span style="color: #000000;" color="#000000">&nbsp;</span><span><span style="color: #2b91af;" color="#2b91af">KinectStatus</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.NotPowered: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #008000;" color="#008000">//handle what to do when not powered</span></span> <br /><span style="color: #000000;" color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">break</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">case</span></span><span style="color: #000000;" color="#000000">&nbsp;</span><span><span style="color: #2b91af;" color="#2b91af">KinectStatus</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.NotReady: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #008000;" color="#008000">//handle what to do when not ready</span></span> <br /><span style="color: #000000;" color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">break</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">default</span></span></span></span><span style="font-family: consolas;" face="Consolas"><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000">: <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">break</span></span><span style="color: #000000;" color="#000000">; <br /> <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span></span></li>
<li>Add Window closed handler for MainWindow</li>
</ul>
<blockquote>
<p><span style="font-family: consolas;" face="Consolas"><span><span style="color: #0000ff;" color="#0000ff"><span style="font-size: 9.8pt;"><span style="font-family: segoe ui; color: #333333;" face="Segoe UI" color="#333333">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>private</span></span></span><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000">&nbsp;</span><span><span style="color: #0000ff;" color="#0000ff">void</span></span><span style="color: #000000;" color="#000000"> Window_Closed(</span><span><span style="color: #0000ff;" color="#0000ff">object</span></span><span style="color: #000000;" color="#000000"> sender, </span><span><span style="color: #2b91af;" color="#2b91af">EventArgs</span></span></span></span><span style="font-family: consolas;" face="Consolas"><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000"> e) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span><span><span style="color: #0000ff;" color="#0000ff">if</span></span><span style="color: #000000;" color="#000000"> (nui!=</span><span><span style="color: #0000ff;" color="#0000ff">null</span></span><span style="color: #000000;" color="#000000">) <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; { <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; nui.Uninitialize();&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; } <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }</span></span></span></p>
</blockquote>
<p>Let us also see how Kinect Camera can be tilted.</p>
<ul>
<li>Added two buttons Up and Down Tilt in MainWindow and Click handler for button to Tilt Camera up and down.</li>
</ul>
<blockquote><span style="font-family: consolas;" face="Consolas"><span><span style="color: #0000ff;" color="#0000ff"><span style="font-size: 9.8pt;">private</span></span></span><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000">&nbsp;</span><span><span style="color: #0000ff;" color="#0000ff">void</span></span><span style="color: #000000;" color="#000000"> TiltUp_Click(</span><span><span style="color: #0000ff;" color="#0000ff">object</span></span><span style="color: #000000;" color="#000000"> sender, </span><span><span style="color: #2b91af;" color="#2b91af">RoutedEventArgs</span></span></span></span><span style="font-size: 9.8pt;"><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000"> e)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /></span><span><span style="color: #0000ff;" color="#0000ff">if</span></span><span style="color: #000000;" color="#000000"> ((nui.NuiCamera.ElevationAngle)&lt;=</span><span><span style="color: #2b91af;" color="#2b91af">Camera</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.ElevationMaximum)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /></span><span><span style="color: #0000ff;" color="#0000ff">&nbsp;&nbsp; if</span></span><span style="color: #000000;" color="#000000"> ((nui.NuiCamera.ElevationAngle+4)&gt;=</span><span><span style="color: #2b91af;" color="#2b91af">Camera</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.ElevationMaximum)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; nui.NuiCamera.ElevationAngle = </span><span><span style="color: #2b91af;" color="#2b91af">Camera</span></span></span></span><span style="font-family: consolas;" face="Consolas"><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000">.ElevationMaximum;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /></span><span><span style="color: #0000ff;" color="#0000ff">&nbsp;&nbsp; else <br /></span></span></span></span><span style="font-family: consolas;" face="Consolas"><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000">&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; nui.NuiCamera.ElevationAngle += 4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp; } <br /></span></span></span><span style="font-family: consolas;" face="Consolas"><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000">} <br />}</span></span></span></blockquote>
<blockquote>
<p><span style="font-family: consolas;" face="Consolas"><span><span style="color: #0000ff;" color="#0000ff"><span style="font-size: 9.8pt;">private</span></span></span><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000">&nbsp;</span><span><span style="color: #0000ff;" color="#0000ff">void</span></span><span style="color: #000000;" color="#000000"> TiltDown_Click(</span><span><span style="color: #0000ff;" color="#0000ff">object</span></span><span style="color: #000000;" color="#000000"> sender, </span><span><span style="color: #2b91af;" color="#2b91af">RoutedEventArgs</span></span></span></span><span style="font-size: 9.8pt;"><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000"> e)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /></span><span><span style="color: #0000ff;" color="#0000ff">if</span></span><span style="color: #000000;" color="#000000"> ((nui.NuiCamera.ElevationAngle)&gt;= </span><span><span style="color: #2b91af;" color="#2b91af">Camera</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.ElevationMinimum)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />{&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /></span><span><span style="color: #0000ff;" color="#0000ff">&nbsp;&nbsp;&nbsp; if</span></span><span style="color: #000000;" color="#000000"> ((nui.NuiCamera.ElevationAngle - 4) &lt;= </span><span><span style="color: #2b91af;" color="#2b91af">Camera</span></span></span><span style="font-family: consolas;" face="Consolas"><span style="color: #000000;" color="#000000">.ElevationMinimum)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; nui.NuiCamera.ElevationAngle = </span><span><span style="color: #2b91af;" color="#2b91af">Camera</span></span></span></span><span style="font-family: consolas;" face="Consolas"><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000">.ElevationMinimum;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br /></span><span><span style="color: #0000ff;" color="#0000ff">&nbsp;&nbsp;&nbsp; else</span></span><span style="color: #000000;" color="#000000">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; {&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; nui.NuiCamera.ElevationAngle -= 4;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />&nbsp;&nbsp;&nbsp; }&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br />}</span></span></span></p>
<p><span style="font-family: consolas;" face="Consolas"><span style="font-size: 9.8pt;"><span style="color: #000000;" color="#000000">and Run it, and try Tilt up and down&hellip;</span></span></span></p>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/07/68/metablogapi/0412.image_7253E326.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-68-metablogapi/0412.image_5F00_7253E326.png"><img style="background-image: none; padding-left: 0px; padding-right: 0px; display: inline; padding-top: 0px;" title="image" border="0" alt="image" src="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Blogs.Components.WeblogFiles/00/00/01/07/68/metablogapi/1588.image_thumb_0DC8BF5D.png" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-blogs-components-weblogfiles/00-00-01-07-68-metablogapi/1588.image_5F00_thumb_5F00_0DC8BF5D.png" width="631" height="296" /></a></p>
<p>&nbsp;<b><span>Warning:</span></b><span> The tilt mechanism in the sensor array is not rated for frequent use. You should tilt the Kinect sensor as few times as possible, to minimize wear on the camera and to minimize tilting time. The camera motor is not designed for constant or repetitive movement, and attempts to use it that way may cause degradation of motor function. Source <a title="Readme for Kinect for Windows SDK - Beta 2 release" href="https://www.microsoft.com/en-us/kinectforwindows/download/readme.htm" target="_blank">Readme for Kinect for Windows SDK - Beta 2 release</a> <br /></span></p>
</blockquote>
<p>Kinect for Windows on Social</p>
<blockquote>
<p><a title="Facebook" href="https://www.facebook.com/KinectForWindows#!/KinectForWindows?sk=info" target="_blank">Facebook</a>, <a title="Twitter" href="https://twitter.com/KinectWindows" target="_blank">Twitter</a>, <a title="Blog" href="https://blogs.msdn.com/b/kinectforwindows/" target="_blank">Blog</a> and <a title="https://www.microsoft.com/en-us/kinectforwindows/resources/" href="https://www.microsoft.com/en-us/kinectforwindows/resources/" target="_blank">Resources on Microsoft.com</a></p>
<p>Next article in the series talks about Kinect Skeleton tracking. Stay tuned...</p>
</blockquote>
<p><a href="https://msdnshared.blob.core.windows.net/media/MSDNBlogsFS/prod.evol.blogs.msdn.com/CommunityServer.Components.PostAttachments/00/10/25/68/79/WpfKinectQuickStarter.zip" original-url="https://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-25-68-79/WpfKinectQuickStarter.zip">WpfKinectQuickStarter.zip</a></p>]]></content:encoded>
    </item>
  </channel>
</rss>