OGRE Manual / Руководство OGRE: 2. The Core Objects
| Английский оригинал | Перевод на русский | |
|---|---|---|
Сожалеем, но текст оригинала доступен только зарегистрированным пользователям. |
Этот урок дает Вам быструю сводку объектов ядра, которые Вы будете использовать в Ogre и описание для чего они используются. seaman 09.07.08 в 12:21 Это пособие дает Вам краткий обзор объектов ядра OGRE и их назначение. jfox 17.07.08 в 06:05 |
+1 |
|
Слово о Пространстве имен. seaman 09.07.08 в 12:22 Немного о пространстве имен jfox 17.07.08 в 06:06 |
||
|
Ogre использует особенность C++ , называемую "Пространство имен". Это позволяет Вам размещать структуры, перечисления (enums), вообще все в определенные рамки, что является легким путем предотвращения конфликта имен, т.е. ситуации, когда имеются две вещи, названные одним именем. Т.к. Ogre был разработан для использования внутри других приложений, я хотел быть уверен что конфликт имен не будет проблемой. Некоторые люди предваряют их классы/типы коротоким кодом, т.к. некоторые компиляторы не поддерживают пространство имен, но я выбрал использование его, т.к. это "правильный" путь. Сожалею, если Вы не имеете нужного компилятора, но C++ стандарт был определен много лет назад, так что авторы компиляторов не имеют оправданий. Если Ваш компилятор не поддерживает пространство имен, то он возможно де**мо - возьмите лучший :) seaman 09.07.08 в 12:33 OGRE использует характерную черту с++, называемую пространством имен. Оно позволяет разместить классы, перечисления, структуры, все что в принципе вписывается в область пространства имен. А это кратчайший путь к предотвращению конфликта имен, т.е. ситуации, когда два объекта называются одинаково. Учитавая, что OGRE был разработан для использования внутри других приложений, я хотел быть уверен, что проблемы конфликта имен не возникнет. Некоторые используют префиксы в именах своих классов потому, что есть компиляторы, не поддерживающие пространство имен, но я решил его применить, так как это правильнее. Сожалею, если у Вас такой непослушнай компилятор, но ребята... Стандарт языка был определен в течении многих лет, так что создателям компиляторов нечем оправдаться. Если Ваш компилятор не поддерживает пространство имен, то скорее всего он дерьмовый. Возьмите какой-нибудь по-лучше. :wink: jfox 19.08.08 в 18:36 |
||
|
Каждый класс или тип должен содержать префикс Orge::, например, Orge::Camera, Orge::Vector3 и так далее, это значит, что если где-то в вашем приложении вам потребуется тип Vector3, конфликт имён не возникнет. Чтобы не печатать лишнего кода, можете добавить объявление use namespace Ogre::, тогда Вам будет не нужно набирать прификс, за исключением двусмысленных ситуаций, когда имеется другое описание с таким же именем. jfox 09.07.08 в 19:56 |
||
|
Взгляд через 3000 метров jfox 19.08.08 в 18:07 Обзор с высоты 3000 метров Alexei_987 16.08.09 в 15:01 |
||
|
Ниже показана диаграмма некоторых объектов ядра и их расположение на общей схеме. Это вовсе не все классы, просто несколько примеров наиболее значащих, чтобы дать Вам идею их взаимодействия.
seaman 10.07.08 в 04:52 |
||
|
На самом верху диаграммы объект Root. Это точка входа в систему Ogre, и где Вы должны стремиться создать объекты верхнего уровня нужные Вам, такие как менеджер сцены, система визуализации и окно визуализации, загрузка плагинов, все фундаментальные вещи. Если Вы не знаете где начать, Root подоцдет почти для всего, хотя чаще он просто предоставляет Вам другие объекты, которые на самом деле делают всю работу, т.к. Root сам является более организатором и посредником. seaman 10.07.08 в 04:57 На самом верху диаграммы расположен объект root (корень). Это Ваш вход в систему, и это здесь Вам следует стремиться создавать объекты верхнего уровня, которые Вам понадобятся, такие как менеджеры сцен, системы и окна визуализации, загрузка плагинов, все фундаментальное. Если не знаете, где начать, root подойдет почти для всего, хотя обычно это всего лишь даст Вам новый объект, который и будет выполнять указанную работу, а root в большей степени организатор и посредник. jfox 22.08.08 в 14:18 |
||
|
Большинство из остальных классов Ogre делятся на три роли: seaman 10.07.08 в 04:59 |
||
|
Менеджер сцены.
seaman 11.07.08 в 08:30 Управление сценой jfox 22.08.08 в 12:49 |
||
|
Менеджер ресурсов.
seaman 10.07.08 в 05:11 Управление ресурсами jfox 22.08.08 в 12:57 |
||
|
Визуализация.
seaman 11.07.08 в 09:10 Визуализация
jfox 22.08.08 в 13:09 |
||
|
Вы заметите, что тут разбросана уйма плагинов. OGRE разработан расширяемым, а плагины - обычный путь расширяемости. Многие классы OGRE могут быть дополнены подклассами и расширены, как то организация сцены с использованием специального менеджера сцен, добавление новой реализации системы визуализации (например, Direct3D или OpenGL), или предоставление возможности загрузки ресурсов из другого источника (скажем, из Интернета или базы данных)/ Опять же это лишь малая часть того, что могут дать плагины, но как Вы видите, они могут быть подключены почти к любому аспекту системы. Таким образом, OGRE не является решением какой-то одной четко поставленной задачи, его можно расширить и приспособить к любым Вашим нуждам. jfox 22.08.08 в 13:41 |
