Visual Computing Library
Loading...
Searching...
No Matches
Core Data Structures

List of the Core Data Structures of VCLib. More...

Classes

class  vcl::Array< T, N >
 The Array class is a dynamically allocated N-dimensional array stored in RowWise mode. More...
 
class  vcl::BitSet< T >
 The BitSet class allows to treat an integral type as an array of booleans of a guaranteed size. More...
 
class  vcl::BitProxy< T >
 The BitProxy class allows to access to a bool reference from a bit saved in a mask, and then allow assignment. More...
 
class  vcl::Box< PointT >
 A class representing a box in N-dimensional space. More...
 
class  vcl::Color
 The Color class represents a 32 bit color. More...
 
class  vcl::Image
 The Image class stores an Image in 4 bytes RGBA format. More...
 
class  vcl::Plane< Scalar, NORM >
 The Plane class represent a 2D plane in 3D space. More...
 
class  vcl::Point< Scalar, N >
 The Point class represents an N-dimensional point containing N scalar values. More...
 
class  vcl::Polygon< PointT >
 The Polygon class represents a polygon in a N-dimensional Euclidean space. More...
 
class  vcl::PrincipalCurvature< Scalar >
 The PrincipalCurvature class stores the principal curvature directions and values at a point on a 3D surface. More...
 
class  vcl::Quaternion< Scalar >
 Quaternion class. More...
 
class  vcl::Segment< PointT >
 A class representing a line segment in n-dimensional space. The class is parameterized by a PointConcept, which must provide the DIM constant and the [] operator for accessing the point coordinates. More...
 
class  vcl::TexCoord< Scalar >
 The TexCoord class represents a 2-dimensional texture coordinate containing two scalar values. More...
 
class  vcl::TexCoordIndexed< Scalar >
 The TexCoordIndexed class represents a texture coordinate with an index. More...
 
class  vcl::TriangleWrapper< PointT >
 The TriangleWrapper class is a wrapper around a N-Dimensional triangle. More...
 
class  vcl::PointerVector< T, N >
 The PointerVector class is a utility container that stores a sequence of pointers that preserve their constness when the container is constant. More...
 
class  vcl::PolymorphicObjectVector< T, N >
 The PolymorphicObjectVector class is a container that stores a collection of polymorphic objects, having a common base class T. More...
 
class  vcl::Vector< T, N >
 The Vector class is a generic container of objects of type T, that could have fixed or dynamic size, depending on the templated size N. More...
 

Typedefs

template<typename Scalar >
using vcl::Array2 = Array< Scalar, 2 >
 A convenience alias for a 2-dimensional Array.
 
template<typename Scalar >
using vcl::Array3 = Array< Scalar, 3 >
 A convenience alias for a 3-dimensional Array.
 
template<typename Scalar >
using vcl::Array4 = Array< Scalar, 4 >
 A convenience alias for a 4-dimensional Array.
 
using vcl::BitSet8 = BitSet< char >
 BitSet8 is a BitSet of 8 bits.
 
using vcl::BitSet16 = BitSet< short >
 BitSet16 is a BitSet of 16 bits.
 
using vcl::BitSet32 = BitSet< int >
 BitSet32 is a BitSet of 32 bits.
 
using vcl::BitSet64 = BitSet< std::size_t >
 BitSet64 is a BitSet of 64 bits.
 
template<typename Scalar >
using vcl::Point2 = Point< Scalar, 2 >
 A convenience alias for a 2-dimensional Point.
 
using vcl::Point2i = Point2< int >
 A convenience alias for a 2-dimensional Point with integer components.
 
using vcl::Point2f = Point2< float >
 A convenience alias for a 2-dimensional Point with floating-point components.
 
using vcl::Point2d = Point2< double >
 A convenience alias for a 2-dimensional Point with double-precision floating-point components.
 
template<typename Scalar >
using vcl::Point3 = Point< Scalar, 3 >
 A convenience alias for a 3-dimensional Point.
 
using vcl::Point3i = Point3< int >
 A convenience alias for a 3-dimensional Point with integer components.
 
using vcl::Point3f = Point3< float >
 A convenience alias for a 3-dimensional Point with floating-point components.
 
using vcl::Point3d = Point3< double >
 A convenience alias for a 3-dimensional Point with double-precision floating-point components.
 
template<typename Scalar >
using vcl::Point4 = Point< Scalar, 4 >
 A convenience alias for a 4-dimensional Point.
 
using vcl::Point4i = Point4< int >
 A convenience alias for a 4-dimensional Point with integer components.
 
using vcl::Point4f = Point4< float >
 A convenience alias for a 4-dimensional Point with floating-point components.
 
using vcl::Point4d = Point4< double >
 A convenience alias for a 4-dimensional Point with double-precision floating-point components.
 
template<typename Scalar >
using vcl::Polygon2 = Polygon< Point2< Scalar > >
 A convenience alias for a 2D polygon.
 
using vcl::Polygon2f = Polygon< Point2f >
 A convenience alias for a 2D polygon with single precision floating point coordinates.
 
using vcl::Polygon2d = Polygon< Point2d >
 A convenience alias for a 2D polygon with double precision floating point coordinates.
 
template<typename Scalar >
using vcl::Polygon3 = Polygon< Point3< Scalar > >
 A convenience alias for a 3D polygon.
 
using vcl::Polygon3f = Polygon< Point3f >
 A convenience alias for a 3D polygon with single precision floating point coordinates.
 
using vcl::Polygon3d = Polygon< Point3d >
 A convenience alias for a 3D polygon with double precision floating point coordinates.
 
using vcl::Quaternionf = Quaternion< float >
 A convenience alias for Quaternion with floating-point components.
 
using vcl::Quaterniond = Quaternion< double >
 A convenience alias for Quaternion with double-precision floating-point components.
 

Functions

template<MatrixConcept MatrixType>
vcl::MatrixStorageType vcl::matrixStorageType ()
 Get the storage type of a matrix.
 

Detailed Description

List of the Core Data Structures of VCLib.

In this module, you can find the core data structures of VCLib, such as simple geometric primitives, like points, vectors, and matrices, as well as more complex data structures, like images, textures, and bounding boxes.

You can access all the algorithms of VCLib by including #include <vclib/space/core.h>

Typedef Documentation

◆ Array2

template<typename Scalar >
using vcl::Array2 = typedef Array<Scalar, 2>

A convenience alias for a 2-dimensional Array.

It is an alias is a shorthand for a Array class template specialization with a scalar type of Scalar and two dimensions.

Template Parameters
ScalarThe scalar type of the array components.

◆ Array3

template<typename Scalar >
using vcl::Array3 = typedef Array<Scalar, 3>

A convenience alias for a 3-dimensional Array.

It is an alias is a shorthand for a Array class template specialization with a scalar type of Scalar and three dimensions.

Template Parameters
ScalarThe scalar type of the array components.

◆ Array4

template<typename Scalar >
using vcl::Array4 = typedef Array<Scalar, 4>

A convenience alias for a 4-dimensional Array.

It is an alias is a shorthand for a Array class template specialization with a scalar type of Scalar and four dimensions.

Template Parameters
ScalarThe scalar type of the array components.

◆ Point2

template<typename Scalar >
using vcl::Point2 = typedef Point<Scalar, 2>

A convenience alias for a 2-dimensional Point.

The Point2 alias is a shorthand for a Point class template specialization with a scalar type of Scalar and two dimensions. It is implemented as an alias template for the Point class template.

Template Parameters
ScalarThe scalar type of the point components.

◆ Point2d

A convenience alias for a 2-dimensional Point with double-precision floating-point components.

The Point2d alias is a shorthand for a Point class template specialization with double-precision floating-point components and two dimensions. It is implemented as an alias template for the Point2 alias template.

◆ Point2f

A convenience alias for a 2-dimensional Point with floating-point components.

The Point2f alias is a shorthand for a Point class template specialization with floating-point components and two dimensions. It is implemented as an alias template for the Point2 alias template.

◆ Point2i

A convenience alias for a 2-dimensional Point with integer components.

The Point2i alias is a shorthand for a Point class template specialization with integer components and two dimensions. It is implemented as an alias template for the Point2 alias template.

◆ Point3

template<typename Scalar >
using vcl::Point3 = typedef Point<Scalar, 3>

A convenience alias for a 3-dimensional Point.

The Point3 alias is a shorthand for a Point class template specialization with a scalar type of Scalar and three dimensions. It is implemented as an alias template for the Point class template.

Template Parameters
ScalarThe scalar type of the point components.

◆ Point3d

A convenience alias for a 3-dimensional Point with double-precision floating-point components.

The Point3d alias is a shorthand for a Point class template specialization with double-precision floating-point components and three dimensions. It is implemented as an alias template for the Point3 alias template.

◆ Point3f

A convenience alias for a 3-dimensional Point with floating-point components.

The Point3f alias is a shorthand for a Point class template specialization with floating-point components and three dimensions. It is implemented as an alias template for the Point3 alias template.

◆ Point3i

A convenience alias for a 3-dimensional Point with integer components.

The Point3i alias is a shorthand for a Point class template specialization with integer components and three dimensions. It is implemented as an alias template for the Point3 alias template.

◆ Point4

template<typename Scalar >
using vcl::Point4 = typedef Point<Scalar, 4>

A convenience alias for a 4-dimensional Point.

The Point4 alias is a shorthand for a Point class template specialization with a scalar type of Scalar and four dimensions. It is implemented as an alias template for the Point class template.

Template Parameters
ScalarThe scalar type of the point components.

◆ Point4d

A convenience alias for a 4-dimensional Point with double-precision floating-point components.

The Point4d alias is a shorthand for a Point class template specialization with double-precision floating-point components and four dimensions. It is implemented as an alias template for the Point4 alias template.

◆ Point4f

A convenience alias for a 4-dimensional Point with floating-point components.

The Point4f alias is a shorthand for a Point class template specialization with floating-point components and four dimensions. It is implemented as an alias template for the Point4 alias template.

◆ Point4i

A convenience alias for a 4-dimensional Point with integer components.

The Point4i alias is a shorthand for a Point class template specialization with integer components and four dimensions. It is implemented as an alias template for the Point4 alias template.

◆ Polygon2

template<typename Scalar >
using vcl::Polygon2 = typedef Polygon<Point2<Scalar> >

A convenience alias for a 2D polygon.

Template Parameters
Scalarthe scalar type used to represent the coordinates of the points that define the polygon.

◆ Polygon3

template<typename Scalar >
using vcl::Polygon3 = typedef Polygon<Point3<Scalar> >

A convenience alias for a 3D polygon.

Template Parameters
Scalarthe scalar type used to represent the coordinates of the points that define the polygon.

◆ Quaterniond

A convenience alias for Quaternion with double-precision floating-point components.

The Quaterniond alias is a shorthand for a Quaternion class template specialization with double-precision floating-point components.

◆ Quaternionf

A convenience alias for Quaternion with floating-point components.

The Quaternionf alias is a shorthand for a Quaternion class template specialization with floating-point components.

Function Documentation

◆ matrixStorageType()

template<MatrixConcept MatrixType>
vcl::MatrixStorageType vcl::matrixStorageType ( )

Get the storage type of a matrix.

Template Parameters
MatrixTypeThe type of the matrix, it must satisfy the MatrixConcept.
Returns
The storage type of the matrix.