यह ओपनजीएल प्रश्न और सी ++ संगठनात्मक प्रश्न के अधिक से कम है।ओपनजीएल राज्य समूह
मेरे पास नोड्स के साथ एक साधारण दृश्य ग्राफ (एक एन-पेड़) होने वाला है (इस प्रश्न के लिए) सभी कुछ ज्यामिति प्रस्तुत करेंगे। अधिक विशिष्ट होने के लिए, उनमें से प्रत्येक के पास draw()
विधि के अंदर कुछ ओपनजीएल ड्रा कमांड हैं।
अनुकूलन कारणों के लिए, मैं समान वस्तुओं को एकसाथ बैच करना चाहता हूं और उन्हें एक साथ में आकर्षित करना चाहता हूं। इस कारण से मैं ओपनजीएल के लिए "राज्य सेट" कह रहा हूं, इसे व्यक्त करने का एक तरीका चाहूंगा। एक राज्य सेट ओपनजीएल बाइंड का सिर्फ एक गुच्छा है, या एक्स ऑब्जेक्ट्स पर ड्रॉ से पहले सेट किए गए कमांड को ऑब्जेक्ट्स पर कॉल किया जाता है, और बाद में अनसेट हो जाता है।
तो एक राज्य सेट में कम से कम set()
और unset()
है और इस राज्य सेट का उपयोग करने वाले नोड्स के ड्रा कमांड के पहले और बाद में प्रतिपादन प्रणाली द्वारा कॉल किया जाएगा।
मेरा सवाल यह है कि राज्य के सेट को कैसे व्यक्त किया जाए? निश्चित रूप से कार्यों का एक गुच्छा कर सकता है, लेकिन मैं एक सेट नाम देने और इसे याद करने में सक्षम होना चाहूंगा। नोड ए की तरह LIGHTING_AND_SHADOW
का राज्य सेट है और नोड बी में CEL_SHADING
है।
इस कारण से एक अमूर्त वर्ग stateSet
कहा जाता है जो अनिवार्य रूप से set()
और unset()
तरीकों के लिए एक इंटरफेस होने की पुष्टि करने और प्रत्येक राज्य सेट होने के लिए वारिस यह एक अच्छा विचार की तरह लगता है से। लेकिन, अनिवार्य रूप से नाम प्राप्त करने के लिए वस्तुओं की एक गुच्छा के निर्माण की आवश्यकता है। ऐसा लगता है कि एक बेहतर तरीका हो सकता है।
आदर्श रूप से मैं सभी stateSets
की एक सूची रखना चाहता हूं जिसे आसानी से याद किया जा सकता है। प्रस्तुति शुरू होने से पहले उदाहरण के लिए, दृश्य ग्राफ में अपने stateSet
द्वारा सभी नोड्स को सॉर्ट करने में सक्षम होना अच्छा होगा।
कोई विचार?
ऐसा लगता है जैसे आप हमें अपने राज्य सेट में नाम देने के लिए कह रहे हैं। क्या आप थोड़ा सा विस्तार कर सकते हैं कि आप किस प्रकार की सहायता की तलाश में हैं। – Mads
यदि सक्रिय जीएलएसएल प्रोग्राम आपके "राज्य सेट" का हिस्सा है तो आप अपने जीएलएसएल प्रोग्राम क्लास का "राज्य सेट" हिस्सा बना सकते हैं: प्रत्येक व्यक्ति को पता है कि इसे किस राज्य को सेट करने की आवश्यकता है और प्रोग्राम को सक्रिय करने की आवश्यकता है। फिर आप प्रतिपादन से पहले नोड्स प्रति-प्रोग्राम को समूहबद्ध करते हैं। – Gigi