有没有办法创建一个 Traits class 来参数化 Envelope_diagram_2,其中 X 单调曲线可以是线段、射线或二次曲线?
Is there a way to create a Traits class to parametrise Envelope_diagram_2 where the X monotone curves can be segments, rays or conic curves?
我正在使用 CGAL-4.9.1 的 Envelope_3
包,我需要计算一个上包络,其中生成的包络图 (Envelope_diagram_2<EnvTraits>
) 可能具有三种不同类型的边缘:
- 段
- 光线
- 抛物线弧(圆锥弧)
Envelope_Traits_3
提供的三个模型还不够
因此,我需要创建自己的 EnvTraits
(必须是概念 Envelope_Traits_3
的模型)。
现在,我做了一个类似于已经提供的 Env_sphere_traits_3<ConicTraits>
模型的东西,我可以使用它来处理抛物线弧和线段(我只使用直弧)。
问题的出现是因为我还需要能够使用Rays
。我怎么能这样做?是否有我可以扩展的特征 class(就像我现在使用 Arr_conic_traits_2
所做的那样)提供 X_monotone_curve_2
可以是我需要的三种类型?
我找到了Arr_polycurve_traits_2
class,希望它可以让不同类型的曲线存储为子曲线,但实际上它只允许存储同类的多曲线(线性、贝塞尔曲线、圆锥曲线、圆形...)。
您需要的是 EnvelopeTraits_3
概念和 ArrangementOpenBoundaryTraits_2
概念的模型。在“2D Arrangements”包提供的所有特征 类 中,只有模板 Arr_linear_traits_2
、Arr_rational_function_traits_2
和 Arr_algebraic_segment_traits_2
的实例是后来概念的模型。
我建议你开发类似 Env_your_object_traits_3<AlgebraicTraits_2>
的东西,其中模板参数 AlgebraicTraits_2
可以替换为 Arr_algebraic_segment_traits_2
.
的实例
Efi
我正在使用 CGAL-4.9.1 的 Envelope_3
包,我需要计算一个上包络,其中生成的包络图 (Envelope_diagram_2<EnvTraits>
) 可能具有三种不同类型的边缘:
- 段
- 光线
- 抛物线弧(圆锥弧)
Envelope_Traits_3
提供的三个模型还不够
因此,我需要创建自己的 EnvTraits
(必须是概念 Envelope_Traits_3
的模型)。
现在,我做了一个类似于已经提供的 Env_sphere_traits_3<ConicTraits>
模型的东西,我可以使用它来处理抛物线弧和线段(我只使用直弧)。
问题的出现是因为我还需要能够使用Rays
。我怎么能这样做?是否有我可以扩展的特征 class(就像我现在使用 Arr_conic_traits_2
所做的那样)提供 X_monotone_curve_2
可以是我需要的三种类型?
我找到了Arr_polycurve_traits_2
class,希望它可以让不同类型的曲线存储为子曲线,但实际上它只允许存储同类的多曲线(线性、贝塞尔曲线、圆锥曲线、圆形...)。
您需要的是 EnvelopeTraits_3
概念和 ArrangementOpenBoundaryTraits_2
概念的模型。在“2D Arrangements”包提供的所有特征 类 中,只有模板 Arr_linear_traits_2
、Arr_rational_function_traits_2
和 Arr_algebraic_segment_traits_2
的实例是后来概念的模型。
我建议你开发类似 Env_your_object_traits_3<AlgebraicTraits_2>
的东西,其中模板参数 AlgebraicTraits_2
可以替换为 Arr_algebraic_segment_traits_2
.
Efi