[name]

يمثل مربعًا محدودًا بمحاور (AABB) في الفضاء ثلاثي الأبعاد.

مثال الكود

const box = new THREE.Box3(); const mesh = new THREE.Mesh( new THREE.SphereGeometry(), new THREE.MeshBasicMaterial() ); // تأكد من حساب مربع التحديد لهندسته // يجب القيام بذلك مرة واحدة فقط (باستخدام هندسات ثابتة) mesh.geometry.computeBoundingBox(); // ... // في حلقة الرسوم المتحركة، احسب المربع الحالي مع المصفوفة العالمية box.copy( mesh.geometry.boundingBox ).applyMatrix4( mesh.matrixWorld );

المنشئ (Constructor)

[name]( [param:Vector3 min], [param:Vector3 max] )

[page:Vector3 min] - (اختياري) [page:Vector3] يمثل الحد السفلي (x، y، z) للمربع. الافتراضي هو (+ Infinity، + Infinity، + Infinity).
[page:Vector3 max] - (اختياري) [page:Vector3] يمثل الحد العلوي (x، y، z) للمربع. الافتراضي هو (- Infinity، - Infinity، - Infinity).

ينشئ [name] محدودًا بواسطة min و max.

الخصائص (Properties)

[property:Boolean isBox3]

علامة للقراءة فقط للتحقق مما إذا كان كائنًا معينًا من نوع [name].

[property:Vector3 min]

[page:Vector3] يمثل الحد السفلي (x، y، z) للمربع.
الافتراضي هو (+ Infinity، + Infinity، + Infinity).

[property:Vector3 max]

[page:Vector3] يمثل الحد العلوي (x، y، z) للمربع.
الافتراضي هو (- Infinity، - Infinity، - Infinity).

الطرق (Methods)

[method:this applyMatrix4]( [param:Matrix4 matrix] )

[page:Matrix4 matrix] - [page:Matrix4] للتطبيق

يحول هذا Box3 مع المصفوفة الموردة.

[method:Vector3 clampPoint]( [param:Vector3 point], [param:Vector3 target] )

[page:Vector3 point] - [page:Vector3] للتثبيت.
[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.

[link:https://en.wikipedia.org/wiki/Clamping_(graphics) يثبت] [page:Vector3 point] داخل حدود هذا المربع.

[method:Box3 clone]()

يعود بـ [page:Box3] جديد مع نفس [page:.min min] و [page:.max max] كهذا المربع.

[method:Boolean containsBox]( [param:Box3 box] )

[page:Box3 box] - [page:Box3 Box3] للاختبار للتضمين.

يعود بـ true إذا كان هذا المربع يشمل كامل [page:Box3 box]. إذا كان هذا و [page:Box3 box] متطابقان،
فإن هذه الوظيفة تعود أيضًا بـ true.

[method:Boolean containsPoint]( [param:Vector3 point] )

[page:Vector3 point] - [page:Vector3] للاختبار للتضمين.

يعود بـ true إذا كانت [page:Vector3 point] المحددة تقع داخل أو على حدود هذا المربع.

[method:this copy]( [param:Box3 box] )

[page:Box3 box] - [page:Box3] للنسخ.

ينسخ [page:.min min] و [page:.max max] من [page:Box3 box] إلى هذا المربع.

[method:Float distanceToPoint]( [param:Vector3 point] )

[page:Vector3 point] - [page:Vector3] لقياس المسافة إليها.

يعود بالمسافة من أي حافة لهذا المربع إلى النقطة المحددة. إذا كانت [page:Vector3 point] داخل هذا المربع، فستكون المسافة 0.

[method:Boolean equals]( [param:Box3 box] )

[page:Box3 box] - مربع للمقارنة مع هذا المربع.

يعود بـ true إذا كان هذا المربع و [page:Box3 box] يشتركان في نفس الحدود السفلى والعليا.

[method:this expandByObject]( [param:Object3D object], [param:Boolean precise] )

[page:Object3D object] - [page:Object3D] لتوسيع المربع به.
precise - (اختياري) توسيع مربع التحديد بأقل ما يمكن على حساب المزيد من الحسابات. الافتراضي هو false.

يوسع حدود هذا المربع لتضمين [page:Object3D object] وأطفاله، مع مراعاة تحولات الكائن والأطفال العالمية. قد يؤدي التابع إلى مربع أكبر من اللازم بشكل صارم (ما لم يتم تحديد معلمة precise على true).

[method:this expandByPoint]( [param:Vector3 point] )

[page:Vector3 point] - [page:Vector3] التي يجب تضمينها في المربع.

يوسع حدود هذا المربع لتضمين [page:Vector3 point].

[method:this expandByScalar]( [param:Float scalar] )

[page:Float scalar] - المسافة التي يتم توسيع المربع بها.

يوسع كل بُعد من أبعاد المربع بواسطة [page:Float scalar]. إذا كانت سالبة، فستتقلص أبعاد المربع.

[method:this expandByVector]( [param:Vector3 vector] )

[page:Vector3 vector] - [page:Vector3] لتوسيع المربع به.

يوسع هذا المربع بشكل متساوٍ بواسطة [page:Vector3 vector]. سيتم توسيع عرض هذا المربع بمكون x من [page:Vector3 vector] في كلا الاتجاهين. ستتم توسيع ارتفاع هذا المربع بمكون y من [page:Vector3 vector] في كلا الاتجاهين. ستتم توسيع عمق هذا المربع بمكون z من `vector` في كلا الاتجاهين.

[method:Sphere getBoundingSphere]( [param:Sphere target] )

[page:Sphere target] — سيتم نسخ النتيجة في هذا الكرة.

يحصل على [page:Sphere] يحد المربع.

[method:Vector3 getCenter]( [param:Vector3 target] )

[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.

يعود بنقطة المركز للمربع كـ [page:Vector3].

[method:Vector3 getParameter]( [param:Vector3 point], [param:Vector3 target] )

[page:Vector3 point] - [page:Vector3].
[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.

يعود بنقطة كنسبة من عرض وارتفاع وعمق هذا المربع.

[method:Vector3 getSize]( [param:Vector3 target] )

[page:Vector3 target] — سيتم نسخ النتيجة في هذا Vector3.

يعود بعرض وارتفاع وعمق هذا المربع.

[method:this intersect]( [param:Box3 box] )

[page:Box3 box] - مربع للتقاطع معه.

يحسب تقاطع هذا و [page:Box3 box]، وضع الحد الأقصى لهذا المربع على أقل حدود علوية للمربعين والحد الأدنى لهذا المربع على أكبر حدود سفلى للمربعين. إذا لم يكن هناك تداخل، يجعل هذا المربع فارغًا.

[method:Boolean intersectsBox]( [param:Box3 box] )

[page:Box3 box] - مربع للتحقق من التقاطع ضده.

يحدد ما إذا كان هذا المربع يتقاطع مع [page:Box3 box] أم لا.

[method:Boolean intersectsPlane]( [param:Plane plane] )

[page:Plane plane] - [page:Plane] للتحقق من التقاطع ضده.

يحدد ما إذا كان هذا المربع يتقاطع مع [page:Plane plane] أم لا.

[method:Boolean intersectsSphere]( [param:Sphere sphere] )

[page:Sphere sphere] - [page:Sphere] للتحقق من التقاطع ضده.

يحدد ما إذا كان هذا المربع يتقاطع مع [page:Sphere sphere] أم لا.

[method:Boolean intersectsTriangle]( [param:Triangle triangle] )

[page:Triangle triangle] - [page:Triangle] للتحقق من التقاطع ضده.

يحدد ما إذا كان هذا المربع يتقاطع مع [page:Triangle triangle] أم لا.

[method:Boolean isEmpty]()

يعود بـ true إذا كان هذا المربع يشمل صفر نقطة داخل حدوده.
يرجى ملاحظة أن المربع الذي يحتوي على حدود سفلى وعلوية متساوية لا يزال يشمل نقطة واحدة، وهي النقطة التي تشترك فيها كلا الحدود.

[method:this makeEmpty]()

يجعل هذا المربع فارغًا.

[method:this set]( [param:Vector3 min], [param:Vector3 max] )

[page:Vector3 min] - [page:Vector3] يمثل الحد السفلي (x، y، z) للمربع.
[page:Vector3 max] - [page:Vector3] يمثل الحد العلوي (x، y، z) للمربع.

يضع الحدود السفلى والعلوية (x، y، z) لهذا المربع.
يرجى ملاحظة أن هذه الطريقة تنسخ فقط القيم من الكائنات المحددة.

[method:this setFromArray]( [param:Array array] )

array -- مجموعة من بيانات الموضع التي سيغلفها المربع الناتج.

يضع الحدود العلوية والسفلى لهذا المربع لتشمل كل البيانات في `array`.

[method:this setFromBufferAttribute]( [param:BufferAttribute attribute] )

[page:BufferAttribute attribute] - سمة مخزنة لبيانات الموضع التي سيغلفها المربع الناتج.

يضع الحدود العلوية والسفلى لهذا المربع لتشمل كل البيانات في [page:BufferAttribute attribute].

[method:this setFromCenterAndSize]( [param:Vector3 center], [param:Vector3 size] )

[page:Vector3 center], - الموضع المركزي المطلوب للمربع.
[page:Vector3 size] - الأبعاد المطلوبة x و y و z للمربع.

يضع هذا المربع في مركز [page:Vector3 center] ويضع عرض وارتفاع وعمق هذا المربع على القيم المحددة
في [page:Vector3 size]

[method:this setFromObject]( [param:Object3D object], [param:Boolean precise] )

[page:Object3D object] - [page:Object3D] لحساب مربع التحديد الخاص به.
precise - (اختياري) حساب أصغر مربع تحديد محدود بمحاور العالم على حساب المزيد من الحسابات. الافتراضي هو false.

يحسب مربع التحديد المحدود بمحاور العالم لـ [page:Object3D] (بما في ذلك أطفاله)، مع مراعاة تحولات الكائن والأطفال العالمية. قد يؤدي التابع إلى مربع أكبر من اللازم بشكل صارم.

[method:this setFromPoints]( [param:Array points] )

[page:Array points] - مجموعة من [page:Vector3 Vector3s] التي سيحتوي عليها المربع الناتج.

يضع الحدود العلوية والسفلى لهذا المربع لتشمل كل النقاط في [page:Array points].

[method:this translate]( [param:Vector3 offset] )

[page:Vector3 offset] - اتجاه ومسافة التحويل.

يضيف [page:Vector3 offset] إلى كلا من الحدود العلوية والسفلى لهذا المربع، بشكل فعال ينقل هذا المربع [page:Vector3 offset] وحدات في الفضاء ثلاثي الأبعاد.

[method:this union]( [param:Box3 box] )

[page:Box3 box] - مربع سيتم دمجه مع هذا المربع.

يحسب اتحاد هذا المربع و [page:Box3 box]، وضع الحد الأقصى لهذا المربع على أكبر حدود علوية للمربعين والحد الأدنى لهذا المربع على أقل حدود سفلى للمربعين.

المصدر (Source)

[link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]