Bitbybit Docs
    Preparing search index...

    Class MeshBitByBit

    সাধারণ ত্রিভুজ মেশের উপর জ্যামিতি: একটি মেশ হল ত্রিভুজের একটি তালিকা, প্রতিটিতে তিনটি বিন্দু। এখানকার মেথডগুলি একটি ত্রিভুজের প্লেন, একটি বিন্দু থেকে একটি প্লেনের দূরত্ব, এবং দুটি মেশ কোথায় একে অপরকে কাটে তা বের করে, সেগমেন্ট, পলিলাইন বা বিন্দুর তালিকা হিসেবে। এগুলির কোনো CAD কার্নেল দরকার নেই, তাই যেকোনো ত্রিভুজায়িত ডেটায় চলে।

    Index

    Constructors

    base

    • একটি বিন্দু একটি প্লেন থেকে কত দূরে তা মাপে, চিহ্নসহ: নর্মাল যে পাশে নির্দেশ করে সেখানে ধনাত্মক, অন্য পাশে ঋণাত্মক।

      উদাহরণ: বিন্দু [0,5,0] ও নর্মাল [0,1,0] সহ XZ প্লেন -> 5

      Parameters

      Returns number

      মডেল এককে চিহ্নযুক্ত দূরত্ব

      const above = bitbybit.mesh.signedDistanceToPlane({ point: [0, 5, 0], plane: { normal: [0, 1, 0], d: 0 } });
      

    mesh

    • দুটি মেশের সারফেস যেখানে পরস্পরকে কাটে সেই প্রতিটি সেগমেন্ট খুঁজে বের করে, একটির প্রতিটি ত্রিভুজকে অন্যটির প্রতিটি ত্রিভুজের বিরুদ্ধে পরীক্ষা করে।

      উদাহরণ: একটি ঘনক মেশ ও একটি গোলক মেশ -> যে সেগমেন্টগুলি একসাথে তাদের ছেদ কার্ভ আঁকে

      Parameters

      Returns Segment3[]

      ছেদ সেগমেন্টগুলি, কোনো নির্দিষ্ট ক্রম ছাড়া

      const segments = bitbybit.mesh.meshMeshIntersectionSegments({ mesh1: cubeTriangles, mesh2: sphereTriangles, tolerance: 1e-7 });
      
    • দুটি মেশের সারফেস যেখানে পরস্পরকে কাটে তা খুঁজে বের করে এবং টুকরোগুলিকে পলিলাইনে জোড়ে, কার্ভ লুপ করলে বন্ধ।

      উদাহরণ: একটি ঘনক মেশ ও একটি গোলক মেশ -> দুটি সারফেস যেখানে মেলে সেখানে বন্ধ পলিলাইন

      Parameters

      Returns Polyline3[]

      ছেদ কার্ভগুলি পলিলাইন হিসেবে

      const curves = bitbybit.mesh.meshMeshIntersectionPolylines({ mesh1: cubeTriangles, mesh2: sphereTriangles, tolerance: 1e-7 });
      
    • দুটি মেশের সারফেস যেখানে পরস্পরকে কাটে তা খুঁজে বের করে, প্রতিটি কার্ভের জন্য বিন্দুর একটি তালিকা হিসেবে।

      একটি বন্ধ কার্ভ শেষে তার প্রথম বিন্দু পুনরাবৃত্তি করে যাতে লুপটি স্পষ্ট হয়। উদাহরণ: একটি ঘনক মেশ ও একটি গোলক মেশ -> দুটি সারফেস যেখানে মেলে তা আঁকা বিন্দুর তালিকা

      Parameters

      Returns Point3[][]

      প্রতি ছেদ কার্ভে একটি বিন্দুর তালিকা

      const curves = bitbybit.mesh.meshMeshIntersectionPoints({ mesh1: cubeTriangles, mesh2: sphereTriangles, tolerance: 1e-7 });
      

    traingle

    • একটি ত্রিভুজ যে প্লেনে আছে তা খুঁজে বের করে: তার একক নর্মাল এবং সেই নর্মাল বরাবর মূলবিন্দু থেকে তার দূরত্ব।

      নর্মালটি ত্রিভুজের বিন্দুগুলি ঘিরে ডান-হাতি নিয়ম মেনে চলে। ক্ষেত্রফলহীন ত্রিভুজ, যার বিন্দুগুলি এক রেখায়, তার কোনো প্লেন নেই এবং অসংজ্ঞায়িত দেয়। উদাহরণ: [[0,0,0], [1,0,0], [0,1,0]] -> { normal: [0,0,1], d: 0 }

      Parameters

      • inputs: TriangleToleranceDto

        ত্রিভুজটি এবং যে টলারেন্সের নিচে তার ক্ষেত্রফল শূন্য বলে গণ্য হয়

      Returns TrianglePlane3

      প্লেনটি, অথবা চ্যাপ্টা ত্রিভুজের জন্য অসংজ্ঞায়িত

      const plane = bitbybit.mesh.calculateTrianglePlane({ triangle: [[0, 0, 0], [1, 0, 0], [0, 1, 0]], tolerance: 1e-7 });
      
    • দুটি ত্রিভুজ যেখানে পরস্পরকে কাটে সেই সেগমেন্ট খুঁজে বের করে।

      স্পর্শ না করা, সমান্তরাল, বা একই প্লেনে থাকা ত্রিভুজ অসংজ্ঞায়িত দেয়। উদাহরণ: XY প্লেনে একটি ত্রিভুজ ও তার আড়াআড়ি দাঁড়ানো একটি -> যে সেগমেন্টে তারা ছেদ করে

      Parameters

      Returns Segment3

      ছেদ সেগমেন্টটি, অথবা কোনোটি না থাকলে অসংজ্ঞায়িত

      const cut = bitbybit.mesh.triangleTriangleIntersection({
      triangle1: [[0, 0, 0], [2, 0, 0], [1, 2, 0]],
      triangle2: [[1, -1, 1], [1, 1, 1], [1, 1, -1]],
      tolerance: 1e-7,
      });