ক্যামেরা

পাবলিক ক্লাস ক্যামেরা

একটি ভার্চুয়াল ক্যামেরা প্রতিনিধিত্ব করে, যা দৃশ্যটি যে দৃষ্টিকোণটির মাধ্যমে দেখা হয় তা নির্ধারণ করে।

ক্যামেরাটি যদি ArSceneView এর অংশ হয়, তাহলে ক্যামেরা স্বয়ংক্রিয়ভাবে ARCore থেকে ক্যামেরার পোজ ট্র্যাক করে। অতিরিক্তভাবে, যখন কল করা হয় তখন নিম্নলিখিত পদ্ধতিগুলি UnsupportedOperationException নিক্ষেপ করবে:

  • setParent(NodeParent) - ক্যামেরার প্যারেন্ট পরিবর্তন করা যায় না, এটা সবসময় দৃশ্য।
  • setLocalPosition(Vector3) - ক্যামেরার অবস্থান পরিবর্তন করা যায় না, এটি ARCore ক্যামেরা পোজ দ্বারা নিয়ন্ত্রিত হয়।
  • setLocalRotation(Quaternion) - ক্যামেরার ঘূর্ণন পরিবর্তন করা যায় না, এটি ARCore ক্যামেরা পোজ দ্বারা নিয়ন্ত্রিত হয়।
  • setWorldPosition(Vector3) - ক্যামেরার অবস্থান পরিবর্তন করা যায় না, এটি ARCore ক্যামেরা পোজ দ্বারা নিয়ন্ত্রিত হয়।
  • setWorldRotation(Quaternion) - ক্যামেরার ঘূর্ণন পরিবর্তন করা যায় না, এটি ARCore ক্যামেরা পোজ দ্বারা নিয়ন্ত্রিত হয়।
নোডে অন্যান্য সমস্ত কার্যকারিতা সমর্থিত। আপনি ক্যামেরার অবস্থান এবং ঘূর্ণন অ্যাক্সেস করতে পারেন, ক্যামেরায় একটি সংঘর্ষের আকৃতি নির্ধারণ করতে পারেন, বা ক্যামেরায় বাচ্চাদের যোগ করতে পারেন। ক্যামেরা নিষ্ক্রিয় করা রেন্ডারিং বন্ধ করে।

পাবলিক পদ্ধতি

ভাসা
ভাসা
ভাসা
উল্লম্ব ডিগ্রি অর্জন করুন ()
ক্যামেরার জন্য উল্লম্ব দৃশ্যের ক্ষেত্র পায়।
রশ্মি
screenPointToRay (float x, float y)
ক্যামেরার কাছাকাছি প্লেন থেকে এবং স্ক্রীন স্পেসের একটি বিন্দুর মধ্য দিয়ে যাওয়া বিশ্ব মহাকাশে একটি রশ্মি গণনা করে৷
অকার্যকর
সেটলোকালপজিশন ( ভেক্টর3 অবস্থান)
ক্যামেরার অবস্থান নির্ধারণ করুন।
অকার্যকর
সেট লোকাল রোটেশন ( কোয়াটারনিয়ন ঘূর্ণন)
ক্যামেরার ঘূর্ণন সেট করুন।
অকার্যকর
সেটপ্যারেন্ট ( নোডপ্যারেন্ট প্যারেন্ট)
অসমর্থিত অপারেশন।
অকার্যকর
সেট ভার্টিকালফোভডিগ্রিস (ফ্লোট ভার্টিকালফভ)
ডিগ্রীতে নন-এআর ক্যামেরার জন্য উল্লম্ব দৃশ্যের ক্ষেত্র সেট করে।
অকার্যকর
সেট ওয়ার্ল্ড পজিশন ( ভেক্টর 3 অবস্থান)
ক্যামেরার অবস্থান নির্ধারণ করুন।
অকার্যকর
সেট ওয়ার্ল্ড রোটেশন ( কোয়াটারনিয়ন ঘূর্ণন)
ক্যামেরার ঘূর্ণন সেট করুন।
ভেক্টর ৩
worldToScreenPoint ( ভেক্টর3 পয়েন্ট)
বিশ্ব স্থান থেকে একটি বিন্দুকে স্ক্রীন স্পেসে রূপান্তর করুন।

উত্তরাধিকারসূত্রে প্রাপ্ত পদ্ধতি

পাবলিক পদ্ধতি

পাবলিক ফ্লোট getFarClipPlane ()

পাবলিক ফ্লোট getNearClipPlane ()

পাবলিক ফ্লোট getVerticalFovDegrees ()

ক্যামেরার জন্য উল্লম্ব দৃশ্যের ক্ষেত্র পায়।

যদি এটি একটি AR ক্যামেরা হয়, তাহলে এটি ARCore থেকে ক্যামেরা তথ্যের উপর ভিত্তি করে গণনা করা হয় এবং ডিভাইসের মধ্যে পরিবর্তিত হতে পারে। ARCore সেশন পুনরায় শুরু হওয়ার পরে প্রথম ফ্রেম না হওয়া পর্যন্ত এটি গণনা করা যাবে না, এই ক্ষেত্রে একটি IllegalStateException নিক্ষেপ করা হয়।

অন্যথায়, এটি সেট setVerticalFovDegrees(float) দ্বারা সেট করা মানটি 90 ডিগ্রির ডিফল্ট সহ ফেরত দেবে।

নিক্ষেপ করে
অবৈধ রাজ্য ব্যতিক্রম ARCore পুনরায় চালু হওয়ার পরে প্রথম ফ্রেমের আগে কল করা হলে

পাবলিক রে স্ক্রিনপয়েন্টটোরে (ফ্লোট এক্স, ফ্লোট ওয়াই)

ক্যামেরার কাছাকাছি প্লেন থেকে এবং স্ক্রীন স্পেসের একটি বিন্দুর মধ্য দিয়ে যাওয়া বিশ্ব মহাকাশে একটি রশ্মি গণনা করে৷ স্ক্রীন স্পেস অ্যান্ড্রয়েড ডিভাইসের স্ক্রীন কোঅর্ডিনেটে রয়েছে: TopLeft = (0, 0) BottomRight = (Screen Width, Screen Height) ডিভাইসের অরিয়েন্টেশন দ্বারা ডিভাইস স্থানাঙ্কের স্থান প্রভাবিত হয় না।

পরামিতি
এক্স ডিভাইস স্ক্রীন স্থানাঙ্কে X অবস্থান।
y ডিভাইস স্ক্রীন স্থানাঙ্কে Y অবস্থান।

সর্বজনীন অকার্যকর সেটLocalPosition ( ভেক্টর3 অবস্থান)

ক্যামেরার অবস্থান নির্ধারণ করুন। ক্যামেরা সবসময় isTopLevel() হয়, তাই এটি setWorldPosition(Vector3) এর মতোই আচরণ করে।

যদি ক্যামেরা একটি ArSceneView এর অংশ হয়, তাহলে এটি একটি অসমর্থিত অপারেশন। ক্যামেরার অবস্থান পরিবর্তন করা যায় না, এটি ARCore ক্যামেরা পোজ দ্বারা নিয়ন্ত্রিত হয়।

পরামিতি
অবস্থান পদে আবেদন করতে হবে।

সর্বজনীন অকার্যকর সেট LocalRotation ( চতুর্ভুজ ঘূর্ণন)

ক্যামেরার ঘূর্ণন সেট করুন। ক্যামেরা সবসময় isTopLevel() হয়, তাই এটি setWorldRotation(Quaternion) এর মতোই আচরণ করে।

যদি ক্যামেরা একটি ArSceneView এর অংশ হয়, তাহলে এটি একটি অসমর্থিত অপারেশন। ক্যামেরার ঘূর্ণন পরিবর্তন করা যায় না, এটি ARCore ক্যামেরা পোজ দ্বারা নিয়ন্ত্রিত হয়।

পরামিতি
ঘূর্ণন ঘূর্ণন প্রয়োগ করতে হবে।

সর্বজনীন অকার্যকর সেটপ্যারেন্ট ( নোডপ্যারেন্ট প্যারেন্ট)

অসমর্থিত অপারেশন। ক্যামেরার অভিভাবক পরিবর্তন করা যায় না, এটি সর্বদা দৃশ্য।

পরামিতি
অভিভাবক নতুন অভিভাবক যে এই নোডের সন্তান হবে। যদি শূন্য হয়, এই নোডটি তার অভিভাবক থেকে বিচ্ছিন্ন হবে।

সার্বজনীন অকার্যকর সেটVerticalFovDegrees (float verticalFov)

ডিগ্রীতে নন-এআর ক্যামেরার জন্য উল্লম্ব দৃশ্যের ক্ষেত্র সেট করে। যদি এটি একটি AR ক্যামেরা হয়, তাহলে fov ARCore থেকে আসে এবং সেট করা যায় না তাই একটি ব্যতিক্রম নিক্ষেপ করা হয়। ডিফল্ট হল 90 ডিগ্রী।

পরামিতি
verticalFov
নিক্ষেপ করে
অসমর্থিত অপারেশন ব্যতিক্রম যদি এটি একটি AR ক্যামেরা হয়

সর্বজনীন অকার্যকর সেট ওয়ার্ল্ড পজিশন ( ভেক্টর3 অবস্থান)

ক্যামেরার অবস্থান নির্ধারণ করুন। ক্যামেরা সর্বদা isTopLevel() হয়, তাই এটি setLocalPosition(Vector3) এর মতোই আচরণ করে।

যদি ক্যামেরা একটি ArSceneView এর অংশ হয়, তাহলে এটি একটি অসমর্থিত অপারেশন। ক্যামেরার অবস্থান পরিবর্তন করা যায় না, এটি ARCore ক্যামেরা পোজ দ্বারা নিয়ন্ত্রিত হয়।

পরামিতি
অবস্থান পদে আবেদন করতে হবে।

পাবলিক ভ্যাইড সেট ওয়ার্ল্ড রোটেশন ( কোয়াটারনিয়ন রোটেশন)

ক্যামেরার ঘূর্ণন সেট করুন। ক্যামেরা সবসময় isTopLevel() হয়, তাই এটি setLocalRotation(Quaternion) এর মতোই আচরণ করে।

যদি ক্যামেরা একটি ArSceneView এর অংশ হয়, তাহলে এটি একটি অসমর্থিত অপারেশন। ক্যামেরার ঘূর্ণন পরিবর্তন করা যায় না, এটি ARCore ক্যামেরা পোজ দ্বারা নিয়ন্ত্রিত হয়।

পরামিতি
ঘূর্ণন ঘূর্ণন প্রয়োগ করতে হবে।

পাবলিক Vector3 worldToScreenPoint ( Vector3 পয়েন্ট)

বিশ্ব স্থান থেকে একটি বিন্দুকে স্ক্রীন স্পেসে রূপান্তর করুন।

X মানটি ঋণাত্মক হয় যখন বিন্দুটি ভিউপোর্টের বামে থাকে, যখন বিন্দুটি ভিউপোর্টের মধ্যে থাকে তখন 0 এবং SceneView এর প্রস্থের মধ্যে থাকে এবং যখন পয়েন্টটি ভিউপোর্টের ডানদিকে থাকে তখন প্রস্থের চেয়ে বেশি হয়।

যখন পয়েন্টটি ভিউপোর্টের নিচে থাকে তখন Y মান নেতিবাচক হয়, যখন পয়েন্টটি ভিউপোর্টের মধ্যে থাকে তখন SceneView এর উচ্চতার মধ্যে 0 এবং উচ্চতার থেকে বেশি হয় যখন পয়েন্টটি ভিউপোর্টের উপরে থাকে।

Z মান সর্বদা 0 হয় কারণ ফেরত মান একটি 2D স্থানাঙ্ক।

পরামিতি
বিন্দু রূপান্তর করার জন্য বিশ্ব স্থানের বিন্দু
রিটার্নস
  • একটি নতুন ভেক্টর যা স্ক্রীন-স্পেসে বিন্দুকে প্রতিনিধিত্ব করে।