[ODE] bug?: a hinge2 joint to bodyID=0
Adam Rotaru
adam_rotaru at yahoo.com
Sat Dec 8 16:24:01 2001
Hi,
While I was testing different joint types, I found the
following problem: when I link a body with a Hinge2
joint to the BodyID=0 (fixed), I get a segmentation
fault:
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 1024 (LWP 3062)]
0x08056dee in makeHinge2V1andV2 (joint=0xbffffe92)
at ../../include/ode/odemath.h:39
39 { return ((a)[0]*(b)[0] + (a)[1]*(b)[1] +
(a)[2]*(b)[2]); }
(gdb) bt
#0 0x08056dee in makeHinge2V1andV2 (joint=0xbffffe92)
at ../../include/ode/odemath.h:39
#1 0x0806fa58 in ?? ()
#2 0x402f365f in __libc_start_main () from
/lib/libc.so.6
(gdb)
My workaround is to create another body, link it to
BodyID=0 using a Hinge joint, and link my other bodies
to this auxiliary body using a Hinge2 joint.
I posted a simple program that exhibits this problem
to:
http://www.geocities.com/adam_rotaru/tmp/ode/test_bug_hinge2_0.cpp.txt
It simulates joints of various types, the first
argument given to the program must be a number:
printf(" 1 - hinge\n");
printf(" 2 - ballsocket\n");
printf(" 3 - hinge2\n");
printf(" 4 - hinge + hinge\n");
Case 3 has the problem.
It is possible that I do something wrong, but I
suspect this is a bug which is trivial to fix.
cheers,
Adam
__________________________________________________
Do You Yahoo!?
Send your FREE holiday greetings online!
http://greetings.yahoo.com