2. CGAL总体设计 The overall design

设计目标,选择 C++ 模板这种通用的编程范式。CGAL总体设计有三个主要层面构成,算法和数据结构层(the layer of algorithms and data structures),内核层(the kernel layer),算数代数层(the arithmetic and algebra layer)。2. CGAL总体设计 The overall designCGAL中的算法和数据结构由它们使用的对象类型和操作参数化。它们可以处理满足特定语法和语义需求的任何具体模板参数。为了避免长参数列表,参数类型被收集到一个单独的类中,称为***CGAL中的traits类***(Chapter traits Classes)。概念是由一组需求定义的类型的抽象。如果任何具体类型满足与概念相对应的一组需求,则称其为概念的模型。使用这个术语,我们可以说CGAL算法或数据结构带有一个traits概念,并且可以与这个概念的任何具体traits模型一起使用。