<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>FarseerPhysics Wiki &amp; Documentation Rss Feed</title><link>http://www.codeplex.com/Wiki/View.aspx?ProjectName=FarseerPhysics&amp;title=Home</link><description>FarseerPhysics Wiki Rss Description</description><item><title>New Comment on "EngineUsage"</title><link>https://farseerphysics.codeplex.com/wikipage?title=EngineUsage&amp;ANCHOR#C27528</link><description>http&amp;#58;&amp;#47;&amp;#47;www.windowsphone.com&amp;#47;s&amp;#63;appid&amp;#61;1d4a2c7f-b5e4-4e66-9b60-d8e2718e8c99&amp;#10;New game that using FPE</description><author>vitaliy_gorlov</author><pubDate>Sun, 19 May 2013 20:59:46 GMT</pubDate><guid isPermaLink="false">New Comment on "EngineUsage" 20130519085946P</guid></item><item><title>New Comment on "Documentation"</title><link>https://farseerphysics.codeplex.com/documentation?&amp;ANCHOR#C27357</link><description>FixtureFactory.CreateCompoundPolygon&amp;#40;World, _list, 1&amp;#41;&amp;#59;&amp;#10;The fixtureFactory dont have that method.</description><author>freeubi</author><pubDate>Wed, 01 May 2013 14:39:04 GMT</pubDate><guid isPermaLink="false">New Comment on "Documentation" 20130501023904P</guid></item><item><title>Updated Wiki: Home</title><link>http://farseerphysics.codeplex.com/wikipage?version=176</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Welcome to Farseer Physics Engine&lt;/h1&gt;&lt;a href="http://www.facebook.com/#!/pages/Farseer-Physics-Engine/167177613314656"&gt;Facebook&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Acknowledgments&amp;referringTitle=Home"&gt;Acknowledgments&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;referringTitle=Home"&gt;Donations&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Tutorials&amp;referringTitle=Home"&gt;Tutorials &amp;#38; FAQ&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Farseer Physics Engine 3.5 Under Development&lt;/h2&gt;Click &lt;a href="http://farseerphysics.codeplex.com/discussions/401007"&gt;here&lt;/a&gt; for more details.&lt;br /&gt;
&lt;h2&gt;What is Farseer Physics Engine?&lt;/h2&gt;Farseer Physics Engine is a collision detection system with realistic physics responses. This means you can create a game or robotic simulation easily using the engine and the associated tools. Everything from a simple hobby game to a complex robotic simulation is possible with Farseer Physics Engine. &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Downloads&amp;referringTitle=Home"&gt;Download&lt;/a&gt; the latest version and checkout our &lt;a href="http://farseerphysics.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=515579" alt="FarseerWalkerSample.png" title="FarseerWalkerSample.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;Farseer Physics Engine is based on Box2D, which means we have a lot of features in common. However, we also have a lot more features that are not included in the Box2D engine. See a list in our &lt;a href="http://farseerphysics.codeplex.com/documentation"&gt;documentation&lt;/a&gt;.
&lt;ul&gt;&lt;li&gt;Continuous collision detection (with time of impact solver)&lt;/li&gt;
&lt;li&gt;Contact callbacks: begin, end, pre-solve, post-solve&lt;/li&gt;
&lt;li&gt;Convex and concave polyons and circles.&lt;/li&gt;
&lt;li&gt;Multiple shapes per body&lt;/li&gt;
&lt;li&gt;Dynamic tree and quad tree broadphase&lt;/li&gt;
&lt;li&gt;Fast broadphase AABB queries and raycasts&lt;/li&gt;
&lt;li&gt;Collision groups and categories&lt;/li&gt;
&lt;li&gt;Sleep management&lt;/li&gt;
&lt;li&gt;Friction and restitution&lt;/li&gt;
&lt;li&gt;Stable stacking with a linear-time solver&lt;/li&gt;
&lt;li&gt;Revolute, prismatic, distance, pulley, gear, mouse joint, and other joint types&lt;/li&gt;
&lt;li&gt;Joint limits and joint motors&lt;/li&gt;
&lt;li&gt;Controllers (gravity, force generators)&lt;/li&gt;
&lt;li&gt;Tools to decompose concave polygons, find convex hulls and boolean operations&lt;/li&gt;
&lt;li&gt;Factories to simplify the creation of bodies&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Support Us&lt;/h2&gt;Donate to help us keep the project going.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=D5BVVCJEXSLC6&amp;amp;lc=DK&amp;amp;item_name=Farseer%20Physics%20Engine&amp;amp;currency_code=USD&amp;amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"&gt;Click here to donate&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Donations are listed on our &lt;a href="http://Donations"&gt;donations page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Mon, 18 Feb 2013 20:31:48 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20130218083148P</guid></item><item><title>Updated Wiki: Donations</title><link>http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;version=26</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Donations&lt;/h1&gt;This is a list of people who have donated to our project. We would like to thank each and every one of them!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://farseerphysics.codeplex.com/wikipage?title=https%3a%2f%2fwww.paypal.com%2fcgi-bin%2fwebscr%3fcmd%3d_donations%26business%3dD5BVVCJEXSLC6%26lc%3dDK%26item_name%3dFarseer%2520Physics%2520Engine%26currency_code%3dUSD%26bn%3dPP%252dDonationsBF%253abtn_donateCC_LG%252egif%253aNonHosted&amp;referringTitle=Donations"&gt;Click here to donate.&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;2013&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;02/10/2013 - Tijs Hendriks - $10.00 USD&lt;/li&gt;
&lt;li&gt;01/30/2013 - Michael Bisbjerg - $9.50 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2012&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;8/09/2012 - Alexander Paterson - $50 USD&lt;/li&gt;
&lt;li&gt;11/09/2012 - Anonymous - $100 USD&lt;/li&gt;
&lt;li&gt;11/23/2012 - Alexander Paterson - $50 USD&lt;/li&gt;
&lt;li&gt;12/01/2012 - www.DeltaEngine.net - $50 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2011&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;1/1/2011   - HotelPromo.Net    - $50.00 USD&lt;/li&gt;
&lt;li&gt;2/19/2011 - Adman                   - $50.00 USD&lt;/li&gt;
&lt;li&gt;2/25/2011 - Andreas Grech      - $100 USD&lt;/li&gt;
&lt;li&gt;4/17/2011 - Andy Beaulieu - $100 USD&lt;/li&gt;
&lt;li&gt;8/3/2011   - Hino Akiko - $20 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2010&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;8/9/2010    - Zach Aller                                                - 12 Months Xbox Live account&lt;/li&gt;
&lt;li&gt;10/14/2010 - ADefwebserver WebSite Hosting Services - $25 USD&lt;/li&gt;
&lt;li&gt;8/20/2010   - Roy Triesscheijn                                      - $10.00 USD&lt;/li&gt;
&lt;li&gt;8/20/2010   - Kahuna Studios                                       - $20 USD&lt;/li&gt;
&lt;li&gt;8/30/2010   - David Reschke                                         - $10 USD&lt;/li&gt;
&lt;li&gt;10/22/2010 - Jakub Serafin                                           - $2 USD&lt;/li&gt;
&lt;li&gt;11/13/2010 - Thorsten Kaufmann                                  - $20 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2009&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;6/25/2009 - Daniel Gimenez     - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Aranda Morrison  - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Dan Wellman        - $15.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - David Fleming       - $30.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Chris Misztur        - $5.00 USD + 60GB Xbox360 harddrive&lt;/li&gt;
&lt;li&gt;7/23/2009 - Alex Hogan           - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/23/2009 - Jonas Andersson   - $20.00 USD&lt;/li&gt;
&lt;li&gt;7/23/2009 - Daniel Armstrong   - $100.00 USD&lt;/li&gt;
&lt;li&gt;8/15/2009 - Kevin Small            - $20.00 USD&lt;/li&gt;
&lt;li&gt;8/17/2009 - Nicol&amp;#225;s Hormaz&amp;#225;bal - $20.00 USD&lt;/li&gt;
&lt;li&gt;9/18/2009 - Wisnewski Software - $15.00 USD&lt;/li&gt;
&lt;li&gt;11/19/2009 - Motohisa Oono - $100.00 USD&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; 7/22/2009 - 7/23/2009 were payments for an Xbox360 for development.&lt;br /&gt;
&lt;h2&gt;Software donations&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=144707" alt="NDependLogo_PoweredBy.PNG" title="NDependLogo_PoweredBy.PNG" /&gt;&lt;br /&gt;NDepend donated a license for &lt;a href="http://www.ndepend.com/"&gt;NDepend Professional&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=141380" alt="ANTSpp150px.gif" title="ANTSpp150px.gif" /&gt;&lt;br /&gt;Red-Gate donated a license for &lt;a href="http://www.red-gate.com/products/ants_performance_profiler/index.htm"&gt;ANTS Performance Profiler&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Mon, 11 Feb 2013 15:27:31 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Donations 20130211032731P</guid></item><item><title>Updated Wiki: Donations</title><link>http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;version=25</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Donations&lt;/h1&gt;This is a list of people who have donated to our project. We would like to thank each and every one of them!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://farseerphysics.codeplex.com/wikipage?title=https%3a%2f%2fwww.paypal.com%2fcgi-bin%2fwebscr%3fcmd%3d_donations%26business%3dD5BVVCJEXSLC6%26lc%3dDK%26item_name%3dFarseer%2520Physics%2520Engine%26currency_code%3dUSD%26bn%3dPP%252dDonationsBF%253abtn_donateCC_LG%252egif%253aNonHosted&amp;referringTitle=Donations"&gt;Click here to donate.&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;2013&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;01/30/2013 - Michael Bisbjerg - $9.50 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2012&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;8/09/2012 - Alexander Paterson - $50 USD&lt;/li&gt;
&lt;li&gt;11/09/2012 - Anonymous - $100 USD&lt;/li&gt;
&lt;li&gt;11/23/2012 - Alexander Paterson - $50 USD&lt;/li&gt;
&lt;li&gt;12/01/2012 - www.DeltaEngine.net - $50 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2011&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;1/1/2011   - HotelPromo.Net    - $50.00 USD&lt;/li&gt;
&lt;li&gt;2/19/2011 - Adman                   - $50.00 USD&lt;/li&gt;
&lt;li&gt;2/25/2011 - Andreas Grech      - $100 USD&lt;/li&gt;
&lt;li&gt;4/17/2011 - Andy Beaulieu - $100 USD&lt;/li&gt;
&lt;li&gt;8/3/2011   - Hino Akiko - $20 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2010&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;8/9/2010    - Zach Aller                                                - 12 Months Xbox Live account&lt;/li&gt;
&lt;li&gt;10/14/2010 - ADefwebserver WebSite Hosting Services - $25 USD&lt;/li&gt;
&lt;li&gt;8/20/2010   - Roy Triesscheijn                                      - $10.00 USD&lt;/li&gt;
&lt;li&gt;8/20/2010   - Kahuna Studios                                       - $20 USD&lt;/li&gt;
&lt;li&gt;8/30/2010   - David Reschke                                         - $10 USD&lt;/li&gt;
&lt;li&gt;10/22/2010 - Jakub Serafin                                           - $2 USD&lt;/li&gt;
&lt;li&gt;11/13/2010 - Thorsten Kaufmann                                  - $20 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2009&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;6/25/2009 - Daniel Gimenez     - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Aranda Morrison  - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Dan Wellman        - $15.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - David Fleming       - $30.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Chris Misztur        - $5.00 USD + 60GB Xbox360 harddrive&lt;/li&gt;
&lt;li&gt;7/23/2009 - Alex Hogan           - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/23/2009 - Jonas Andersson   - $20.00 USD&lt;/li&gt;
&lt;li&gt;7/23/2009 - Daniel Armstrong   - $100.00 USD&lt;/li&gt;
&lt;li&gt;8/15/2009 - Kevin Small            - $20.00 USD&lt;/li&gt;
&lt;li&gt;8/17/2009 - Nicol&amp;#225;s Hormaz&amp;#225;bal - $20.00 USD&lt;/li&gt;
&lt;li&gt;9/18/2009 - Wisnewski Software - $15.00 USD&lt;/li&gt;
&lt;li&gt;11/19/2009 - Motohisa Oono - $100.00 USD&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; 7/22/2009 - 7/23/2009 were payments for an Xbox360 for development.&lt;br /&gt;
&lt;h2&gt;Software donations&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=144707" alt="NDependLogo_PoweredBy.PNG" title="NDependLogo_PoweredBy.PNG" /&gt;&lt;br /&gt;NDepend donated a license for &lt;a href="http://www.ndepend.com/"&gt;NDepend Professional&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=141380" alt="ANTSpp150px.gif" title="ANTSpp150px.gif" /&gt;&lt;br /&gt;Red-Gate donated a license for &lt;a href="http://www.red-gate.com/products/ants_performance_profiler/index.htm"&gt;ANTS Performance Profiler&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Wed, 30 Jan 2013 18:56:07 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Donations 20130130065607P</guid></item><item><title>Updated Wiki: Donations</title><link>http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;version=24</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Donations&lt;/h1&gt;This is a list of people who have donated to our project. We would like to thank each and every one of them!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://farseerphysics.codeplex.com/wikipage?title=https%3a%2f%2fwww.paypal.com%2fcgi-bin%2fwebscr%3fcmd%3d_donations%26business%3dD5BVVCJEXSLC6%26lc%3dDK%26item_name%3dFarseer%2520Physics%2520Engine%26currency_code%3dUSD%26bn%3dPP%252dDonationsBF%253abtn_donateCC_LG%252egif%253aNonHosted&amp;referringTitle=Donations"&gt;Click here to donate.&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;2012&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;8/09/2012 - Alexander Paterson - $50 USD&lt;/li&gt;
&lt;li&gt;11/09/2012 - Anonymous - $100 USD&lt;/li&gt;
&lt;li&gt;11/23/2012 - Alexander Paterson - $50 USD&lt;/li&gt;
&lt;li&gt;12/01/2012 - www.DeltaEngine.net - $50 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2011&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;1/1/2011   - HotelPromo.Net    - $50.00 USD&lt;/li&gt;
&lt;li&gt;2/19/2011 - Adman                   - $50.00 USD&lt;/li&gt;
&lt;li&gt;2/25/2011 - Andreas Grech      - $100 USD&lt;/li&gt;
&lt;li&gt;4/17/2011 - Andy Beaulieu - $100 USD&lt;/li&gt;
&lt;li&gt;8/3/2011   - Hino Akiko - $20 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2010&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;8/9/2010    - Zach Aller                                                - 12 Months Xbox Live account&lt;/li&gt;
&lt;li&gt;10/14/2010 - ADefwebserver WebSite Hosting Services - $25 USD&lt;/li&gt;
&lt;li&gt;8/20/2010   - Roy Triesscheijn                                      - $10.00 USD&lt;/li&gt;
&lt;li&gt;8/20/2010   - Kahuna Studios                                       - $20 USD&lt;/li&gt;
&lt;li&gt;8/30/2010   - David Reschke                                         - $10 USD&lt;/li&gt;
&lt;li&gt;10/22/2010 - Jakub Serafin                                           - $2 USD&lt;/li&gt;
&lt;li&gt;11/13/2010 - Thorsten Kaufmann                                  - $20 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2009&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;6/25/2009 - Daniel Gimenez     - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Aranda Morrison  - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Dan Wellman        - $15.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - David Fleming       - $30.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Chris Misztur        - $5.00 USD + 60GB Xbox360 harddrive&lt;/li&gt;
&lt;li&gt;7/23/2009 - Alex Hogan           - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/23/2009 - Jonas Andersson   - $20.00 USD&lt;/li&gt;
&lt;li&gt;7/23/2009 - Daniel Armstrong   - $100.00 USD&lt;/li&gt;
&lt;li&gt;8/15/2009 - Kevin Small            - $20.00 USD&lt;/li&gt;
&lt;li&gt;8/17/2009 - Nicol&amp;#225;s Hormaz&amp;#225;bal - $20.00 USD&lt;/li&gt;
&lt;li&gt;9/18/2009 - Wisnewski Software - $15.00&lt;/li&gt;
&lt;li&gt;11/19/2009 - Motohisa Oono - $100.00 USD&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; 7/22/2009 - 7/23/2009 were payments for an Xbox360 for development.&lt;br /&gt;
&lt;h2&gt;Software donations&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=144707" alt="NDependLogo_PoweredBy.PNG" title="NDependLogo_PoweredBy.PNG" /&gt;&lt;br /&gt;NDepend donated a license for &lt;a href="http://www.ndepend.com/"&gt;NDepend Professional&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=141380" alt="ANTSpp150px.gif" title="ANTSpp150px.gif" /&gt;&lt;br /&gt;Red-Gate donated a license for &lt;a href="http://www.red-gate.com/products/ants_performance_profiler/index.htm"&gt;ANTS Performance Profiler&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Sat, 01 Dec 2012 15:01:36 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Donations 20121201030136P</guid></item><item><title>Updated Wiki: Donations</title><link>http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;version=23</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Donations&lt;/h1&gt;This is a list of people who have donated to our project. We would like to thank each and every one of them!&lt;br /&gt;&lt;br /&gt;&lt;a href="http://farseerphysics.codeplex.com/wikipage?title=https%3a%2f%2fwww.paypal.com%2fcgi-bin%2fwebscr%3fcmd%3d_donations%26business%3dD5BVVCJEXSLC6%26lc%3dDK%26item_name%3dFarseer%2520Physics%2520Engine%26currency_code%3dUSD%26bn%3dPP%252dDonationsBF%253abtn_donateCC_LG%252egif%253aNonHosted&amp;referringTitle=Donations"&gt;Click here to donate.&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;2012&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;8/09/2012 - Alexander Paterson - $50 USD&lt;/li&gt;
&lt;li&gt;11/09/2012 - Anonymous - $100 USD&lt;/li&gt;
&lt;li&gt;11/23/2012 - Alexander Paterson - $50 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2011&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;1/1/2011   - HotelPromo.Net    - $50.00 USD&lt;/li&gt;
&lt;li&gt;2/19/2011 - Adman                   - $50.00 USD&lt;/li&gt;
&lt;li&gt;2/25/2011 - Andreas Grech      - $100 USD&lt;/li&gt;
&lt;li&gt;4/17/2011 - Andy Beaulieu - $100 USD&lt;/li&gt;
&lt;li&gt;8/3/2011   - Hino Akiko - $20 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2010&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;8/9/2010    - Zach Aller                                                - 12 Months Xbox Live account&lt;/li&gt;
&lt;li&gt;10/14/2010 - ADefwebserver WebSite Hosting Services - $25 USD&lt;/li&gt;
&lt;li&gt;8/20/2010   - Roy Triesscheijn                                      - $10.00 USD&lt;/li&gt;
&lt;li&gt;8/20/2010   - Kahuna Studios                                       - $20 USD&lt;/li&gt;
&lt;li&gt;8/30/2010   - David Reschke                                         - $10 USD&lt;/li&gt;
&lt;li&gt;10/22/2010 - Jakub Serafin                                           - $2 USD&lt;/li&gt;
&lt;li&gt;11/13/2010 - Thorsten Kaufmann                                  - $20 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2009&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;6/25/2009 - Daniel Gimenez     - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Aranda Morrison  - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Dan Wellman        - $15.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - David Fleming       - $30.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Chris Misztur        - $5.00 USD + 60GB Xbox360 harddrive&lt;/li&gt;
&lt;li&gt;7/23/2009 - Alex Hogan           - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/23/2009 - Jonas Andersson   - $20.00 USD&lt;/li&gt;
&lt;li&gt;7/23/2009 - Daniel Armstrong   - $100.00 USD&lt;/li&gt;
&lt;li&gt;8/15/2009 - Kevin Small            - $20.00 USD&lt;/li&gt;
&lt;li&gt;8/17/2009 - Nicol&amp;#225;s Hormaz&amp;#225;bal - $20.00 USD&lt;/li&gt;
&lt;li&gt;9/18/2009 - Wisnewski Software - $15.00&lt;/li&gt;
&lt;li&gt;11/19/2009 - Motohisa Oono - $100.00 USD&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; 7/22/2009 - 7/23/2009 were payments for an Xbox360 for development.&lt;br /&gt;
&lt;h2&gt;Software donations&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=144707" alt="NDependLogo_PoweredBy.PNG" title="NDependLogo_PoweredBy.PNG" /&gt;&lt;br /&gt;NDepend donated a license for &lt;a href="http://www.ndepend.com/"&gt;NDepend Professional&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=141380" alt="ANTSpp150px.gif" title="ANTSpp150px.gif" /&gt;&lt;br /&gt;Red-Gate donated a license for &lt;a href="http://www.red-gate.com/products/ants_performance_profiler/index.htm"&gt;ANTS Performance Profiler&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Fri, 23 Nov 2012 13:57:02 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Donations 20121123015702P</guid></item><item><title>Updated Wiki: Donations</title><link>http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;version=22</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Donations&lt;/h1&gt;This is a list of people who have donated to our project. We would like to thank each and every one of them, It is very much appreciated.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://farseerphysics.codeplex.com/wikipage?title=https%3a%2f%2fwww.paypal.com%2fcgi-bin%2fwebscr%3fcmd%3d_donations%26business%3dD5BVVCJEXSLC6%26lc%3dDK%26item_name%3dFarseer%2520Physics%2520Engine%26currency_code%3dUSD%26bn%3dPP%252dDonationsBF%253abtn_donateCC_LG%252egif%253aNonHosted&amp;referringTitle=Donations"&gt;Click here to donate.&lt;/a&gt;&lt;br /&gt;
&lt;h3&gt;2012&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;8/09/2012 - Alexander Paterson - $50 USD&lt;/li&gt;
&lt;li&gt;11/09/2012 - Anonymous - $100 USD&lt;/li&gt;
&lt;li&gt;11/23/2012 - Alexander Paterson - $50 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2011&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;1/1/2011   - HotelPromo.Net    - $50.00 USD&lt;/li&gt;
&lt;li&gt;2/19/2011 - Adman                   - $50.00 USD&lt;/li&gt;
&lt;li&gt;2/25/2011 - Andreas Grech      - $100 USD&lt;/li&gt;
&lt;li&gt;4/17/2011 - Andy Beaulieu - $100 USD&lt;/li&gt;
&lt;li&gt;8/3/2011   - Hino Akiko - $20 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2010&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;8/9/2010    - Zach Aller                                                - 12 Months Xbox Live account&lt;/li&gt;
&lt;li&gt;10/14/2010 - ADefwebserver WebSite Hosting Services - $25 USD&lt;/li&gt;
&lt;li&gt;8/20/2010   - Roy Triesscheijn                                      - $10.00 USD&lt;/li&gt;
&lt;li&gt;8/20/2010   - Kahuna Studios                                       - $20 USD&lt;/li&gt;
&lt;li&gt;8/30/2010   - David Reschke                                         - $10 USD&lt;/li&gt;
&lt;li&gt;10/22/2010 - Jakub Serafin                                           - $2 USD&lt;/li&gt;
&lt;li&gt;11/13/2010 - Thorsten Kaufmann                                  - $20 USD&lt;/li&gt;&lt;/ul&gt;

&lt;h3&gt;2009&lt;/h3&gt;&lt;ul&gt;&lt;li&gt;6/25/2009 - Daniel Gimenez     - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Aranda Morrison  - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Dan Wellman        - $15.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - David Fleming       - $30.00 USD&lt;/li&gt;
&lt;li&gt;7/22/2009 - Chris Misztur        - $5.00 USD + 60GB Xbox360 harddrive&lt;/li&gt;
&lt;li&gt;7/23/2009 - Alex Hogan           - $50.00 USD&lt;/li&gt;
&lt;li&gt;7/23/2009 - Jonas Andersson   - $20.00 USD&lt;/li&gt;
&lt;li&gt;7/23/2009 - Daniel Armstrong   - $100.00 USD&lt;/li&gt;
&lt;li&gt;8/15/2009 - Kevin Small            - $20.00 USD&lt;/li&gt;
&lt;li&gt;8/17/2009 - Nicol&amp;#225;s Hormaz&amp;#225;bal - $20.00 USD&lt;/li&gt;
&lt;li&gt;9/18/2009 - Wisnewski Software - $15.00&lt;/li&gt;
&lt;li&gt;11/19/2009 - Motohisa Oono - $100.00 USD&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;b&gt;Note:&lt;/b&gt; 7/22/2009 - 7/23/2009 were payments for an Xbox360 for development.&lt;br /&gt;
&lt;h2&gt;Software donations&lt;/h2&gt;
&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=144707" alt="NDependLogo_PoweredBy.PNG" title="NDependLogo_PoweredBy.PNG" /&gt;&lt;br /&gt;NDepend donated a license for &lt;a href="http://www.ndepend.com/"&gt;NDepend Professional&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=141380" alt="ANTSpp150px.gif" title="ANTSpp150px.gif" /&gt;&lt;br /&gt;Red-Gate donated a license for &lt;a href="http://www.red-gate.com/products/ants_performance_profiler/index.htm"&gt;ANTS Performance Profiler&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Fri, 23 Nov 2012 13:56:22 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Donations 20121123015622P</guid></item><item><title>Updated Wiki: Home</title><link>http://farseerphysics.codeplex.com/wikipage?version=175</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Welcome to Farseer Physics Engine&lt;/h1&gt;&lt;a href="http://www.facebook.com/#!/pages/Farseer-Physics-Engine/167177613314656"&gt;Facebook&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Acknowledgments&amp;referringTitle=Home"&gt;Acknowledgments&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;referringTitle=Home"&gt;Donations&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Tutorials&amp;referringTitle=Home"&gt;Tutorials &amp;#38; FAQ&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Farseer Physics Engine 3.5 Under Development&lt;/h2&gt;Click &lt;a href="http://farseerphysics.codeplex.com/discussions/401007"&gt;here&lt;/a&gt; for more details.&lt;br /&gt;
&lt;h2&gt;What is Farseer Physics Engine?&lt;/h2&gt;Farseer Physics Engine is a collision detection system with realistic physics responses. This means you can create a game or robotic simulation easily using the engine and the associated tools. Everything from a simple hobby game to a complex robotic simulation is possible with Farseer Physics Engine. &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Downloads&amp;referringTitle=Home"&gt;Download&lt;/a&gt; the latest version and checkout our &lt;a href="http://farseerphysics.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=515579" alt="FarseerWalkerSample.png" title="FarseerWalkerSample.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;Farseer Physics Engine is based on Box2D, which means we have a lot of features in common. However, we also have a lot more features that are not included in the Box2D engine. See a list in our &lt;a href="http://farseerphysics.codeplex.com/documentation"&gt;documentation&lt;/a&gt;.
&lt;ul&gt;&lt;li&gt;Continuous collision detection (with time of impact solver)&lt;/li&gt;
&lt;li&gt;Contact callbacks: begin, end, pre-solve, post-solve&lt;/li&gt;
&lt;li&gt;Convex and concave polyons and circles.&lt;/li&gt;
&lt;li&gt;Multiple shapes per body&lt;/li&gt;
&lt;li&gt;Dynamic tree and quad tree broadphase&lt;/li&gt;
&lt;li&gt;Fast broadphase AABB queries and raycasts&lt;/li&gt;
&lt;li&gt;Collision groups and categories&lt;/li&gt;
&lt;li&gt;Sleep management&lt;/li&gt;
&lt;li&gt;Friction and restitution&lt;/li&gt;
&lt;li&gt;Stable stacking with a linear-time solver&lt;/li&gt;
&lt;li&gt;Revolute, prismatic, distance, pulley, gear, mouse joint, and other joint types&lt;/li&gt;
&lt;li&gt;Joint limits and joint motors&lt;/li&gt;
&lt;li&gt;Controllers (gravity, force generators)&lt;/li&gt;
&lt;li&gt;Tools to decompose concave polygons, find convex hulls and boolean operations&lt;/li&gt;
&lt;li&gt;Factories to simplify the creation of bodies&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Support Us&lt;/h2&gt;Donate to keep the project going. With a donation of $100 or more, you and your game will enter the &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; along with a promotional picture (optional) and a link to your game.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=D5BVVCJEXSLC6&amp;amp;lc=DK&amp;amp;item_name=Farseer%20Physics%20Engine&amp;amp;currency_code=USD&amp;amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"&gt;Click here to donate&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Donations below $100 are listed on our &lt;a href="http://Donations"&gt;donations page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Fri, 23 Nov 2012 13:55:32 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121123015532P</guid></item><item><title>New Comment on "Documentation"</title><link>http://farseerphysics.codeplex.com/documentation?&amp;ANCHOR#C25488</link><description>I really wish to earn money with this engine. And I will donate to the maker of this. The Engine is great.</description><author>nemoryoliver</author><pubDate>Tue, 06 Nov 2012 11:51:38 GMT</pubDate><guid isPermaLink="false">New Comment on "Documentation" 20121106115138A</guid></item><item><title>Updated Wiki: Home</title><link>http://farseerphysics.codeplex.com/wikipage?version=174</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Welcome to Farseer Physics Engine&lt;/h1&gt;&lt;a href="http://www.facebook.com/#!/pages/Farseer-Physics-Engine/167177613314656"&gt;Facebook&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Acknowledgments&amp;referringTitle=Home"&gt;Acknowledgments&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;referringTitle=Home"&gt;Donations&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Tutorials&amp;referringTitle=Home"&gt;Tutorials &amp;#38; FAQ&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;Farseer Physics Engine 3.5 Under Development&lt;/h2&gt;Click &lt;a href="http://farseerphysics.codeplex.com/discussions/401007"&gt;here&lt;/a&gt; for more details.&lt;br /&gt;
&lt;h2&gt;What is Farseer Physics Engine?&lt;/h2&gt;Farseer Physics Engine is a collision detection system with realistic physics responses. This means you can create a game or robotic simulation easily using the engine and the associated tools. Everything from a simple hobby game to a complex robotic simulation is possible with Farseer Physics Engine. &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Downloads&amp;referringTitle=Home"&gt;Download&lt;/a&gt; the latest version and checkout our &lt;a href="http://farseerphysics.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=515579" alt="FarseerWalkerSample.png" title="FarseerWalkerSample.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;Farseer Physics Engine is based on Box2D, which means we have a lot of features in common. However, we also have a lot more features that are not included in the Box2D engine. See a list in our &lt;a href="http://farseerphysics.codeplex.com/documentation"&gt;documentation&lt;/a&gt;.
&lt;ul&gt;&lt;li&gt;Continuous collision detection (with time of impact solver)&lt;/li&gt;
&lt;li&gt;Contact callbacks: begin, end, pre-solve, post-solve&lt;/li&gt;
&lt;li&gt;Convex and concave polyons and circles.&lt;/li&gt;
&lt;li&gt;Multiple shapes per body&lt;/li&gt;
&lt;li&gt;Dynamic tree and quad tree broadphase&lt;/li&gt;
&lt;li&gt;Fast broadphase AABB queries and raycasts&lt;/li&gt;
&lt;li&gt;Collision groups and categories&lt;/li&gt;
&lt;li&gt;Sleep management&lt;/li&gt;
&lt;li&gt;Friction and restitution&lt;/li&gt;
&lt;li&gt;Stable stacking with a linear-time solver&lt;/li&gt;
&lt;li&gt;Revolute, prismatic, distance, pulley, gear, mouse joint, and other joint types&lt;/li&gt;
&lt;li&gt;Joint limits and joint motors&lt;/li&gt;
&lt;li&gt;Controllers (gravity, force generators)&lt;/li&gt;
&lt;li&gt;Tools to decompose concave polygons, find convex hulls and boolean operations&lt;/li&gt;
&lt;li&gt;Factories to simplify the creation of bodies&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Support Us&lt;/h2&gt;Donate to keep the project going. With a donation of $100 or more, you and your game will enter the &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; along with a promotional picture (optional) and a link to your game.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=D5BVVCJEXSLC6&amp;amp;lc=DK&amp;amp;item_name=Farseer%20Physics%20Engine&amp;amp;currency_code=USD&amp;amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"&gt;Click here to donate&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Donations below $100 are listed on our &lt;a href="http://Donations"&gt;donations page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Sun, 28 Oct 2012 16:49:11 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121028044911P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://farseerphysics.codeplex.com/documentation?version=129</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Farseer Physics Engine 3.3 Manual&lt;/h1&gt;
&lt;p&gt;We include the same features as Box2D, you can view their &lt;a href="http://box2d.org/manual.html"&gt;
manual here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Are you completely new to Farseer Physics Engine? Take a look at the Hello World project in the Downloads tab.&lt;/p&gt;
&lt;h2&gt;Getting started&lt;/h2&gt;
&lt;p&gt;To simulate a moving body that can collide with another moving body, you need 4 things: The world, a body, a shape and a fixture.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;World &lt;br&gt;
&lt;/strong&gt;The world object is the manager of it all. It iterates all the objects in the world each time you call the Step() function and makes sure everything is consistent and stable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Body &lt;br&gt;
&lt;/strong&gt;The body keeps track of world position. It is basically a point is space that is affected by forces such as impulses from collisions and gravity.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Shape &lt;br&gt;
&lt;/strong&gt;A shape is what extends the point in space to a 2d shape in space. The &lt;a href="http://en.wikipedia.org/wiki/Centroid" target="_blank"&gt;
centroid&lt;/a&gt; and stuff like area, inertia and mass is calculated for the shape.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixture &lt;br&gt;
&lt;/strong&gt;A fixture attaches (fix) the shape to the body so that the centroid of the shape becomes the body&amp;rsquo;s position. Whenever you move the body, you also move the shape. Once a collision occur to the shape, the force is calculated and applied to the
 body.&lt;/p&gt;
&lt;p&gt;Her is the code to create a World with a single body:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//Create a World object with a normal gravity&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;World world = &lt;span class="kwrd"&gt;new&lt;/span&gt; World(new Vector2(0f, 9.82f));&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;//We create a body object and make it dynamic (movable)&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;Body myBody = world.CreateBody();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;myBody.BodyType = BodyType.Dynamic;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="rem"&gt;//We create a circle shape with a radius of 0.5 meters&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;CircleShape circleShape = &lt;span class="kwrd"&gt;new&lt;/span&gt; CircleShape(0.5f);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="rem"&gt;//We fix the body and shape together using a Fixture object&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;Fixture fixture = myBody.CreateFixture(circleShape);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Now, that is what is needed to create a single body in the world. However, this does not show anything on the screen and the body does not move. To get a fully working sample, take a look at the HelloWorld project with each release of the engine.&lt;/p&gt;
&lt;h3&gt;Updating the World&lt;/h3&gt;
&lt;p&gt;To make everything move, we need to update the Wold.&lt;br&gt;
To make the world update with a timestep of 30 FPS (Frames Per Second) it is as easy as:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// 1/3 = 0.033333 &amp;hellip;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;world.Step(0.033333f);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Now it updates 30 times each second and each body in the world will move a small amount on each update.&lt;/p&gt;
&lt;h3&gt;Reacting to a collision&lt;/h3&gt;
&lt;p&gt;You can be notified about a specific collision in a couple of ways.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OnBroadphaseCollision &lt;br&gt;
&lt;/strong&gt;The broad phase keeps track of the bodies in the world using a &lt;a href="http://en.wikipedia.org/wiki/Tree_%28data_structure%29" target="_blank"&gt;
tree&lt;/a&gt; of &lt;a href="http://en.wikipedia.org/wiki/Axis-aligned_bounding_box" target="_blank"&gt;
AABB&lt;/a&gt;s. At some point you might need to know when a body is near by (or colliding with) your game character, but a precise collision is not required. Then you should use the OnBroadphaseCollision delegate. All you have to do is to subscribe to the delegate
 like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; LoadContent()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    _world.ContactManager.OnBroadphaseCollision &amp;#43;= MyOnBroadphaseCollision;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;And then you need to create the MyOnBroadphaseCollision method:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; MyOnBroadphaseCollision(&lt;span class="kwrd"&gt;ref&lt;/span&gt; FixtureProxy fp1, &lt;span class="kwrd"&gt;ref&lt;/span&gt; FixtureProxy fp2)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OnCollision &lt;br&gt;
&lt;/strong&gt;The OnCollision delegate gives you the information about a collision when it is happening. It is a lot more accurate than the OnBroadphaseCollision delegate, but at the cost of performance. You also have the ability to cancel a collision by returning
 false in the method you subscribe. To subscribe you just do the following:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; LoadContent()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    Fixture myFixture = FixtureFactory.CreateCircle(_world, 0.5f, 1);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    myFixture.OnCollision &amp;#43;= MyOnCollision;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;And the MyOnCollision method looks like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; MyOnCollision(Fixture f1, Fixture f2, Contact contact)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="rem"&gt;//We want the collision to happen, so we return true.&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;} &lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;Drawing the World&lt;/h3&gt;
&lt;p&gt;Farseer Physics works with the KMS (Kilo, Meter, Second) system and does not directly translate to pixels. It is your responsibility to convert between meters and pixels. This has the advantage that you are able to dynamically scale your physics world (zooming
 f.eks.) and with a small scale, you will get a faster and more stable simulation. Farseer Physics is fine tuned for objects between 0.1 and 10 meters in size. F.eks. if your screen is 768x1024 pixels in size, you need to scale your units to meters to fit the
 fine tuned sizes.&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// 1 meter = 64 pixels&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;ConvertUnits.SetDisplayUnitToSimUnitRatio(64f);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;//If you object is 512 pixels wide and 128 pixels high:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;float&lt;/span&gt; width = ConvertUnits.ToSimUnits(512f) &lt;span class="rem"&gt;// 8 meters&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;float&lt;/span&gt; height = ConvertUnits.ToSimUnits(128f) &lt;span class="rem"&gt;// 2 meters&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;So the rules are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Whenever you need to input pixels to the engine, you need to convert the number to meters first.
&lt;/li&gt;&lt;li&gt;Whenever you take a value from the engine, and draw it on the screen, you need to convert it to pixels first.
&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;If you follow those simple rules, you will have a stable physics simulation.&lt;/p&gt;
&lt;h2&gt;Factories&lt;/h2&gt;
&lt;p&gt;The factories make your life easier by providing a unified way of creating common objects like bodies, shapes, fixtures, paths and joints. Each object type has it&amp;rsquo;s own static factory with a lot of overloaded methods to give you the flexibility you
 need, to create an object with different parameters.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BodyFactory&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To create a body that is positioned 10 meters to the right:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;Body body = BodyFactory.CreateBody(_world, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(10, 0));&lt;/pre&gt;
&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;FixtureFactory&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Box2D you would create a body, a shape and then bind them together with a fixture object. Here we create the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A body positioned 10 meters to the right. &lt;/li&gt;&lt;li&gt;A circle shape with 0.5 meters radius. &lt;/li&gt;&lt;li&gt;A fixture that binds the body and shape together. It has a density of 5. &lt;/li&gt;&lt;/ol&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;Body body = BodyFactory.CreateBody(_world, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(10, 0)); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;CircleShape circleShape = &lt;span class="kwrd"&gt;new&lt;/span&gt; CircleShape(0.5f); &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;Fixture fixture = body.CreateFixture(circleShape, 5);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;In Farseer Physics Engine you can create all 3 objects using a single line of code like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;Fixture fixture = FixtureFactory.CreateCircle(_world, 0.5f, 5, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(10, 0));&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;JointFactory&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The JointFactory provides an easy way of adding joints to the world. We have fixed and non-fixed joint types in Farseer Physics Engine; fixed joints take in world anchor coordinates and non-fixed take in local anchor coordinates.&lt;/p&gt;
&lt;p&gt;Here is how you create 2 balls and connect them with a DistanceJoint:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;Fixture fix1 = FixtureFactory.CreateCircle(_world, 0.5f, 1, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(-5, 5));&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;fix1.Body.BodyType = BodyType.Dynamic;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;Fixture fix2 = FixtureFactory.CreateCircle(_world, 0.5f, 1, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(5, 5));&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;fix2.Body.BodyType = BodyType.Dynamic;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;JointFactory.CreateSliderJoint(_world, fix1.Body, fix2.Body, Vector2.Zero, Vector2.Zero, 10, 15);&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;Convex decomposition&lt;/h2&gt;
&lt;p&gt;Since Farseer Physics Engine 3.0, we only support &lt;a href="http://en.wikipedia.org/wiki/Convex_polygon" target="_blank"&gt;
convex polygons&lt;/a&gt;. If you need to add a concave polygon, you will have to decompose it to smaller convex polygons first. We provide a couple of different decomposition tools; all of them returns a list of convex polygons that can be used in the engine.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ear clipping&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://en.wikipedia.org/wiki/Polygon_triangulation#Ear_clipping_method" target="_blank"&gt;
ear clipping algorithm&lt;/a&gt; in Farseer Physics Engine is provided by &lt;a href="http://www.ewjordan.com/earClip/" target="_blank"&gt;
a contribution&lt;/a&gt; to Box2D. It is easy to use but does not support holes and runs in O(n^2) time. Here is a picture of a concave polygon before and after ear clipping.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159957"&gt;&lt;img title="combined2" src="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159958" border="0" alt="combined2" width="640" height="254" style="padding-left:0px; padding-right:0px; display:block; float:none; margin-left:auto; margin-right:auto; padding-top:0px; border-width:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To use the Ear clip algorithm, you simply call the EarclipDecomposer like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// We just imagine that this list contains a concave polygon&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Vertices verts = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;EarclipDecomposer.ConvexPartition(verts);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Bayazit&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://mnbayazit.com/406/bayazit" target="_blank"&gt;Bayazit algorithm&lt;/a&gt; is another convex decomposition tool created by Mark Bayazit. The algorithm does not triangulate the polygon and then combine the triangles to form convex polygons like
 the ear clip algorithm, instead it decompose directly into convex polgyons. It does not officially support holes, but sometimes you get lucky and it works with holes. Here is a picture of before and after decomposition:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159959"&gt;&lt;img title="combined" src="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159960" border="0" alt="combined" width="640" height="254" style="padding-left:0px; padding-right:0px; display:block; float:none; margin-left:auto; margin-right:auto; padding-top:0px; border-width:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To use the Bayazit algorithm, you simply call the BayazitDecomposer like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// We just imagine that this list contains a concave polygon&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Vertices verts = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;BayazitDecomposer.ConvexPartition(verts);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Besides the two described, we also have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Flipcode triangulation &lt;/li&gt;&lt;li&gt;Constrained Delaunay triangulation &lt;/li&gt;&lt;li&gt;Seidel triangulation &lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Convex hull&lt;/h2&gt;
&lt;p&gt;Convex hull algorithms can come in handy when working with polygons. A &lt;a href="http://www.piler.com/convexhull/" target="_blank"&gt;
convex hull algorithm&lt;/a&gt; takes in a point cloud and then returns the convex hull. We provide two different algorithms in Farseer Physics Engine:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Melkman&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://www.ams.sunysb.edu/~jsbm/courses/345/melkman.pdf" target="_blank"&gt;
Melkman algorithm&lt;/a&gt; is a very fast convex hull algorithm. Our implementation runs in O(n) time and it is restricted to simple polygons. It is very easy to use:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//We imagine that this list contains a simple polygon&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Vertices verts = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;Vertices hull = Melkman.GetConvexHull(verts);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Giftwrap&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://en.wikipedia.org/wiki/Gift_wrapping_algorithm" target="_blank"&gt;
Giftwrap algorithm&lt;/a&gt; works with point clouds and runs in O(N*S) time where S is the number of sides of the resulting polygon.&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//We imagine that this list contains a point cloud&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Vertices verts = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;Vertices hull = GiftWrap.GetConvexHull(verts);&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;Boolean operations&lt;/h2&gt;
&lt;p&gt;Farseer Physics Engine contains a clipper that supports union, difference and intersection of polygons. The algorithm used is created by
&lt;a href="http://liama.ia.ac.cn/wiki/_media/user:dong:dong_cg_05.pdf" target="_blank"&gt;
Yu Ping&lt;/a&gt;; it is fast and flexible, but may yield unexpected results if the polygons contain collinear points. Here is an example of two polygons (green and red) after being merged:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159963"&gt;&lt;img title="Clipper" src="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159964" border="0" alt="Clipper" width="640" height="322" style="padding-left:0px; padding-right:0px; display:block; float:none; margin-left:auto; margin-right:auto; padding-top:0px; border-width:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To use the YuPengClipper, use the following code:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//We imagine that this list contains the first polygon&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Vertices first = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;//We imagine that this list contains the second polygon&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;Vertices second = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="rem"&gt;//Contains the error if the union operation fails.&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;PolyClipError err;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;List&amp;lt;Vertices&amp;gt; union = YuPengClipper.Union(first, second, &lt;span class="kwrd"&gt;out&lt;/span&gt; err);&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;Cutting shapes&lt;/h2&gt;
&lt;p&gt;You can cut shapes using the boolean tools, however, if you just need to slice a polygon in two, then it is easier and faster to use the cutting tools. It is a great tool for lasers and the like. Here we cut a pyramid of rectangles using the cutting tools:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159966"&gt;&lt;img title="Cut" src="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159967" border="0" alt="Cut" width="404" height="327" style="padding-left:0px; padding-right:0px; display:block; float:none; margin-left:auto; margin-right:auto; padding-top:0px; border-width:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You just have to do the following:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;CuttingTools.Cut(World, start, end, 0.001f);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The start/end arguments is the cutter starts and stops. The last argument is the thickness of the cutter. Beware that the cutter performs the operation on all bodies that it touches in the world object.&lt;/p&gt;
&lt;h2&gt;Simplifying polygons&lt;/h2&gt;
&lt;p&gt;Farseer Physics Engine likes simple polygons with a few points. Sometimes it is necessary to simplify your polygons to speed up collision detection and make the collisions more predictable. We have many different algorithms inside the SimplifyTools class:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CollinearSimplify &lt;br&gt;
&lt;/strong&gt;Simplifies the polygon by finding collinear points and removing them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DouglasPeuckerSimplify &lt;br&gt;
&lt;/strong&gt;Simplifies the polygon using the &lt;a href="http://ianqvist.blogspot.com/2010/05/ramer-douglas-peucker-polygon.html" target="_blank"&gt;
Ramer-Douglas-Peucker algorithm&lt;/a&gt;. If you supply 0 as the tolerance, it will remove collinear points in the polygon.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MergeParallelEdges &lt;br&gt;
&lt;/strong&gt;A method contributed by &lt;a href="http://www.ewjordan.com/" target="_blank"&gt;
Eric Jordan&lt;/a&gt; to Box2d and then ported over to FPE. It merges parallel edges to a single edge.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ReduceByArea &lt;br&gt;
&lt;/strong&gt;Reduces the number of points by area&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ReduceByDistance &lt;br&gt;
&lt;/strong&gt;Reduces the number of points by distance between the points&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ReduceByNth &lt;br&gt;
&lt;/strong&gt;Reduces the number of points by removing the n&amp;rsquo;th point.&lt;/p&gt;
&lt;h2&gt;Texture to polygon&lt;/h2&gt;
&lt;p&gt;You can detect the shape of a texture using the texture-to-polygon tool. This tool enables you to create the graphics for a game and then import it as a shape into Farseer Physics Engine. It is one of the more advanced tools to use in FPE; take a look at
 the following code:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//load texture that will represent the physics body&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Texture2D polygonTexture = GameInstance.Content.Load&amp;lt;Texture2D&amp;gt;(&lt;span class="str"&gt;&amp;quot;Texture&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;//Create an array to hold the data from the texture&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;uint&lt;/span&gt;[] data = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;uint&lt;/span&gt;[polygonTexture.Width * polygonTexture.Height];&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="rem"&gt;//Transfer the texture data to the array&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;polygonTexture.GetData(data);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="rem"&gt;//Find the vertices that makes up the outline of the shape in the texture&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;Vertices verts = PolygonTools.CreatePolygon(data, polygonTexture.Width, polygonTexture.Height, &lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="rem"&gt;//For now we need to scale the vertices (result is in pixels, we use meters)&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;Vector2 scale = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(0.07f, 0.07f);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;verts.Scale(&lt;span class="kwrd"&gt;ref&lt;/span&gt; scale);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&lt;span class="rem"&gt;//Since it is a concave polygon, we need to partition it into several smaller convex polygons&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;_list = BayazitDecomposer.ConvexPartition(verts);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;span class="rem"&gt;//Create a single body with multiple fixtures&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;List&amp;lt;Fixture&amp;gt; compund = FixtureFactory.CreateCompoundPolygon(World, _list, 1);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;compund[0].Body.BodyType = BodyType.Dynamic;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The algorithm used to convert your texture data to a polygon is only as good as the data you give it. Make sure to clean up your textures (remove artifacts) and use the alpha channel (transparent) as the background in your texture.&lt;/p&gt;
&lt;p&gt;We have several different decomposing algorithms in Farseer Physics Engine:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Earclip triangulation &lt;/li&gt;&lt;li&gt;Bayazit convex decomposition &lt;/li&gt;&lt;li&gt;Flipcode triangulation &lt;/li&gt;&lt;li&gt;Constrained Delaunay triangulation &lt;/li&gt;&lt;li&gt;Seidel triangulation &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Each of them can be found in the FarseerPhysics.Common.Decomposition namespace.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; It is recommended that you don&amp;rsquo;t use the tools as part of your game loop. Run the tools once when the game starts and save the data for later. The tools are not 100% reliable and may crash or give unusable output on invalid input.&lt;/p&gt;
&lt;h2&gt;Paths&lt;/h2&gt;
&lt;p&gt;Path and the PathFactory is a flexible tool that can create ropes, bridges, tracks and more. You can declare a path that a body need to follow like the platforms in Mario or create a soft body like the one on the picture below (the green rectangle is the
 anchor point).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=160076"&gt;&lt;img title="SoftBody" src="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=160077" border="0" alt="SoftBody" width="205" height="225" style="padding-left:0px; padding-right:0px; display:block; float:none; margin-left:auto; margin-right:auto; padding-top:0px; border-width:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is how you create the soft body from the picture:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//We define the path&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Path path = &lt;span class="kwrd"&gt;new&lt;/span&gt; Path();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;path.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(0, 10));&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;path.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(2.5f, 7.5f));&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;path.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(10, 9));&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;path.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(7.5f, 0.5f));&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;path.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(-2.5f, 7));&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;path.Closed = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="rem"&gt;//It consists of two shapes: a rectangle and a circle&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;List&amp;lt;Shape&amp;gt; shapes = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;Shape&amp;gt;(2);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;shapes.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; PolygonShape(PolygonTools.CreateRectangle(0.5f, 0.5f, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(-0.1f, 0), 0)));&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;shapes.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; CircleShape(0.5f));&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&lt;span class="rem"&gt;//We distribute the shapes along the path&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;List&amp;lt;Body&amp;gt; bodies = PathManager.EvenlyDistibuteShapesAlongPath(World, path, shapes, BodyType.Dynamic, 20, 1);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&lt;span class="rem"&gt;//Attach the bodies together with revolute joints&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;PathManager.AttachBodiesWithRevoluteJoint(World, bodies, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(0, 0.5f), &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(0, -0.5f), &lt;span class="kwrd"&gt;true&lt;/span&gt;, &lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;The PolygonTools&lt;/h2&gt;
&lt;p&gt;The PolygonTools class creates all sorts of polygons. We currently support the following polygons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rectangle &lt;/li&gt;&lt;li&gt;Rounded rectangle &lt;/li&gt;&lt;li&gt;Edge &lt;/li&gt;&lt;li&gt;Circle &lt;/li&gt;&lt;li&gt;Ellipse &lt;/li&gt;&lt;li&gt;Capsule &lt;/li&gt;&lt;li&gt;Gear &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;All the methods in the class returns a vertices collection that you can use in a PolygonShape.&lt;/p&gt;
&lt;h2&gt;Settings&lt;/h2&gt;
&lt;p&gt;We have the same settings as Box2D, however, we simplified the engine and moved some settings from inside the engine and into the Settings file. At the same time we added a few new settings.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EnableDiagnostics &lt;/li&gt;&lt;li&gt;VelocityIterations &lt;/li&gt;&lt;li&gt;PositionIterations &lt;/li&gt;&lt;li&gt;ContinuousPhysics &lt;/li&gt;&lt;li&gt;EnableWarmstarting &lt;/li&gt;&lt;li&gt;AllowSleep &lt;/li&gt;&lt;li&gt;ConserveMemory &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;All of them are described inside the Settings file.&lt;/p&gt;
&lt;h2&gt;Performance&lt;/h2&gt;
&lt;p&gt;In order to get the most out of the engine, you should try and follow the guidelines below:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enable sleeping &lt;br&gt;
&lt;/strong&gt;Sleeping enables you to have large number of bodies in the world. It can also increase the stability of the engine since small movements in a stack of bodies don&amp;rsquo;t spread in the stack. A sleeping body has little overhead, so enabling it is recommended.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disable CCD &lt;br&gt;
&lt;/strong&gt;Continuous Collision Detection prevents tunneling but at the cost of performance. If you don&amp;rsquo;t have problems with tunneling, you should disable CCD all together.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Minimize the number of position and velocity iterations &lt;br&gt;
&lt;/strong&gt;A high number of iterations makes the engine more stable at the cost of performance. You should tweak the values to fit your game.&lt;/p&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Mon, 22 Oct 2012 20:07:41 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20121022080741P</guid></item><item><title>Updated Wiki: Documentation</title><link>http://farseerphysics.codeplex.com/documentation?version=128</link><description>&lt;div class="wikidoc"&gt;
&lt;h1&gt;Farseer Physics Engine 3.3 Manual&lt;/h1&gt;
&lt;p&gt;We include the same features as Box2D, you can view their &lt;a href="http://box2d.org/manual.html"&gt;
manual here&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Are you completely new to Farseer Physics Engine? Take a look at the Hello World project in the Downloads tab.&lt;/p&gt;
&lt;h2&gt;Getting started&lt;/h2&gt;
&lt;p&gt;To simulate a moving body that can collide with another moving body, you need 4 things: The world, a body, a shape and a fixture.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;World &lt;br&gt;
&lt;/strong&gt;The world object is the manager of it all. It iterates all the objects in the world each time you call the Step() function and makes sure everything is consistent and stable.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Body &lt;br&gt;
&lt;/strong&gt;The body keeps track of world position. It is basically a point is space that is affected by forces such as impulses from collisions and gravity.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Shape &lt;br&gt;
&lt;/strong&gt;A shape is what extends the point in space to a 2d shape in space. The &lt;a href="http://en.wikipedia.org/wiki/Centroid" target="_blank"&gt;
centroid&lt;/a&gt; and stuff like area, inertia and mass is calculated for the shape.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Fixture &lt;br&gt;
&lt;/strong&gt;A fixture attaches (fix) the shape to the body so that the centroid of the shape becomes the body&amp;rsquo;s position. Whenever you move the body, you also move the shape. Once a collision occur to the shape, the force is calculated and applied to the
 body.&lt;/p&gt;
&lt;p&gt;Her is the code to create a World with a single body:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//Create a World object with a normal gravity&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;World world = &lt;span class="kwrd"&gt;new&lt;/span&gt; World(new Vector2(0f, 9.82f);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;//We create a body object and make it dynamic (movable)&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;Body myBody = world.CreateBody();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;myBody.BodyType = BodyType.Dynamic;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;&lt;span class="rem"&gt;//We create a circle shape with a radius of 0.5 meters&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;CircleShape circleShape = &lt;span class="kwrd"&gt;new&lt;/span&gt; CircleShape(0.5f);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;&lt;span class="rem"&gt;//We fix the body and shape together using a Fixture object&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;Fixture fixture = myBody.CreateFixture(circleShape);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Now, that is what is needed to create a single body in the world. However, this does not show anything on the screen and the body does not move. To get a fully working sample, take a look at the HelloWorld project with each release of the engine.&lt;/p&gt;
&lt;h3&gt;Updating the World&lt;/h3&gt;
&lt;p&gt;To make everything move, we need to update the Wold.&lt;br&gt;
To make the world update with a timestep of 30 FPS (Frames Per Second) it is as easy as:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// 1/3 = 0.033333 &amp;hellip;&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;world.Step(0.033333f);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Now it updates 30 times each second and each body in the world will move a small amount on each update.&lt;/p&gt;
&lt;h3&gt;Reacting to a collision&lt;/h3&gt;
&lt;p&gt;You can be notified about a specific collision in a couple of ways.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OnBroadphaseCollision &lt;br&gt;
&lt;/strong&gt;The broad phase keeps track of the bodies in the world using a &lt;a href="http://en.wikipedia.org/wiki/Tree_%28data_structure%29" target="_blank"&gt;
tree&lt;/a&gt; of &lt;a href="http://en.wikipedia.org/wiki/Axis-aligned_bounding_box" target="_blank"&gt;
AABB&lt;/a&gt;s. At some point you might need to know when a body is near by (or colliding with) your game character, but a precise collision is not required. Then you should use the OnBroadphaseCollision delegate. All you have to do is to subscribe to the delegate
 like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; LoadContent()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    _world.ContactManager.OnBroadphaseCollision &amp;#43;= MyOnBroadphaseCollision;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;And then you need to create the MyOnBroadphaseCollision method:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; MyOnBroadphaseCollision(&lt;span class="kwrd"&gt;ref&lt;/span&gt; FixtureProxy fp1, &lt;span class="kwrd"&gt;ref&lt;/span&gt; FixtureProxy fp2)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;            &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;OnCollision &lt;br&gt;
&lt;/strong&gt;The OnCollision delegate gives you the information about a collision when it is happening. It is a lot more accurate than the OnBroadphaseCollision delegate, but at the cost of performance. You also have the ability to cancel a collision by returning
 false in the method you subscribe. To subscribe you just do the following:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;protected&lt;/span&gt; &lt;span class="kwrd"&gt;override&lt;/span&gt; &lt;span class="kwrd"&gt;void&lt;/span&gt; LoadContent()&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    Fixture myFixture = FixtureFactory.CreateCircle(_world, 0.5f, 1);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    myFixture.OnCollision &amp;#43;= MyOnCollision;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;}&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;And the MyOnCollision method looks like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="kwrd"&gt;public&lt;/span&gt; &lt;span class="kwrd"&gt;bool&lt;/span&gt; MyOnCollision(Fixture f1, Fixture f2, Contact contact)&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;{&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;    &lt;span class="rem"&gt;//We want the collision to happen, so we return true.&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;    &lt;span class="kwrd"&gt;return&lt;/span&gt; &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;} &lt;/pre&gt;
&lt;/div&gt;
&lt;h3&gt;Drawing the World&lt;/h3&gt;
&lt;p&gt;Farseer Physics works with the KMS (Kilo, Meter, Second) system and does not directly translate to pixels. It is your responsibility to convert between meters and pixels. This has the advantage that you are able to dynamically scale your physics world (zooming
 f.eks.) and with a small scale, you will get a faster and more stable simulation. Farseer Physics is fine tuned for objects between 0.1 and 10 meters in size. F.eks. if your screen is 768x1024 pixels in size, you need to scale your units to meters to fit the
 fine tuned sizes.&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// 1 meter = 64 pixels&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;ConvertUnits.SetDisplayUnitToSimUnitRatio(64f);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;//If you object is 512 pixels wide and 128 pixels high:&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;float&lt;/span&gt; width = ConvertUnits.ToSimUnits(512f) &lt;span class="rem"&gt;// 8 meters&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&lt;span class="kwrd"&gt;float&lt;/span&gt; height = ConvertUnits.ToSimUnits(128f) &lt;span class="rem"&gt;// 2 meters&lt;/span&gt;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;So the rules are:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Whenever you need to input pixels to the engine, you need to convert the number to meters first.
&lt;/li&gt;&lt;li&gt;Whenever you take a value from the engine, and draw it on the screen, you need to convert it to pixels first.
&lt;/li&gt;&lt;/ol&gt;
&lt;p&gt;If you follow those simple rules, you will have a stable physics simulation.&lt;/p&gt;
&lt;h2&gt;Factories&lt;/h2&gt;
&lt;p&gt;The factories make your life easier by providing a unified way of creating common objects like bodies, shapes, fixtures, paths and joints. Each object type has it&amp;rsquo;s own static factory with a lot of overloaded methods to give you the flexibility you
 need, to create an object with different parameters.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;BodyFactory&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;To create a body that is positioned 10 meters to the right:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;Body body = BodyFactory.CreateBody(_world, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(10, 0));&lt;/pre&gt;
&lt;strong&gt;&amp;nbsp;&lt;/strong&gt;&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;FixtureFactory&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;In Box2D you would create a body, a shape and then bind them together with a fixture object. Here we create the following:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;A body positioned 10 meters to the right. &lt;/li&gt;&lt;li&gt;A circle shape with 0.5 meters radius. &lt;/li&gt;&lt;li&gt;A fixture that binds the body and shape together. It has a density of 5. &lt;/li&gt;&lt;/ol&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;Body body = BodyFactory.CreateBody(_world, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(10, 0)); &lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;CircleShape circleShape = &lt;span class="kwrd"&gt;new&lt;/span&gt; CircleShape(0.5f); &lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;Fixture fixture = body.CreateFixture(circleShape, 5);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;In Farseer Physics Engine you can create all 3 objects using a single line of code like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;Fixture fixture = FixtureFactory.CreateCircle(_world, 0.5f, 5, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(10, 0));&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;JointFactory&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The JointFactory provides an easy way of adding joints to the world. We have fixed and non-fixed joint types in Farseer Physics Engine; fixed joints take in world anchor coordinates and non-fixed take in local anchor coordinates.&lt;/p&gt;
&lt;p&gt;Here is how you create 2 balls and connect them with a DistanceJoint:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;Fixture fix1 = FixtureFactory.CreateCircle(_world, 0.5f, 1, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(-5, 5));&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;fix1.Body.BodyType = BodyType.Dynamic;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;Fixture fix2 = FixtureFactory.CreateCircle(_world, 0.5f, 1, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(5, 5));&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;fix2.Body.BodyType = BodyType.Dynamic;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;JointFactory.CreateSliderJoint(_world, fix1.Body, fix2.Body, Vector2.Zero, Vector2.Zero, 10, 15);&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;Convex decomposition&lt;/h2&gt;
&lt;p&gt;Since Farseer Physics Engine 3.0, we only support &lt;a href="http://en.wikipedia.org/wiki/Convex_polygon" target="_blank"&gt;
convex polygons&lt;/a&gt;. If you need to add a concave polygon, you will have to decompose it to smaller convex polygons first. We provide a couple of different decomposition tools; all of them returns a list of convex polygons that can be used in the engine.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Ear clipping&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://en.wikipedia.org/wiki/Polygon_triangulation#Ear_clipping_method" target="_blank"&gt;
ear clipping algorithm&lt;/a&gt; in Farseer Physics Engine is provided by &lt;a href="http://www.ewjordan.com/earClip/" target="_blank"&gt;
a contribution&lt;/a&gt; to Box2D. It is easy to use but does not support holes and runs in O(n^2) time. Here is a picture of a concave polygon before and after ear clipping.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159957"&gt;&lt;img title="combined2" src="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159958" border="0" alt="combined2" width="640" height="254" style="padding-left:0px; padding-right:0px; display:block; float:none; margin-left:auto; margin-right:auto; padding-top:0px; border-width:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To use the Ear clip algorithm, you simply call the EarclipDecomposer like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// We just imagine that this list contains a concave polygon&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Vertices verts = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;EarclipDecomposer.ConvexPartition(verts);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Bayazit&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://mnbayazit.com/406/bayazit" target="_blank"&gt;Bayazit algorithm&lt;/a&gt; is another convex decomposition tool created by Mark Bayazit. The algorithm does not triangulate the polygon and then combine the triangles to form convex polygons like
 the ear clip algorithm, instead it decompose directly into convex polgyons. It does not officially support holes, but sometimes you get lucky and it works with holes. Here is a picture of before and after decomposition:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159959"&gt;&lt;img title="combined" src="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159960" border="0" alt="combined" width="640" height="254" style="padding-left:0px; padding-right:0px; display:block; float:none; margin-left:auto; margin-right:auto; padding-top:0px; border-width:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;
&lt;p&gt;To use the Bayazit algorithm, you simply call the BayazitDecomposer like this:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;// We just imagine that this list contains a concave polygon&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Vertices verts = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;BayazitDecomposer.ConvexPartition(verts);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;Besides the two described, we also have:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Flipcode triangulation &lt;/li&gt;&lt;li&gt;Constrained Delaunay triangulation &lt;/li&gt;&lt;li&gt;Seidel triangulation &lt;/li&gt;&lt;/ul&gt;
&lt;h2&gt;Convex hull&lt;/h2&gt;
&lt;p&gt;Convex hull algorithms can come in handy when working with polygons. A &lt;a href="http://www.piler.com/convexhull/" target="_blank"&gt;
convex hull algorithm&lt;/a&gt; takes in a point cloud and then returns the convex hull. We provide two different algorithms in Farseer Physics Engine:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Melkman&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://www.ams.sunysb.edu/~jsbm/courses/345/melkman.pdf" target="_blank"&gt;
Melkman algorithm&lt;/a&gt; is a very fast convex hull algorithm. Our implementation runs in O(n) time and it is restricted to simple polygons. It is very easy to use:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//We imagine that this list contains a simple polygon&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Vertices verts = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;Vertices hull = Melkman.GetConvexHull(verts);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Giftwrap&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;The &lt;a href="http://en.wikipedia.org/wiki/Gift_wrapping_algorithm" target="_blank"&gt;
Giftwrap algorithm&lt;/a&gt; works with point clouds and runs in O(N*S) time where S is the number of sides of the resulting polygon.&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//We imagine that this list contains a point cloud&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Vertices verts = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;Vertices hull = GiftWrap.GetConvexHull(verts);&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;Boolean operations&lt;/h2&gt;
&lt;p&gt;Farseer Physics Engine contains a clipper that supports union, difference and intersection of polygons. The algorithm used is created by
&lt;a href="http://liama.ia.ac.cn/wiki/_media/user:dong:dong_cg_05.pdf" target="_blank"&gt;
Yu Ping&lt;/a&gt;; it is fast and flexible, but may yield unexpected results if the polygons contain collinear points. Here is an example of two polygons (green and red) after being merged:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159963"&gt;&lt;img title="Clipper" src="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159964" border="0" alt="Clipper" width="640" height="322" style="padding-left:0px; padding-right:0px; display:block; float:none; margin-left:auto; margin-right:auto; padding-top:0px; border-width:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To use the YuPengClipper, use the following code:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//We imagine that this list contains the first polygon&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Vertices first = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;//We imagine that this list contains the second polygon&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;Vertices second = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vertices();&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="rem"&gt;//Contains the error if the union operation fails.&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;PolyClipError err;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;List&amp;lt;Vertices&amp;gt; union = YuPengClipper.Union(first, second, &lt;span class="kwrd"&gt;out&lt;/span&gt; err);&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;Cutting shapes&lt;/h2&gt;
&lt;p&gt;You can cut shapes using the boolean tools, however, if you just need to slice a polygon in two, then it is easier and faster to use the cutting tools. It is a great tool for lasers and the like. Here we cut a pyramid of rectangles using the cutting tools:&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159966"&gt;&lt;img title="Cut" src="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=159967" border="0" alt="Cut" width="404" height="327" style="padding-left:0px; padding-right:0px; display:block; float:none; margin-left:auto; margin-right:auto; padding-top:0px; border-width:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You just have to do the following:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;CuttingTools.Cut(World, start, end, 0.001f);&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;The start/end arguments is the cutter starts and stops. The last argument is the thickness of the cutter. Beware that the cutter performs the operation on all bodies that it touches in the world object.&lt;/p&gt;
&lt;h2&gt;Simplifying polygons&lt;/h2&gt;
&lt;p&gt;Farseer Physics Engine likes simple polygons with a few points. Sometimes it is necessary to simplify your polygons to speed up collision detection and make the collisions more predictable. We have many different algorithms inside the SimplifyTools class:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;CollinearSimplify &lt;br&gt;
&lt;/strong&gt;Simplifies the polygon by finding collinear points and removing them.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;DouglasPeuckerSimplify &lt;br&gt;
&lt;/strong&gt;Simplifies the polygon using the &lt;a href="http://ianqvist.blogspot.com/2010/05/ramer-douglas-peucker-polygon.html" target="_blank"&gt;
Ramer-Douglas-Peucker algorithm&lt;/a&gt;. If you supply 0 as the tolerance, it will remove collinear points in the polygon.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;MergeParallelEdges &lt;br&gt;
&lt;/strong&gt;A method contributed by &lt;a href="http://www.ewjordan.com/" target="_blank"&gt;
Eric Jordan&lt;/a&gt; to Box2d and then ported over to FPE. It merges parallel edges to a single edge.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ReduceByArea &lt;br&gt;
&lt;/strong&gt;Reduces the number of points by area&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ReduceByDistance &lt;br&gt;
&lt;/strong&gt;Reduces the number of points by distance between the points&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;ReduceByNth &lt;br&gt;
&lt;/strong&gt;Reduces the number of points by removing the n&amp;rsquo;th point.&lt;/p&gt;
&lt;h2&gt;Texture to polygon&lt;/h2&gt;
&lt;p&gt;You can detect the shape of a texture using the texture-to-polygon tool. This tool enables you to create the graphics for a game and then import it as a shape into Farseer Physics Engine. It is one of the more advanced tools to use in FPE; take a look at
 the following code:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//load texture that will represent the physics body&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Texture2D polygonTexture = GameInstance.Content.Load&amp;lt;Texture2D&amp;gt;(&lt;span class="str"&gt;&amp;quot;Texture&amp;quot;&lt;/span&gt;);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;&lt;span class="rem"&gt;//Create an array to hold the data from the texture&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;&lt;span class="kwrd"&gt;uint&lt;/span&gt;[] data = &lt;span class="kwrd"&gt;new&lt;/span&gt; &lt;span class="kwrd"&gt;uint&lt;/span&gt;[polygonTexture.Width * polygonTexture.Height];&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;&lt;span class="rem"&gt;//Transfer the texture data to the array&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;polygonTexture.GetData(data);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="rem"&gt;//Find the vertices that makes up the outline of the shape in the texture&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;Vertices verts = PolygonTools.CreatePolygon(data, polygonTexture.Width, polygonTexture.Height, &lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;&lt;span class="rem"&gt;//For now we need to scale the vertices (result is in pixels, we use meters)&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;Vector2 scale = &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(0.07f, 0.07f);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;verts.Scale(&lt;span class="kwrd"&gt;ref&lt;/span&gt; scale);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&lt;span class="rem"&gt;//Since it is a concave polygon, we need to partition it into several smaller convex polygons&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;_list = BayazitDecomposer.ConvexPartition(verts);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  20:  &lt;/span&gt;&lt;span class="rem"&gt;//Create a single body with multiple fixtures&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  21:  &lt;/span&gt;List&amp;lt;Fixture&amp;gt; compund = FixtureFactory.CreateCompoundPolygon(World, _list, 1);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  22:  &lt;/span&gt;compund[0].Body.BodyType = BodyType.Dynamic;&lt;/pre&gt;
&lt;/div&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; The algorithm used to convert your texture data to a polygon is only as good as the data you give it. Make sure to clean up your textures (remove artifacts) and use the alpha channel (transparent) as the background in your texture.&lt;/p&gt;
&lt;p&gt;We have several different decomposing algorithms in Farseer Physics Engine:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Earclip triangulation &lt;/li&gt;&lt;li&gt;Bayazit convex decomposition &lt;/li&gt;&lt;li&gt;Flipcode triangulation &lt;/li&gt;&lt;li&gt;Constrained Delaunay triangulation &lt;/li&gt;&lt;li&gt;Seidel triangulation &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;Each of them can be found in the FarseerPhysics.Common.Decomposition namespace.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; It is recommended that you don&amp;rsquo;t use the tools as part of your game loop. Run the tools once when the game starts and save the data for later. The tools are not 100% reliable and may crash or give unusable output on invalid input.&lt;/p&gt;
&lt;h2&gt;Paths&lt;/h2&gt;
&lt;p&gt;Path and the PathFactory is a flexible tool that can create ropes, bridges, tracks and more. You can declare a path that a body need to follow like the platforms in Mario or create a soft body like the one on the picture below (the green rectangle is the
 anchor point).&lt;/p&gt;
&lt;p&gt;&lt;a href="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=160076"&gt;&lt;img title="SoftBody" src="http://download.codeplex.com/download?ProjectName=FarseerPhysics&amp;DownloadId=160077" border="0" alt="SoftBody" width="205" height="225" style="padding-left:0px; padding-right:0px; display:block; float:none; margin-left:auto; margin-right:auto; padding-top:0px; border-width:0px"&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Here is how you create the soft body from the picture:&lt;/p&gt;
&lt;div class="csharpcode"&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   1:  &lt;/span&gt;&lt;span class="rem"&gt;//We define the path&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   2:  &lt;/span&gt;Path path = &lt;span class="kwrd"&gt;new&lt;/span&gt; Path();&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   3:  &lt;/span&gt;path.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(0, 10));&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   4:  &lt;/span&gt;path.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(2.5f, 7.5f));&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   5:  &lt;/span&gt;path.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(10, 9));&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   6:  &lt;/span&gt;path.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(7.5f, 0.5f));&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   7:  &lt;/span&gt;path.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(-2.5f, 7));&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;   8:  &lt;/span&gt;path.Closed = &lt;span class="kwrd"&gt;true&lt;/span&gt;;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;   9:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  10:  &lt;/span&gt;&lt;span class="rem"&gt;//It consists of two shapes: a rectangle and a circle&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  11:  &lt;/span&gt;List&amp;lt;Shape&amp;gt; shapes = &lt;span class="kwrd"&gt;new&lt;/span&gt; List&amp;lt;Shape&amp;gt;(2);&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  12:  &lt;/span&gt;shapes.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; PolygonShape(PolygonTools.CreateRectangle(0.5f, 0.5f, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(-0.1f, 0), 0)));&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  13:  &lt;/span&gt;shapes.Add(&lt;span class="kwrd"&gt;new&lt;/span&gt; CircleShape(0.5f));&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  14:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  15:  &lt;/span&gt;&lt;span class="rem"&gt;//We distribute the shapes along the path&lt;/span&gt;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  16:  &lt;/span&gt;List&amp;lt;Body&amp;gt; bodies = PathManager.EvenlyDistibuteShapesAlongPath(World, path, shapes, BodyType.Dynamic, 20, 1);&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  17:  &lt;/span&gt;&amp;nbsp;&lt;/pre&gt;
&lt;pre&gt;&lt;span class="lnum"&gt;  18:  &lt;/span&gt;&lt;span class="rem"&gt;//Attach the bodies together with revolute joints&lt;/span&gt;&lt;/pre&gt;
&lt;pre class="alt"&gt;&lt;span class="lnum"&gt;  19:  &lt;/span&gt;PathManager.AttachBodiesWithRevoluteJoint(World, bodies, &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(0, 0.5f), &lt;span class="kwrd"&gt;new&lt;/span&gt; Vector2(0, -0.5f), &lt;span class="kwrd"&gt;true&lt;/span&gt;, &lt;span class="kwrd"&gt;true&lt;/span&gt;);&lt;/pre&gt;
&lt;/div&gt;
&lt;h2&gt;The PolygonTools&lt;/h2&gt;
&lt;p&gt;The PolygonTools class creates all sorts of polygons. We currently support the following polygons:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Rectangle &lt;/li&gt;&lt;li&gt;Rounded rectangle &lt;/li&gt;&lt;li&gt;Edge &lt;/li&gt;&lt;li&gt;Circle &lt;/li&gt;&lt;li&gt;Ellipse &lt;/li&gt;&lt;li&gt;Capsule &lt;/li&gt;&lt;li&gt;Gear &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;All the methods in the class returns a vertices collection that you can use in a PolygonShape.&lt;/p&gt;
&lt;h2&gt;Settings&lt;/h2&gt;
&lt;p&gt;We have the same settings as Box2D, however, we simplified the engine and moved some settings from inside the engine and into the Settings file. At the same time we added a few new settings.&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;EnableDiagnostics &lt;/li&gt;&lt;li&gt;VelocityIterations &lt;/li&gt;&lt;li&gt;PositionIterations &lt;/li&gt;&lt;li&gt;ContinuousPhysics &lt;/li&gt;&lt;li&gt;EnableWarmstarting &lt;/li&gt;&lt;li&gt;AllowSleep &lt;/li&gt;&lt;li&gt;ConserveMemory &lt;/li&gt;&lt;/ul&gt;
&lt;p&gt;All of them are described inside the Settings file.&lt;/p&gt;
&lt;h2&gt;Performance&lt;/h2&gt;
&lt;p&gt;In order to get the most out of the engine, you should try and follow the guidelines below:&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Enable sleeping &lt;br&gt;
&lt;/strong&gt;Sleeping enables you to have large number of bodies in the world. It can also increase the stability of the engine since small movements in a stack of bodies don&amp;rsquo;t spread in the stack. A sleeping body has little overhead, so enabling it is recommended.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Disable CCD &lt;br&gt;
&lt;/strong&gt;Continuous Collision Detection prevents tunneling but at the cost of performance. If you don&amp;rsquo;t have problems with tunneling, you should disable CCD all together.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Minimize the number of position and velocity iterations &lt;br&gt;
&lt;/strong&gt;A high number of iterations makes the engine more stable at the cost of performance. You should tweak the values to fit your game.&lt;/p&gt;
&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Mon, 22 Oct 2012 20:06:08 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Documentation 20121022080608P</guid></item><item><title>Updated Wiki: Home</title><link>http://farseerphysics.codeplex.com/wikipage?version=173</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Welcome to Farseer Physics Engine&lt;/h1&gt;&lt;a href="http://www.facebook.com/#!/pages/Farseer-Physics-Engine/167177613314656"&gt;Facebook&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Acknowledgments&amp;referringTitle=Home"&gt;Acknowledgments&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;referringTitle=Home"&gt;Donations&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Tutorials&amp;referringTitle=Home"&gt;Tutorials &amp;#38; FAQ&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;What is Farseer Physics Engine?&lt;/h2&gt;Farseer Physics Engine is a collision detection system with realistic physics responses. This means you can create a game or robotic simulation easily using the engine and the associated tools. Everything from a simple hobby game to a complex robotic simulation is possible with Farseer Physics Engine. &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Downloads&amp;referringTitle=Home"&gt;Download&lt;/a&gt; the latest version and checkout our &lt;a href="http://farseerphysics.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=515579" alt="FarseerWalkerSample.png" title="FarseerWalkerSample.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;Farseer Physics Engine is based on Box2D, which means we have a lot of features in common. However, we also have a lot more features that are not included in the Box2D engine. See a list in our &lt;a href="http://farseerphysics.codeplex.com/documentation"&gt;documentation&lt;/a&gt;.
&lt;ul&gt;&lt;li&gt;Continuous collision detection (with time of impact solver)&lt;/li&gt;
&lt;li&gt;Contact callbacks: begin, end, pre-solve, post-solve&lt;/li&gt;
&lt;li&gt;Convex and concave polyons and circles.&lt;/li&gt;
&lt;li&gt;Multiple shapes per body&lt;/li&gt;
&lt;li&gt;Dynamic tree and quad tree broadphase&lt;/li&gt;
&lt;li&gt;Fast broadphase AABB queries and raycasts&lt;/li&gt;
&lt;li&gt;Collision groups and categories&lt;/li&gt;
&lt;li&gt;Sleep management&lt;/li&gt;
&lt;li&gt;Friction and restitution&lt;/li&gt;
&lt;li&gt;Stable stacking with a linear-time solver&lt;/li&gt;
&lt;li&gt;Revolute, prismatic, distance, pulley, gear, mouse joint, and other joint types&lt;/li&gt;
&lt;li&gt;Joint limits and joint motors&lt;/li&gt;
&lt;li&gt;Controllers (gravity, force generators)&lt;/li&gt;
&lt;li&gt;Tools to decompose concave polygons, find convex hulls and boolean operations&lt;/li&gt;
&lt;li&gt;Factories to simplify the creation of bodies&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Support Us&lt;/h2&gt;Donate to keep the project going. With a donation of $100 or more, you and your game will enter the &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; along with a promotional picture (optional) and a link to your game.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=D5BVVCJEXSLC6&amp;amp;lc=DK&amp;amp;item_name=Farseer%20Physics%20Engine&amp;amp;currency_code=USD&amp;amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"&gt;Click here to donate&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Donations below $100 are listed on our &lt;a href="http://Donations"&gt;donations page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Mon, 22 Oct 2012 20:05:38 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121022080538P</guid></item><item><title>Updated Wiki: Home</title><link>http://farseerphysics.codeplex.com/wikipage?version=172</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Welcome to Farseer Physics Engine&lt;/h1&gt;&lt;a href="http://www.facebook.com/#!/pages/Farseer-Physics-Engine/167177613314656"&gt;Facebook&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Acknowledgments&amp;referringTitle=Home"&gt;Acknowledgments&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;referringTitle=Home"&gt;Donations&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Tutorials&amp;referringTitle=Home"&gt;Tutorials &amp;#38; FAQ&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;What is Farseer Physics Engine?&lt;/h2&gt;Farseer Physics Engine is a collision detection system with realistic physics responses. This means you can create a game or robotic simulation easily using the engine and the associated tools. Everything from a simple hobby game to a complex robotic simulation is possible with Farseer Physics Engine. &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Downloads&amp;referringTitle=Home"&gt;Download&lt;/a&gt; the latest version and checkout our &lt;a href="http://farseerphysics.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=515579" alt="FarseerWalkerSample.png" title="FarseerWalkerSample.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;We have built Farseer Physics Engine on Box2D, so we have a lot of matching features. However, we also have a lot more features beside the ones included in the default Box2D release. See a list in our &lt;a href="http://farseerphysics.codeplex.com/documentation"&gt;documentation&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Continuous collision detection (with time of impact solver)&lt;/li&gt;
&lt;li&gt;Contact callbacks: begin, end, pre-solve, post-solve&lt;/li&gt;
&lt;li&gt;Convex and concave polyons and circles.&lt;/li&gt;
&lt;li&gt;Multiple shapes per body&lt;/li&gt;
&lt;li&gt;Dynamic tree and quad tree broadphase&lt;/li&gt;
&lt;li&gt;Fast broadphase AABB queries and raycasts&lt;/li&gt;
&lt;li&gt;Collision groups and categories&lt;/li&gt;
&lt;li&gt;Sleep management&lt;/li&gt;
&lt;li&gt;Friction and restitution&lt;/li&gt;
&lt;li&gt;Stable stacking with a linear-time solver&lt;/li&gt;
&lt;li&gt;Revolute, prismatic, distance, pulley, gear, mouse joint, and other joint types&lt;/li&gt;
&lt;li&gt;Joint limits and joint motors&lt;/li&gt;
&lt;li&gt;Controllers (gravity, force generators)&lt;/li&gt;
&lt;li&gt;Tools to decompose concave polygons, find convex hulls and boolean operations&lt;/li&gt;
&lt;li&gt;Factories to simplify the creation of bodies&lt;/li&gt;&lt;/ul&gt;

&lt;h2&gt;Support Us&lt;/h2&gt;Donate to keep the project going. With a donation of $100 or more, you and your game will enter the &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; along with a promotional picture (optional) and a link to your game.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=D5BVVCJEXSLC6&amp;amp;lc=DK&amp;amp;item_name=Farseer%20Physics%20Engine&amp;amp;currency_code=USD&amp;amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"&gt;Click here to donate&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Donations below $100 are listed on our &lt;a href="http://Donations"&gt;donations page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Sat, 20 Oct 2012 15:39:25 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121020033925P</guid></item><item><title>New Comment on "Documentation"</title><link>http://farseerphysics.codeplex.com/documentation?&amp;ANCHOR#C25343</link><description>&amp;#34;World world &amp;#61; new World&amp;#40;new Vector2&amp;#40;0f, 9.82f&amp;#41;&amp;#59;&amp;#34; - where the last bracket&amp;#63; ._.</description><author>Nextovoy</author><pubDate>Sat, 20 Oct 2012 10:48:48 GMT</pubDate><guid isPermaLink="false">New Comment on "Documentation" 20121020104848A</guid></item><item><title>Updated Wiki: Home</title><link>http://farseerphysics.codeplex.com/wikipage?version=171</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Welcome to Farseer Physics Engine&lt;/h1&gt;&lt;a href="http://www.facebook.com/#!/pages/Farseer-Physics-Engine/167177613314656"&gt;Facebook&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Acknowledgments&amp;referringTitle=Home"&gt;Acknowledgments&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;referringTitle=Home"&gt;Donations&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Tutorials&amp;referringTitle=Home"&gt;Tutorials &amp;#38; FAQ&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;What is Farseer Physics Engine?&lt;/h2&gt;Farseer Physics Engine is a collision detection system with realistic physics responses. This means you can create a game or robotic simulation easily using the engine and the associated tools. Everything from a simple hobby game to a complex robotic simulation is possible with Farseer Physics Engine. &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Downloads&amp;referringTitle=Home"&gt;Download&lt;/a&gt; the latest version and checkout our &lt;a href="http://farseerphysics.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=515579" alt="FarseerWalkerSample.png" title="FarseerWalkerSample.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;We have built Farseer Physics Engine on Box2D, so we have a lot of matching features. However, we also have a lot more features beside the ones included in the default Box2D release. See a list in our &lt;a href="http://farseerphysics.codeplex.com/documentation"&gt;documentation&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Continuous collision detection (with time of impact solver)&lt;/li&gt;
&lt;li&gt;Contact callbacks: begin, end, pre-solve, post-solve&lt;/li&gt;
&lt;li&gt;Convex and concave polyons and circles.&lt;/li&gt;
&lt;li&gt;Multiple shapes per body&lt;/li&gt;
&lt;li&gt;Dynamic tree and quad tree broadphase&lt;/li&gt;
&lt;li&gt;Fast broadphase AABB queries and raycasts&lt;/li&gt;
&lt;li&gt;Collision groups and categories&lt;/li&gt;
&lt;li&gt;Sleep management&lt;/li&gt;
&lt;li&gt;Friction and restitution&lt;/li&gt;
&lt;li&gt;Stable stacking with a linear-time solver&lt;/li&gt;
&lt;li&gt;Revolute, prismatic, distance, pulley, gear, mouse joint, and other joint types&lt;/li&gt;
&lt;li&gt;Joint limits and joint motors&lt;/li&gt;
&lt;li&gt;Controllers (gravity, force generators)&lt;/li&gt;
&lt;li&gt;Tools to decompose concave polygons, find convex hulls and boolean operations&lt;/li&gt;
&lt;li&gt;Factories to simplify the creation of bodies&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=515578" alt="FarseerCarSampleWP7.png" title="FarseerCarSampleWP7.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Support Us&lt;/h2&gt;Donate to keep the project going. With a donation of $100 or more, you and your game will enter the &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; along with a promotional picture (optional) and a link to your game.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=D5BVVCJEXSLC6&amp;amp;lc=DK&amp;amp;item_name=Farseer%20Physics%20Engine&amp;amp;currency_code=USD&amp;amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"&gt;Click here to donate&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Donations below $100 are listed on our &lt;a href="http://Donations"&gt;donations page&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Fri, 19 Oct 2012 00:19:14 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121019121914A</guid></item><item><title>Updated Wiki: Home</title><link>http://farseerphysics.codeplex.com/wikipage?version=170</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Welcome to Farseer Physics Engine&lt;/h1&gt;&lt;a href="http://www.facebook.com/#!/pages/Farseer-Physics-Engine/167177613314656"&gt;Facebook&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Acknowledgments&amp;referringTitle=Home"&gt;Acknowledgments&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;referringTitle=Home"&gt;Donations&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Tutorials&amp;referringTitle=Home"&gt;Tutorials &amp;#38; FAQ&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;What is Farseer Physics Engine?&lt;/h2&gt;Farseer Physics Engine is a collision detection system with realistic physics responses. This means you can create a game or robotic simulation easily using the engine and the associated tools. Everything from a simple hobby game to a complex robotic simulation is possible with Farseer Physics Engine. &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Downloads&amp;referringTitle=Home"&gt;Download&lt;/a&gt; the latest version and checkout our &lt;a href="http://farseerphysics.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt;.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=515579" alt="FarseerWalkerSample.png" title="FarseerWalkerSample.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;We have built Farseer Physics Engine on Box2D, so we have a lot of matching features. However, we also have a lot more features beside the ones included in the default Box2D release. See a list in our &lt;a href="http://farseerphysics.codeplex.com/documentation"&gt;documentation&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Continuous collision detection (with time of impact solver)&lt;/li&gt;
&lt;li&gt;Contact callbacks: begin, end, pre-solve, post-solve&lt;/li&gt;
&lt;li&gt;Convex and concave polyons and circles.&lt;/li&gt;
&lt;li&gt;Multiple shapes per body&lt;/li&gt;
&lt;li&gt;Dynamic tree and quad tree broadphase&lt;/li&gt;
&lt;li&gt;Fast broadphase AABB queries and raycasts&lt;/li&gt;
&lt;li&gt;Collision groups and categories&lt;/li&gt;
&lt;li&gt;Sleep management&lt;/li&gt;
&lt;li&gt;Friction and restitution&lt;/li&gt;
&lt;li&gt;Stable stacking with a linear-time solver&lt;/li&gt;
&lt;li&gt;Revolute, prismatic, distance, pulley, gear, mouse joint, and other joint types&lt;/li&gt;
&lt;li&gt;Joint limits and joint motors&lt;/li&gt;
&lt;li&gt;Controllers (gravity, force generators)&lt;/li&gt;
&lt;li&gt;Tools to decompose concave polygons, find convex hulls and boolean operations&lt;/li&gt;
&lt;li&gt;Factories to simplify the creation of bodies&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=515578" alt="FarseerCarSampleWP7.png" title="FarseerCarSampleWP7.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Donations&lt;/h2&gt;Donate to keep the project going. With a donation of $100 or more, you and your game will enter the &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; along with a promotional picture (optional) and a link to your game.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=D5BVVCJEXSLC6&amp;amp;lc=DK&amp;amp;item_name=Farseer%20Physics%20Engine&amp;amp;currency_code=USD&amp;amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"&gt;Click here to donate&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Donations below $100 are listed on our &lt;a href="http://Donations"&gt;donations page&lt;/a&gt;.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Fri, 19 Oct 2012 00:03:23 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121019120323A</guid></item><item><title>Updated Wiki: Home</title><link>http://farseerphysics.codeplex.com/wikipage?version=169</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Welcome to Farseer Physics Engine&lt;/h1&gt;&lt;a href="http://www.facebook.com/#!/pages/Farseer-Physics-Engine/167177613314656"&gt;Facebook&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Acknowledgments&amp;referringTitle=Home"&gt;Acknowledgments&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Donations&amp;referringTitle=Home"&gt;Donations&lt;/a&gt; : &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Tutorials&amp;referringTitle=Home"&gt;Tutorials &amp;#38; FAQ&lt;/a&gt;&lt;br /&gt;
&lt;h2&gt;What is Farseer Physics Engine?&lt;/h2&gt;Farseer Physics Engine is a collision detection system with realistic physics responses. This means you can create a game or robotic simulation easily using the engine and the associated tools. Everything from a simple hobby game to a complex robotic simulation is possible with Farseer Physics Engine. &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Downloads&amp;referringTitle=Home"&gt;Download&lt;/a&gt; the latest version, checkout our &lt;a href="http://farseerphysics.codeplex.com/documentation?referringTitle=Home"&gt;documentation&lt;/a&gt; and &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=Videos&amp;amp;referringTitle=Home"&gt;watch&lt;/a&gt; how other people are using the engine.&lt;br /&gt;&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=515579" alt="FarseerWalkerSample.png" title="FarseerWalkerSample.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Features&lt;/h2&gt;We have built Farseer Physics Engine on Box2D, so we have a lot of matching features. However, we also have a lot more features beside the ones included in the default Box2D release. See a list in our &lt;a href="http://farseerphysics.codeplex.com/documentation"&gt;documentation&lt;/a&gt;
&lt;ul&gt;&lt;li&gt;Continuous collision detection (with time of impact solver)&lt;/li&gt;
&lt;li&gt;Contact callbacks: begin, end, pre-solve, post-solve&lt;/li&gt;
&lt;li&gt;Convex and concave polyons and circles.&lt;/li&gt;
&lt;li&gt;Multiple shapes per body&lt;/li&gt;
&lt;li&gt;Dynamic tree and quad tree broadphase&lt;/li&gt;
&lt;li&gt;Fast broadphase AABB queries and raycasts&lt;/li&gt;
&lt;li&gt;Collision groups and categories&lt;/li&gt;
&lt;li&gt;Sleep management&lt;/li&gt;
&lt;li&gt;Friction and restitution&lt;/li&gt;
&lt;li&gt;Stable stacking with a linear-time solver&lt;/li&gt;
&lt;li&gt;Revolute, prismatic, distance, pulley, gear, mouse joint, and other joint types&lt;/li&gt;
&lt;li&gt;Joint limits and joint motors&lt;/li&gt;
&lt;li&gt;Controllers (gravity, force generators)&lt;/li&gt;
&lt;li&gt;Tools to decompose concave polygons, find convex hulls and boolean operations&lt;/li&gt;
&lt;li&gt;Factories to simplify the creation of bodies&lt;/li&gt;&lt;/ul&gt;
&lt;br /&gt;&lt;img src="http://i3.codeplex.com/Download?ProjectName=FarseerPhysics&amp;DownloadId=515578" alt="FarseerCarSampleWP7.png" title="FarseerCarSampleWP7.png" /&gt;&lt;br /&gt;
&lt;h2&gt;Donations&lt;/h2&gt;Donate to keep the project going. With a donation of $100 or more, you and your game will enter the &lt;a href="http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;referringTitle=Home"&gt;Hall of Fame&lt;/a&gt; along with a promotional picture (optional) and a link to your game.&lt;br /&gt;&lt;br /&gt;&lt;a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&amp;amp;business=D5BVVCJEXSLC6&amp;amp;lc=DK&amp;amp;item_name=Farseer%20Physics%20Engine&amp;amp;currency_code=USD&amp;amp;bn=PP%2dDonationsBF%3abtn_donateCC_LG%2egif%3aNonHosted"&gt;Click here to donate&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Donations below $100 are listed on our &lt;a href="http://Donations"&gt;donations page&lt;/a&gt;.&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Fri, 19 Oct 2012 00:02:52 GMT</pubDate><guid isPermaLink="false">Updated Wiki: Home 20121019120252A</guid></item><item><title>Updated Wiki: HallOfFame</title><link>http://farseerphysics.codeplex.com/wikipage?title=HallOfFame&amp;version=2</link><description>&lt;div class="wikidoc"&gt;&lt;h1&gt;Hall of Fame&lt;/h1&gt;Would you like to be a part of the Farseer Physics Engine Wall of Fame, and get your game listed here? Donate $100 or more to get here along with a picture/movie and a link to your website.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/div&gt;&lt;div class="ClearBoth"&gt;&lt;/div&gt;</description><author>genbox</author><pubDate>Fri, 19 Oct 2012 00:02:30 GMT</pubDate><guid isPermaLink="false">Updated Wiki: HallOfFame 20121019120230A</guid></item></channel></rss>