[{"data":1,"prerenderedAt":1911},["ShallowReactive",2],{"navigation":3,"/getting-started/usage":72,"/getting-started/usage-surround":1906},[4,22],{"title":5,"path":6,"stem":7,"children":8},"Getting Started","/getting-started","1.getting-started/1.index",[9,10,14,18],{"title":5,"path":6,"stem":7},{"title":11,"path":12,"stem":13},"Installation Guide","/getting-started/installation","1.getting-started/2.installation",{"title":15,"path":16,"stem":17},"Usage","/getting-started/usage","1.getting-started/3.usage",{"title":19,"path":20,"stem":21},"How it works","/getting-started/how-it-works","1.getting-started/how-it-works",{"title":23,"path":24,"stem":25,"children":26},"Api","/api","2.api",[27,30,64,68],{"title":28,"path":24,"stem":29},"Physics","2.api/index",{"title":31,"path":32,"stem":33,"children":34},"Rigid body","/api/rigid-body","2.api/1.rigid-body/index",[35,36,40,44,48,52,56,60],{"title":31,"path":32,"stem":33},{"title":37,"path":38,"stem":39},"Automatic colliders","/api/rigid-body/automatic-colliders","2.api/1.rigid-body/1.automatic-colliders",{"title":41,"path":42,"stem":43},"Custom colliders","/api/rigid-body/custom-colliders","2.api/1.rigid-body/2.custom-colliders",{"title":45,"path":46,"stem":47},"Forces","/api/rigid-body/forces","2.api/1.rigid-body/3.forces",{"title":49,"path":50,"stem":51},"Collisions","/api/rigid-body/collisions","2.api/1.rigid-body/4.collisions",{"title":53,"path":54,"stem":55},"Sensor","/api/rigid-body/sensor","2.api/1.rigid-body/5.sensor",{"title":57,"path":58,"stem":59},"Contact force","/api/rigid-body/contact-force","2.api/1.rigid-body/6.contact-force",{"title":61,"path":62,"stem":63},"Instance rigid body","/api/rigid-body/instance-rigid-body","2.api/1.rigid-body/7.instance-rigid-body",{"title":65,"path":66,"stem":67},"Joints","/api/joint","2.api/2.joint",{"title":69,"path":70,"stem":71},"UseRapier","/api/use-rapier","2.api/3.use-rapier",{"id":73,"title":15,"body":74,"description":1900,"extension":1901,"links":1902,"meta":1903,"navigation":223,"path":16,"seo":1904,"stem":17,"__hash__":1905},"docs/1.getting-started/3.usage.md",{"type":75,"value":76,"toc":1893},"minimark",[77,81,87,614,634,640,645,648,889,895,899,917,1265,1269,1279,1538,1543,1548,1551,1562,1871,1874,1878,1889],[78,79,80],"p",{},"TLDR:  A simple ball falling",[82,83,84],"scene-wrapper",{},[85,86],"demos-usage",{},[88,89,112],"pre",{"className":90,"code":91,"highlights":92,"language":110,"meta":111,"style":111},"language-vue shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","\u003Cscript setup lang=\"ts\" >\nimport { TresCanvas } from '@tresjs/core'\nimport { Physics, RigidBody } from '@tresjs/rapier'\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CTresCanvas window-size>\n    \u003CTresPerspectiveCamera :position=\"[15, 15, 15]\" :look-at=\"[0, 0, 0]\" />\n    \u003CTresAmbientLight :intensity=\"0.5\" />\n    \u003CTresDirectionalLight :position=\"[6, 8, 4]\" />\n\n    \u003CSuspense>\n      \u003CPhysics>\n        \u003CRigidBody collider=\"ball\" :restitution=\"0.5\">\n          \u003CTresMesh :position=\"[0, 8, 0]\">\n            \u003CTresSphereGeometry />\n            \u003CTresMeshNormalMaterial />\n          \u003C/TresMesh>\n          \u003C/RigidBody>\n          \u003CRigidBody type=\"fixed\" :restitution=\"0.5\">\n            \u003CTresMesh :position=\"[0, 0, 0]\">\n              \u003CTresPlaneGeometry :args=\"[20, 20, 20]\" :rotate-x=\"-Math.PI / 2\" />\n              \u003CTresMeshBasicMaterial color=\"#f4f4f4\" />\n            \u003C/TresMesh>\n          \u003C/RigidBody>\n      \u003C/Physics>\n    \u003C/Suspense>\n  \u003C/TresCanvas>\n\u003C/template>\n",[93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109],3,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,"vue","",[113,114,115,150,179,207,218,225,235,249,285,307,328,333,343,353,387,409,420,430,440,449,480,499,534,556,566,575,585,595,605],"code",{"__ignoreMap":111},[116,117,120,124,128,132,135,138,141,145,147],"span",{"class":118,"line":119},"line",1,[116,121,123],{"class":122},"sMK4o","\u003C",[116,125,127],{"class":126},"swJcz","script",[116,129,131],{"class":130},"spNyl"," setup",[116,133,134],{"class":130}," lang",[116,136,137],{"class":122},"=",[116,139,140],{"class":122},"\"",[116,142,144],{"class":143},"sfazB","ts",[116,146,140],{"class":122},[116,148,149],{"class":122}," >\n",[116,151,153,157,160,164,167,170,173,176],{"class":118,"line":152},2,[116,154,156],{"class":155},"s7zQu","import",[116,158,159],{"class":122}," {",[116,161,163],{"class":162},"sTEyZ"," TresCanvas",[116,165,166],{"class":122}," }",[116,168,169],{"class":155}," from",[116,171,172],{"class":122}," '",[116,174,175],{"class":143},"@tresjs/core",[116,177,178],{"class":122},"'\n",[116,180,183,185,187,190,193,196,198,200,202,205],{"class":181,"line":93},[118,182],"highlight",[116,184,156],{"class":155},[116,186,159],{"class":122},[116,188,189],{"class":162}," Physics",[116,191,192],{"class":122},",",[116,194,195],{"class":162}," RigidBody",[116,197,166],{"class":122},[116,199,169],{"class":155},[116,201,172],{"class":122},[116,203,204],{"class":143},"@tresjs/rapier",[116,206,178],{"class":122},[116,208,210,213,215],{"class":118,"line":209},4,[116,211,212],{"class":122},"\u003C/",[116,214,127],{"class":126},[116,216,217],{"class":122},">\n",[116,219,221],{"class":118,"line":220},5,[116,222,224],{"emptyLinePlaceholder":223},true,"\n",[116,226,228,230,233],{"class":118,"line":227},6,[116,229,123],{"class":122},[116,231,232],{"class":126},"template",[116,234,217],{"class":122},[116,236,238,241,244,247],{"class":118,"line":237},7,[116,239,240],{"class":122},"  \u003C",[116,242,243],{"class":126},"TresCanvas",[116,245,246],{"class":130}," window-size",[116,248,217],{"class":122},[116,250,252,255,258,261,263,265,268,270,273,275,277,280,282],{"class":118,"line":251},8,[116,253,254],{"class":122},"    \u003C",[116,256,257],{"class":126},"TresPerspectiveCamera",[116,259,260],{"class":130}," :position",[116,262,137],{"class":122},[116,264,140],{"class":122},[116,266,267],{"class":143},"[15, 15, 15]",[116,269,140],{"class":122},[116,271,272],{"class":130}," :look-at",[116,274,137],{"class":122},[116,276,140],{"class":122},[116,278,279],{"class":143},"[0, 0, 0]",[116,281,140],{"class":122},[116,283,284],{"class":122}," />\n",[116,286,288,290,293,296,298,300,303,305],{"class":118,"line":287},9,[116,289,254],{"class":122},[116,291,292],{"class":126},"TresAmbientLight",[116,294,295],{"class":130}," :intensity",[116,297,137],{"class":122},[116,299,140],{"class":122},[116,301,302],{"class":143},"0.5",[116,304,140],{"class":122},[116,306,284],{"class":122},[116,308,310,312,315,317,319,321,324,326],{"class":118,"line":309},10,[116,311,254],{"class":122},[116,313,314],{"class":126},"TresDirectionalLight",[116,316,260],{"class":130},[116,318,137],{"class":122},[116,320,140],{"class":122},[116,322,323],{"class":143},"[6, 8, 4]",[116,325,140],{"class":122},[116,327,284],{"class":122},[116,329,331],{"class":118,"line":330},11,[116,332,224],{"emptyLinePlaceholder":223},[116,334,336,338,341],{"class":335,"line":94},[118,182],[116,337,254],{"class":122},[116,339,340],{"class":126},"Suspense",[116,342,217],{"class":122},[116,344,346,349,351],{"class":345,"line":95},[118,182],[116,347,348],{"class":122},"      \u003C",[116,350,28],{"class":126},[116,352,217],{"class":122},[116,354,356,359,362,365,367,369,372,374,377,379,381,383,385],{"class":355,"line":96},[118,182],[116,357,358],{"class":122},"        \u003C",[116,360,361],{"class":126},"RigidBody",[116,363,364],{"class":130}," collider",[116,366,137],{"class":122},[116,368,140],{"class":122},[116,370,371],{"class":143},"ball",[116,373,140],{"class":122},[116,375,376],{"class":130}," :restitution",[116,378,137],{"class":122},[116,380,140],{"class":122},[116,382,302],{"class":143},[116,384,140],{"class":122},[116,386,217],{"class":122},[116,388,390,393,396,398,400,402,405,407],{"class":389,"line":97},[118,182],[116,391,392],{"class":122},"          \u003C",[116,394,395],{"class":126},"TresMesh",[116,397,260],{"class":130},[116,399,137],{"class":122},[116,401,140],{"class":122},[116,403,404],{"class":143},"[0, 8, 0]",[116,406,140],{"class":122},[116,408,217],{"class":122},[116,410,412,415,418],{"class":411,"line":98},[118,182],[116,413,414],{"class":122},"            \u003C",[116,416,417],{"class":126},"TresSphereGeometry",[116,419,284],{"class":122},[116,421,423,425,428],{"class":422,"line":99},[118,182],[116,424,414],{"class":122},[116,426,427],{"class":126},"TresMeshNormalMaterial",[116,429,284],{"class":122},[116,431,433,436,438],{"class":432,"line":100},[118,182],[116,434,435],{"class":122},"          \u003C/",[116,437,395],{"class":126},[116,439,217],{"class":122},[116,441,443,445,447],{"class":442,"line":101},[118,182],[116,444,435],{"class":122},[116,446,361],{"class":126},[116,448,217],{"class":122},[116,450,452,454,456,459,461,463,466,468,470,472,474,476,478],{"class":451,"line":102},[118,182],[116,453,392],{"class":122},[116,455,361],{"class":126},[116,457,458],{"class":130}," type",[116,460,137],{"class":122},[116,462,140],{"class":122},[116,464,465],{"class":143},"fixed",[116,467,140],{"class":122},[116,469,376],{"class":130},[116,471,137],{"class":122},[116,473,140],{"class":122},[116,475,302],{"class":143},[116,477,140],{"class":122},[116,479,217],{"class":122},[116,481,483,485,487,489,491,493,495,497],{"class":482,"line":103},[118,182],[116,484,414],{"class":122},[116,486,395],{"class":126},[116,488,260],{"class":130},[116,490,137],{"class":122},[116,492,140],{"class":122},[116,494,279],{"class":143},[116,496,140],{"class":122},[116,498,217],{"class":122},[116,500,502,505,508,511,513,515,518,520,523,525,527,530,532],{"class":501,"line":104},[118,182],[116,503,504],{"class":122},"              \u003C",[116,506,507],{"class":126},"TresPlaneGeometry",[116,509,510],{"class":130}," :args",[116,512,137],{"class":122},[116,514,140],{"class":122},[116,516,517],{"class":143},"[20, 20, 20]",[116,519,140],{"class":122},[116,521,522],{"class":130}," :rotate-x",[116,524,137],{"class":122},[116,526,140],{"class":122},[116,528,529],{"class":143},"-Math.PI / 2",[116,531,140],{"class":122},[116,533,284],{"class":122},[116,535,537,539,542,545,547,549,552,554],{"class":536,"line":105},[118,182],[116,538,504],{"class":122},[116,540,541],{"class":126},"TresMeshBasicMaterial",[116,543,544],{"class":130}," color",[116,546,137],{"class":122},[116,548,140],{"class":122},[116,550,551],{"class":143},"#f4f4f4",[116,553,140],{"class":122},[116,555,284],{"class":122},[116,557,559,562,564],{"class":558,"line":106},[118,182],[116,560,561],{"class":122},"            \u003C/",[116,563,395],{"class":126},[116,565,217],{"class":122},[116,567,569,571,573],{"class":568,"line":107},[118,182],[116,570,435],{"class":122},[116,572,361],{"class":126},[116,574,217],{"class":122},[116,576,578,581,583],{"class":577,"line":108},[118,182],[116,579,580],{"class":122},"      \u003C/",[116,582,28],{"class":126},[116,584,217],{"class":122},[116,586,588,591,593],{"class":587,"line":109},[118,182],[116,589,590],{"class":122},"    \u003C/",[116,592,340],{"class":126},[116,594,217],{"class":122},[116,596,598,601,603],{"class":118,"line":597},28,[116,599,600],{"class":122},"  \u003C/",[116,602,243],{"class":126},[116,604,217],{"class":122},[116,606,608,610,612],{"class":118,"line":607},29,[116,609,212],{"class":122},[116,611,232],{"class":126},[116,613,217],{"class":122},[615,616,617],"prose-warning",{},[78,618,619,620,623,624,633],{},"Note that in order to work the ",[113,621,622],{},"\u003CPhysics />"," needs to be wrapped in a\n",[625,626,630],"a",{"href":627,"rel":628},"https://vuejs.org/guide/built-ins/suspense.html#suspense",[629],"nofollow",[113,631,632],{},"\u003CSuspense >"," component",[635,636,637],"read-more",{"to":20},[78,638,639],{},"For a more detailed explanation please check how it works under the hood.",[641,642,644],"h3",{"id":643},"props","Props",[78,646,647],{},"Rapier components expose props that configure simulation behavior. All props are reactive (unless the docs specified), so you can drive them from refs.",[88,649,652],{"className":90,"code":650,"highlights":651,"language":110,"meta":111,"style":111},"\u003Cscript setup lang=\"ts\">\nimport { TresCanvas } from '@tresjs/core'\nimport { Physics, RigidBody } from '@tresjs/rapier'\n\nconst restitution = ref(0.5)\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CTresCanvas>\n    \u003CSuspense>\n      \u003CPhysics>\n        \u003CRigidBody collider=\"ball\" :restitution=\"restitution\">\n          \u003CTresMesh>\n            \u003CTresSphereGeometry />\n            \u003CTresMeshNormalMaterial />\n          \u003C/TresMesh>\n        \u003C/RigidBody>\n      \u003C/Physics>\n    \u003C/Suspense>\n  \u003C/TresCanvas>\n\u003C/template>\n",[220,94],[113,653,654,674,692,714,718,742,750,754,762,770,778,786,816,824,832,840,848,857,865,873,881],{"__ignoreMap":111},[116,655,656,658,660,662,664,666,668,670,672],{"class":118,"line":119},[116,657,123],{"class":122},[116,659,127],{"class":126},[116,661,131],{"class":130},[116,663,134],{"class":130},[116,665,137],{"class":122},[116,667,140],{"class":122},[116,669,144],{"class":143},[116,671,140],{"class":122},[116,673,217],{"class":122},[116,675,676,678,680,682,684,686,688,690],{"class":118,"line":152},[116,677,156],{"class":155},[116,679,159],{"class":122},[116,681,163],{"class":162},[116,683,166],{"class":122},[116,685,169],{"class":155},[116,687,172],{"class":122},[116,689,175],{"class":143},[116,691,178],{"class":122},[116,693,694,696,698,700,702,704,706,708,710,712],{"class":118,"line":93},[116,695,156],{"class":155},[116,697,159],{"class":122},[116,699,189],{"class":162},[116,701,192],{"class":122},[116,703,195],{"class":162},[116,705,166],{"class":122},[116,707,169],{"class":155},[116,709,172],{"class":122},[116,711,204],{"class":143},[116,713,178],{"class":122},[116,715,716],{"class":118,"line":209},[116,717,224],{"emptyLinePlaceholder":223},[116,719,721,724,727,729,733,736,739],{"class":720,"line":220},[118,182],[116,722,723],{"class":130},"const",[116,725,726],{"class":162}," restitution ",[116,728,137],{"class":122},[116,730,732],{"class":731},"s2Zo4"," ref",[116,734,735],{"class":162},"(",[116,737,302],{"class":738},"sbssI",[116,740,741],{"class":162},")\n",[116,743,744,746,748],{"class":118,"line":227},[116,745,212],{"class":122},[116,747,127],{"class":126},[116,749,217],{"class":122},[116,751,752],{"class":118,"line":237},[116,753,224],{"emptyLinePlaceholder":223},[116,755,756,758,760],{"class":118,"line":251},[116,757,123],{"class":122},[116,759,232],{"class":126},[116,761,217],{"class":122},[116,763,764,766,768],{"class":118,"line":287},[116,765,240],{"class":122},[116,767,243],{"class":126},[116,769,217],{"class":122},[116,771,772,774,776],{"class":118,"line":309},[116,773,254],{"class":122},[116,775,340],{"class":126},[116,777,217],{"class":122},[116,779,780,782,784],{"class":118,"line":330},[116,781,348],{"class":122},[116,783,28],{"class":126},[116,785,217],{"class":122},[116,787,789,791,793,795,797,799,801,803,805,807,809,812,814],{"class":788,"line":94},[118,182],[116,790,358],{"class":122},[116,792,361],{"class":126},[116,794,364],{"class":130},[116,796,137],{"class":122},[116,798,140],{"class":122},[116,800,371],{"class":143},[116,802,140],{"class":122},[116,804,376],{"class":130},[116,806,137],{"class":122},[116,808,140],{"class":122},[116,810,811],{"class":143},"restitution",[116,813,140],{"class":122},[116,815,217],{"class":122},[116,817,818,820,822],{"class":118,"line":95},[116,819,392],{"class":122},[116,821,395],{"class":126},[116,823,217],{"class":122},[116,825,826,828,830],{"class":118,"line":96},[116,827,414],{"class":122},[116,829,417],{"class":126},[116,831,284],{"class":122},[116,833,834,836,838],{"class":118,"line":97},[116,835,414],{"class":122},[116,837,427],{"class":126},[116,839,284],{"class":122},[116,841,842,844,846],{"class":118,"line":98},[116,843,435],{"class":122},[116,845,395],{"class":126},[116,847,217],{"class":122},[116,849,850,853,855],{"class":118,"line":99},[116,851,852],{"class":122},"        \u003C/",[116,854,361],{"class":126},[116,856,217],{"class":122},[116,858,859,861,863],{"class":118,"line":100},[116,860,580],{"class":122},[116,862,28],{"class":126},[116,864,217],{"class":122},[116,866,867,869,871],{"class":118,"line":101},[116,868,590],{"class":122},[116,870,340],{"class":126},[116,872,217],{"class":122},[116,874,875,877,879],{"class":118,"line":102},[116,876,600],{"class":122},[116,878,243],{"class":126},[116,880,217],{"class":122},[116,882,883,885,887],{"class":118,"line":103},[116,884,212],{"class":122},[116,886,232],{"class":126},[116,888,217],{"class":122},[890,891,892],"prose-note",{},[78,893,894],{},"See each API page for complete prop tables and defaults.",[641,896,898],{"id":897},"events","Events",[78,900,901,903,904,907,908,911,912],{},[113,902,361],{}," can emit events like ",[625,905,906],{"href":50},"collisions"," or ",[625,909,910],{"href":54},"intersections",". You can use it as you would normally do using ",[625,913,916],{"href":914,"rel":915},"https://vuejs.org/guide/components/events.html#emitting-and-listening-to-events",[629],"vue emits",[88,918,921],{"className":90,"code":919,"highlights":920,"language":110,"meta":111,"style":111},"\u003Cscript setup lang=\"ts\">\nimport { TresCanvas } from '@tresjs/core'\nimport { Physics, RigidBody } from '@tresjs/rapier'\n\nconst onCollisionEnter = (payload: unknown) => {\n  console.log('collision-enter', payload)\n}\n\nconst onCollisionExit = (payload: unknown) => {\n  console.log('collision-exit', payload)\n}\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CTresCanvas>\n    \u003CSuspense>\n      \u003CPhysics>\n        \u003CRigidBody activeCollision @collision-enter=\"onCollisionEnter\" @collision-exit=\"onCollisionExit\">\n          \u003CTresMesh>\n            \u003CTresBoxGeometry />\n            \u003CTresMeshNormalMaterial />\n          \u003C/TresMesh>\n        \u003C/RigidBody>\n      \u003C/Physics>\n    \u003C/Suspense>\n  \u003C/TresCanvas>\n\u003C/template>\n",[220,227,237,287,309,330,100],[113,922,923,943,961,983,987,1020,1049,1055,1059,1083,1107,1112,1120,1124,1132,1140,1148,1156,1192,1200,1209,1217,1225,1233,1241,1249,1257],{"__ignoreMap":111},[116,924,925,927,929,931,933,935,937,939,941],{"class":118,"line":119},[116,926,123],{"class":122},[116,928,127],{"class":126},[116,930,131],{"class":130},[116,932,134],{"class":130},[116,934,137],{"class":122},[116,936,140],{"class":122},[116,938,144],{"class":143},[116,940,140],{"class":122},[116,942,217],{"class":122},[116,944,945,947,949,951,953,955,957,959],{"class":118,"line":152},[116,946,156],{"class":155},[116,948,159],{"class":122},[116,950,163],{"class":162},[116,952,166],{"class":122},[116,954,169],{"class":155},[116,956,172],{"class":122},[116,958,175],{"class":143},[116,960,178],{"class":122},[116,962,963,965,967,969,971,973,975,977,979,981],{"class":118,"line":93},[116,964,156],{"class":155},[116,966,159],{"class":122},[116,968,189],{"class":162},[116,970,192],{"class":122},[116,972,195],{"class":162},[116,974,166],{"class":122},[116,976,169],{"class":155},[116,978,172],{"class":122},[116,980,204],{"class":143},[116,982,178],{"class":122},[116,984,985],{"class":118,"line":209},[116,986,224],{"emptyLinePlaceholder":223},[116,988,990,992,995,997,1000,1004,1007,1011,1014,1017],{"class":989,"line":220},[118,182],[116,991,723],{"class":130},[116,993,994],{"class":162}," onCollisionEnter ",[116,996,137],{"class":122},[116,998,999],{"class":122}," (",[116,1001,1003],{"class":1002},"sHdIc","payload",[116,1005,1006],{"class":122},":",[116,1008,1010],{"class":1009},"sBMFI"," unknown",[116,1012,1013],{"class":122},")",[116,1015,1016],{"class":130}," =>",[116,1018,1019],{"class":122}," {\n",[116,1021,1023,1026,1029,1032,1034,1037,1040,1042,1044,1047],{"class":1022,"line":227},[118,182],[116,1024,1025],{"class":162},"  console",[116,1027,1028],{"class":122},".",[116,1030,1031],{"class":731},"log",[116,1033,735],{"class":126},[116,1035,1036],{"class":122},"'",[116,1038,1039],{"class":143},"collision-enter",[116,1041,1036],{"class":122},[116,1043,192],{"class":122},[116,1045,1046],{"class":162}," payload",[116,1048,741],{"class":126},[116,1050,1052],{"class":1051,"line":237},[118,182],[116,1053,1054],{"class":122},"}\n",[116,1056,1057],{"class":118,"line":251},[116,1058,224],{"emptyLinePlaceholder":223},[116,1060,1062,1064,1067,1069,1071,1073,1075,1077,1079,1081],{"class":1061,"line":287},[118,182],[116,1063,723],{"class":130},[116,1065,1066],{"class":162}," onCollisionExit ",[116,1068,137],{"class":122},[116,1070,999],{"class":122},[116,1072,1003],{"class":1002},[116,1074,1006],{"class":122},[116,1076,1010],{"class":1009},[116,1078,1013],{"class":122},[116,1080,1016],{"class":130},[116,1082,1019],{"class":122},[116,1084,1086,1088,1090,1092,1094,1096,1099,1101,1103,1105],{"class":1085,"line":309},[118,182],[116,1087,1025],{"class":162},[116,1089,1028],{"class":122},[116,1091,1031],{"class":731},[116,1093,735],{"class":126},[116,1095,1036],{"class":122},[116,1097,1098],{"class":143},"collision-exit",[116,1100,1036],{"class":122},[116,1102,192],{"class":122},[116,1104,1046],{"class":162},[116,1106,741],{"class":126},[116,1108,1110],{"class":1109,"line":330},[118,182],[116,1111,1054],{"class":122},[116,1113,1114,1116,1118],{"class":118,"line":94},[116,1115,212],{"class":122},[116,1117,127],{"class":126},[116,1119,217],{"class":122},[116,1121,1122],{"class":118,"line":95},[116,1123,224],{"emptyLinePlaceholder":223},[116,1125,1126,1128,1130],{"class":118,"line":96},[116,1127,123],{"class":122},[116,1129,232],{"class":126},[116,1131,217],{"class":122},[116,1133,1134,1136,1138],{"class":118,"line":97},[116,1135,240],{"class":122},[116,1137,243],{"class":126},[116,1139,217],{"class":122},[116,1141,1142,1144,1146],{"class":118,"line":98},[116,1143,254],{"class":122},[116,1145,340],{"class":126},[116,1147,217],{"class":122},[116,1149,1150,1152,1154],{"class":118,"line":99},[116,1151,348],{"class":122},[116,1153,28],{"class":126},[116,1155,217],{"class":122},[116,1157,1159,1161,1163,1166,1169,1171,1173,1176,1178,1181,1183,1185,1188,1190],{"class":1158,"line":100},[118,182],[116,1160,358],{"class":122},[116,1162,361],{"class":126},[116,1164,1165],{"class":130}," activeCollision",[116,1167,1168],{"class":130}," @collision-enter",[116,1170,137],{"class":122},[116,1172,140],{"class":122},[116,1174,1175],{"class":143},"onCollisionEnter",[116,1177,140],{"class":122},[116,1179,1180],{"class":130}," @collision-exit",[116,1182,137],{"class":122},[116,1184,140],{"class":122},[116,1186,1187],{"class":143},"onCollisionExit",[116,1189,140],{"class":122},[116,1191,217],{"class":122},[116,1193,1194,1196,1198],{"class":118,"line":101},[116,1195,392],{"class":122},[116,1197,395],{"class":126},[116,1199,217],{"class":122},[116,1201,1202,1204,1207],{"class":118,"line":102},[116,1203,414],{"class":122},[116,1205,1206],{"class":126},"TresBoxGeometry",[116,1208,284],{"class":122},[116,1210,1211,1213,1215],{"class":118,"line":103},[116,1212,414],{"class":122},[116,1214,427],{"class":126},[116,1216,284],{"class":122},[116,1218,1219,1221,1223],{"class":118,"line":104},[116,1220,435],{"class":122},[116,1222,395],{"class":126},[116,1224,217],{"class":122},[116,1226,1227,1229,1231],{"class":118,"line":105},[116,1228,852],{"class":122},[116,1230,361],{"class":126},[116,1232,217],{"class":122},[116,1234,1235,1237,1239],{"class":118,"line":106},[116,1236,580],{"class":122},[116,1238,28],{"class":126},[116,1240,217],{"class":122},[116,1242,1243,1245,1247],{"class":118,"line":107},[116,1244,590],{"class":122},[116,1246,340],{"class":126},[116,1248,217],{"class":122},[116,1250,1251,1253,1255],{"class":118,"line":108},[116,1252,600],{"class":122},[116,1254,243],{"class":126},[116,1256,217],{"class":122},[116,1258,1259,1261,1263],{"class":118,"line":109},[116,1260,212],{"class":122},[116,1262,232],{"class":126},[116,1264,217],{"class":122},[641,1266,1268],{"id":1267},"exposed-properties","Exposed properties",[78,1270,1271,1272,1274,1275,1278],{},"Components expose useful objects through refs. For example, ",[113,1273,361],{}," exposes ",[113,1276,1277],{},"instance",", which gives access to the underlying Rapier rigid-body API.",[88,1280,1283],{"className":90,"code":1281,"highlights":1282,"language":110,"meta":111,"style":111},"\u003Cscript setup lang=\"ts\">\nimport { shallowRef } from 'vue'\nimport { type ExposedRigidBody, RigidBody } from '@tresjs/rapier'\n\nconst rigidBodyRef = shallowRef\u003CExposedRigidBody | null>(null)\n\nconst logInstance = () => {\n  console.log(rigidBodyRef.value?.instance)\n}\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CRigidBody ref=\"rigidBodyRef\">\n    \u003CTresMesh @click=\"logInstance\">\n      \u003CTresBoxGeometry />\n      \u003CTresMeshNormalMaterial />\n    \u003C/TresMesh>\n  \u003C/RigidBody>\n\u003C/template>\n",[93,220,237,251,287,96],[113,1284,1285,1305,1324,1350,1354,1387,1391,1408,1434,1439,1447,1451,1459,1477,1498,1506,1514,1522,1530],{"__ignoreMap":111},[116,1286,1287,1289,1291,1293,1295,1297,1299,1301,1303],{"class":118,"line":119},[116,1288,123],{"class":122},[116,1290,127],{"class":126},[116,1292,131],{"class":130},[116,1294,134],{"class":130},[116,1296,137],{"class":122},[116,1298,140],{"class":122},[116,1300,144],{"class":143},[116,1302,140],{"class":122},[116,1304,217],{"class":122},[116,1306,1307,1309,1311,1314,1316,1318,1320,1322],{"class":118,"line":152},[116,1308,156],{"class":155},[116,1310,159],{"class":122},[116,1312,1313],{"class":162}," shallowRef",[116,1315,166],{"class":122},[116,1317,169],{"class":155},[116,1319,172],{"class":122},[116,1321,110],{"class":143},[116,1323,178],{"class":122},[116,1325,1327,1329,1331,1333,1336,1338,1340,1342,1344,1346,1348],{"class":1326,"line":93},[118,182],[116,1328,156],{"class":155},[116,1330,159],{"class":122},[116,1332,458],{"class":155},[116,1334,1335],{"class":162}," ExposedRigidBody",[116,1337,192],{"class":122},[116,1339,195],{"class":162},[116,1341,166],{"class":122},[116,1343,169],{"class":155},[116,1345,172],{"class":122},[116,1347,204],{"class":143},[116,1349,178],{"class":122},[116,1351,1352],{"class":118,"line":209},[116,1353,224],{"emptyLinePlaceholder":223},[116,1355,1357,1359,1362,1364,1366,1368,1371,1374,1377,1380,1382,1385],{"class":1356,"line":220},[118,182],[116,1358,723],{"class":130},[116,1360,1361],{"class":162}," rigidBodyRef ",[116,1363,137],{"class":122},[116,1365,1313],{"class":731},[116,1367,123],{"class":122},[116,1369,1370],{"class":1009},"ExposedRigidBody",[116,1372,1373],{"class":122}," |",[116,1375,1376],{"class":1009}," null",[116,1378,1379],{"class":122},">",[116,1381,735],{"class":162},[116,1383,1384],{"class":122},"null",[116,1386,741],{"class":162},[116,1388,1389],{"class":118,"line":227},[116,1390,224],{"emptyLinePlaceholder":223},[116,1392,1394,1396,1399,1401,1404,1406],{"class":1393,"line":237},[118,182],[116,1395,723],{"class":130},[116,1397,1398],{"class":162}," logInstance ",[116,1400,137],{"class":122},[116,1402,1403],{"class":122}," ()",[116,1405,1016],{"class":130},[116,1407,1019],{"class":122},[116,1409,1411,1413,1415,1417,1419,1422,1424,1427,1430,1432],{"class":1410,"line":251},[118,182],[116,1412,1025],{"class":162},[116,1414,1028],{"class":122},[116,1416,1031],{"class":731},[116,1418,735],{"class":126},[116,1420,1421],{"class":162},"rigidBodyRef",[116,1423,1028],{"class":122},[116,1425,1426],{"class":162},"value",[116,1428,1429],{"class":122},"?.",[116,1431,1277],{"class":162},[116,1433,741],{"class":126},[116,1435,1437],{"class":1436,"line":287},[118,182],[116,1438,1054],{"class":122},[116,1440,1441,1443,1445],{"class":118,"line":309},[116,1442,212],{"class":122},[116,1444,127],{"class":126},[116,1446,217],{"class":122},[116,1448,1449],{"class":118,"line":330},[116,1450,224],{"emptyLinePlaceholder":223},[116,1452,1453,1455,1457],{"class":118,"line":94},[116,1454,123],{"class":122},[116,1456,232],{"class":126},[116,1458,217],{"class":122},[116,1460,1461,1463,1465,1467,1469,1471,1473,1475],{"class":118,"line":95},[116,1462,240],{"class":122},[116,1464,361],{"class":126},[116,1466,732],{"class":130},[116,1468,137],{"class":122},[116,1470,140],{"class":122},[116,1472,1421],{"class":143},[116,1474,140],{"class":122},[116,1476,217],{"class":122},[116,1478,1480,1482,1484,1487,1489,1491,1494,1496],{"class":1479,"line":96},[118,182],[116,1481,254],{"class":122},[116,1483,395],{"class":126},[116,1485,1486],{"class":130}," @click",[116,1488,137],{"class":122},[116,1490,140],{"class":122},[116,1492,1493],{"class":143},"logInstance",[116,1495,140],{"class":122},[116,1497,217],{"class":122},[116,1499,1500,1502,1504],{"class":118,"line":97},[116,1501,348],{"class":122},[116,1503,1206],{"class":126},[116,1505,284],{"class":122},[116,1507,1508,1510,1512],{"class":118,"line":98},[116,1509,348],{"class":122},[116,1511,427],{"class":126},[116,1513,284],{"class":122},[116,1515,1516,1518,1520],{"class":118,"line":99},[116,1517,590],{"class":122},[116,1519,395],{"class":126},[116,1521,217],{"class":122},[116,1523,1524,1526,1528],{"class":118,"line":100},[116,1525,600],{"class":122},[116,1527,361],{"class":126},[116,1529,217],{"class":122},[116,1531,1532,1534,1536],{"class":118,"line":101},[116,1533,212],{"class":122},[116,1535,232],{"class":126},[116,1537,217],{"class":122},[890,1539,1540],{},[78,1541,1542],{},"Some components expose additional objects, check each documentation.",[1544,1545,1547],"h2",{"id":1546},"sleepawake","Sleep/Awake",[78,1549,1550],{},"When a dynamic rigid-body doesn't move (or moves very slowly) during a few seconds, it will be marked as sleeping by the physics pipeline. Rigid-bodies marked as sleeping are no longer simulated by the physics engine until they are woken up. That way the physics engine doesn't waste any computational resources simulating objects that don't actually move. They are woken up automatically whenever another non-sleeping rigid-body starts interacting with them (either with a joint, or with one of its attached colliders generating contacts).",[78,1552,1553,1554,1557,1558,1561],{},"However, a sleeping rigid-body won't respond to any user action. This is why it is possible to wake-up the rigid-body manually with ",[113,1555,1556],{},"RigidBody.value.instance.wakeUp()",". Some rigid-body methods take an additional wakeUp boolean argument that, if ",[113,1559,1560],{},"true",", ensures that the rigid-body wakes up before the action takes place.\nFor example:",[88,1563,1565],{"className":90,"code":1564,"language":110,"meta":111,"style":111},"\u003Cscript setup lang=\"ts\">\nimport { RigidBody } from '@tresjs/rapier'\nimport type { ExposedRigidBody } from '@tresjs/rapier'\nimport { shallowRef } from 'vue'\n\nconst rigidCubeRef = shallowRef\u003CExposedRigidBody | null>(null)\n\nconst jumpCube = () => {\n  // The second argument, the boolean is waking our rigidBody\n  rigidCubeRef.value.instance.applyImpulse({ x: 0, y: 5, z: 0 }, true)\n}\n\u003C/script>\n\n\u003Ctemplate>\n  \u003CRigidBody ref=\"rigidCubeRef\">\n    \u003CTresMesh :position=\"[0, 5, 0]\" @click=\"jumpCube\">\n      \u003CTresBoxGeometry />\n      \u003CTresMeshNormalMaterial />\n    \u003C/TresMesh>\n  \u003C/RigidBody>\n\u003C/template>\n",[113,1566,1567,1587,1605,1625,1643,1647,1674,1678,1693,1699,1758,1762,1770,1774,1782,1801,1831,1839,1847,1855,1863],{"__ignoreMap":111},[116,1568,1569,1571,1573,1575,1577,1579,1581,1583,1585],{"class":118,"line":119},[116,1570,123],{"class":122},[116,1572,127],{"class":126},[116,1574,131],{"class":130},[116,1576,134],{"class":130},[116,1578,137],{"class":122},[116,1580,140],{"class":122},[116,1582,144],{"class":143},[116,1584,140],{"class":122},[116,1586,217],{"class":122},[116,1588,1589,1591,1593,1595,1597,1599,1601,1603],{"class":118,"line":152},[116,1590,156],{"class":155},[116,1592,159],{"class":122},[116,1594,195],{"class":162},[116,1596,166],{"class":122},[116,1598,169],{"class":155},[116,1600,172],{"class":122},[116,1602,204],{"class":143},[116,1604,178],{"class":122},[116,1606,1607,1609,1611,1613,1615,1617,1619,1621,1623],{"class":118,"line":93},[116,1608,156],{"class":155},[116,1610,458],{"class":155},[116,1612,159],{"class":122},[116,1614,1335],{"class":162},[116,1616,166],{"class":122},[116,1618,169],{"class":155},[116,1620,172],{"class":122},[116,1622,204],{"class":143},[116,1624,178],{"class":122},[116,1626,1627,1629,1631,1633,1635,1637,1639,1641],{"class":118,"line":209},[116,1628,156],{"class":155},[116,1630,159],{"class":122},[116,1632,1313],{"class":162},[116,1634,166],{"class":122},[116,1636,169],{"class":155},[116,1638,172],{"class":122},[116,1640,110],{"class":143},[116,1642,178],{"class":122},[116,1644,1645],{"class":118,"line":220},[116,1646,224],{"emptyLinePlaceholder":223},[116,1648,1649,1651,1654,1656,1658,1660,1662,1664,1666,1668,1670,1672],{"class":118,"line":227},[116,1650,723],{"class":130},[116,1652,1653],{"class":162}," rigidCubeRef ",[116,1655,137],{"class":122},[116,1657,1313],{"class":731},[116,1659,123],{"class":122},[116,1661,1370],{"class":1009},[116,1663,1373],{"class":122},[116,1665,1376],{"class":1009},[116,1667,1379],{"class":122},[116,1669,735],{"class":162},[116,1671,1384],{"class":122},[116,1673,741],{"class":162},[116,1675,1676],{"class":118,"line":237},[116,1677,224],{"emptyLinePlaceholder":223},[116,1679,1680,1682,1685,1687,1689,1691],{"class":118,"line":251},[116,1681,723],{"class":130},[116,1683,1684],{"class":162}," jumpCube ",[116,1686,137],{"class":122},[116,1688,1403],{"class":122},[116,1690,1016],{"class":130},[116,1692,1019],{"class":122},[116,1694,1695],{"class":118,"line":287},[116,1696,1698],{"class":1697},"sHwdD","  // The second argument, the boolean is waking our rigidBody\n",[116,1700,1701,1704,1706,1708,1710,1712,1714,1717,1719,1722,1725,1727,1730,1732,1735,1737,1740,1742,1745,1747,1749,1752,1756],{"class":118,"line":309},[116,1702,1703],{"class":162},"  rigidCubeRef",[116,1705,1028],{"class":122},[116,1707,1426],{"class":162},[116,1709,1028],{"class":122},[116,1711,1277],{"class":162},[116,1713,1028],{"class":122},[116,1715,1716],{"class":731},"applyImpulse",[116,1718,735],{"class":126},[116,1720,1721],{"class":122},"{",[116,1723,1724],{"class":126}," x",[116,1726,1006],{"class":122},[116,1728,1729],{"class":738}," 0",[116,1731,192],{"class":122},[116,1733,1734],{"class":126}," y",[116,1736,1006],{"class":122},[116,1738,1739],{"class":738}," 5",[116,1741,192],{"class":122},[116,1743,1744],{"class":126}," z",[116,1746,1006],{"class":122},[116,1748,1729],{"class":738},[116,1750,1751],{"class":122}," },",[116,1753,1755],{"class":1754},"sfNiH"," true",[116,1757,741],{"class":126},[116,1759,1760],{"class":118,"line":330},[116,1761,1054],{"class":122},[116,1763,1764,1766,1768],{"class":118,"line":94},[116,1765,212],{"class":122},[116,1767,127],{"class":126},[116,1769,217],{"class":122},[116,1771,1772],{"class":118,"line":95},[116,1773,224],{"emptyLinePlaceholder":223},[116,1775,1776,1778,1780],{"class":118,"line":96},[116,1777,123],{"class":122},[116,1779,232],{"class":126},[116,1781,217],{"class":122},[116,1783,1784,1786,1788,1790,1792,1794,1797,1799],{"class":118,"line":97},[116,1785,240],{"class":122},[116,1787,361],{"class":126},[116,1789,732],{"class":130},[116,1791,137],{"class":122},[116,1793,140],{"class":122},[116,1795,1796],{"class":143},"rigidCubeRef",[116,1798,140],{"class":122},[116,1800,217],{"class":122},[116,1802,1803,1805,1807,1809,1811,1813,1816,1818,1820,1822,1824,1827,1829],{"class":118,"line":98},[116,1804,254],{"class":122},[116,1806,395],{"class":126},[116,1808,260],{"class":130},[116,1810,137],{"class":122},[116,1812,140],{"class":122},[116,1814,1815],{"class":143},"[0, 5, 0]",[116,1817,140],{"class":122},[116,1819,1486],{"class":130},[116,1821,137],{"class":122},[116,1823,140],{"class":122},[116,1825,1826],{"class":143},"jumpCube",[116,1828,140],{"class":122},[116,1830,217],{"class":122},[116,1832,1833,1835,1837],{"class":118,"line":99},[116,1834,348],{"class":122},[116,1836,1206],{"class":126},[116,1838,284],{"class":122},[116,1840,1841,1843,1845],{"class":118,"line":100},[116,1842,348],{"class":122},[116,1844,427],{"class":126},[116,1846,284],{"class":122},[116,1848,1849,1851,1853],{"class":118,"line":101},[116,1850,590],{"class":122},[116,1852,395],{"class":126},[116,1854,217],{"class":122},[116,1856,1857,1859,1861],{"class":118,"line":102},[116,1858,600],{"class":122},[116,1860,361],{"class":126},[116,1862,217],{"class":122},[116,1864,1865,1867,1869],{"class":118,"line":103},[116,1866,212],{"class":122},[116,1868,232],{"class":126},[116,1870,217],{"class":122},[78,1872,1873],{},"Unless you want to achieve special effects, it is recommended to always set the wakeUp argument to true.",[1544,1875,1877],{"id":1876},"caveats","Caveats",[1879,1880,1881],"ul",{},[1882,1883,1884,1885,1888],"li",{},"Modifying the position/rotation property in a ",[113,1886,1887],{},"RigidBody instance"," in real-time causes teleport or \"jump\" weird behaviors, and is discouraged.",[1890,1891,1892],"style",{},"html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s7zQu, html code.shiki .s7zQu{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#89DDFF;--shiki-default-font-style:italic;--shiki-dark:#89DDFF;--shiki-dark-font-style:italic}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHdIc, html code.shiki .sHdIc{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#EEFFFF;--shiki-default-font-style:italic;--shiki-dark:#BABED8;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sfNiH, html code.shiki .sfNiH{--shiki-light:#FF5370;--shiki-default:#FF9CAC;--shiki-dark:#FF9CAC}",{"title":111,"searchDepth":119,"depth":152,"links":1894},[1895,1896,1897,1898,1899],{"id":643,"depth":93,"text":644},{"id":897,"depth":93,"text":898},{"id":1267,"depth":93,"text":1268},{"id":1546,"depth":152,"text":1547},{"id":1876,"depth":152,"text":1877},"Learn how to enable Physics in your TresJS scenes.","md",null,{},{"title":15,"description":1900},"Mw3FxtKbJlXRSPYgrNu7XQqCm1TRczIo5sgG1jg3R_8",[1907,1909],{"title":11,"path":12,"stem":13,"description":1908,"children":-1},"Learn how to add Rapier to your TresJS project.",{"title":19,"path":20,"stem":21,"description":1910,"children":-1},"Explanation of how the physic and 3D world merge.",1789116600793]