Bitbybit Docs
    Preparing search index...

    Class ManifoldOperations

    تغيير مجسمات Manifold الصلبة بما يتجاوز العمليات المنطقية: تغليفها بغلاف محدب، وتشريحها وإسقاطها إلى مقاطع عرضية، وتنقيح شبكاتها وتنعيمها، وتبسيطها، وتجميعها وتفكيكها، وحساب النواظم والانحناء في قنوات خصائص الرؤوس. قناة الخصائص رقم واحد لكل رأس مخزن على الشبكة، مثل القنوات الثلاث للناظم. تعيد كل دالة مجسما صلبا جديدا.

    Index

    Constructors

    adjustments

    • يحسب ناظما لكل رأس من الشبكة ويخزنه في ثلاث قنوات خصائص بدءا من normalIdx.

      الحواف الأحد من minSharpAngle، بالدرجات، تحتفظ بنواظم منفصلة على كل جانب وتبقى حادة؛ عند 0 يحتفظ كل مثلث بناظمه الخاص. الأوجه المسطحة المكونة من عدة مثلثات تبقى مسطحة.

      Parameters

      Returns Promise<ManifoldPointer>

      المجسم الصلب مع النواظم المخزنة

      const withNormals = await bitbybit.manifold.manifold.operations.calculateNormals({ manifold: shape, normalIdx: 0, minSharpAngle: 60 });
      
    • يحسب مدى قوة انحناء السطح عند كل رأس ويخزنه في قنوات خصائص: الانحناء الغاوسي عند gaussianIdx، والانحناء المتوسط عند meanIdx.

      الانحناء هو مقلوب نصف قطر الانحناء، موجب حيث يكون السطح محدبا وسالب حيث يكون مقعرا؛ الفهرس الأقل من 0 يتخطى تلك القناة.

      Parameters

      Returns Promise<ManifoldPointer>

      المجسم الصلب مع الانحناء المخزن

      const withCurvature = await bitbybit.manifold.manifold.operations.calculateCurvature({ manifold: shape, gaussianIdx: 0, meanIdx: 1 });
      
    • يضيف مثلثات إلى مجسم صلب منعّم حتى تقع كل نقطة من شبكته ضمن tolerance من السطح الناعم، فتحصل المناطق شديدة الانحناء على مثلثات أكثر من المسطحة.

      لا يتغير سوى المجسم الصلب الذي نُعّم بـ smoothOut أو smoothByNormals؛ وأي مجسم آخر يعود كنسخة.

      Parameters

      Returns Promise<ManifoldPointer>

      المجسم الصلب المنقح

      const finer = await bitbybit.manifold.manifold.operations.refineToTolerance({ manifold: smoothed, tolerance: 0.01 });
      
    • يضيف مثلثات إلى مجسم صلب بتقسيم كل حافة إلى قطع بالطول المعطى تقريبا، مضيفا رؤوسا داخلية لإبقاء المثلثات منتظمة.

      على مجسم صلب منعّم بـ smoothOut أو smoothByNormals تنتقل الرؤوس الجديدة إلى السطح الناعم؛ وإلا يبقى السطح كما هو.

      Parameters

      Returns Promise<ManifoldPointer>

      المجسم الصلب المنقح

      const finer = await bitbybit.manifold.manifold.operations.refineToLength({ manifold: smoothed, length: 0.5 });
      
    • يضيف مثلثات إلى مجسم صلب بتقسيم كل حافة إلى number من القطع؛ مع 2، يصبح كل مثلث أربعة.

      على مجسم صلب منعّم بـ smoothOut أو smoothByNormals تنتقل الرؤوس الجديدة إلى السطح الناعم؛ وإلا تبقى المثلثات الجديدة مسطحة.

      Parameters

      Returns Promise<ManifoldPointer>

      المجسم الصلب المنقح

      const finer = await bitbybit.manifold.manifold.operations.refine({ manifold: smoothed, number: 2 });
      
    • يعلّم مجسما صلبا للتنعيم باستنتاج المماسات من مثلثاته، بحيث يثني refine أو refineToLength لاحق المثلثات الجديدة إلى سطح ناعم.

      الحواف الأحد من minSharpAngle، بالدرجات، تبقى حادة؛ minSmoothness الأكبر من 0 يقوّس تلك قليلا، و 1 ينعّم كل شيء. لا تتغير الهندسة نفسها حتى يتم تنقيحها.

      Parameters

      Returns Promise<ManifoldPointer>

      المجسم الصلب مع مماسات التنعيم

      const smoothed = await bitbybit.manifold.manifold.operations.smoothOut({ manifold: cube, minSharpAngle: 60, minSmoothness: 0 });
      const rounded = await bitbybit.manifold.manifold.operations.refineToLength({ manifold: smoothed, length: 0.5 });
    • يعلّم مجسما صلبا للتنعيم باستخدام النواظم المخزنة في خصائص رؤوسه، بحيث يثني refine أو refineToLength لاحق المثلثات الجديدة إلى سطح ناعم.

      normalIdx هي الأولى من قنوات النواظم الثلاث، كما تخزنها calculateNormals؛ حيث تختلف النواظم على رأس تبقى الحافة حادة.

      Parameters

      Returns Promise<ManifoldPointer>

      المجسم الصلب مع مماسات التنعيم

      const smoothed = await bitbybit.manifold.manifold.operations.smoothByNormals({ manifold: withNormals, normalIdx: 0 });
      
    • يزيل رؤوسا من شبكة مجسم صلب مع إبقاء كل سطح ضمن tolerance من حيث كان، لتقليل عدد المثلثات.

      تحتفظ النتيجة بمجموعة فرعية من الرؤوس الأصلية؛ وتبقى قيمة تفاوت المجسم الصلب نفسه دون تغيير.

      Parameters

      • inputs: ManifoldSimplifyDto<ManifoldPointer>

        المجسم الصلب والمسافة التي يمكن للأسطح أن تتحرك ضمنها، بوحدات النموذج

      Returns Promise<ManifoldPointer>

      المجسم الصلب المبسط

      const lighter = await bitbybit.manifold.manifold.operations.simplify({ manifold: shape, tolerance: 0.05 });
      
    • يعيد كتابة خصائص رؤوس مجسم صلب بدالة تستقبل موضع كل رأس وخصائصه القديمة وتملأ الجديدة.

      numProp يحدد عدد الخصائص التي يملكها كل رأس بعد ذلك، فيمكن إضافة القنوات أو حذفها؛ القراءة بعد العدد القديم أو الكتابة بعد الجديد غير معرّفة.

      Parameters

      Returns Promise<ManifoldPointer>

      المجسم الصلب بالخصائص الجديدة

      const colored = await bitbybit.manifold.manifold.operations.setProperties({
      manifold: shape,
      numProp: 3,
      propFunc: (newProp, position) => { newProp[0] = position[0]; newProp[1] = position[1]; newProp[2] = position[2]; },
      });

    basic

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

      المثلثات الأرفع من التفاوت تُعامل على أنها منحلة وتُزال.

      Parameters

      Returns Promise<ManifoldPointer>

      المجسم الصلب بالتفاوت الجديد

      const coarser = await bitbybit.manifold.manifold.operations.setTolerance({ manifold: shape, tolerance: 0.01 });
      
    • يحجز سلسلة من count معرّفا فريدا للشبكات ويعيد الأول، لتعليم مجموعات المثلثات التي يمكن العثور عليها مجددا بعد عمليات لاحقة.

      عيّنها لـ runOriginalID لشبكة قبل بناء مجسم صلب منها، مثلا للإبقاء على عدة مواد منفصلة.

      Parameters

      • inputs: CountDto

        عدد المعرّفات المراد حجزها

      Returns Promise<number>

      أول المعرّفات المحجوزة؛ والبقية تتبعه بالتسلسل

      const firstId = await bitbybit.manifold.manifold.operations.reserveIds({ count: 2 });
      
    • يصنع نسخة من مجسم صلب تُعد أصلا جديدا، بحيث يمكن للنسخة أن تحمل خصائص رؤوسها الخاصة، مثل ربط UV مختلف، وأن تُميّز عما بُنيت منه.

      تُدمج الأوجه المتحدة المستوى وتُطوى الحواف بينها في الطريق؛ ابق على طريق الشبكة بدلا من ذلك عندما يجب أن تبقى تلك الحواف.

      Parameters

      Returns Promise<ManifoldPointer>

      النسخة المعلمة كأصلية

      const original = await bitbybit.manifold.manifold.operations.asOriginal({ manifold: shape });
      

    composition

    • يجمع عدة مجسمات صلبة في واحد، عكس decompose.

      المجسمات الصلبة المتداخلة تُدمج كما يفعل الاتحاد المنطقي؛ والمتباعدة منها تبقى قطعا منفصلة ضمن النتيجة الواحدة.

      Parameters

      Returns Promise<ManifoldPointer>

      مجسم صلب واحد يحويها جميعا

      const packed = await bitbybit.manifold.manifold.operations.compose({ manifolds: [cube, sphere] });
      
    • يقسم مجسما صلبا إلى قطعه المنفصلة غير المتصلة، عكس compose.

      المجسم الصلب الذي هو قطعة واحدة كلها يعود كقائمة من نسخة واحدة.

      Parameters

      Returns Promise<ManifoldPointer[]>

      الأجزاء المنفصلة

      const pieces = await bitbybit.manifold.manifold.operations.decompose({ manifold: packed });
      

    cross sections

    • يقطع مجسما صلبا بمستوى مواز لمستوى XY عند ارتفاع Z المعطى ويعيد المقطع المسطح كمقطع عرضي.

      الارتفاع عند أسفل الصندوق المحيط للمجسم الصلب يعطي أوجهه السفلية؛ والارتفاع عند الأعلى يعطي مقطعا عرضيا فارغا.

      Parameters

      Returns Promise<CrossSectionPointer>

      المقطع كمقطع عرضي

      const section = await bitbybit.manifold.manifold.operations.slice({ manifold: sphere, height: 2 });
      
    • يسطح مجسما صلبا على مستوى XY ويعيد خطه الخارجي كمقطع عرضي، مثل ظله تحت ضوء عمودي فوقه مباشرة.

      Parameters

      Returns Promise<CrossSectionPointer>

      المخطط الخارجي كمقطع عرضي

      const shadow = await bitbybit.manifold.manifold.operations.project({ manifold: shape });
      

    hulls

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

      Parameters

      Returns Promise<ManifoldPointer>

      الغلاف المحدب

      const wrapped = await bitbybit.manifold.manifold.operations.hull({ manifold: shape });
      
    • يلف نقاطا أو مجسمات صلبة أو مزيجا منهما في غلاف محدب واحد، أصغر شكل بلا انبعاجات يحويها جميعا.

      Parameters

      Returns Promise<ManifoldPointer>

      الغلاف المحدب

      const wrapped = await bitbybit.manifold.manifold.operations.hullPoints({ points: [[0, 0, 0], [10, 0, 0], [0, 10, 0], [0, 0, 10]] });