\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 4.7 - 2D and 3D Linear Geometry Kernel
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
CGAL::Simple_homogeneous< RingNumberType > Class Template Reference

#include <CGAL/Simple_homogeneous.h>


A model for a Kernel using homogeneous coordinates to represent the geometric objects.

In order for Simple_homogeneous to model Euclidean geometry in \( E^2\) and/or \( E^3\), for some mathematical ring \( E\) (e.g., the integers \(\mathbb{Z}\) or the rationals \(\mathbb{Q}\)), the template parameter RingNumberType must model the mathematical ring \( E\). That is, the ring operations on this number type must compute the mathematically correct results. If the number type provided as a model for RingNumberType is only an approximation of a ring (such as the built-in type double), then the geometry provided by the kernel is only an approximation of Euclidean geometry.

Is Model Of:


In contrast to Homogeneous, no reference counting is used internally. This eases debugging, but may slow down algorithms that copy objects intensively, or slightly speed up others.

See also


typedef Quotient< RingNumberTypeFT
typedef RingNumberType RT

Member Typedef Documentation

template<typename RingNumberType >
typedef Quotient<RingNumberType> CGAL::Simple_homogeneous< RingNumberType >::FT
template<typename RingNumberType >
typedef RingNumberType CGAL::Simple_homogeneous< RingNumberType >::RT