[ODE] how to stopbody enabling by joint

Mark Williams mark at image-engine.com
Fri Oct 26 11:32:37 MST 2007


Mark Williams wrote:
> Krystian Ligenza wrote:
>   
>> Mark Williams pisze:
>>     
>>>> Krystian Ligenza wrote:
>>>>     
>>>>         
>>>>> I have look more in mailing list archive, and see that this topic was 
>>>>> many times discussed. Main problem is how to set that joint should only 
>>>>> affect  one body and other  left  unforced.  Maybe we should think about 
>>>>> adding flag for this, by adding dJointSetXXXParam with dParamAffectBoth, 
>>>>> dParamAffectFirst, dParamAffectSecond? If joint can link with world, 
>>>>> this should not be impossible to do - correct me if I'm wrong?    
>>>>>       
>>>>>           
>>>> Why wouldn't you just create the joint attached to the affected body and 
>>>> the world (NULL), then? I do that for collisions in certain cases, for 
>>>> example.
>>>>     
>>>>         
>>> If you attach a joint to a null-body, then the joint considers that body 
>>> to have zero velocity. This is a potential source of error when 
>>> colliding against non-simulated yet animated geoms. I think Krystian's 
>>> patch has a great deal of value.
>>>   
>>>       
>> Hope that you are talking about "void dJointSetFixedBodies (dJointID 
>> j,const dVector3 p1,const
>> dQuaternion q1,const dVector3 p2,const dQuaternion q2)" function that 
>> I proposed for adding, becouse I haven't add what I was talking about 
>> in this mail (about dJointSetXXXParam ). I have thought, that only 
>> thing that is need to be change for all joints is XXXGetInfo2(...), 
>> but It seems that all step functions also check if joint is attached 
>> to Body and World, so this become too time consume for me to make it 
>> good. Also joint can be attached to World - Body, or Body - World, but 
>> internally it is always Body-World, so making a param that hide one of 
>> Bodies as World would be a tricky part.
>>
>>     
>
> Apologies, I realised after I wrote this that you'd not submitted a 
> patch for the dJointSetXXXParam stuff. I think it's a good idea, though.
>   


Alternatively, can the JointFeedback structures be used to query how 
much force/torque the joint is applying, then apply the exact
opposites to the body you'd like to remain unaffected? Or is this always 
going to be out of sync by one time step?


Mark


More information about the ODE mailing list