From d1ab6c144b819afb07cbad56d90ad8d941390bd5 Mon Sep 17 00:00:00 2001 From: erwin coumans Date: Sun, 16 Oct 2016 11:52:38 -0700 Subject: [PATCH] change some defaults in MultiBody example, a slider constraint without limits is a bad idea --- data/multibody.bullet | Bin 14660 -> 16444 bytes examples/MultiBody/MultiDofDemo.cpp | 13 +++++++------ 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/data/multibody.bullet b/data/multibody.bullet index 70f15a27e117b1ec111c66b925cf5508c751ad28..084ee5a8a525c540e7bc81dce8134f419082cc59 100644 GIT binary patch delta 3239 zcmcf@e@suYe`+0yH#CLP}zykA?xB2foa)hdHtd_L`G`(Pk|jYYMifjhsK; zO7_%&PJEQ9SmPd$zf4GRgtwxOy63Se)2eM_2VfEoUU&x>s+SiIobMd3hLAQB8}qo-Dy zk(}fMQXK_(_F^AUVE}~y7%&@t3Zls-hFpHl3vj{hRfS2(Hiq^0@W8d^l<31WTHW3n z+W61Py;YrujQSwV?1k!TYIHcwEzB+U0t0zV0WfOf*(FVj)?+yO@=%rKXrBTR#><9D zEDJZm^=?>*ERElwg*P(}&yW8`S+$`2i_w#9JZM4$e@k_x{aVpQuaKpb}9m(HxVMXA6NV=ehtMm6? zX}_T5UaSi&Y>3cjmgi?2`^2lfwfNEpTcNwmroq&!27LqHg#t8KU?^sN*`@ZAbld5z zk=r0Qc^|I*uHRsQ^A*llIA7cPo$Q}B6&Exq6+3&!dqA(q-PqZAOK%>|rxiP0ssQBz znt_o6?$3(~n&__Q-f^OV8;g3^ci+;xhw~NAr<|{4D5!l!_XYEnR#!lO>kdll$mOxa zzxNiD?4ZF|q@7`QdYBE1*c?F_6dBS25E)z@lwvId2S-=f4xMgMvLy0iM|TXFob&dC zy5~dW!oJsSz6ikV1fu)|dRY5Xe!{5jiw$QLkru)UeJq3!86r;u5Z}=R!%i3(aAMEZ zPfOq$PHeM{|B$q{eSr4UkJk1KnU-i`LR?@%M%>={`18TNB(lbDVVmD_-o`wNx1ZLo zv3Qn-#+&h52fGKg;DtSbbrnX5b=dll$(K`Y!LziIGF)>XW^oMjA~0oa=~ox$F132z z2#Yi4Sku!y8^RK!!uvkWPJbcOs)*j#}l zAa@VAyS4t2;{3REOe>wx#uj}HU=je*h%KDP8{!k3MvQW?0C52EoJJhQY0T&pq+Ogq z!KnaG0wi!6F&<>Nj*g~r8ZpXE=NRWmBgWQw3IM+bbci%!w9iIh?>fY76Pe;z;*uQw z$0lx)E#Y{JurJ9?m(z}?MI1>CjU-7#_WUq=ifb9EfiKqzkA>KX86FuR5%!!-GKmA8 zc%bl^417E3k%&}BipUvKL4KCJA+oAVfPG4ge=Oh0GBVT+= delta 1939 zcmbVMO-xfk5S}d$X=x>eg8UW>R0IPAR1y+?`eRizC>8LBg9Z{~ns5*}7>$QMV`8c? zhUQ%;ClWk)l5p{05u*oUAn_y|@#e_`@!(Cr+4r_TDA6!4-|o)O&d$#4ytlgeID0#M zb!h19*q!!!Cwsah*M}l8BC=U%!z_S>RCRzz4=kio15Xo)K8QezA(m}!3=II#6BTbY zr8hS=`gy&O8i#B>{Au^XOmeX??t9PDOX0})H0DDVMltgViVCq{lmit~s7udsnHlz% z;q+CaU{IN!PY(7!OC)-~#775YSR686FEkPwcNdt4@qt$Wmgkds(97vGoMtJX&ksgj zA1O)04yiHI;ew!F35-Yf(;9m*CLLpSnHa4Q&3x#AUmzGng-9;f79v(ENG?~`nCHP= zUQEmzUtR0oyJe626tW?kn>4ta>ee7;F!5OQAdJ!yj}dYDN}XFvvK^F_!6jGsbo&@4xc1GAWCfG&%# z$9!fue6b33bz#kD0diZ+0p5{Z_QZF!?!XVN+bRwb)&Z75zlU-QlI<-spj=ba4)Tmo zQ~Ot*J1#@Ixyl$S9>HYGmQ!sRL1Q~}jM4Nwcz0bYQgl8(4LDGJF1&0*}pS5AXSnucc6!14aMlEcwJzZI)a8h=@b*+XkH}54%x-Fhzb3KZO*o)ZPR@bqj?+^ bLyB53P5|pLpN7jFTS9!M>6HhkKDd4Zw>VE0 diff --git a/examples/MultiBody/MultiDofDemo.cpp b/examples/MultiBody/MultiDofDemo.cpp index 33719a2a8..84403024c 100644 --- a/examples/MultiBody/MultiDofDemo.cpp +++ b/examples/MultiBody/MultiDofDemo.cpp @@ -136,8 +136,8 @@ void MultiDofDemo::initPhysics() bool spherical = true; //set it ot false -to use 1DoF hinges instead of 3DoF sphericals bool multibodyOnly = false; bool canSleep = true; - bool selfCollide = false; - bool multibodyConstraint = true; + bool selfCollide = true; + bool multibodyConstraint = false; btVector3 linkHalfExtents(0.05, 0.37, 0.1); btVector3 baseHalfExtents(0.05, 0.37, 0.1); @@ -159,6 +159,7 @@ void MultiDofDemo::initPhysics() } // m_dynamicsWorld->setGravity(btVector3(0, -9.81 ,0)); + //m_dynamicsWorld->getSolverInfo().m_numIterations = 100; ////////////////////////////////////////////// if(numLinks > 0) { @@ -247,8 +248,8 @@ void MultiDofDemo::initPhysics() frameInA.setIdentity(); frameInB.setIdentity(); btVector3 jointAxis(1.0,0.0,0.0); - btMultiBodySliderConstraint* p2p = new btMultiBodySliderConstraint(mbC,numLinks-1,body,pointInA,pointInB,frameInA,frameInB,jointAxis); - //btMultiBodyFixedConstraint* p2p = new btMultiBodyFixedConstraint(mbC,numLinks-1,mbC,numLinks-4,pointInA,pointInA,frameInA,frameInB); + //btMultiBodySliderConstraint* p2p = new btMultiBodySliderConstraint(mbC,numLinks-1,body,pointInA,pointInB,frameInA,frameInB,jointAxis); + btMultiBodyFixedConstraint* p2p = new btMultiBodyFixedConstraint(mbC,numLinks-1,mbC,numLinks-4,pointInA,pointInA,frameInA,frameInB); p2p->setMaxAppliedImpulse(2.0); m_dynamicsWorld->addMultiBodyConstraint(p2p); } @@ -306,10 +307,10 @@ btMultiBody* MultiDofDemo::createFeatherstoneMultiBody_testMultiDof(btMultiBodyD for(int i = 0; i < numLinks; ++i) { if(!spherical) - pMultiBody->setupRevolute(i, linkMass, linkInertiaDiag, i - 1, btQuaternion(0.f, 0.f, 0.f, 1.f), hingeJointAxis, parentComToCurrentPivot, currentPivotToCurrentCom, false); + pMultiBody->setupRevolute(i, linkMass, linkInertiaDiag, i - 1, btQuaternion(0.f, 0.f, 0.f, 1.f), hingeJointAxis, parentComToCurrentPivot, currentPivotToCurrentCom, true); else //pMultiBody->setupPlanar(i, linkMass, linkInertiaDiag, i - 1, btQuaternion(0.f, 0.f, 0.f, 1.f)/*quat0*/, btVector3(1, 0, 0), parentComToCurrentPivot*2, false); - pMultiBody->setupSpherical(i, linkMass, linkInertiaDiag, i - 1, btQuaternion(0.f, 0.f, 0.f, 1.f), parentComToCurrentPivot, currentPivotToCurrentCom, false); + pMultiBody->setupSpherical(i, linkMass, linkInertiaDiag, i - 1, btQuaternion(0.f, 0.f, 0.f, 1.f), parentComToCurrentPivot, currentPivotToCurrentCom, true); } pMultiBody->finalizeMultiDof();