Inkscapeのコードを読む 使用library一覧

現在、Inkscapeのコードを読もうと格闘中です。
今回は、ざっくりとInkscapeで使用しているライブラリの概要と一覧を作ったので、貼っておきます。



まず間違いなく使用ライブラリを網羅していないので、これがすべてではありませんが。
とりあえずInkscapeのソース中に直接取り込まれていて、目に付いたものを記載しています。
幾何学関連で実績のあるオープンソース・ライブラリの良い一覧くらいにはなるかと。

Inkscapeソースコードの取得

まずはInkscapeのコードを取得しましょう。
公式WikiのUsing a centralized (SVN-like) workflowを読みましょう。
http://wiki.inkscape.org/wiki/index.php/Working_with_Bazaar#SVN-style_checkout
ざっくり解説すると、Inkscapeはリポジトリにbazzer(bzr)を使っていて、ソースコードは以下のコマンドで取得できます。
bzr checkout lp:inkscape
bzr update



## libavoid

License:GPL
object-avoiding connector routing for use in interactive diagram editors.
http://www.adaptagrams.org/documentation/libavoid.html

## libcola

License:MIT
constraint graph layout(制約グラフ)
http://marvl.infotech.monash.edu/webcola/
を見るとjs版のサンプル画像が見れる。
https://github.com/mjwybrow/adaptagrams
によると、libavoidなどと同じチーム(?)の制作。

## libcroco

License:LGPL
Libcroco is a standalone css2 parsing and manipulation library.
https://github.com/GNOME/libcroco
http://lfsbookja.osdn.jp/BLFS/svn.ja/general/libcroco.html

## libdepixelize

License:不明
Inkscapeではピクセル画像をベクタ化する際に使っているとのこと。
http://research.microsoft.com/en-us/um/people/kopf/pixelart/
によると、どうやらMSのプロジェクトから来ているらしい。
ソース上のREADMEによると、リポジトリからコピーしたものだから更新する場合は本家リポジトリを更新した上でコピーせよ、とのこと。

## libgdl

License: LGPL?
dock layout widget.
GTK由来と思われるドッカー(ウィンドウ内で可変サイズの領域を取る内ウィンドウ的な)ウィジェット。

## libnrtype

License: (InkScape?)
typeface rendering(cross platform glue)
http://wiki.inkscape.org/wiki/index.php/Pangoification
によると、Sodipodi時代に書かれてPangoに置き換えられていくように読める。

## libuemf

License: GPL2
reading/writing Enhanced Metafile (EMF)
and Windows Metafile (WMF) files.
https://ja.wikipedia.org/wiki/Windows_Metafile
によると、EMFはWindowsのベクトル画像フォーマットとのこと。

## libvpsc

License: LGPL
? 何をやっているのか不明。
http://www.adaptagrams.org/documentation/libvpsc.html
によると、
solving for the Variable Placement with Separation Constraints problem.(分散制約問題)を解く、とある。


## libarot

License: (InkScape?)
rasterization and geometry library
http://libregraphicsworld.org/blog/entry/rock-around-0-48-interview-with-inkscape-team
によると、rasterizationはCairoに、geometoryは2geomに置き換えられていくように読める

## 2geom

License: LGPL
http://osdn.jp/projects/sfnet_lib2geom/
によると、幾何学計算のライブラリ。(抽象的な処理を受け持ち、レンダリング(ラスタライズ?)は担当しない?)


まとめ

adaptagrams.org という方(方々?)が作ったライブラリが多い。
・いくつかのライブラリは将来的に2geomにまとめられて置き換えられていくらしい。

このブログの人気の投稿

GIMP2.8でイラストにペン入れを行う

squid3プロキシサーバの設定(Ubuntu13.10)

ubuntu13.04で無線LANが繋がらない場合の対処