<?xml version="1.0"?><?xml-stylesheet type="text/xsl" href="/rss.xsl"?><rss version="2.0"><channel><title>JigLibX Work Item Rss Feed</title><link>http://www.codeplex.com/JigLibX/WorkItem/List.aspx</link><description>JigLibX Work Item Rss Description</description><item><title>Commented Issue: Port to XNA 4.0 and Windows Phone 7 [14784]</title><link>http://jiglibx.codeplex.com/workitem/14784</link><description>Hi&amp;#33;&lt;br /&gt;&lt;br /&gt;I ported the current development trunk to Windows Phone 7 &amp;#40;which doesn&amp;#39;t compile out of the box because unsafe code and stackalloc aren&amp;#39;t supported&amp;#41;.&lt;br /&gt;&lt;br /&gt;I &amp;#34;fixed&amp;#34; most problem methods by cloning them into an &amp;#35;if WINDOWS_PHONE .. &amp;#35;endif section. Needless to say that this added to the mess already made by the &amp;#35;if USE_STACKALLOC .. &amp;#35;endif sections in the library, so I&amp;#39;d recommend to only see this port as a stop-gap measure you could point people to until there&amp;#39;s an officially WP7 build.&lt;br /&gt;&lt;br /&gt;The attached file contains binaries for XNA 4.0 x86, Xbox 360 and Windows Phone 7, source code and a patch &amp;#40;in unified diff format&amp;#41; detailing my changes.&lt;br /&gt;Comments: ** Comment from web user: Cygon ** &lt;p&gt;&amp;#64;Rives&amp;#58; I signed the assembly with my key, but &amp;#40;of course&amp;#41; didn&amp;#39;t ship my key with this build. Just pick another key or disable assembly signing &amp;#59;&amp;#41;&lt;/p&gt;</description><author>Cygon</author><pubDate>Sat, 19 Feb 2011 10:25:08 GMT</pubDate><guid isPermaLink="false">Commented Issue: Port to XNA 4.0 and Windows Phone 7 [14784] 20110219102508A</guid></item><item><title>Commented Issue: Port to XNA 4.0 and Windows Phone 7 [14784]</title><link>http://jiglibx.codeplex.com/workitem/14784</link><description>Hi&amp;#33;&lt;br /&gt;&lt;br /&gt;I ported the current development trunk to Windows Phone 7 &amp;#40;which doesn&amp;#39;t compile out of the box because unsafe code and stackalloc aren&amp;#39;t supported&amp;#41;.&lt;br /&gt;&lt;br /&gt;I &amp;#34;fixed&amp;#34; most problem methods by cloning them into an &amp;#35;if WINDOWS_PHONE .. &amp;#35;endif section. Needless to say that this added to the mess already made by the &amp;#35;if USE_STACKALLOC .. &amp;#35;endif sections in the library, so I&amp;#39;d recommend to only see this port as a stop-gap measure you could point people to until there&amp;#39;s an officially WP7 build.&lt;br /&gt;&lt;br /&gt;The attached file contains binaries for XNA 4.0 x86, Xbox 360 and Windows Phone 7, source code and a patch &amp;#40;in unified diff format&amp;#41; detailing my changes.&lt;br /&gt;Comments: ** Comment from web user: RIves ** &lt;p&gt;Hm... strange. I get a &amp;#34;nuclex.snk&amp;#34; cannot find file error.&lt;/p&gt;</description><author>RIves</author><pubDate>Thu, 09 Dec 2010 09:08:15 GMT</pubDate><guid isPermaLink="false">Commented Issue: Port to XNA 4.0 and Windows Phone 7 [14784] 20101209090815A</guid></item><item><title>Created Issue: Port to XNA 4.0 and Windows Phone 7 [14784]</title><link>http://jiglibx.codeplex.com/workitem/14784</link><description>Hi&amp;#33;&lt;br /&gt;&lt;br /&gt;I ported the current development trunk to Windows Phone 7 &amp;#40;which doesn&amp;#39;t compile out of the box because unsafe code and stackalloc aren&amp;#39;t supported&amp;#41;.&lt;br /&gt;&lt;br /&gt;I &amp;#34;fixed&amp;#34; most problem methods by cloning them into an &amp;#35;if WINDOWS_PHONE .. &amp;#35;endif section. Needless to say that this added to the mess already made by the &amp;#35;if USE_STACKALLOC .. &amp;#35;endif sections in the library, so I&amp;#39;d recommend to only see this port as a stop-gap measure you could point people to until there&amp;#39;s an officially WP7 build.&lt;br /&gt;&lt;br /&gt;The attached file contains binaries for XNA 4.0 x86, Xbox 360 and Windows Phone 7, source code and a patch &amp;#40;in unified diff format&amp;#41; detailing my changes.&lt;br /&gt;</description><author>Cygon</author><pubDate>Fri, 26 Nov 2010 17:11:35 GMT</pubDate><guid isPermaLink="false">Created Issue: Port to XNA 4.0 and Windows Phone 7 [14784] 20101126051135P</guid></item><item><title>Commented Issue: Jiglibx vehicle in Network [11023]</title><link>http://jiglibx.codeplex.com/workitem/11023</link><description>Hi, i&amp;#39;m Andor Mate&amp;#33;&lt;br /&gt;&lt;br /&gt;I have a question with jiglib vehicle. I create networking &amp;#40;Server-Client and i use UDP&amp;#41;, but i dont know what datas send in the network.&lt;br /&gt;I try the send the Position and Orientation but its too slow &amp;#40;lagging&amp;#41;. After that i try the accelrate and steer, but slow.&lt;br /&gt;&lt;br /&gt;Please help me&amp;#33;&lt;br /&gt;&lt;br /&gt;Thanks, Andor&lt;br /&gt;Comments: ** Comment from web user: JBalazs ** &lt;p&gt;Hi Andor,&lt;br /&gt;Send the wehicle&amp;#180;s position and orientation only in every 2-3 seconds once, and the pressed keys &amp;#40;WASD or arrows&amp;#41; rapidly. It would be a cheaper communication.&lt;br /&gt;BR&lt;br /&gt; Balazs&lt;/p&gt;</description><author>JBalazs</author><pubDate>Thu, 25 Nov 2010 22:36:04 GMT</pubDate><guid isPermaLink="false">Commented Issue: Jiglibx vehicle in Network [11023] 20101125103604P</guid></item><item><title>Commented Issue: Need IntelliSense entries for almost all functions [14596]</title><link>http://jiglibx.codeplex.com/workitem/14596</link><description>This should be classified as an improvement, not at bug. It would be nice to have descriptions of what a particular function does using the Visual Studio IntelliSense utility. With the lack of documentation, these little bits of info would help immensly. &lt;br /&gt;&lt;br /&gt;This is acheived by using three slashes and then a statement on the line before the function. &lt;br /&gt;e.g. &lt;br /&gt;&lt;br /&gt;&amp;#47;&amp;#47;&amp;#47;Used to calculate foo to use in foo2 function&lt;br /&gt;public float calculate&amp;#40;int foo&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;..&lt;br /&gt;&amp;#125;&lt;br /&gt;Comments: ** Comment from web user: nash9000 ** &lt;p&gt;Update&amp;#58; My latest commit laid the groundwork for this. There is still much work to be done on writing function and function parameter descriptions though. I can try to address these as I educate myself with JigLibX.&lt;/p&gt;</description><author>nash9000</author><pubDate>Fri, 12 Nov 2010 00:59:55 GMT</pubDate><guid isPermaLink="false">Commented Issue: Need IntelliSense entries for almost all functions [14596] 20101112125955A</guid></item><item><title>Created Issue: Need IntelliSense entries for almost all functions [14596]</title><link>http://jiglibx.codeplex.com/workitem/14596</link><description>This should be classified as an improvement, not at bug. It would be nice to have descriptions of what a particular function does using the Visual Studio IntelliSense utility. With the lack of documentation, these little bits of info would help immensly. &lt;br /&gt;&lt;br /&gt;This is acheived by using three slashes and then a statement on the line before the function. &lt;br /&gt;e.g. &lt;br /&gt;&lt;br /&gt;&amp;#47;&amp;#47;&amp;#47;Used to calculate foo to use in foo2 function&lt;br /&gt;public float calculate&amp;#40;int foo&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;..&lt;br /&gt;&amp;#125;&lt;br /&gt;</description><author>codpigeon</author><pubDate>Wed, 03 Nov 2010 01:04:02 GMT</pubDate><guid isPermaLink="false">Created Issue: Need IntelliSense entries for almost all functions [14596] 20101103010402A</guid></item><item><title>Commented Issue: XNA 4.0 MeshPart [14281]</title><link>http://jiglibx.codeplex.com/workitem/14281</link><description>Apparently, the new XNA 4.0 library gets rid of the Vertex methods and variables, which is an essential part of the TriangleMeshPart, which is essential to loading models and using them as physics objects in the game. I&amp;#39;m working on a solution, but this is not my particular area of expertise, any ideas&amp;#63;&lt;br /&gt;Comments: ** Comment from web user: WillZD ** &lt;p&gt;&amp;#42;TriangleMeshObject&lt;/p&gt;</description><author>WillZD</author><pubDate>Sun, 19 Sep 2010 21:02:42 GMT</pubDate><guid isPermaLink="false">Commented Issue: XNA 4.0 MeshPart [14281] 20100919090242P</guid></item><item><title>Created Issue: XNA 4.0 MeshPart [14281]</title><link>http://jiglibx.codeplex.com/workitem/14281</link><description>Apparently, the new XNA 4.0 library gets rid of the Vertex methods and variables, which is an essential part of the TriangleMeshPart, which is essential to loading models and using them as physics objects in the game. I&amp;#39;m working on a solution, but this is not my particular area of expertise, any ideas&amp;#63;&lt;br /&gt;</description><author>WillZD</author><pubDate>Sun, 19 Sep 2010 21:01:41 GMT</pubDate><guid isPermaLink="false">Created Issue: XNA 4.0 MeshPart [14281] 20100919090141P</guid></item><item><title>Created Issue: public void CollisionSkin.GetMassProperties() is incorrect [14103]</title><link>http://jiglibx.codeplex.com/workitem/14103</link><description>This method will only work correctly if there are no overlapping primitives used in the CollisionSkin &amp;#40;which is extremely unlikely when multiple primitives are used&amp;#41;. The original author does look like they have tried to account for it however the implementation is incorrect. It results in places that have overlapping primitives having a greater density and places that don&amp;#39;t overlap having less density than they should, this completely breaks the inertia tensor calculation.&lt;br /&gt;&lt;br /&gt;The correct solution is actually really complex as you would need to break up the primitives into non-standard shapes where they overlap. This would be extremely complex to do accurately but a good approximation would probably be to build a mesh for each disjoint section of the skin, convert the meshes to polyhedra and then calculate their inertia tensors and sum them together... Still not particularly nice.&lt;br /&gt;</description><author>Glass_Echidna</author><pubDate>Fri, 27 Aug 2010 06:23:37 GMT</pubDate><guid isPermaLink="false">Created Issue: public void CollisionSkin.GetMassProperties() is incorrect [14103] 20100827062337A</guid></item><item><title>Created Issue: Jiglibx vehicle in Network [11023]</title><link>http://jiglibx.codeplex.com/WorkItem/View.aspx?WorkItemId=11023</link><description>Hi, i&amp;#39;m Andor Mate&amp;#33;&lt;br /&gt;&lt;br /&gt;I have a question with jiglib vehicle. I create networking &amp;#40;Server-Client and i use UDP&amp;#41;, but i dont know what datas send in the network.&lt;br /&gt;I try the send the Position and Orientation but its too slow &amp;#40;lagging&amp;#41;. After that i try the accelrate and steer, but slow.&lt;br /&gt;&lt;br /&gt;Please help me&amp;#33;&lt;br /&gt;&lt;br /&gt;Thanks, Andor&lt;br /&gt;</description><author>MateAndor</author><pubDate>Wed, 02 Dec 2009 14:14:04 GMT</pubDate><guid isPermaLink="false">Created Issue: Jiglibx vehicle in Network [11023] 20091202021404P</guid></item><item><title>Created Issue: Crash due to skins swaps in DetectFunctors [10693]</title><link>http://jiglibx.codeplex.com/WorkItem/View.aspx?WorkItemId=10693</link><description>Crash in PreProcessCollisions in HandleAllConstrains motivated by the fact that the PreProcessCollisions &amp;#40;All almost all other functions in PhysicSystem&amp;#41; expects Collision.SkinInfo.Skin0.Owner &amp;#33;&amp;#61; null. But some DetectFunctors swap skins during detection &amp;#40;All not symetric ones&amp;#41; but never restores previous state. So if the input Skin1 without Body owner is swaped during detection then all the calls expecting an owner in Skin0 are destined to fail.&lt;br /&gt;</description><author>luis_acebal</author><pubDate>Mon, 28 Sep 2009 19:01:45 GMT</pubDate><guid isPermaLink="false">Created Issue: Crash due to skins swaps in DetectFunctors [10693] 20090928070145P</guid></item><item><title>Created Issue: [REQUEST] Add More Options to Predicates [10618]</title><link>http://jiglibx.codeplex.com/WorkItem/View.aspx?WorkItemId=10618</link><description>Predicates would be much more useful if there was a second function that was passed collision information after CollisionSkins have already been ruled out by ConsiderSkin&amp;#40;&amp;#41;. For example this would be useful because you could make a predicate that would rule out internal collisions using the normal of the CollisionSkin being collided with at the point of collision.&lt;br /&gt;</description><author>Glass_Echidna</author><pubDate>Thu, 10 Sep 2009 18:38:18 GMT</pubDate><guid isPermaLink="false">Created Issue: [REQUEST] Add More Options to Predicates [10618] 20090910063818P</guid></item><item><title>Created Issue: AddAABox() and UpdateWorldBoundingBox() do not account for empty boundingboxes</title><link>http://jigglex.codeplex.com/WorkItem/View.aspx?WorkItemId=10270</link><description>See&amp;#58; http&amp;#58;&amp;#47;&amp;#47;jiglibx.wikidot.com&amp;#47;forum&amp;#47;t-161751&amp;#47;bounding-boxes&lt;br /&gt;&lt;br /&gt;In AABox.cs  replace&amp;#58;&lt;br /&gt;&lt;br /&gt;static public void AddAABox&amp;#40;AABox aabox, ref BoundingBox bb&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            bb.Min &amp;#61; Vector3.Min&amp;#40;aabox.MinPos, bb.Min&amp;#41;&amp;#59;&lt;br /&gt;            bb.Max&amp;#61; Vector3.Max&amp;#40;aabox.MaxPos, bb.Max&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;With&amp;#58;&lt;br /&gt;public void UpdateWorldBoundingBox&amp;#40;&amp;#41;&lt;br /&gt;     &amp;#40;...&amp;#41;&lt;br /&gt;            WorldBoundingBox &amp;#61; BoundingBoxHelper.InitialBox&amp;#59;&lt;br /&gt;            BoundingBoxHelper.AddPoint&amp;#40;ref temp.Min, ref WorldBoundingBox&amp;#41;&amp;#59;&lt;br /&gt;            BoundingBoxHelper.AddPoint&amp;#40;ref temp.Max, ref WorldBoundingBox&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;In Collisionskin.cs replace&lt;br /&gt;&lt;br /&gt;public void UpdateWorldBoundingBox&amp;#40;&amp;#41;&lt;br /&gt;     &amp;#40;...&amp;#41;&lt;br /&gt;            WorldBoundingBox &amp;#61; BoundingBoxHelper.InitialBox&amp;#59;&lt;br /&gt;            BoundingBoxHelper.AddPoint&amp;#40;ref temp.Min, ref WorldBoundingBox&amp;#41;&amp;#59;&lt;br /&gt;            BoundingBoxHelper.AddPoint&amp;#40;ref temp.Max, ref WorldBoundingBox&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;with&amp;#58; &lt;br /&gt;&lt;br /&gt;public void UpdateWorldBoundingBox&amp;#40;&amp;#41;&lt;br /&gt;     &amp;#40;...&amp;#41;&lt;br /&gt;           WorldBoundingBox &amp;#61; BoundingBoxHelper.InitialBox&amp;#59;&lt;br /&gt;           BoundingBoxHelper.AddBBox&amp;#40;temp,ref WorldBoundingBox&amp;#41;&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;</description><author>LukeHoser</author><pubDate>Mon, 06 Jul 2009 21:00:51 GMT</pubDate><guid isPermaLink="false">Created Issue: AddAABox() and UpdateWorldBoundingBox() do not account for empty boundingboxes 20090706090051P</guid></item><item><title>Created Issue: Freezing not supported on Vehicles</title><link>http://jigglex.codeplex.com/WorkItem/View.aspx?WorkItemId=9917</link><description>If you enable freezing on the chassis of a vehicle, the inactive vehicle&amp;#39;s wheels can spin in place and a fair amount of CPU is wasted.  This was preventing me from having cars that are &amp;#34;parked&amp;#34; in my game.  I&amp;#39;m not sure if it&amp;#39;s ideal, but this fix has worked well for me&amp;#58;&lt;br /&gt;&lt;br /&gt;In Vehicles&amp;#47;Chassis.cs&amp;#58;&lt;br /&gt;&lt;br /&gt;public override void AddExternalForces&amp;#40;float dt&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    if &amp;#40;mCar &amp;#61;&amp;#61; null &amp;#124;&amp;#124; &amp;#33;mCar.Chassis.Body.IsActive&amp;#41; &amp;#47;&amp;#47;&amp;#35;&amp;#35;&amp;#35;&amp;#35;&amp;#35;&amp;#35; EDIT 1&amp;#58; Give up on inactive vehicles &amp;#35;&amp;#35;&amp;#35;&amp;#35;&amp;#35;&amp;#35;&lt;br /&gt;        return&amp;#59;&lt;br /&gt;&lt;br /&gt;&amp;#91;...&amp;#93;&lt;br /&gt;&lt;br /&gt;public override void PostPhysics&amp;#40;float dt&amp;#41;&lt;br /&gt;&amp;#123;&lt;br /&gt;    if &amp;#40;mCar &amp;#61;&amp;#61; null &amp;#124;&amp;#124; &amp;#33;mCar.Chassis.Body.IsActive&amp;#41; &amp;#47;&amp;#47;&amp;#35;&amp;#35;&amp;#35;&amp;#35;&amp;#35;&amp;#35; EDIT 2&amp;#58; Give up on inactive vehicles &amp;#35;&amp;#35;&amp;#35;&amp;#35;&amp;#35;&amp;#35;&lt;br /&gt;        return&amp;#59;&lt;br /&gt;</description><author>PolyVector</author><pubDate>Sun, 03 May 2009 14:09:45 GMT</pubDate><guid isPermaLink="false">Created Issue: Freezing not supported on Vehicles 20090503020945P</guid></item><item><title>Commented Issue: NaN appearing due to ApplyWorldImpuse</title><link>http://jigglex.codeplex.com/WorkItem/View.aspx?WorkItemId=6094</link><description>besides that, sometimes, also on afaik random moments, the speed of my player, which is keyboard controlled using ApplyWorldImpulse to generate speed on some &amp;#39;natural&amp;#39; way, turns into Vector3&amp;#40;NaN,NaN,NaN&amp;#41;. Although I can catch a NaN speed myself, there&amp;#39;s no way to naturally restore the speed of my player, resulting in a standstill directly after such a &amp;#39;crash&amp;#39;.&lt;br /&gt;Comments: ** Comment from web user: LukeHoser ** &lt;p&gt;Body.ApplyWorldImpulse does transformRate.Velocity &amp;#43;&amp;#61; invMass &amp;#42; impulse&amp;#59; which can only generate an NaN velocity if the inpulse is a NaN. Are you trying to normalize a Vector3.Zero somewhere&amp;#63;&lt;/p&gt;</description><author>LukeHoser</author><pubDate>Wed, 29 Apr 2009 18:33:23 GMT</pubDate><guid isPermaLink="false">Commented Issue: NaN appearing due to ApplyWorldImpuse 20090429063323P</guid></item><item><title>Commented Issue: Mass problem</title><link>http://jigglex.codeplex.com/WorkItem/View.aspx?WorkItemId=5940</link><description>When I set up object mass to zero it is not displayed. I think that you should give to user ability to set mass zero especially to water and air physics.&lt;br /&gt;Comments: ** Comment from web user: LukeHoser ** &lt;p&gt;Even when suspended in air or water, objects have mass. What you are probably looking for is&amp;#58; Body.ApplyGravity &amp;#61; false&amp;#59; &lt;/p&gt;&lt;p&gt;To create a body of water or air you need to create an object with a callback function on collision. Then when ever the collision happens, apply an upwards force proportional to volume of water&amp;#47;air the body displaces. This isn&amp;#39;t trivial though.&lt;br /&gt;&lt;/p&gt;</description><author>LukeHoser</author><pubDate>Wed, 29 Apr 2009 18:27:57 GMT</pubDate><guid isPermaLink="false">Commented Issue: Mass problem 20090429062757P</guid></item><item><title>Commented Issue: Spontaneous Unfreezing of Bodies resting on Immovable/Static surfaces...</title><link>http://jigglex.codeplex.com/WorkItem/View.aspx?WorkItemId=9740</link><description>I have a large static level &amp;#40;Triangle Mesh&amp;#41; with many boxes scattered around in random piles.  They all freeze as expected allowing for a decent framerate....  However, if a single object -anywhere- in the world so much as touches the level, every other object connected to the ground instantly unfreezes causing the FPS to plummet and items to shift around until they settle again.&lt;br /&gt;&lt;br /&gt;Here is my quick fix&amp;#58;&lt;br /&gt;&lt;br /&gt;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61; PhysicsSystem.cs &amp;#61;&amp;#61;&amp;#61;&amp;#61;&amp;#61;&lt;br /&gt;        private void FindConnected&amp;#40;Body body, CollisionIsland island&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            if &amp;#40;body.Immovable&amp;#41;  &amp;#47;&amp;#47;Fix&amp;#58; Don&amp;#39;t allow Islands to connect with immovable objects...&lt;br /&gt;                return&amp;#59;&lt;br /&gt;Comments: ** Comment from web user: PolyVector ** &lt;p&gt;Oh, I didn&amp;#39;t realize that noone88.&lt;/p&gt;&lt;p&gt;Thank you. &amp;#58;&amp;#41;&lt;/p&gt;</description><author>PolyVector</author><pubDate>Sat, 18 Apr 2009 20:26:21 GMT</pubDate><guid isPermaLink="false">Commented Issue: Spontaneous Unfreezing of Bodies resting on Immovable/Static surfaces... 20090418082621P</guid></item><item><title>Closed Issue: dAccelerate and dSteering are not clamped</title><link>http://jigglex.codeplex.com/WorkItem/View.aspx?WorkItemId=9317</link><description>In car.cs at lines 225 and 229 the function MathHelper.Clamp is used incorrectly&amp;#58; the function does not clamp the first argument but it returns the clamped value.&lt;br /&gt;&lt;br /&gt;Change those lines as following&amp;#58;&lt;br /&gt;dAccelerate &amp;#61; MathHelper.Clamp&amp;#40;dAccelerate, -deltaAccelerate, deltaAccelerate&amp;#41;&amp;#59;&lt;br /&gt;dSteering &amp;#61; MathHelper.Clamp&amp;#40;dSteering, -deltaSteering, deltaSteering&amp;#41;&amp;#59;&lt;br /&gt;</description><author>noone88</author><pubDate>Sat, 18 Apr 2009 12:57:32 GMT</pubDate><guid isPermaLink="false">Closed Issue: dAccelerate and dSteering are not clamped 20090418125732P</guid></item><item><title>Commented Issue: dAccelerate and dSteering are not clamped</title><link>http://jigglex.codeplex.com/WorkItem/View.aspx?WorkItemId=9317</link><description>In car.cs at lines 225 and 229 the function MathHelper.Clamp is used incorrectly&amp;#58; the function does not clamp the first argument but it returns the clamped value.&lt;br /&gt;&lt;br /&gt;Change those lines as following&amp;#58;&lt;br /&gt;dAccelerate &amp;#61; MathHelper.Clamp&amp;#40;dAccelerate, -deltaAccelerate, deltaAccelerate&amp;#41;&amp;#59;&lt;br /&gt;dSteering &amp;#61; MathHelper.Clamp&amp;#40;dSteering, -deltaSteering, deltaSteering&amp;#41;&amp;#59;&lt;br /&gt;Comments: ** Comment from web user: noone88 ** &lt;p&gt;yep, that was a bug. it&amp;#39;s fixed now, thanks&amp;#33;&lt;/p&gt;</description><author>noone88</author><pubDate>Sat, 18 Apr 2009 12:57:23 GMT</pubDate><guid isPermaLink="false">Commented Issue: dAccelerate and dSteering are not clamped 20090418125723P</guid></item><item><title>Closed Issue: Few bug fixes</title><link>http://jigglex.codeplex.com/WorkItem/View.aspx?WorkItemId=9565</link><description>Hello guys,&lt;br /&gt;&lt;br /&gt;I fixed few bugs for myself, but I want to share it with you, so someone can update it in SVN.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;1&amp;#41; I observed NaN numbers in Velocity after a lot of box-box collisions, especially if boxes were bigger &amp;#40;100m&amp;#41;.&lt;br /&gt;&lt;br /&gt;    Reason&amp;#58;&lt;br /&gt;&lt;br /&gt;       In file Collision&amp;#92;Detection&amp;#92;BoxBox.cs on line 625, there is division by &amp;#40;maxDist - minDist&amp;#41;. Sometimes&lt;br /&gt;       it can be zero. I saw a fix few lines above &amp;#40;which is trying to add JiggleMath.Epsilon to maxDist if&lt;br /&gt;       they are same value, but it won&amp;#39;t work due to floating point nature. E.g. if you add 0.001 to 100.2435,&lt;br /&gt;       the result can be same still 100.2435 &amp;#40;not sure about this number, but the idea is clear&amp;#41;&lt;br /&gt;&lt;br /&gt;    My fix was easy&amp;#58; &lt;br /&gt;&lt;br /&gt;       if &amp;#40;maxDist - minDist&amp;#41; &amp;#61;&amp;#61; 0.0f, do division by JiggleMath.Epsilon, and not directly by &amp;#40;maxDist - minDist&amp;#41;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;2&amp;#41; Velocity clamping&lt;br /&gt;&lt;br /&gt;   In file Physics&amp;#92;Body.cs, line 656, there is method LimitVel&amp;#40;&amp;#41; which does velocity clamping. I think how it&amp;#39;s&lt;br /&gt;   right now, it isn&amp;#39;t clamping whole velocity &amp;#40;or speed&amp;#41;, but each individual component of the velocity, so it can behave OK&lt;br /&gt;   if your object is moving in some axis-direction, but strange if it goes diagonal.&lt;br /&gt;   My suggestion is to replace the method by this&amp;#58;&lt;br /&gt;&lt;br /&gt;        public void LimitVel&amp;#40;&amp;#41;&lt;br /&gt;        &amp;#123;&lt;br /&gt;            if &amp;#40;transformRate.Velocity.LengthSquared&amp;#40;&amp;#41; &amp;#62; VelMax &amp;#42; VelMax&amp;#41; transformRate.Velocity &amp;#61; Vector3.Normalize&amp;#40;transformRate.Velocity&amp;#41; &amp;#42; VelMax&amp;#59;&lt;br /&gt;        &amp;#125;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;3&amp;#41; Garbage during random number calculations&amp;#58;&lt;br /&gt;&lt;br /&gt;   In file Physics&amp;#92;PhysicsSystem.cs, line 468, there is &amp;#34;new Random&amp;#40;&amp;#41;&amp;#34; so we can get random number few lines later.&lt;br /&gt;   I suggest not to create new Random each time we hit this line, but make static object. Reason is, that&lt;br /&gt;   each time we create Random, new object is made on the heap, so we force Garbe Collector to do collections.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;4&amp;#41; Garbage again. In Physics&amp;#92;PhysicsSystem.cs, line 1840 there is call to SetCollisionFns&amp;#40;&amp;#41; which sets delegates for&lt;br /&gt;   collision functions. This is forcing GC too. I don&amp;#39;t remember exactly why, but it has something to do with&lt;br /&gt;   creating delegate on the heap each time we call this method. And we call it in each Integrate&amp;#40;&amp;#41; call, which is&lt;br /&gt;   pretty often.&lt;br /&gt;   Fix is very easy&amp;#58; remove call to SetCollisionFns&amp;#40;&amp;#41; from Integrate method and put it in PhysicsSystem&amp;#40;&amp;#41; constructor,&lt;br /&gt;   so it will be called only once.&lt;br /&gt;&lt;br /&gt;   Btw, good description on delegates and garbage is at&amp;#58;&lt;br /&gt;   http&amp;#58;&amp;#47;&amp;#47;blogs.msdn.com&amp;#47;shawnhar&amp;#47;archive&amp;#47;2007&amp;#47;07&amp;#47;09&amp;#47;delegates-events-and-garbage.aspx&lt;br /&gt;    &lt;br /&gt;&lt;br /&gt;All these fixes are working and tested in my code, I did tests on garbage collector too. But I can&amp;#39;t upload it to SVN &lt;br /&gt;so please if there is someone who can.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;By the way, I want to thank you for great library and great work.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;Thanks,&lt;br /&gt;Marek&lt;br /&gt;Comments: fixed</description><author>noone88</author><pubDate>Sat, 18 Apr 2009 12:56:49 GMT</pubDate><guid isPermaLink="false">Closed Issue: Few bug fixes 20090418125649P</guid></item></channel></rss>