[ODE] Ray as Sensor (Please help)
Eugen Lofing
lofing at gmx.net
Mon May 30 14:16:20 MST 2005
Hello!
I tried to implement a sensor using ODE-ray - it tries to affect the
objects, that are near to it.
It throws away them (the objects) ;-)
somebody know, how I can disable this affecting?
Code:
// create a ray
dGeomRaySet(m_raygeom, pos->x, pos->y, pos->z, dir->x, dir->y, dir->z);
// fire it
dSpaceCollide2(m_raygeom, (dGeomID)IPhEngine::m_theSpace, this,
&raySensorCallback);
// and its callback:
void raySensorCallback(void* data, dGeomID o1, dGeomID o2) {
if (o1 == o2) return;
dContactGeom contactArray[1];
int numContacts = dCollide(o1, o2, 1, contactArray,
sizeof(dContactGeom));
if (0 == numContacts) { return; }
else {
RaySensor * r = (RaySensor *)data;
r->m_collided = true;
r->m_distance = contactArray[0].depth;
}
}
I mean a sensor should just get an information, not trying push them
... and do somebody know, what the parameters do:
void dGeomRaySet (dGeomID ray, dReal px, dReal py, dReal pz,
dReal dx, dReal dy, dReal dz);
^^ ^^ ^^
Quote: "...direction (dx,dy,dz) of the given ray. The ray's rotation matrix
will be adjusted so that the local Z-axis is aligned with the direction."
- I don't understand, what it does mean. Are the parameters (dx,dy,dz)
really a Rotation-matrix or a 2-nd. point? Because the ray does not
seem to exist if I set this params to (0,0,0) -> Z-axis-direction ...
Please help me somebody. Thank u.
--
5 GB Mailbox, 50 FreeSMS http://www.gmx.net/de/go/promail
+++ GMX - die erste Adresse für Mail, Message, More +++
More information about the ODE
mailing list