Location : Home > Languages > Perl > Package
Title : Math::Geometry::Planar::GPC::Polygon
Toolbox Logo

名称

 Math::Geometry::Planar::GPC::Polygon - gpc ライブラリへのオブジェクト指向ラッパ


状態

 Perl 5.6.1 及び 5.8.3 では稼動した。
 ユーザの利用はいろいろあるだろう(無保証を見よ)。


著者

 Eric L. Wilhelm
 ewilhelm at sbcglobal dot net
 http://pages.sbcglobal.net/mycroft/


著作権

 Copyright 2004 Eric L. Wilhelm


ライセンス

 本モジュール及び C のソースコード(functions.c)は Perl 本体と同等の条件で配布されている。詳細は Perl ソースパッケージを見よ。
 ユーザは以下のライセンスのうちの1つの下で本ソフトウェアを使用できる。

  1. GNU General Public License (http://www.gnu.org/copyleft/gpl.html で入手可能)
  2. Artistic License (http://www.perl.com/pub/language/misc/Artistic.html で入手可能)

 General Polygon Clipping library (gpc.c と gpc.h)は「非商用においてのみフリー」として配布されている。詳しくは gpc.c を見よ。これらのファイルのコピーは本ディストリビューションに含まれているがこれは厳密に便利さのためだけである。しかし、YOU ARE RESPONSIBLE FOR ADHERING TO BOTH THE GPC ライセンス及び本モジュールのライセンス双方を遵守する責任はユーザ自身にある。 C ライブラリは Alan Murta に権限があることに留意せよ。

 最新のバージョンについては GPC ホームページ http://www.cs.man.ac.uk/aig/staff/alan/software/ で確認することができる。


移植性

 CPAN のテスタ結果によると本モジュールは i386 と solaris アーキテクチャ上でコンパイルに成功している。おそらく WIN32 上で 0.04 以降なら稼動するだろう。非 Linux マシンは持っていないので、パッチを送ってきて欲しい。


無保証

 本コードは完全に無保証である。


変更履歴

0.01 - 最初のリリース。
0.02 - API ドキュメントを追加
0.03 - アロケーションエラーを修正。 おそらく WIN32 コンパイル問題も修正?
0.04 - WIN32 コンパイル問題を修正
0.05 - ライセンス宣言を修正。


コンストラクタ

new

 伝統的なコンストラクタであり、C構造の下での括弧つき参照を返す。

use Math::Geometry::Planar::GPC::Polygon;
my $gpc = Math::Geometry::Planar::GPC::Polygon->new();

new_gpc

 オプションでインポートされたコンストラクタで、タイプしたくない人達用。

use Math::Geometry::Planar::GPC::Polygon qw(new_gpc);
my $gpc = new_gpc();

境界関数

 これらはインラインCコードにより提供された関数である。詳細はソース内の functions.c を見よ。

from_file

 ユーザの gpc オブジェクトにファイルから呼び出す。詳しくは GPC library ドキュメントを見よ。

$gpc->from_file($filename, $want_hole);

to_file

 ファイルに書き出す。

$gpc->to_file($filename, $want_hole);

clip_to

 $gpc オブジェクトを $othergpc オブジェクトにクリップする。$action は以下のようなもの。
INTERSECT
DIFFERENCE
UNION

$gpc->clip_to($othergpc, $action);

 注意:インタフェースは変更が必要かも知れない。

add_polygon

 gpc オブジェクトにポリゴンを追加する。@points はポリゴンの点を記述する配列参照のリストである。$hole は 1 または 0 である(0 は穴に加えてはならない)。

$gpc->add_polygon(\@points, $hole);

get_polygons

 gpc オブジェクトからポリゴンを取得する。穴があるか否かをどのように知るかはわからない。@pgons は参照のリストに対する参照のリストである。

@pgons = $gpc->get_polygons();

ヘルパ関数

 Pure-perl 実装を以下に書き下す。

Toolbox Logo
Updated : 2008/08/15