English
Лаборатория компьютерной графики
Rus > Файлы > GMlib
[Главная]
[О нас]
[Наука]
[Публикации]
[Семинары]
[Библиотека]
[Файлы]
[Ссылки]
[Форум]
 
Hosted sites
[Курсы]
[Журнал]
[Графикон]
[Сжатие]
[Графор]
 
Поиск
детальный поиск
 
Rambler's Top100
GMlib: Graphics & Media Lab Common Source Library

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). Помощь в разработке активно приветствуется.
Graphics & Media lab (webmaster@graphics.cs.msu.su)