মডিউল

ইঙ্ক এপিআই মডুলারাইজড, তাই আপনি কেবল আপনার যা প্রয়োজন তা ব্যবহার করতে পারেন।

স্ট্রোক

স্ট্রোক মডিউলটি ইঙ্ক এপিআই-এর ভিত্তি হিসেবে কাজ করে। এই মডিউলের মধ্যে মূল ডেটা টাইপগুলি হল:

  • StrokeInputBatch : পয়েন্টার ইনপুটগুলির একটি সিরিজ উপস্থাপন করে, যার মধ্যে তাদের অবস্থান, টাইমস্ট্যাম্প এবং ঐচ্ছিকভাবে চাপ, টিল্ট এবং ওরিয়েন্টেশন অন্তর্ভুক্ত থাকে।
  • InProgressStroke : সক্রিয়ভাবে আঁকা একটি স্ট্রোককে প্রতিনিধিত্ব করে। InProgressStroke কম ল্যাটেন্সিতে আংশিক স্ট্রোক রেন্ডার করতে এবং ইনপুট সম্পূর্ণ হওয়ার পরে চূড়ান্ত Stroke তৈরি করতে ব্যবহৃত হয়, যার পরে বস্তুটি পুনরায় ব্যবহার করা যেতে পারে।InProgressStroke InProgressStrokes দ্বারা ব্যবহৃত হয়।
  • Stroke : স্থির জ্যামিতির সাথে একটি চূড়ান্ত স্ট্রোকের একটি অপরিবর্তনীয় উপস্থাপনা। প্রতিটি Stroke একটি ImmutableStrokeInputBatch (ইনপুট পয়েন্ট), একটি Brush (স্টাইল) এবং একটি PartitionedMesh (জ্যামিতিক আকৃতি) থাকে। আপনি আপনার অ্যাপ্লিকেশনের মধ্যে স্ট্রোক সংরক্ষণ, পরিচালনা এবং রেন্ডার করতে পারেন।

জ্যামিতি

জ্যামিতি মডিউলটি আদিম আকারগুলিতে ( Box এবং Vec এর মতো ডেডিকেটেড ক্লাস ব্যবহার করে) জ্যামিতিক ক্রিয়াকলাপগুলিকে সমর্থন করে, পাশাপাশি ইচ্ছাকৃত আকারগুলিতে ( PartitionedMesh ব্যবহার করে), ছেদ সনাক্তকরণ এবং রূপান্তর সহ। PartitionedMesh রেন্ডারিং সমর্থন করার জন্য অতিরিক্ত ডেটাও ধরে রাখতে পারে।

ব্রাশ

brush মডিউল স্ট্রোকের ধরণ নির্ধারণ করে। এটি দুটি প্রধান অংশ নিয়ে গঠিত:

  • Brush : স্ট্রোকের স্টাইল নির্দিষ্ট করে যার মধ্যে বেস কালার, বেস সাইজ এবং BrushFamily অন্তর্ভুক্ত। BrushFamily একটি ফন্ট ফ্যামিলির অনুরূপ, এটি স্ট্রোকের স্টাইলকে সংজ্ঞায়িত করে। উদাহরণস্বরূপ, একটি BrushFamily মার্কার বা হাইলাইটারের একটি নির্দিষ্ট স্টাইলকে প্রতিনিধিত্ব করতে পারে, যা বিভিন্ন আকার এবং রঙের স্ট্রোককে সেই স্টাইল ভাগ করে নেওয়ার অনুমতি দেয়।
  • StockBrushes : ব্যবহারের জন্য প্রস্তুত BrushFamily ইনস্ট্যান্স তৈরির জন্য কারখানার ফাংশন প্রদান করে।

রচনা

কম্পোজ অথরিং মডিউল আপনাকে ব্যবহারকারীর টাচ ইনপুট ক্যাপচার করতে এবং রিয়েল টাইমে স্ক্রিনে কম-লেটেন্সি স্ট্রোক হিসাবে রেন্ডার করতে দেয়। এটি InProgressStrokes কম্পোজেবলের মাধ্যমে অর্জন করা হয়, যা গতির ইভেন্টগুলি প্রক্রিয়া করে এবং স্ট্রোকগুলি আঁকার সাথে সাথে প্রদর্শন করে।

একবার স্ট্রোক সম্পন্ন হলে, কম্পোজেবল একটি InProgressStrokesFinishedListener কলব্যাক ব্যবহার করে ক্লায়েন্ট অ্যাপ্লিকেশনটিকে অবহিত করে। এটি অ্যাপ্লিকেশনটিকে রেন্ডারিং বা স্টোরেজের জন্য সমাপ্ত স্ট্রোকগুলি পুনরুদ্ধার করতে দেয়।

কম্পোজে, InProgressStrokes এই কলব্যাকটি onStrokesFinished প্যারামিটারে নেয়। রেন্ডারিং মডিউল ব্যবহার করে স্ক্রিনে কমিট করার জন্য সমাপ্ত স্ট্রোকগুলি অন্য একটি কম্পোজেবলে পাস করুন।

রেন্ডারিং

রেন্ডারিং মডিউলটি অ্যান্ড্রয়েড Canvas কালি স্ট্রোক আঁকা সহজ করে। এটি কম্পোজের জন্য CanvasStrokeRenderer ViewStrokeRenderer করে। এই রেন্ডারারগুলি রেন্ডারিং কর্মক্ষমতা অপ্টিমাইজ করে এবং অ্যান্টিএলিয়াসিং সহ উচ্চ-মানের ভিজ্যুয়াল সরবরাহ করতে সহায়তা করে।

স্ট্রোক রেন্ডার করার জন্য, CanvasStrokeRenderer ইনস্ট্যান্স পেতে create() পদ্ধতিটি কল করুন, এবং তারপর finished ( Stroke ) অথবা in-progress ( InProgressStroke ) স্ট্রোকগুলিকে Canvas এ রেন্ডার করার জন্য draw() পদ্ধতিটি কল করুন।

স্ট্রোক আঁকার সময় আপনি ক্যানভাস রূপান্তর করতে পারেন। উদাহরণস্বরূপ প্যানিং, জুমিং এবং রোটেটিং অন্তর্ভুক্ত। স্ট্রোকটি সঠিকভাবে রেন্ডার করার জন্য, আপনাকে canvas রূপান্তরটি CanvasStrokeRenderer.draw এ পাস করতে হবে।

canvas ট্রান্সফর্ম আলাদাভাবে ট্র্যাক করা এড়াতে, ViewStrokeRenderer ব্যবহার করুন।

স্টোরেজ

The storage module provides utilities for efficiently serializing and deserializing stroke data, primarily focusing on StrokeInputBatch.

The module uses protocol buffers and optimized delta compression techniques, resulting in significant storage savings compared to naive methods.

The storage module simplifies saving, loading, and sharing strokes.