Box3.html 11 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. <!DOCTYPE html>
  2. <html lang="it">
  3. <head>
  4. <meta charset="utf-8" />
  5. <base href="../../../" />
  6. <script src="page.js"></script>
  7. <link type="text/css" rel="stylesheet" href="page.css" />
  8. </head>
  9. <body>
  10. <h1>[name]</h1>
  11. <p class="desc">
  12. Rappresenta un bounding box (rettangolo di selezione) allineato all'asse (AABB) nello spazio 3D.
  13. </p>
  14. <h2>Codice di Esempio</h2>
  15. <code>
  16. const box = new THREE.Box3();
  17. const mesh = new THREE.Mesh(
  18. new THREE.SphereGeometry(),
  19. new THREE.MeshBasicMaterial()
  20. );
  21. // assicurarsi che il bounding box sia calcolato per la sua geometria
  22. // questo dovrebbe essere fatto una sola volta (supponendo geometrie statiche)
  23. mesh.geometry.computeBoundingBox();
  24. // ...
  25. // nel ciclo di animazione, calcola il bounding box corrente con la matrice world
  26. box.copy( mesh.geometry.boundingBox ).applyMatrix4( mesh.matrixWorld );
  27. </code>
  28. <h2>Costruttore</h2>
  29. <h3>[name]( [param:Vector3 min], [param:Vector3 max] )</h3>
  30. <p>
  31. [page:Vector3 min] - (opzionale) [page:Vector3] che rappresenta il limite inferiore (x, y, z) del box.
  32. Il valore predefinito è ( + Infinito, + Infinito, + Infinito ).<br>
  33. [page:Vector3 max] - (opzionale) [page:Vector3] che rappresenta il limite superiore (x, y, z) del box.
  34. Il valore predefinito è ( - Infinito, - Infinito, - Infinito ).<br /><br />
  35. Crea un [name] delimitato da min e max.
  36. </p>
  37. <h2>Proprietà</h2>
  38. <h3>[property:Boolean isBox3]</h3>
  39. <p>
  40. Flag di sola lettura per verificare se l'oggetto dato è di tipo [name].
  41. </p>
  42. <h3>[property:Vector3 min]</h3>
  43. <p>
  44. [page:Vector3] rappresenta il limite inferiore (x, y, z) del box.<br />
  45. Il valore predefinito è ( + Infinito, + Infinito, + Infinito ).
  46. </p>
  47. <h3>[property:Vector3 max]</h3>
  48. <p>
  49. [page:Vector3] che rappresenta il limite superiore (x, y, z) del box.<br />
  50. Il valore predefinito è ( - Infinito, - Infinito, - Infinito ).
  51. </p>
  52. <h2>Metodi</h2>
  53. <h3>[method:this applyMatrix4]( [param:Matrix4 matrix] )</h3>
  54. <p>
  55. [page:Matrix4 matrix] - La [page:Matrix4] da applicare<br /><br />
  56. Trasforma questo Box3 con la matrice fornita.
  57. </p>
  58. <h3>[method:Vector3 clampPoint]( [param:Vector3 point], [param:Vector3 target] )</h3>
  59. <p>
  60. [page:Vector3 point] - [page:Vector3] da bloccare. <br>
  61. [page:Vector3 target] - il risultato sarà copiato in questo Vector3.<br /><br />
  62. [link:https://en.wikipedia.org/wiki/Clamping_(graphics) Blocca] il [page:Vector3 punto] entro i limiti di questo box.<br />
  63. </p>
  64. <h3>[method:Box3 clone]()</h3>
  65. <p>Restituisce un nuovo [page:Box3] con lo stesso [page:.min min] e [page:.max max] di questo.</p>
  66. <h3>[method:Boolean containsBox]( [param:Box3 box] )</h3>
  67. <p>
  68. [page:Box3 box] - [page:Box3 Box3] per testare l'inclusione.<br /><br />
  69. Restituisce true se questo box include la totalità del [page:Box3 box]. Se questo e il [page:Box3 box] sono identici,
  70. questa fuonzione tornerà comunque true.
  71. </p>
  72. <h3>[method:Boolean containsPoint]( [param:Vector3 point] )</h3>
  73. <p>
  74. [page:Vector3 point] - [page:Vector3] per verificare l'inclusione.<br /><br />
  75. Restituisce true se il [page:Vector3 punto] specificato si trova all'interno o sui limiti di questo box.
  76. </p>
  77. <h3>[method:this copy]( [param:Box3 box] )</h3>
  78. <p>
  79. [page:Box3 box] - [page:Box3] da copiare.<br /><br />
  80. Copia il [page:.min min] e il [page:.max max] da [page:Box3 box] a questo box.
  81. </p>
  82. <h3>[method:Float distanceToPoint]( [param:Vector3 point] )</h3>
  83. <p>
  84. [page:Vector3 point] - [page:Vector3] per misurare la distanza.<br /><br />
  85. Restituisce la distanza da qualsiasi arco di questo box al punto specificato.
  86. Se il [page:Vector3 punto] si trova all'interno di questo box, la distanza sarà 0.
  87. </p>
  88. <h3>[method:Boolean equals]( [param:Box3 box] )</h3>
  89. <p>
  90. [page:Box3 box] - Box da confrontare con questo.<br /><br />
  91. Restituisce true se questo box e il [page:Box3 box] condividono gli stessi limiti inferiore e superiore.
  92. </p>
  93. <h3>[method:this expandByObject]( [param:Object3D object], [param:Boolean precise] )</h3>
  94. <p>
  95. [page:Object3D object] - [page:Object3D] per espandere il box.<br />
  96. precise - (opzionale) espande il bounding box il meno possibile a scapito di ulteriori calcoli. L'impostazione predefinita è `false`.<br /><br />
  97. Espande i limiti di questo box per includere l'[page:Object3D oggetto] e i suoi figli,
  98. tenendo conto delle trasformazioni del mondo dell'oggetto e dei figli.
  99. La funzione può risultare in un box più grande del necessario (a meno che il parametro non sia impostato su true).
  100. </p>
  101. <h3>[method:this expandByPoint]( [param:Vector3 point] )</h3>
  102. <p>
  103. [page:Vector3 point] - [page:Vector3] che dovrebbe essere incluso nel box.<br /><br />
  104. Espande i limiti di questo box in modo da includere il [page:Vector3 punto].
  105. </p>
  106. <h3>[method:this expandByScalar]( [param:Float scalar] )</h3>
  107. <p>
  108. [page:Float scalar] - Distanza di cui espandere il box.<br /><br />
  109. Espande ogni dimensione del box per lo [page:Float scalare]. Se negativo, le dimensioni del box saranno contratte.
  110. </p>
  111. <h3>[method:this expandByVector]( [param:Vector3 vector] )</h3>
  112. <p>
  113. [page:Vector3 vector] - [page:Vector3] per il quale espandere il box.<br /><br />
  114. Espande questo box in modo equilatero per [page:Vector3 vettore]. La larghezza di questo box sarà estesa
  115. dal componente x del [page:Vector3 vettore] in entrambe le direzioni. L'altezza di questo box
  116. sarà estesa dal componente y del [page:Vector3 vettore] in entrambe le direzioni.
  117. La profondità di questo box sarà estesa dal componente z del [page:Vector3 vettore] in entrambe le direzioni.
  118. </p>
  119. <h3>[method:Sphere getBoundingSphere]( [param:Sphere target] )</h3>
  120. <p>
  121. [page:Sphere target] - il risultato sarà copiato in questa sfera.<br /><br />
  122. Ottiene una [page:Sphere Sfera] che delimita il box.
  123. </p>
  124. <h3>[method:Vector3 getCenter]( [param:Vector3 target] )</h3>
  125. <p>
  126. [page:Vector3 target] - il risultato sarà copiato in questo Vector3.<br /><br />
  127. Restituisce il punto centrale del box come un [page:Vector3].
  128. </p>
  129. <h3>[method:Vector3 getParameter]( [param:Vector3 point], [param:Vector3 target] ) </h3>
  130. <p>
  131. [page:Vector3 point] - [page:Vector3].<br/>
  132. [page:Vector3 target] - il risultato sarà copiato in questo Vector3.<br /><br />
  133. Restituisce un punto come proporzione della larghezza, dell'altezza e della profondità di questo box.
  134. </p>
  135. <h3>[method:Vector3 getSize]( [param:Vector3 target] )</h3>
  136. <p>
  137. [page:Vector3 target] - il risultato sarà copiato in questo Vector3.<br /><br />
  138. Restituisce la larghezza, l'altezza e la profondità di questo box.
  139. </p>
  140. <h3>[method:this intersect]( [param:Box3 box] )</h3>
  141. <p>
  142. [page:Box3 box] - Box con cui intersecare.<br /><br />
  143. Restituisce l'intersezione di questo box e [page:Box3 box], impostando il limite superiore di questo box al minore
  144. dei limiti superiori dei due box e il limite inferiore di questo box al maggiore dei limiti inferiori dei due box.
  145. Se non ci sono sovrapposizioni, rende il box vuoto.
  146. </p>
  147. <h3>[method:Boolean intersectsBox]( [param:Box3 box] )</h3>
  148. <p>
  149. [page:Box3 box] - Box per il controllo dell'intersezione.<br /><br />
  150. Determina se questo box interseca [page:Box3 box] oppure no.
  151. </p>
  152. <h3>[method:Boolean intersectsPlane]( [param:Plane plane] )</h3>
  153. <p>
  154. [page:Plane plane] - [page:Plane] per il controllo dell'intersezione.<br /><br />
  155. Determina se questo box interseca il [page:Plane plane] oppure no.
  156. </p>
  157. <h3>[method:Boolean intersectsSphere]( [param:Sphere sphere] )</h3>
  158. <p>
  159. [page:Sphere sphere] - [page:Sphere] per il controllo dell'intersezione.<br /><br />
  160. Determina se questo box interseca la [page:Sphere sphere] oppure no.
  161. </p>
  162. <h3>[method:Boolean intersectsTriangle]( [param:Triangle triangle] )</h3>
  163. <p>
  164. [page:Triangle triangle] - [page:Triangle] per il controllo dell'intersezione.<br /><br />
  165. Determina se questo box interseca il [page:Triangle triangle] oppure no.
  166. </p>
  167. <h3>[method:Boolean isEmpty]()</h3>
  168. <p>
  169. Restituisce true se questo box include zero punti entro i suoi limiti.<br>
  170. Si noti che un box con i limiti superiore e inferiore uguali include ancora un punto,
  171. quello condiviso da entrambi i limiti.
  172. </p>
  173. <h3>[method:this makeEmpty]()</h3>
  174. <p>Rende questo box vuoto.</p>
  175. <h3>[method:this set]( [param:Vector3 min], [param:Vector3 max] )</h3>
  176. <p>
  177. [page:Vector3 min] - [page:Vector3] rappresenta il limite inferiore (x, y, z) del box.<br />
  178. [page:Vector3 max] - [page:Vector3] rappresenta il limite superiore (x, y, z) del box.<br /><br />
  179. Imposta i limiti inferiore e superiore (x, y, z) di questo box.<br>
  180. Si noti che questo metodo copia solo i valori dagli oggetti dati.
  181. </p>
  182. <h3>[method:this setFromArray]( [param:Array array] )</h3>
  183. <p>
  184. array -- Un array di dati di posizione che il box risultante avvolgerà.<br /><br />
  185. Imposta i limiti inferiore e superiore di questo box per includere tutti i dati nell'`array`.
  186. </p>
  187. <h3>[method:this setFromBufferAttribute]( [param:BufferAttribute attribute] )</h3>
  188. <p>
  189. [page:BufferAttribute attribute] - Un attributo buffer di dati di posizione che il box risultante avvolgerà.<br /><br />
  190. Imposta i limiti inferiore e superiore di questo box per includere tutti i dati nell'[page:BufferAttribute attribute].
  191. </p>
  192. <h3>[method:this setFromCenterAndSize]( [param:Vector3 center], [param:Vector3 size] )</h3>
  193. <p>
  194. [page:Vector3 center] - Posizione centrale desiderata del box.<br>
  195. [page:Vector3 size] - Dimensioni x, y e z desiderati per il box.<br /><br />
  196. Centra questo box nel [page:Vector3 centro] e imposta la larghezza e l'altezza di questo box ai valori
  197. specificati in [page:Vector3 size].
  198. </p>
  199. <h3>[method:this setFromObject]( [param:Object3D object], [param:Boolean precise] )</h3>
  200. <p>
  201. [page:Object3D object] - [page:Object3D] di cui calcolare il bounding box.<br />
  202. precise - (opzionale) calcola il più piccolo bounding box all'asse world a scapito di più calcoli. L'impostazione predefinita è `false`.<br /><br />
  203. Calcola il bounding box allineato all'asse world di un [page:Object3D] (inclusi i suoi figli),
  204. tenendo conto delle trasformazioni del mondo dell'oggetto e dei bambini. La funzione
  205. può comportare un box più grande del necessario.
  206. </p>
  207. <h3>[method:this setFromPoints]( [param:Array points] )</h3>
  208. <p>
  209. [page:Array points] - Array di [page:Vector3 Vector3] che conterrà il box risultante.<br /><br />
  210. Imposta i limiti inferiore e superiore di questo box per includere tutti i punti in [page:Array points].
  211. </p>
  212. <h3>[method:this translate]( [param:Vector3 offset] )</h3>
  213. <p>
  214. [page:Vector3 offset] - Direzione e distanza dell'offset.<br /><br />
  215. Aggiunge l'[page:Vector3 offset] ad entrambi i limiti inferiore e superiore di questo box, spostando efficacemente
  216. le unità di page:Vector3 offset] di questo box nello spazio 3D.
  217. </p>
  218. <h3>[method:this union]( [param:Box3 box] )</h3>
  219. <p>
  220. [page:Box3 box] - Box che verrà unito con questo box.<br /><br />
  221. Calcola l'unione di questo box con [page:Box3 box], impostando il limite superiore di questo box al maggiore dei limiti superiori
  222. di entrambi i box e il limite inferiore di questo box al minore dei limiti inferiori di entrambi i box.
  223. </p>
  224. <h2>Source</h2>
  225. <p>
  226. [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
  227. </p>
  228. </body>
  229. </html>