を使用して円の配置を構築しようとしていExact_circular_kernel_2
ます。Circle をアレンジメントに挿入すると、セグメンテーション エラーが発生します。
これは私のコードです:
CGAL::Circle_2< CGAL::Exact_circular_kernel_2 > circle1( CGAL::Point_2< CGAL::Exact_circular_kernel_2 >(1,1), 2 );
CGAL::Exact_circular_kernel_2::Circle_2 circle2 = circle1;
CGAL::Circular_arc_2< CGAL::Exact_circular_kernel_2 > arc( circle2 );
CGAL::Arr_circular_line_arc_traits_2< CGAL::Exact_circular_kernel_2 >::Curve_2 curve = arc;
CGAL::Arrangement_2< CGAL::Arr_circular_line_arc_traits_2< CGAL::Exact_circular_kernel_2 > > myArrangement;
cout<<curve<<endl;
cout<<myArrangement.is_valid()<<endl;
insert ( myArrangement, curve );
cout<<"done"<<endl;
circle1
コードは警告なしでコンパイルされ、3 行目で使用するかどうかは関係ありませんcircle2
。結果は同じです。
プログラムは、セグメンテーション違反が発生する前に次を出力します。
1/1 1/1 2/1 1 0 1/1 -1/1 2/1 1 1/1 0 1/1 -1/1 2/1 1 1/1
1
したがって、 と の値の値は有効myArrangement
でcurve
あるように見えます。
私が間違っていることはありますか?
別のカーネルを使用できることは承知していますが、異なるカーネルのパフォーマンスを比較したいので、このカーネルを使用しないことは実際の解決策にはなりません。