Third Party Libraries/ru

Обзор
Эти библиотеки не изменились в проекте FreeCAD. Они используются, в основном без изменений как динамические библиотеки (*.so или *.dll). Если их необходимо их изменение или нужен класс оболочка(wrapper class), тогда код оболочки или измененный код библиотеки помещается в пакет базовой установки FreeCAD. The used libraries are:

Рассмотрим используемый Набор библиотек вместо загрузки и установки всего по вашему усмотрению.

Python
Версия: 2.5 или выше

Лицензия: Python 2.5 license

Вы можете использовать исходники или бинарники из http://www.python.org/ или в качестве альтернативы использовать ActiveState Python от http://www.activestate.com/ хотя немножко сложно получить отладочные библиотеки от ActiveState.

Описание
Python является основным языком сценариев и используются во всем приложении. Например:


 * Реализация сценариев для тестирования на:
 * утечки памяти
 * обеспечить предоставление функциональности после изменений
 * проверки после сборки
 * испытаний тестового покрытия
 * Макросы и запись макросов
 * Реализация логики приложения для стандартных пакетов
 * Реализация цельных Инструментариев
 * Динамическая загрузка пакетов
 * Реализация правил проектирования (Инженерия знаний)
 * Выполнение некоторых модных Internet фишек, как групповая работа и PDM
 * И так далее ...

Особенно используется динамическая загрузка пакетов в Python, для загрузки во время выполнения дополнительной функциональности или инструментария, необходимых для актуальных задач. Для ближайшего рассмотрения Python см: www.python.org Вы можете спросить, почему Python? Есть несколько причин: До сих пор я использовал различные языки сценариев в моей профессиональной жизни: Python более OO(Объектно Ориентирован) чем Perl и Tcl, его код не беспорядочен как в Perl и VB. Java не является языком сценариев, в первую очередь потому что её трудно (или невозможно) встроить. Python отлично задокументирован, его просто встраивать и расширять. Он также хорошо протестирован и обладает сильным влиянием в open source сообществе.
 * Perl
 * Tcl/Tk
 * VB
 * Java

Благодарности
Благодарим Guido van Rossum и множество людей что сделали Python таким успешным!

OpenCasCade
Версия: 5.2 и выше

Лицензия: OCTPL

OCC это полнофункциональное CAD Ядро. Первоначально, оно разрабатывалось французской компанией Matra Datavision для приложений Strim (Styler) и Euclid Quantum позже его код открыли. Это действительно огромная библиотека сделавшая создание свободного CAD приложения - возможным, в первую очередь, предоставив некоторые пакеты которые трудно или невозможно было реализовать как проект с открытым исходным кодом:
 * Полностью STEP совместимое геометрическое ядро
 * Топологические модели данных и все необходимые функции для работы с ними (отрезать, слить, вытянуть, и так далее. . . )
 * Стандартные процессоры Импорта- / Экспорта в STEP, IGES, VRML
 * 3D и 2D просмотрщики с поддержкой выбора(выделения)
 * Структуры данных документа и проекта с поддержкой сохранения и восстановления, внешне связанных документов, перечитывания истории проектирования (параметрическое моделирование) и средство для загрузки новых типов данных как динамически расширяемых пакетов

Чтобы узнать больше о OpenCasCade посмотрите странице OpenCasCade или http://www.opencascade.org.

Qt
Версия: 4.1.x или выше

Лицензия: GPL v2.0/v3.0 или коммерческая (для Версии 4.5 он также LPGL v2.1)

Я не думаю, что нужно много рассказывать о Qt. Это один из наиболее часто используемых инструментальных средств графического интерфейса в проектах с открытым исходным кодом.Для меня главным в использовании Qt является Qt Designer, и возможность загрузить целый диалоговых окон, как (XML) ресурсов и включение специализированных виджетов. В CAx приложениях взаимодействие с пользователем и диалоговые окна на сегодняшний день являются большей частью кода и хорошее проектирование диалогов очень важно для простого расширения FreeCAD новой функциональностью. Дополнительную информацию и очень качественную online документацию вы можете найти на http://www.qtsoftware.com.

Coin3D
Версия: 2.0 и выше

Лицензия: GPL v2.0 или коммерческая

Coin это высокоуровневая библиотека 3D графики с C++ API. Coin использует структуры данных в виде древа сцен для отображения графики в реальном времени, подходит для большинства в основном научных и инженерных приложений визуализации.

Coin портирован на широкий спектр платформ: любая UNIX / Linux / *BSD платформа, все операционные системы Microsoft Windows, и Mac OS X.

Coin построен на стандарте-индустрии OpenGL библиотеки в режиме немедленного рендеринга, и добавляет абстракции для высокоуровневых примитивов, обеспечивает 3D интерактивность, очень повышает удобство и производительность программиста, и содержит много сложных функций оптимизации для быстрого рендеринга, которые являются прозрачными для прикладного программиста.

Coin основан на SGI Open Inventor API. Open Inventor, для тех кто не знаком с ним, уже давно стал стандартом де-факто графической билиотеки для 3D визуализации и програмного обеспечения для визуального моделирования в научном и инженерном сообществе. Она доказала это в теченнии 10 лет, как зрелый вклад в качестве основного строительного блока в тысячи крупномасштабных инженерных приложений по всему миру.

Мы будем использовать OpenInventor как 3D просмотрщик в FreeCAD потому что OpenCasCade просмотрщик (AIS и Graphics3D) имеют серьёзные ограничения и узкие места в производительности, особенно когда речь заходит о крупномасштабном инженерном отображении. Всякие вещи, вроде текстур или объемного рендеринга на самом деле не поддерживаются, и так далее ....

Так Версия 2.0 Coin использует различные модели лицензирования. Это больше не LGPL. Они используют GPL для проектов с открытым исходным кодом и коммерческую лицензию для закрытого исходного кода. Это означает, что если вы хотите продать вашу работу основанную на FreeCAD (модули расширений) вам нужно приобрести лицензию на Coin!

SoQt
Версия: 1.2.0 или выше

Лицензия: GPL v2.0 или коммерческая

SoQt это Inventor привязки к Qt Gui Toolkit. К сожалению это больше не LGPL так что мы должны удалить её из кодовой базы FreeCAD и связать её как библиотеку. Он имеет ту же модель лицензирования, что и coin. И вы должны скомпилировать его с вашей версией Qt.

Xerces-C++
Версия: 2.7.0 или выше

Лицензия: Apache Software License Версия 2.0

Xerces-C++ синтаксический анализатор XML написанный на портируемом подмножестве C++. Xerces-C++ позволяет вашему приложению легко читать и записывать XML данные. Динамическая библиотека предназначена для анализа, генерации, обработки и проверки XML документов.

Xerces-C++ привержен XML 1.0 рекомендациям и многим связанным с ним стандартам (смотри Будущие возможности).

Анализатор обеспечивает высокую производительность, модульность и масштабируемость. Исходный код, образцы и API документация предоставляются с анализатором. Приняты меры, для переносимости, чтобы сделать минимальным использованием шаблонов, нет RTTI, и минимальное использование # ifdefs.

Анализатор используется для сохранения и восстановления параметров в FreeCAD.

Zlib
Версия: 1.x.x

Лицензия: zlib License

zlib разработан для свободного, универсального, юридически неизрасходованного - то есть, не отнесенного к какому-либо патенту - библиотека сжатия данных без потерь для использования практически на любом оборудовании и операционной системе. zlib формат данных самопереносимый между платформами. В отличие от метода сжатия LZW используемого в Unix compress(1) и GIF формата изображений, метод сжатия используемый в настоящее время в zlib по существу, никогда не расширяет данные. (LZW может удвоить или утроить размер файла в крайних случаях.) память требуемая zlib не зависит от входных данных и может быть уменьшена, при необходимости, в таких расходах на сжатие.

Boost
Версия: 1.33.x

Лицензия: Boost Software License - Версия 1.0

Boost C++ библиотеки это коллекция рецензируемых библиотек, с открытым исходным кодом, они расширяют функциональные возможности C++. Библиотеки лицензируется на условиях Boost Software License, которая позволяет использовать Boost с проектами как с открытым так и с закрытым исходным кодом. Многие основатели Boost входят в комитет стандартизации C++ и несколько Boost библиотек приняты для включения в Technical Report 1 о C++0x.

Библиотеки направлены на широкий круг пользователей C++ и прикладных областей. Они варьируются от универсальных библиотек вроде SmartPtr, до ОС Абстракций как FileSystem, библиотеки направленные в первую очередь на разработчиков библиотек и продвинутых C++ пользователей, таких как MPL.

В целях обеспечения эффективности и гибкости, Boost широко использует шаблоны. Boost был источником обширной работы и исследований в обобщенном программировании и мета-программирование на С++.

Смотри: http://www.boost.org/ для подробностей.

LibPack
LibPack это удобный пакет со всеми вашими библиотеками упакованными вместе. Он в настоящее время доступен для платформы Windows на странице Загрузок ! Если вы работаете в Linux вам не нужен LibPack, вы должны использовать репозитории пакетов вашего дистрибутива Linux..

FreeCADLibs7.x Изменения

 * Используется QT 4.5.x и Coin 3.1.x
 * добавлена Eigen библиотека шаблонов для Robot
 * SMESH экспериментально