[ODE] get triangle index of a trimesh - applied to trunk
Jaroslav Sinecky
sinecky at telefonica.net
Tue Apr 25 03:20:22 MST 2006
So, for the moment, I changed my implementation to use new Side1,Side2
fields in dContactGeom (as suggested by Geoff) and applied it to svn trunk.
What is implemented now:
trimesh triangle index when colliding with sphere, box, capsule, cylinder.
In other cases I don't set the Side1, Side2 fields to -1, so they will
contain undefined value. You can fill your Side1,Side2 fields with -1
before calling dCollide to be sure if it was set or not.
Cheers,
Jaroslav
Geoff Carlton wrote:
> Hi,
> I have the full code containing the change, as well as several other
> changes. In terms of extracting that one feature out into a separate
> patch that can be applied to SVN, I did say I would try to do that
> when I had more time. Unfortunately, if anything, my free time is
> going the other way. For now, I can offer the complete source (which
> you may have trouble merging), or you will still have to wait an
> indeterminate time until I get around to it.
>
> Sorry about that,
> Geoff
>
>
> Jaroslav Sinecky wrote:
>> It didn't get it over to the maillist, I guess it's still waiting for
>> approval, because it exceeded size of 10kB, or something like that. I
>> didn't bother because there was a better proposal - adding feedback
>> field in the contact struct and Geoff Carlton was going to send a
>> patch for that, which didn't happen yet.
>> Nevermind, I can change my code to store the index in feedback field,
>> which is really minor change and apply it to svn.
>> Or Geoff, will you send your code?
>>
>> Ettore Pancini wrote:
>>
>>> quite strangely i can't find the original mail from Sinecky Jaroslav
>>> neither in the archives nor in my inbox. someone has this patch?
>>>
>>> ----- Original Message -----
>>> *From:* vicente conejeros <mailto:vicenteconejeros at hotmail.com>
>>> *To:* ODE mailing_list <mailto:ode at q12.org>
>>> *Sent:* Friday, March 10, 2006 21:05
>>> *Subject:* Re: [ODE] get triangle index of a trimesh
>>>
>>> thanks :D
>>>
>>> ----- Original Message -----
>>> *From:* Jaroslav Sinecky <mailto:sinecky at telefonica.net>
>>> *To:* adastra at inorbit.com <mailto:adastra at inorbit.com> ;
>>> vicente conejeros <mailto:vicenteconejeros at hotmail.com>
>>> *Cc:* ODE mailing_list <mailto:ode at q12.org>
>>> *Sent:* Friday, March 10, 2006 10:21 AM
>>> *Subject:* RE: [ODE] get triangle index of a trimesh
>>>
>>> So here goes the patch, maybe someone finds it useful or you
>>> can include it in unstable. It's pretty simple: after dCollide
>>> returns, call
>>> int triIndex = dGeomTriMeshGetTouchedTriangle(g1,
>>> contactIndex);
>>> where contactIndex is the index in the list of
>>> returned
>>> contacts and g1 is the Trimesh geom involved in the collision.
>>> disclaimer:
>>> - Not implemented for ray or plane colliding with trimesh.
>>> Suppose should be similarily easy to implement though.
>>> - There is static buffer (64) to hold indexes. I believe if
>>> this overflows, it shouldn't crash, just some asserts will
>>> come out.
>>> - It's not completely robust, for example if you send
>>> contactIndex not consistent with immediately preceding
>>> dCollide call, result is undefined
>>> Performance impact should be negligible though.
>>> Cheers,
>>> Jaroslav
>>>
>>> ------------------------------------------------------------------------
>>>
>>>
>>> _______________________________________________
>>> ODE mailing list
>>> ODE at q12.org
>>> http://q12.org/mailman/listinfo/ode
>>>
>> _______________________________________________
>> ODE mailing list
>> ODE at q12.org
>> http://q12.org/mailman/listinfo/ode
>>
>>
>>
>
More information about the ODE
mailing list