<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en-gb">
	<link rel="self" type="application/atom+xml" href="https://pybullet.org/Bullet/phpBB3/app.php/feed/topic/8632" />

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2012-12-04T18:52:38+00:00</updated>

	<author><name><![CDATA[Real-Time Physics Simulation Forum]]></name></author>
	<id>https://pybullet.org/Bullet/phpBB3/app.php/feed/topic/8632</id>

		<entry>
		<author><name><![CDATA[Erwin Coumans]]></name></author>
		<updated>2012-12-04T18:52:38+00:00</updated>

		<published>2012-12-04T18:52:38+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29423#p29423</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29423#p29423"/>
		<title type="html"><![CDATA[Re: How is the Persistent Manifold Area computed in Bullet ?]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29423#p29423"><![CDATA[
Indeed, it is only a heuristic to maximize the area under the convex hull of the points,<br>it is not the actual area under the quadrilateral so it might not always be the optimal solution.<br><br>There is a better way to compute the maximal area of the convex hull, see gContactCalcArea3Points and calcArea4Points,<br>but it is slower and I didn't notice improvement so I left it disabled.<br><a href="https://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp" class="postlink">https://code.google.com/p/bullet/source ... nifold.cpp</a><br><br>If you have improvements, please let me know (in the Bullet forum, not general discussion)<br>Erwin<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=2">Erwin Coumans</a> — Tue Dec 04, 2012 6:52 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Dirk Gregorius]]></name></author>
		<updated>2012-12-03T18:04:09+00:00</updated>

		<published>2012-12-03T18:04:09+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29412#p29412</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29412#p29412"/>
		<title type="html"><![CDATA[Re: How is the Persistent Manifold Area computed in Bullet ?]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29412#p29412"><![CDATA[
I totally agree. This is exactly the same conclusion I made when I looked into this code. My guess was that the construction adds the points in such a way that the formula will work, but I never verified this. You can simply add an assert there. Build the cross product between the main diagonal and the manifold normal and check if the two two other points are on different sides. If this triggers there might be a potential bug.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14">Dirk Gregorius</a> — Mon Dec 03, 2012 6:04 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Dani3L]]></name></author>
		<updated>2012-12-02T19:11:36+00:00</updated>

		<published>2012-12-02T19:11:36+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29404#p29404</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29404#p29404"/>
		<title type="html"><![CDATA[Re: How is the Persistent Manifold Area computed in Bullet ?]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29404#p29404"><![CDATA[
Thanks a lot for your answer, I didn't know this formula.<br><br>According to the Wikipedia page, this formula is used to compute the area of a convex quadrilateral ABCD using the cross product AC^BD where AC and BD are the two diagonals of the quadrilateral. However, I am not sure I understand why we are allowed to use this formula in the case of the contact manifold because we don't know if the quadrilateral is convex and we don't know which points to use for the diagonals. Am I missing something here ?<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=5337">Dani3L</a> — Sun Dec 02, 2012 7:11 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Dirk Gregorius]]></name></author>
		<updated>2012-11-30T16:58:21+00:00</updated>

		<published>2012-11-30T16:58:21+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29382#p29382</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29382#p29382"/>
		<title type="html"><![CDATA[Re: How is the Persistent Manifold Area computed in Bullet ?]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29382#p29382"><![CDATA[
I would guess this is the area of a convex quadrilateral. See here under "vector formulas":<br><a href="http://en.wikipedia.org/wiki/Quadrilateral" class="postlink">http://en.wikipedia.org/wiki/Quadrilateral</a><p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=14">Dirk Gregorius</a> — Fri Nov 30, 2012 4:58 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Dani3L]]></name></author>
		<updated>2012-11-30T12:46:49+00:00</updated>

		<published>2012-11-30T12:46:49+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29378#p29378</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29378#p29378"/>
		<title type="html"><![CDATA[How is the Persistent Manifold Area computed in Bullet ?]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=29378#p29378"><![CDATA[
Hello,<br><br>I am studying the implementation of the persistent contact manifold in Bullet in the file <a href="http://code.google.com/p/bullet/source/browse/trunk/src/BulletCollision/NarrowPhaseCollision/btPersistentManifold.cpp" class="postlink">btPersistentManifold.cpp</a>.<br><br>At some point, if the contact cache is full, we want to keep the new contact point, the contact point with the deepest penetration depth and then, we choose the points that maximize the area of the manifold. As we can see in the btPersistentManifold::sortCachedPoints() method, the magnitude of the cross product is used to compute an area. For instance, we have the following code :<br><div class="codebox"><p>Code: </p><pre><code> if (maxPenetrationIndex != 0) {      btVector3 a0 = pt.m_localPointA-m_pointCache[1].m_localPointA;      btVector3 b0 = m_pointCache[3].m_localPointA-m_pointCache[2].m_localPointA;      btVector3 cross = a0.cross(b0);      res0 = cross.length2();}</code></pre></div>According to me, we can use the cross product magnitude to compute the area of a triangle ABC using the cross product AB^AC. However, in the above code, we have four different points ABCD and we compute the cross product AB^CD. What kind of area this gives us ?<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=5337">Dani3L</a> — Fri Nov 30, 2012 12:46 pm</p><hr />
]]></content>
	</entry>
	</feed>
