Download v1.0.0
Последнее обновление - 10.01.2004
Скачать:
Авторы
Алексей Игнатенко aka Leo
<
ignatenko@graphics.cs.msu.su>
Вежневец Владимир aka Dead Moroz
<
vvp@graphics.cs.msu.su>
Антон Конушин aka KTosh
<
ktosh@graphics.cs.msu.su>
Анна Дегтярева aka Helga
<
anna_d_666@mail.ru>
ChangeLog
! : changes
+ : new features
* : bugfixes
GML/CSL 1.0.0 (10 january 2004)
+ first public release of GMlib
Подробное описание
GMlib (Graphics & Media Lab Common Source Library) -- это библиотека классов на
C++, содержащая классы и функции, часто используемые в исследованиях и
разработке программ, связанных с компьютерной графикой и обработкой
изображений.
Библиотека возникла как результат интеграции исходных кодов
исследовательских проектов
лаборатории компьютерной графики при ВМиК МГУ. И сейчас библиотека
развивается за счет вклада сотрудников, студентов и аспирантов лаборатории.
В библиотеке содержатся несколько логически разделенных модулей, которые
кратко описаны ниже:
Base
Этот пакет содержит наиболее общие классы и утилиты:
- простые определения типа ASSERT(), VERIFY() and NULL
- тип для строк gml::String (выведен из std::string)
- "умные указатели" (gml::Ref, gml::SmartObject
- объектный интерфейс для функций обратного вызова (gml::Callback)
Math
Модуль Маth содержит наиболее общие математические функции и классы:
работа с векторами, матрицами и т.п.
- векторы: 2D, 3D, 4D (gml::TVector2, gml::TVector3, gml::TVector4)
- матрицы: 2x2, 3x3, 4x4 (gml::TMatrix2x2, gml::TMatrix3x3, gml::TMatrix4x4)
- кватернионы (gml::TQuaternion)
- описывающие объемы (gml::BBox2, gml::BBox2, gml::BSphere3)
Color
Модуль Color определяет классы gml::TColor3 и gml::TColor4 для представления
значений цвета.
Files
В модуле Files определены классы для работы с файловой системой:
- gml::File дает возможность объектно-ориентированной работы с файлами
- gml::PathString -- разбор строк с путями к файлам
- gml::FileFinder используется для поиска файлов
- Класс CIniFile предназначен для работы с ini-файлами
Images
В модуле Images определены классы для работы с изобжениями: загрузки,
обработки, сохранения и т.п.
Базовый класс gml::Image предоставляет абстрактный интерфейс для доступа
к изображениям и применения фильтров. Различные производные классы определяют
конкретные типы изображений: gml::SimpleImage, gml::IntelImage, gml::GDIImage
В модуле определен набор фильтров: размывание изображений, преобразование
цветовых систем, изменение размера и т.п. Изображение можно загружать
и сохранять в различных форматах: BMP, JPEG, PNG и т.д.
Net
В модуле Net на данные момент определен единственный класс
gml::Socket -- "обертка" стандартного сетевого API
Utils3D
В этом модуле находятся классы, используемые для работы с 3D-графикой
без привязки к определенному низкоуровневому API (OpenGL, DirectX)
- gml::Camera и gml::Viewport
- gml::Browser -- для навигации по 3D сцене
- gml::FrameCounter позволяет считать средний FPS
- другие полезные утилиты
UtilsGL
Модуль UtilsGL содержит утилиты для OpenGL:
- Работа с расширениями OpenGL (из NVidia SDK)
- Простое создание и управление контекстом OpenGL в Win32 (gml::GLRC)
Библиотека разрабатывалась как независимая от компилятора и платформы
(хотя на данный момент подразумевается платформа Win32). Библиотека
не использует ни MFC, ни VCL ни других популярных API, за исключением
стандартной библиотеки C++ и Win32 API.
Исходные коды и лицензия
Исходные коды библиотеки полностью открыты при условии упоминания об
использовании GMlib (дополнительно см.
README).
Помощь в разработке активно приветствуется.