Re: how to stopbody enabling by joint
Krystian Ligenza <[email protected]> Mon, 29 Oct 2007 13:44:35 +0100
| Newsgroups | gmane.comp.lib.ode |
|---|---|
| Message-ID | <[email protected]> |
Mark Williams pisze: > 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? > Feedback structures are filled in stepper function, so we would always be one step behind. Also, I think we would need to correct forces/torques for all joint in the chain, not only for one body. I will try to investigate this topic more, but now I have very limited time. Krystian