Bitbybit Docs
    Preparing search index...

    Class ManifoldOperations

    বুলিয়ানের বাইরে Manifold সলিড বদলানো: সেগুলিকে একটি উত্তল হালে মোড়ানো, ক্রস-সেকশনে স্লাইস ও প্রক্ষেপণ করা, তাদের মেশ পরিমার্জিত ও মসৃণ করা, সেগুলি সরলীকরণ করা, সাজানো ও ভাঙা, এবং ভার্টেক্স প্রপার্টি চ্যানেলে নর্মাল ও বক্রতা গণনা করা। একটি প্রপার্টি চ্যানেল হল মেশে সংরক্ষিত প্রতি ভার্টেক্সে একটি সংখ্যা, যেমন একটি নর্মালের তিনটি চ্যানেল। প্রতিটি মেথড একটি নতুন সলিড ফেরত দেয়।

    Index

    Constructors

    adjustments

    • মেশ থেকে প্রতিটি ভার্টেক্সের জন্য একটি নর্মাল গণনা করে এবং এটিকে normalIdx থেকে শুরু হওয়া তিনটি প্রপার্টি চ্যানেলে সংরক্ষণ করে।

      ডিগ্রিতে minSharpAngle এর চেয়ে ধারালো এজগুলি প্রতি পাশে আলাদা নর্মাল রাখে এবং তীক্ষ্ণ থাকে; 0 এ প্রতিটি ত্রিভুজ তার নিজস্ব নর্মাল রাখে। কয়েকটি ত্রিভুজের সমতল ফেস সমতল থাকে।

      Parameters

      • inputs: CalculateNormalsDto<ManifoldPointer>

        সলিড, প্রথম নর্মাল চ্যানেল এবং ডিগ্রিতে তীক্ষ্ণ কোণ

      Returns Promise<ManifoldPointer>

      নর্মাল সংরক্ষিত সলিড

      const withNormals = await bitbybit.manifold.manifold.operations.calculateNormals({ manifold: shape, normalIdx: 0, minSharpAngle: 60 });
      
    • প্রতিটি ভার্টেক্সে সারফেস কতটা জোরালোভাবে বাঁকে তা গণনা করে এবং প্রপার্টি চ্যানেলে সংরক্ষণ করে: gaussianIdx এ Gaussian বক্রতা, 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 এর চেয়ে ধারালো এজগুলি ধারালো থাকে; 0 এর উপরে minSmoothness সেগুলিকে একটু গোল করে, এবং 1 সবকিছু মসৃণ করে। পরিশোধন না হওয়া পর্যন্ত জ্যামিতি নিজে বদলায় না।

      Parameters

      • inputs: ManifoldSmoothOutDto<ManifoldPointer>

        সলিড, ডিগ্রিতে তীক্ষ্ণ কোণ এবং তীক্ষ্ণ এজগুলির মসৃণতা

      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

      Returns Promise<ManifoldPointer>

      সরলীকৃত সলিড

      const lighter = await bitbybit.manifold.manifold.operations.simplify({ manifold: shape, tolerance: 0.05 });
      
    • একটি সলিডের ভার্টেক্স প্রপার্টিগুলি একটি ফাংশন দিয়ে নতুন করে লেখে যা প্রতিটি ভার্টেক্সের অবস্থান ও পুরনো প্রপার্টি পায় এবং নতুনগুলি পূরণ করে।

      numProp এরপর প্রতিটি ভার্টেক্সের কতটি প্রপার্টি থাকে তা সেট করে, তাই চ্যানেল যোগ বা বাদ দেওয়া যায়; পুরনো সংখ্যার ওপারে পড়া বা নতুনটির ওপারে লেখা অসংজ্ঞায়িত।

      Parameters

      • inputs: ManifoldSetPropertiesDto<ManifoldPointer>

        সলিড, নতুন প্রপার্টির সংখ্যা এবং যে ফাংশন প্রপার্টিগুলি পূরণ করে

      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 টি অনন্য মেশ id এর একটি সারি সংরক্ষণ করে এবং প্রথমটি ফেরত দেয়, পরের অপারেশনের পরে আবার খুঁজে পাওয়া যায় এমন ত্রিভুজের সেট চিহ্নিত করার জন্য।

      তা থেকে একটি সলিড তৈরির আগে সেগুলি একটি মেশের 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

    • একটি সলিডকে দেওয়া Z উচ্চতায় XY প্লেনের সমান্তরাল একটি প্লেন দিয়ে কাটে এবং সমতল সেকশনটিকে একটি ক্রস-সেকশন হিসেবে ফেরত দেয়।

      সলিডের বাউন্ডিং বক্সের তলায় একটি উচ্চতা তার তলার ফেসগুলি দেয়; উপরে একটি উচ্চতা একটি খালি ক্রস-সেকশন দেয়।

      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]] });