<?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/680" />

	<title>Real-Time Physics Simulation Forum</title>
	
	<link href="https://pybullet.org/Bullet/phpBB3/index.php" />
	<updated>2006-11-10T15:07:28+00:00</updated>

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

		<entry>
		<author><name><![CDATA[Erwin Coumans]]></name></author>
		<updated>2006-11-10T15:07:28+00:00</updated>

		<published>2006-11-10T15:07:28+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2385#p2385</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2385#p2385"/>
		<title type="html"><![CDATA[Re: btStaticPlaneShape inconsistencies?]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2385#p2385"><![CDATA[
<blockquote class="uncited"><div><blockquote class="uncited"><div>[...]<br>Hope this helps?</div></blockquote>It explains your design and that is perfectly okay for me, but there is this trap. One could take this as a philosophical question I think: shouldn't btCollisionShape be an empty container, as a plane has no such parameters like a sphere or box (specifying extent but not transformation)? Well, I'm splitting hairs ...</div></blockquote>You are right, but I prefer a general 'unified' solution. I didn't want to break this for the plane shape. Same for static triangle meshes, they all fit in the same framework. We could 'assume' that triangles are always in worldspace (as you suggest for the plane) but the convention is that shapes are defined in their local space.<blockquote class="uncited"><div><blockquote class="uncited"><div>PS: there is one more optional transform that you can apply to shapes, to re-position the shape relative to the center of mass (world transform). Just a btCompoundSHape for this, and add a child-shape+transform.</div></blockquote>I'm not sure whether I understood this. Isn't this something like a Composite-Pattern? All transformations applied to a btCompoundShape are applied to its children. If I apply a transformation to a child this transformation is defined in the local coordinate system of that compound shape?</div></blockquote>Bullet implements the full COLLADA Physics specification, see <a href="http://www.khronos.org/collada/" class="postlink">http://www.khronos.org/collada/</a><blockquote class="uncited"><div>Rigid-bodies may contain a single shape or a collection of shapes for collision detection. Each shape may<br>be rotated and/or translated to allow for building complex collision shapes.</div></blockquote>You can use Bullet's compound shapes to add additional shapes each with its own rotation/translation. Check out the CcdPhysicsDemo, search for 'bool useCompound' and make it true to see them in action.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=2">Erwin Coumans</a> — Fri Nov 10, 2006 3:07 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Noehrgel]]></name></author>
		<updated>2006-11-10T14:55:49+00:00</updated>

		<published>2006-11-10T14:55:49+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2384#p2384</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2384#p2384"/>
		<title type="html"><![CDATA[Re: btStaticPlaneShape inconsistencies?]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2384#p2384"><![CDATA[
<blockquote class="uncited"><div>[...]<br>Hope this helps?</div></blockquote>It explains your design and that is perfectly okay for me, but there is this trap. One could take this as a philosophical question I think: shouldn't btCollisionShape be an empty container, as a plane has no such parameters like a sphere or box (specifying extent but not transformation)? Well, I'm splitting hairs ...<br><blockquote class="uncited"><div>PS: there is one more optional transform that you can apply to shapes, to re-position the shape relative to the center of mass (world transform). Just a btCompoundSHape for this, and add a child-shape+transform.</div></blockquote>I'm not sure whether I understood this. Isn't this something like a Composite-Pattern? All transformations applied to a btCompoundShape are applied to its children. If I apply a transformation to a child this transformation is defined in the local coordinate system of that compound shape?<br><br>PS: I don't mean to offend anyone. If it sounds like this than it's due to my bad english (this applies to anything I say, except I state something different explicitly)<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=753">Noehrgel</a> — Fri Nov 10, 2006 2:55 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Erwin Coumans]]></name></author>
		<updated>2006-11-10T13:49:59+00:00</updated>

		<published>2006-11-10T13:49:59+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2382#p2382</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2382#p2382"/>
		<title type="html"><![CDATA[Re: btStaticPlaneShape inconsistencies?]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2382#p2382"><![CDATA[
<blockquote class="uncited"><div>There are some inconsistencies with btStaticPlaneShape. The parameters are a normal and some constant where the constant determines the distance of the plane to the origin. If this is sufficient to define a plane, there's a bug in Bullet, as you must also define a transformation (with identity matrix and a zero vector) to make the plane work.<br><br>Noehrgel</div></blockquote>All shapes are defined in their local coordinate frame. For example, a box is just defined by its halfExtents in 3 directions. A sphere is just defined by radius, and a plane by this plane equation (normal, plane constant).<br><br>All shapes are positioned in the world by adding them to a collision object (or rigidbody), which has the world transform.<br>See CcdPhysicsDemo, search for USE_GROUND_PLANE. The transform that belongs to this ground shape is 0,-30,0, with no rotation, See line 359. You can add some rotation too, for example:<br><div class="codebox"><p>Code: </p><pre><code>trans.setOrigin(btVector3(0,-30,0));trans.setRotation(btQuaternion(btVector3(1,0,0),0.25*SIMD_HALF_PI));</code></pre></div>Hope this helps?<br>Erwin<br><br>PS: there is one more optional transform that you can apply to shapes, to re-position the shape relative to the center of mass (world transform). Just a btCompoundSHape for this, and add a child-shape+transform.<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=2">Erwin Coumans</a> — Fri Nov 10, 2006 1:49 pm</p><hr />
]]></content>
	</entry>
		<entry>
		<author><name><![CDATA[Noehrgel]]></name></author>
		<updated>2006-11-10T12:53:57+00:00</updated>

		<published>2006-11-10T12:53:57+00:00</published>
		<id>https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2381#p2381</id>
		<link href="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2381#p2381"/>
		<title type="html"><![CDATA[btStaticPlaneShape inconsistencies?]]></title>

		
		<content type="html" xml:base="https://pybullet.org/Bullet/phpBB3/viewtopic.php?p=2381#p2381"><![CDATA[
There are some inconsistencies with btStaticPlaneShape. The parameters are a normal and some constant where the constant determines the distance of the plane to the origin. If this is sufficient to define a plane, there's a bug in Bullet, as you must also define a transformation (with identity matrix and a zero vector) to make the plane work.<br><br>Noehrgel<p>Statistics: Posted by <a href="https://pybullet.org/Bullet/phpBB3/memberlist.php?mode=viewprofile&amp;u=753">Noehrgel</a> — Fri Nov 10, 2006 12:53 pm</p><hr />
]]></content>
	</entry>
	</feed>
