How short int based masks work in C++ library Bullet? -
सी ++ (उदाहरण के लिए) में लघु पूर्णांक आधारित मास्क कैसे काम करते हैं?
I
टकरावफ़िल्टर समूह {डिफ़ॉल्टफ़िल्टर = 1, स्टेटिकफ़िल्टर = 2, कीनेमेटिकफ़िल्टर = 4, डेब्रीफिल्टर = 8, सेंसरट्रिगर = 16, वर्णफ़िल्टर = 32, ऑलफ़िलर = -1} और देखें कि सभी मान 2 की डिग्री है और I:
संक्षिप्त पूर्णांक पर हस्ताक्षर किए गए हैं जो 2 बाइट्स को स्टोर करने के लिए लेता है और 32,768 से +32,767 तक है।
लेकिन कैसे अपने स्वयं के समूह बनाएं: मुखौटा चौराहों की गणना कैसे करें
उदाहरण के लिए, CollisionFilterGroups के अतिरिक्त कैसे बनायें:
MyCollisionFilterGroups {Cubes =?, Boxes =?, क्षेत्रों =? जहां
- हम चाहते हैं कि "विमानों", "बक्से" और "क्षेत्रों" के साथ टकराने के लिए "विमान" नहीं ("देखें")
- हम "बक्से" और "गोलाकार" के साथ टकराने के लिए "बक्से" चाहते हैं
- हम चाहते हैं कि "गोलाकार" को "गोलाकार" से टकराने के लिए नहीं, फिर भी "बक्से" के साथ टकरा दें
आपका सवाल अस्पष्ट है, लेकिन मुझे लगता है कि आप ऑब्जेक्ट्स के लिए श्रेणी और मास्क बिट्स सेट करना चाहते हैं अपने सिमुलेशन में:
MyCollisionFilterGroups {विमान = 64, बॉक्स = 128, क्षेत्र = 256} विमान, श्रेणी बिट्स = विमान, मास्क = 0 < / P>
बॉक्स, श्रेणी बिट्स = बॉक्स, मुखौटा = बॉक्स + क्षेत्र (या बॉक्स | क्षेत्र)
क्षेत्र, श्रेणी बिट्स = क्षेत्र, मुखौटा = बॉक्स
संक्षेप में, प्रत्येक फिल्टर समूह के लिए दो की शक्ति बनाने के लिए, समूह वस्तु के लिए प्रत्येक ऑब्जेक्ट के लिए श्रेणी मुखौटा सेट करें, और उस ऑब्जेक्ट प्रकार के एन्यूम में अपना मुखौटा सेट करें, जिसे आप चाहते हैं कि इसे (या 0 को कुछ नहीं के साथ टकराने के लिए) से टकराना पड़े। / P>
Comments
Post a Comment