/*! \ingroup PkgOptimalBoundingBoxConcepts \cgalConcept The concept `OrientedBoundingBoxTraits_3` describes the requirements of the traits class used in the function `CGAL::oriented_bounding_box()`, and in particular the need for a 3x3 matrix type. \cgalRefines{Kernel} \cgalHasModelsBegin \cgalHasModels{CGAL::Oriented_bounding_box_traits_3} \cgalHasModelsEnd */ class OrientedBoundingBoxTraits_3 { public: /// The field number type; must be a model of the concept `FieldNumberType` typedef unspecified_type FT; /// The 3D affine transformation type; the template parameter `K` must be a model of `Kernel` /// and be compatible with the type `Point_3` typedef CGAL::Aff_transformation_3 Aff_transformation_3; /// A 3x3 matrix type; model of the concept `SvdTraits::Matrix` and which supports /// matrix-matrix and scalar-matrix multiplication, as well as matrix-matrix addition typedef unspecified_type Matrix; /// A 3 dimensional vector type; model of the concept `SvdTraits::Vector` and which supports /// matrix-vector and multiplication typedef unspecified_type Vector; /// Returns the unitary matrix `Q` obtained in the QR-decomposition of the matrix `m` Matrix get_Q(const Matrix& m) const; };