Skip to content

molsimmsu/3mview

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Содержание

  1. Установка
  2. Разработка модулей
  3. Организационные вопросы
  4. Приложение 1: Методики тестирования
  5. Приложение 2: Документация к Voreen

Установка

Создание рабочей копии

git clone https://github.com/molsimmsu/3mview.git

Установка пакетов

Проверяем наличие компилятора gcc версии 4.6 и выше. (версия 4.4 не работает)

Ubuntu:

sudo apt-get install libspnav-dev libqt4-dev libcgal-dev cmake libeigen2-dev libboost-all-dev libpng12-dev libfftw3-dev libtiff5-dev python-sip-dev python-qt4-dev libdevil-dev libglew-dev

Скачиваем OpenBabel и распаковываем его в 3mview/openbabel-2.3.2

Устанавливаем OpenBabel

cmake .
make -j4

Компилируем Voreen

cmake . -DVRN_BUILD_VOREENVE=ON -DVRN_BUILD_VOREENTOOL=OFF -DVRN_MODULE_MOLECULE=ON -DVRN_MODULE_STEREO=ON -DVRN_MODULE_GEOMETRY=ON -DVRN_MODULE_ELECTRONDENSITY=ON -DVRN_MODULE_FORMCHARACTERISTICS=ON -DVRN_MODULE_HOMOLOGY=ON -DVRN_MODULE_SYSTEMMODULES=ON

make -j4

Если при компиляции выданы ошибки, связанные с Boost

Скачиваем Boost 1.52.0

Устанавливаем Boost в каталог 3mview/boost-1.52.0

cd path/to/boost_1_52_0
./bootstrap.sh --prefix=path_to_somewhere/3mview/boost-1.52.0
./b2 install

Компилируем Voreen с флагом -DUSE_CUSTOM_BOOST=ON

cmake . -DUSE_CUSTOM_BOOST=ON -DVRN_BUILD_VOREENVE=ON -DVRN_BUILD_VOREENTOOL=OFF -DVRN_MODULE_MOLECULE=ON -DVRN_MODULE_STEREO=ON -DVRN_MODULE_GEOMETRY=ON -DVRN_MODULE_ELECTRONDENSITY=ON -DVRN_MODULE_FORMCHARACTERISTICS=ON -DVRN_MODULE_HOMOLOGY=ON -DVRN_MODULE_SYSTEMMODULES=ON

make -j4

Запуск программы

VoreenVE:

./voreenve.sh

3mview:

./3mview.sh

Установка hex

Скачиваем необходимый архив

http://hex.loria.fr/dist/index.php

Распаковываем лишь один файл /bin/hex_setup.bin в директорию с архивом

Запускаем ./hex_setup.bin

Разработка модулей

Создание модуля

  1. Знакомимся в принципами Voreen. Полезно также посмотреть подробное описание.
  2. Выполняем шаги, описанные в Adding a Module Tutorial
  3. Убираем из примера все то, что относится к GLSL (каталог glsl и функцию addShaderPath())

Создание процессоров

  1. Берем за основу базовый процессор
  2. Вносим в него следующие изменения:
    • Директивы препроцессора #ifndef и #define в заголовочном файле класса должны содержать уникальное имя процессора
    • Заменяем везде имя исходного класса с помощью автоматической замены (с учетом регистра)
    • Заполняем возвращаемые значения для функций getCategory() и setDescriptions()
    • Добавляем заголовочные файлы используемых свойств, портов, структур данных
    • Вводим порты и свойства как private-переменные. Соглашение: имена private-переменных оканчиваются на символ "_"
    • Инициализируем и регистрируем порты и свойства в конструкторе
  3. Регистрируем процессор в файле модуля (см. инструкцию по созданию модуля)

Создание структур данных

  1. В каталоге модуля создаем подкаталог datastructures
  2. Размещаем в нем файлы стуктур. Примеры
  3. Если требуется передача структуры данных между процессорами, создаем порт
  4. Добавляем в файл <modulename>.cmake пути к созданным файлам

Создание модулей чтения карт ЭП

  1. В каталоге модуля создаем подкаталог io
  2. Берем за образец модуль чтения формата MRC
  3. Регистрируем модуль чтения в конструкторе основного класса модуля с помощью функции registerVolumeReader(new MyVolumeReader());
  4. Добавляем в файл <modulename>.cmake пути к созданным файлам

Создание properties

  1. В каталоге модуля создаем подкаталог properties
  2. В каталоге properties создаем Property: наследуем от TemplateProperty
  3. В каталоге модуля создаем подкаталог qt
  4. В каталоге qt создаем QPropertyWidget: наследуем от QPropertyWidget
  5. В каталоге qt создаем WidgetFactory: наследуем от PropertyWidgetFactory
  6. В каталоге модуля cоздаем ModuleQt: наследуем от VoreenModuleQt.
  7. Регистрируем WidgetFactory в конструкторе ModuleQt.
  8. Добавляем в файл <modulename>.cmake пути к созданным файлам.
    • Классы, использующие Qt, помещаем в специальные списки (как в core.cmake)

Организационные вопросы

Ссылки по GitHub

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published