[ODE] Vector in world coordinates
Rodrigo Hernandez
kwizatz at aeongames.com
Thu Mar 15 16:51:20 MST 2007
I believe what that does is take the point local position, apply the
global matrix rotation (the dMULTIPLY0_331 part) and then the global
translation (the += part), that would give you the "current" world position
for the point.
Spheres and boxes are parametric, so in order to find the world position
of a point in their surface you must first calculate its global position.
Lewis Foster wrote:
> That sounds like an idea Jon, might give that a go. But in the mean
> time, the following seems to work (although if anyone could explain
> why or how, that would be great) :-):
>
> Given the points in the form:
>
> dReal points[]= // points for a cube
> {
> 0.25f,0.25f,0.25f, // point 0
> -0.25f,0.25f,0.25f, // point 1
>
> 0.25f,-0.25f,0.25f, // point 2
> -0.25f,-0.25f ,0.25f,// point 3
>
> 0.25f,0.25f,-0.25f, // point 4
> -0.25f,0.25f,-0.25f,// point 5
>
> 0.25f,-0.25f,-0.25f,// point 6
> -0.25f,-0.25f,-0.25f,// point 7
> };
>
> The following seems to work: (taken from test_boxstack and convex.cpp
> by Rodrigo Hernandez)
>
> j loops through number of points
> dMULTIPLY0_331 (aPoint,cvx2.final_posr->R,cvx2.points+(j*3));
> aPoint[0]+=cvx2.final_posr->pos[0];
> aPoint[1]+= cvx2.final_posr->pos[1];
> aPoint[2]+=cvx2.final_posr->pos[2];
>
>
> I don't get why or how it works though. The code for the macro is
> below, and seems to make aPoint equal to the dot product of various
> parts of the rotation matrix of cvx2.final_posr in the direction of
> each point...I'm getting awfully lost with it.
>
> #define dMULTIPLYOP0_331(A,op,B,C) \
> do { \
> (A)[0] op dDOT((B),(C)); \
> (A)[1] op dDOT((B+4),(C)); \
> (A)[2] op dDOT((B+8),(C)); \
> }
>
>
> Lewis
>
>
>
> On 3/15/07, *Jon Watte (ODE)* < hplus-ode at mindcontrol.org
> <mailto:hplus-ode at mindcontrol.org>> wrote:
>
> How about just snarfing the code from the dBody function, and
> creating a similar dGeom function? Geoms also have orientations
> (which sometimes are the same as those of bodies).
>
> Cheers,
>
> / h+
>
>
> Lewis Foster wrote:
>> I dont think i can use that. I'm working on a dCollidexxx
>> function within a new geom class so only have the two colliding
>> geoms to work with. So no bodyID can be passed. I presume that
>> function is for using ODE externally.
>>
>> Any other ideas anyone?
>>
>> Thanks,
>>
>> Lewis
>>
>> ------------------------------------------------------------------------
>>
>> _______________________________________________
>> ODE mailing list
>>
>>
>> ODE at ode.org <mailto:ODE at ode.org>
>> http://mooshika.org/mailman/listinfo/ode
>
>
> ------------------------------------------------------------------------
>
> _______________________________________________
> ODE mailing list
> ODE at ode.org
> http://mooshika.org/mailman/listinfo/ode
More information about the ODE
mailing list