Bitbybit Docs
    Preparing search index...

    Class BabylonMesh

    العمل مع الشبكات الموجودة بالفعل في مشهد BabylonJS، وهي الكائنات التي يعيدها draw.drawAnyAsync: نقلها وتدويرها وتحجيمها، وإظهارها وإخفاؤها، وربطها بأصل، وأعلام الالتقاط والتصادم، والأسماء والمعرّفات، والنسخ وإنشاء النسخ الفورية للحصول على نسخ كثيرة، وقراءة مثلثاتها. تُعطى التدويرات بالدرجات؛ والمواضع والمسافات بوحدات المشهد.

    Index

    Constructors

    edit

    • يدمج عدة شبكات في شبكة جديدة واحدة، تُرسم أسرع من شبكات منفصلة كثيرة.

      تُزال المصادر عندما يكون disposeSource صحيحًا؛ اضبط allow32BitsIndices عندما يكون مجموع رؤوس الشبكات أكثر من 65 ألفًا، واستخدم خيارات الشبكة الفرعية للاحتفاظ بمواد منفصلة.

      Parameters

      Returns Mesh

      الشبكة المدمجة

      const merged = bitbybit.babylon.mesh.mergeMeshes({ arrayOfMeshes: [meshA, meshB], disposeSource: true, allow32BitsIndices: true, subdivideWithSubMeshes: false, multiMultiMaterials: false });
      
    • يعطي كل مثلث في الشبكة رؤوسه ونواظمه الخاصة، فتظهر الأوجه كسطوح مستوية بدلًا من تنعيمها عبر الحواف؛ تُغيَّر الشبكة في مكانها وتُعاد.

      Parameters

      Returns Mesh

      الشبكة نفسها بتظليل مسطح

      const faceted = bitbybit.babylon.mesh.convertToFlatShadedMesh({ babylonMesh: mesh });
      
    • ينشئ نسخة من شبكة، مع فروعها، تتشارك هندسة الأصل وتوضع في الموضع نفسه؛ تلقي النسخة الظلال وتستقبلها كما الأصل.

      Parameters

      Returns Mesh

      النسخة

      const copy = bitbybit.babylon.mesh.clone({ babylonMesh: mesh });
      bitbybit.babylon.mesh.setPosition({ babylonMesh: copy, position: [10, 0, 0] });
    • ينشئ نسخة واحدة من شبكة عند كل موضع معطى، بالترتيب نفسه؛ تتشارك النسخ هندسة الأصل.

      Parameters

      Returns Mesh[]

      نسخة واحدة لكل موضع

      const copies = bitbybit.babylon.mesh.cloneToPositions({ babylonMesh: mesh, positions: [[0, 0, 0], [10, 0, 0], [20, 0, 0]] });
      

    get

    • يقرأ العقدة التي تتبعها الشبكة، وهي ما تتحرك معه؛ الشبكة في المستوى الأعلى ليس لها أصل.

      Parameters

      Returns Node

      العقدة الأصل

    • يقرأ ما إذا كانت الشبكة تشارك في فحص التصادم.

      Parameters

      Returns boolean

      true عندما تُفحص التصادمات مع الشبكة

    • يضبط ما إذا كانت الشبكة تستجيب لالتقاط المؤشر، وفروعها أيضًا عندما يكون includeChildren صحيحًا؛ الشبكة غير القابلة للالتقاط تتخطاها النقرات والأشعة التي تلتقط.

      Parameters

      • inputs: PickableBabylonMeshDto

        الشبكة والعلم وما إذا كانت العناصر الفرعية تتبعها

      Returns void

      bitbybit.babylon.mesh.setPickable({ babylonMesh: mesh, pickable: true, includeChildren: true });
      
    • يقرأ ما إذا كان يمكن التقاط الشبكة بالمؤشر.

      Parameters

      Returns boolean

      true عندما تستجيب الشبكة للالتقاط

    • يعثر على كل شبكة في المشهد يحتوي اسمها على النص المعطى، مع مراعاة حالة الأحرف، بترتيب المشهد.

      Parameters

      Returns AbstractMesh[]

      الشبكات المطابقة

      const wheels = bitbybit.babylon.mesh.getMeshesWhereNameContains({ name: "wheel" });
      
    • يسرد الشبكات التابعة لشبكة: كل الفروع، أو الفروع المباشرة فقط عندما يكون directDescendantsOnly صحيحًا.

      Parameters

      • inputs: ChildMeshesBabylonMeshDto

        الشبكة وما إذا كان يتوقف عند العناصر الفرعية المباشرة

      Returns AbstractMesh[]

      الشبكات الفرعية

      const parts = bitbybit.babylon.mesh.getChildMeshes({ babylonMesh: model, directDescendantsOnly: false });
      
    • يعثر على كل شبكة في المشهد لها المعرّف المعطى بالضبط؛ لا يلزم أن تكون المعرّفات فريدة، لذلك قد تتطابق عدة شبكات.

      Parameters

      Returns AbstractMesh[]

      الشبكات التي تحمل ذلك المعرّف

      const meshes = bitbybit.babylon.mesh.getMeshesOfId({ id: "wheel" });
      
    • يعثر على أول شبكة في المشهد لها المعرّف المعطى بالضبط؛ استخدم getMeshesOfId عندما تتشاركه عدة شبكات.

      Parameters

      Returns AbstractMesh

      أول شبكة تحمل ذلك المعرّف

      const mesh = bitbybit.babylon.mesh.getMeshOfId({ id: "wheel" });
      
    • يعثر على الشبكة ذات المعرّف الفريد المعطى، وهو الرقم الذي يعيّنه المشهد لكل شبكة مرة واحدة، كما يقرؤه getUniqueId.

      Parameters

      Returns AbstractMesh

      الشبكة التي تحمل ذلك المعرّف الفريد

      const id = bitbybit.babylon.mesh.getUniqueId({ babylonMesh: mesh });
      const same = bitbybit.babylon.mesh.getMeshOfUniqueId({ uniqueId: id });
    • يقرأ معرّف الشبكة، وهو التسمية التي ضبطها setId أو المحمّل الذي أنشأها.

      Parameters

      Returns string

      المعرّف

    • يقرأ المعرّف الفريد للشبكة، وهو الرقم الذي يعطيه المشهد لكل شبكة مرة واحدة ولا يعيد استخدامه أبدًا.

      Parameters

      Returns number

      رقم المعرّف الفريد

    • يقرأ مثلثات الشبكة كقوائم من ثلاث نقاط بإحداثيات الشبكة نفسها، وهو الشكل الذي يأخذه jscad.shapes.fromPolygonPoints والبناة المشابهون. يجب أن تكون الشبكة مكوّنة من مثلثات.

      Parameters

      Returns Point3[][]

      المثلثات كقوائم من ثلاث نقاط

      const triangles = bitbybit.babylon.mesh.getVerticesAsPolygonPoints({ babylonMesh: mesh });
      
    • يقرأ اسم الشبكة، كما ضبطه setName أو ما أنشأها.

      Parameters

      Returns string

      الاسم

    • يقرأ مادة الشبكة، وهي وصف السطح الذي تُرسم به أوجهها.

      Parameters

      Returns Material

      المادة

    • يقرأ موضع الشبكة نسبيًا إلى أصلها، كنقطة.

      Parameters

      Returns Point3

      الموضع كنقطة

    • يقرأ موضع الشبكة بإحداثيات العالم، مع تطبيق تحويل كل أصل.

      Parameters

      Returns Point3

      الموضع العالمي كنقطة

    • يقرأ تدوير الشبكة حول X وY وZ، بالراديان، كما تحتفظ به خاصية التدوير الخاصة بها.

      Parameters

      Returns Point3

      زوايا التدوير بالراديان

    • يقرأ عوامل تحجيم الشبكة على طول X وY وZ؛ القيمة 1 تعني عدم التحجيم.

      Parameters

      Returns Point3

      معاملات التحجيم

    instance

    • ينشئ نسخة مثيلة موضوعة من شبكة، كما يفعل createMeshInstanceAndTransform، من دون إعادتها؛ للسكربتات التي تحتاج فقط إلى ظهور النسخة.

      Parameters

      Returns void

      bitbybit.babylon.mesh.createMeshInstanceAndTransformNoReturn({ mesh, position: [10, 0, 0], rotation: [0, 45, 0], scaling: [1, 1, 1] });
      
    • ينشئ نسخة مثيلة من شبكة، وهي نسخة خفيفة تتشارك هندستها وتُرسم بكلفة منخفضة، ويضعها عند الموضع المعطى والتدوير بالدرجات والتحجيم.

      الشبكة ذات الفروع تحصل على نسخة مثيلة واحدة لكل فرع، تُجمع تحت حاوية جديدة؛ ويُخفى الأصل.

      Parameters

      Returns Mesh

      الحاوية التي تحمل النسخ

      const instance = bitbybit.babylon.mesh.createMeshInstanceAndTransform({ mesh, position: [10, 0, 0], rotation: [0, 45, 0], scaling: [1, 1, 1] });
      
    • ينشئ نسخة مثيلة من شبكة، وهي نسخة خفيفة تتشارك هندستها وتُرسم بكلفة منخفضة عندما تلزم نسخ متشابهة كثيرة، موضوعة حيث يوجد الأصل.

      الشبكة ذات الفروع تحصل على نسخة مثيلة واحدة لكل فرع، تُجمع تحت حاوية جديدة.

      Parameters

      Returns Mesh

      النسخة، أو الحاوية التي تحمل النسخ الفرعية

      const instance = bitbybit.babylon.mesh.createMeshInstance({ mesh });
      bitbybit.babylon.mesh.setPosition({ babylonMesh: instance, position: [10, 0, 0] });

    intersects

    • يخبر ما إذا كانت شبكتان تتداخلان، بالحكم على صناديقهما المحيطة: صناديق محاذية للمحاور افتراضيًا، أو صناديق تتبع تدوير كل شبكة عندما يكون precise صحيحًا؛ includeDescendants يختبر فروعهما أيضًا.

      Parameters

      Returns boolean

      true عندما تتداخل الشبكتان

      const touching = bitbybit.babylon.mesh.intersectsMesh({ babylonMesh: meshA, babylonMesh2: meshB, precise: true, includeDescendants: false });
      
    • يخبر ما إذا كانت نقطة تقع داخل الصندوق المحيط لشبكة.

      Parameters

      Returns boolean

      true عندما تكون النقطة داخل حدود الشبكة

      const inside = bitbybit.babylon.mesh.intersectsPoint({ babylonMesh: mesh, point: [0, 1, 0] });
      

    memory

    • يزيل شبكة من المشهد ويحرر موارد وحدة معالجة الرسوميات الخاصة بها؛ لا يمكن استخدام الشبكة بعد ذلك. لا يحدث شيء عندما لا تُعطى أي شبكة.

      Parameters

      Returns void

      bitbybit.babylon.mesh.dispose({ babylonMesh: mesh });
      

    move

    • ينقل الشبكة على طول اتجاهها الأمامي الخاص، وهو المحور Z المحلي، بمقدار distance من وحدات المشهد؛ الشبكة المُدارة تتحرك في الاتجاه الذي تواجهه.

      Parameters

      Returns void

      bitbybit.babylon.mesh.moveForward({ babylonMesh: mesh, distance: 5 });
      
    • ينقل الشبكة عكس اتجاهها الأمامي الخاص، وهو المحور Z المحلي، بمقدار distance من وحدات المشهد.

      Parameters

      Returns void

    • ينقل الشبكة على طول اتجاهها العلوي الخاص، وهو المحور Y المحلي، بمقدار distance من وحدات المشهد.

      Parameters

      Returns void

    • ينقل الشبكة عكس اتجاهها العلوي الخاص، وهو المحور Y المحلي، بمقدار distance من وحدات المشهد.

      Parameters

      Returns void

    • ينقل الشبكة على طول اتجاهها الأيمن الخاص، وهو المحور X المحلي، بمقدار distance من وحدات المشهد.

      Parameters

      Returns void

    • ينقل الشبكة عكس اتجاهها الأيمن الخاص، وهو المحور X المحلي، بمقدار distance من وحدات المشهد.

      Parameters

      Returns void

    • يدير الشبكة حول محورها Y الخاص بمقدار rotate درجة، فوق تدويرها الحالي، كما تنعطف السيارة يمينًا أو يسارًا.

      Parameters

      Returns void

      bitbybit.babylon.mesh.yaw({ babylonMesh: mesh, rotate: 45 });
      
    • يدير الشبكة حول محورها X الخاص بمقدار rotate درجة، فوق تدويرها الحالي، كما يميل مقدم الطائرة إلى الأعلى أو الأسفل.

      Parameters

      Returns void

    • يدير الشبكة حول محورها Z الخاص بمقدار rotate درجة، فوق تدويرها الحالي، كما يميل جناح الطائرة.

      Parameters

      Returns void

    • يدير الشبكة بمقدار angle درجة حول محور يمر بـ position، فتدور الشبكة حول تلك النقطة بدلًا من الدوران في مكانها.

      Parameters

      Returns void

      bitbybit.babylon.mesh.rotateAroundAxisWithPosition({ mesh, position: [0, 0, 0], axis: [0, 1, 0], angle: 90 });
      

    set

    • يجعل شبكة تابعة لأخرى، فتتحرك وتدور وتتحجّم مع أصلها من ذلك الحين؛ يصبح موضعها نسبيًا إلى الأصل.

      Parameters

      • inputs: SetParentDto

        الشبكة والشبكة التي ستصبح أصلا لها

      Returns void

      bitbybit.babylon.mesh.setParent({ babylonMesh: wheel, parentMesh: car });
      
    • يشغّل فحص التصادم أو يوقفه لشبكة، ولفروعها عندما يكون includeChildren صحيحًا، بحيث لا تستطيع كاميرا أو جسم متصادم آخر مفعّل التصادمات المرور عبرها.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setCheckCollisions({ babylonMesh: walls, checkCollisions: true, includeChildren: true });
      
    • يسمح لشبكة، ولفروعها عندما يكون includeChildren صحيحًا، بالاستجابة لمجرد مرور المؤشر فوقها، وهو معطّل افتراضيًا لأنه يكلّف التقاطًا عند كل حركة للمؤشر.

      Parameters

      Returns void

      bitbybit.babylon.mesh.enablePointerMoveEvents({ babylonMesh: mesh, includeChildren: true });
      
    • يوقف شبكة، وفروعها عندما يكون includeChildren صحيحًا، عن الاستجابة لحركات المؤشر، عودة إلى الوضع الافتراضي.

      Parameters

      Returns void

      bitbybit.babylon.mesh.disablePointerMoveEvents({ babylonMesh: mesh, includeChildren: true });
      
    • يضبط معرّف الشبكة، وهو تسمية يعثر بها getMeshOfId عليها ولا يلزم أن تكون فريدة.

      Parameters

      Returns void

    • يضبط اسم الشبكة، واسم فروعها أيضًا عندما يكون includeChildren صحيحًا؛ الأسماء هي ما يبحث فيه getMeshesWhereNameContains.

      Parameters

      • inputs: NameBabylonMeshDto

        الشبكة والاسم وما إذا كانت العناصر الفرعية تتبعها

      Returns void

    • يعطي الشبكة مادة، وفروعها أيضًا عندما يكون includeChildren صحيحًا؛ المادة تحدد لون سطحها ولمعانه وشفافيته.

      Parameters

      • inputs: MaterialBabylonMeshDto

        الشبكة والمادة وما إذا كانت العناصر الفرعية تتبعها

      Returns void

      const material = bitbybit.babylon.material.pbrMetallicRoughness.create({ name: "red", baseColor: "#ff0000", emissiveColor: "#000000", metallic: 0.2, roughness: 0.6, alpha: 1, backFaceCulling: false, zOffset: 0 });
      bitbybit.babylon.mesh.setMaterial({ babylonMesh: mesh, material, includeChildren: true });
    • يضع الشبكة، أو نسخة مثيلة منها، عند نقطة نسبيًا إلى أصلها.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setPosition({ babylonMesh: mesh, position: [0, 5, 0] });
      
    • يضبط تدوير الشبكة، أو نسخة مثيلة منها، كزوايا بالدرجات حول X وY وZ، مستبدلًا تدويرها الحالي.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setRotation({ babylonMesh: mesh, rotation: [0, 90, 0] });
      
    • يضبط عوامل تحجيم الشبكة، أو نسخة مثيلة منها، على طول X وY وZ، مستبدلًا تحجيمها الحالي؛ القيمة 1 تعني عدم التحجيم.

      Parameters

      Returns void

      bitbybit.babylon.mesh.setScale({ babylonMesh: mesh, scale: [2, 1, 1] });
      
    • يضرب التحجيم الحالي للشبكة، أو نسخة مثيلة منها، في عامل واحد على كل المحاور، فالقيمة 2 تضاعف أي حجم لديها.

      Parameters

      Returns void

    updates

    • ينقل شبكة مرسومة ويدوّرها ويحجّمها ويعيد تلوينها في مكانها، من دون رسمها مجددًا، وهو أسرع عندما يتغير الموضع أو اللون فقط.

      rotation هنا بالراديان. colours هو لون hex واحد، أو قائمة بمدخل واحد لكل شبكة فرعية، أو لكل نقطة أو خط في مثل هذا الرسم؛ أي قائمة أخرى يُستخدم مدخلها الأول.

      Parameters

      • inputs: UpdateDrawnBabylonMesh

        الشبكة المرسومة وموضعها الجديد وتدويرها وتحجيمها وألوانها

      Returns void

      bitbybit.babylon.mesh.updateDrawn({ babylonMesh: mesh, position: [0, 5, 0], rotation: [0, Math.PI / 2, 0], scaling: [1, 1, 1], colours: "#ff0000" });
      

    visibility

    • يضبط مدى ظهور الشبكة، من 0 للشفافية الكاملة إلى 1 للظهور الكامل، مع القيم البينية التي تجعلها باهتة؛ includeChildren يطبّق القيمة نفسها على شبكاتها الفرعية.

      Parameters

      • inputs: SetMeshVisibilityDto

        الشبكة، ودرجة الرؤية من 0 إلى 1، وما إذا كانت العناصر الفرعية تتبعها

      Returns void

      bitbybit.babylon.mesh.setVisibility({ babylonMesh: mesh, visibility: 0.5, includeChildren: true });
      
    • يخفي شبكة من دون إزالتها من المشهد، وشبكاتها الفرعية أيضًا عندما يكون includeChildren صحيحًا؛ show يعيدها.

      Parameters

      • inputs: ShowHideMeshDto

        الشبكة وما إذا كانت عناصرها الفرعية تتبعها

      Returns void

      bitbybit.babylon.mesh.hide({ babylonMesh: mesh, includeChildren: true });
      
    • يُظهر شبكة جعلها hide أو رسم مخفي غير مرئية، وشبكاتها الفرعية أيضًا عندما يكون includeChildren صحيحًا.

      Parameters

      • inputs: ShowHideMeshDto

        الشبكة وما إذا كانت عناصرها الفرعية تتبعها

      Returns void

      bitbybit.babylon.mesh.show({ babylonMesh: mesh, includeChildren: true });