Thea
Namespaces | Classes | Typedefs | Functions | Variables
Thea Namespace Reference

Root namespace for the Thea library. More...

Namespaces

 Algorithms
 Miscellaneous algorithms.
 
 Graphics
 Graphics functionality.
 
 Math
 Mathematical functions.
 

Classes

class  AffineTransformN
 An affine transform in N-dimensional space, where N is any positive (non-zero) integer and T is a field. More...
 
class  AffineTransformN< 2, T >
 An affine transformation in 2-space, consisting of a linear transformation (2x2 matrix) plus a translation. More...
 
class  AffineTransformN< 3, T >
 An affine transformation in 3-space, consisting of a linear transformation (3x3 matrix) plus a translation. More...
 
class  AlignedAllocator
 Allocates aligned memory blocks. More...
 
class  Application
 Access and modify global properties of the current application. More...
 
class  AtomicInt32
 An integer that may safely be used on different threads without external locking. More...
 
class  AttributedObject
 An object with an attached attribute (which must be default-constructible). More...
 
class  AxisAlignedBoxN
 An axis-aligned box in N-dimensional space, where N is any positive (non-zero) integer and T is a field. More...
 
class  AxisAlignedBoxN< 3, T >
 A 3-dimensional axis-aligned box. More...
 
struct  AxisAlignedDirection
 Coordinate axis-aligned directions upto 4D (enum class). More...
 
class  BallN
 A ball in N-space. More...
 
class  BezierN
 A Bezier curve segment in N-dimensional space, parametrized by a scalar in the range [0, 1]. More...
 
class  BinaryInputStream
 Sequential or random access input from binary files/memory. More...
 
class  BinaryOutputStream
 Sequential or random access output to binary files/memory. More...
 
class  BoundedArrayN
 An array of bounded maximum size N, stored on the stack. More...
 
class  BoundedSortedArray
 A sorted array of bounded maximum size, ordered in ascending order according to a comparator. More...
 
class  BoundedSortedArrayN
 A sorted array of bounded maximum size N, ordered in ascending order according to a comparator. More...
 
class  BoxN
 An arbitrarily oriented box, implemented as an axis-aligned box in a coordinate frame. More...
 
class  Codec
 A serialization codec. More...
 
class  Codec3ds
 Codec for reading and writing 3DS Max files. More...
 
class  Codec_UNKNOWN
 Indicates that the codec is unknown. More...
 
class  CodecAuto
 Indicates that the appropriate codec should be autodetected. More...
 
class  CodecCsv
 Codec for reading/writing matrices to/from comma-separated values (CSV) text files. More...
 
class  CodecJpeg
 JPEG image codec. More...
 
class  CodecObj
 Codec for reading and writing OBJ files. More...
 
class  CodecOff
 Codec for reading and writing OFF files. More...
 
class  CodecPly
 Codec for reading and writing Stanford PLY files. More...
 
class  ColorL
 Monochrome luminance value in [0, 1], with automatic scaling by 255 when switching between integer (ColorL8) and floating point (ColorL) formats. More...
 
class  ColorL8
 Monochrome luminance value represented as a single byte value in [0, 255], with automatic scaling by 255 when switching between integer (ColorL8) and floating point (ColorL) formats. More...
 
class  ColorRgb
 A color with three floating-point channels: red, green and blue, each in [0, 1]. More...
 
class  ColorRgb8
 A color with three byte-sized channels: red, green and blue, each in [0, 255]. More...
 
class  ColorRgba
 A color with four floating-point channels: red, green and blue, each in [0, 1]. More...
 
class  ColorRgba8
 A color with four byte-sized channels: red, green, blue and alpha, each in [0, 255]. More...
 
struct  CompareOp
 Comparison operators (enum class). More...
 
class  Cone3
 A solid 3D cone, whose base is a circular disk and apex is a point perpendicularly above the disk centre. More...
 
struct  CoordinateAxis
 Coordinate axes upto 4D (enum class). More...
 
class  CoordinateFrameN
 A coordinate frame in N-space, defined by N orthonormal vectors. More...
 
class  CoordinateFrameN< 2, T >
 A coordinate frame in 2-space, defined by two orthonormal vectors. More...
 
class  CoordinateFrameN< 3, T >
 A coordinate frame in 3-space, defined by three orthonormal vectors. More...
 
class  Crypto
 Cryptographic functions. More...
 
class  Cylinder3
 A solid 3D cylinder, traced by a circular disk whose center moves along a line segment. More...
 
struct  DistanceType
 Common distance metrics. More...
 
class  DynLib
 A dynamically loaded library. More...
 
class  DynLibManager
 Manager for dynamically loaded libraries. More...
 
struct  Endianness
 Endianness values (little-endian and big-endian) (enum class). More...
 
class  FatalError
 A fatal error class. More...
 
class  FilePath
 Operations on file paths. More...
 
class  FileSystem
 Filesystem operations. More...
 
class  HyperplaneN
 A hyperplane ((N - 1)-flat) in N-dimensional space, where N is any positive (non-zero) integer and T is a field. More...
 
class  HyperplaneN< 3, T >
 A plane (2-flat) in 3-dimensional space. More...
 
class  IAddressableMatrix
 Interface for a 2D matrix with elements that may be directly accessed via a (row, column) pair. More...
 
class  ICompressedSparseMatrix
 Interface for a 2D sparse matrix in compressed column or compressed row format. More...
 
class  IDenseMatrix
 Interface for a 2D dense matrix, assumed to be packed with no gaps or padding in a contiguous memory block. More...
 
class  IFactoryRegistry
 Interface provided to DLL's for registering rendersystem factories etc. More...
 
class  IImage
 Interface for 2D and 3D images, useful for passing images across shared library boundaries. More...
 
class  Image
 A 2D image. More...
 
class  ImageCodec
 Abstract base class for all image codecs. More...
 
class  ImageMatrix
 A wrapper class that allows a single-channel (luminance) image to be treated as an addressable matrix. More...
 
class  IMatrix
 Interface for a 2D matrix, to allow passing matrices and vectors across shared library boundaries. More...
 
class  INamedObject
 Interface for an object that has a name string. More...
 
class  IOptions
 Interface for key-value options, suitable for passing across DLL boundaries. More...
 
class  IPlugin
 Interface for a plugin that may be statically or dynamically loaded. More...
 
class  IRowOrColumnMajorMatrix
 Interface for a matrix that has either a row-major or a column-major layout. More...
 
class  IsAdjacencyGraph
 Checks if a class is a graph that, in addition to satisfying IsGraph, allows iterating over the neighbors of a vertex. More...
 
struct  IsCompatibleScalar
 Check that S is a scalar type that can participate in arithmetic operations with field type T without explicit casting. More...
 
class  IsGraph
 Checks if a class is a graph that allows iterating over all vertices. More...
 
class  ISparseMatrix
 Interface for a 2D sparse matrix. More...
 
class  LineN
 A straight line in N-dimensional space, where N is any positive (non-zero) integer and T is a field. More...
 
class  LineSegmentN
 A straight line in N-dimensional space, where N is any positive (non-zero) integer and T is a field. More...
 
class  LockedOutputStream
 A temporary object that locks an output stream on construction and unlocks it (after optionally writing a newline) on destruction. More...
 
class  MappedMatrix
 Matrix that stores elements as a (row, col) –> value map. More...
 
struct  Match
 Pattern matching flags (enum class). More...
 
class  MatrixCodec
 Abstract base class for codecs that read/write matrices to/from streams. More...
 
struct  MatrixLayout
 Matrix layouts (enum class). More...
 
class  MatrixWrapper
 Wrapper for a dense 2D matrix, implementing a pure virtual interface for passing across shared library boundaries. More...
 
class  NamedObject
 An object wrapping a name string. More...
 
class  Noncopyable
 A base class for objects that should never be copied. More...
 
struct  NullAttribute
 A completely empty attribute. More...
 
struct  NumericType
 Type of a number (enum class). More...
 
class  Options
 A set of options, specified as key-value pairs. More...
 
class  ParametricCurveN
 A parametric curve segment in N-dimensional space. More...
 
class  ParametricCurveN< 3, T >
 A parametric curve segment in 3-dimensional space. More...
 
class  ParseError
 Thrown by TextInputStream and other parsers on unexpected input. More...
 
class  PluginManager
 Manages set of installed plugins (static or dynamic). More...
 
class  Polygon2
 A polygon in 2-space. More...
 
class  Polygon3
 A polygon in 3-space. More...
 
class  Random
 Threadsafe random number generator. More...
 
class  RayIntersectableN
 Abstract base class for an object that supports ray intersection queries in N-space. More...
 
class  RayIntersectionN
 A description of the intersection point of a ray with an object. More...
 
class  RayN
 A ray in N-dimensional space, having an originating point and a direction vector (not necessarily unit length). More...
 
class  RigidTransformN
 A rigid transformation in N-space, consisting of a rotation followed by a translation. More...
 
class  RigidTransformN< 2, T >
 A rigid transformation in 2-space, consisting of a rotation followed by a translation. More...
 
class  RigidTransformN< 3, T >
 A rigid transformation in 3-space, consisting of a rotation followed by a translation. More...
 
class  ScopedLock
 A wrapper for a shared lock object that acquires the lock upon construction and releases it upon destruction. More...
 
class  Serializable
 Abstract base class for a serializable object. More...
 
class  SerializableFactory
 The interface for a factory for creating serializable objects. More...
 
class  SortedArray
 An array sorted in ascending order according to a comparator. More...
 
class  SparseMatrixWrapper
 Wrapper for a sparse 2D matrix, implementing a pure virtual interface for passing across shared library boundaries. More...
 
class  Spinlock
 A simple lock that can be shared by multiple threads for synchronization. More...
 
class  SplineN
 A spline curve segment in N-dimensional space. More...
 
class  Stopwatch
 Accurately measure durations and framerates. More...
 
class  System
 Low-level system information and profiling functions. More...
 
class  TextInputStream
 A simple style tokenizer for reading text files. More...
 
class  TextOutputStream
 Convenient formatting of ASCII text written to a file. More...
 
class  ThreadGroup
 Manages a group of threads and allows waiting for all of them to finish. More...
 
class  Token
 A token read from a TextInputStream. More...
 
class  Torus3
 A solid 3D torus, traced by a circular disk whose radius is the inner radius of the torus, and whose center moves along a larger circle whose radius is the outer radius of the torus. More...
 
class  Transformable
 An object with an associated transformation, stored separately. More...
 
class  Triangle3
 A triangle in 3-space, with precomputed properties for fast access. More...
 
class  Triangle3< TriangleLocalVertexTriple3 >
 A triangle with three vertex positions stored locally, in the class itself. More...
 
class  Triangle3Base
 Base class for a triangle in 3-space, with precomputed properties for fast access. More...
 
class  TriangleLocalVertexTriple3
 Stores the positions of a triangle's three vertices locally, and provides access to them. More...
 
class  UnionFind
 Union-find data structure. More...
 
class  VariantMatrix
 A container holding either a dense or a sparse matrix (or null). More...
 

Typedefs

typedef AffineTransformN< 2, Real > AffineTransform2
 The default affine transform class in real 2-space. More...
 
typedef AffineTransformN< 3, Real > AffineTransform3
 The default affine transform class in real 3-space. More...
 
template<typename T , size_t N = 16>
using AlignedArray = std::vector< T, AlignedAllocator< T, N > >
 Dynamically resizable array with aligned memory allocation. More...
 
template<typename T , typename Alloc = std::allocator<T>>
using Array = std::vector< T, Alloc >
 Dynamically resizable array. More...
 
typedef AxisAlignedBoxN< 3, Real > AxisAlignedBox3
 The default axis-aligned box class in 3-dimensional real space. More...
 
typedef BallN< 3, Real > Ball3
 The default ball class in real 3-space. More...
 
typedef uint16 ColorL16
 16-bit luminance value. More...
 
typedef CoordinateFrameN< 2, Real > CoordinateFrame2
 The default coordinate frame class in real 2-space. More...
 
typedef CoordinateFrameN< 3, Real > CoordinateFrame3
 The default coordinate frame class in real 3-space. More...
 
typedef std::runtime_error Error
 An error class. More...
 
typedef std::ptrdiff_t intx
 A signed integer suitable for indexing a structure held in memory. More...
 
typedef LineN< 2, Real > Line2
 The default straight line class in 2-dimensional real space. More...
 
typedef LineN< 3, Real > Line3
 The default straight line class in 3-dimensional real space. More...
 
typedef LineSegmentN< 2, Real > LineSegment2
 The default line segment class in 2-dimensional real space. More...
 
typedef LineSegmentN< 3, Real > LineSegment3
 The default line segment class in 3-dimensional real space. More...
 
template<typename T , typename Alloc = std::allocator<T>>
using List = std::list< T, Alloc >
 Linked list. More...
 
typedef Triangle3< TriangleLocalVertexTriple3LocalTriangle3
 A triangle with three vertex positions stored locally, in the class itself. More...
 
template<typename Key , typename T , typename Compare = std::less<Key>, typename Alloc = std::allocator< std::pair<Key const, T> >>
using Map = std::map< Key, T, Compare, Alloc >
 Maps keys to values. More...
 
template<int Rows, int Cols, typename T = Real, int Options = DEFAULT_MATRIX_LAYOUT, int MaxRowsAtCompileTime = Rows, int MaxColsAtCompileTime = Cols>
using Matrix = Eigen::Matrix< T, Rows, Cols, Options|((Options &Eigen::DontAlign)==0 &&(Rows==Eigen::Dynamic||Cols==Eigen::Dynamic)?Eigen::AutoAlign:Eigen::DontAlign), MaxRowsAtCompileTime, MaxColsAtCompileTime >
 General 2D dense matrix template, alias for Eigen::Matrix with a custom default layout (row or column major) and alignment preference. More...
 
template<int Rows, int Cols, typename T = Real, int Options = DEFAULT_MATRIX_LAYOUT, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int MaxRowsAtCompileTime = Rows, int MaxColsAtCompileTime = Cols>
using MatrixConstMap = Eigen::Map< Matrix< Rows, Cols, T, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime > const, MapOptions, StrideType >
 Alias for Eigen::Map< Matrix<...> const >. More...
 
template<int Rows, int Cols, typename T = Real, int Options = DEFAULT_MATRIX_LAYOUT, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int MaxRowsAtCompileTime = Rows, int MaxColsAtCompileTime = Cols>
using MatrixMap = Eigen::Map< Matrix< Rows, Cols, T, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime >, MapOptions, StrideType >
 Alias for Eigen::Map< Matrix<...> >. More...
 
template<typename T = Real, int Options = DEFAULT_MATRIX_LAYOUT, int MaxRowsAtCompileTime = Eigen::Dynamic, int MaxColsAtCompileTime = Eigen::Dynamic>
using MatrixX = Eigen::Matrix< T, Eigen::Dynamic, Eigen::Dynamic, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime >
 General 2D dense matrix template with dynamic resizing, alias for Eigen::Matrix with Eigen::Dynamic and a custom default layout (row or column major). More...
 
template<typename T = Real, int Options = DEFAULT_MATRIX_LAYOUT, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int MaxRowsAtCompileTime = Eigen::Dynamic, int MaxColsAtCompileTime = Eigen::Dynamic>
using MatrixXConstMap = Eigen::Map< MatrixX< T, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime > const, MapOptions, StrideType >
 Alias for Eigen::Map< MatrixX<...> const >. More...
 
template<typename T = Real, int Options = DEFAULT_MATRIX_LAYOUT, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int MaxRowsAtCompileTime = Eigen::Dynamic, int MaxColsAtCompileTime = Eigen::Dynamic>
using MatrixXMap = Eigen::Map< MatrixX< T, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime >, MapOptions, StrideType >
 Alias for Eigen::Map< MatrixX<...> >. More...
 
template<typename Key , typename T , typename Compare = std::less<Key>, typename Alloc = std::allocator< std::pair<Key const, T> >>
using MultiMap = std::multimap< Key, T, Compare, Alloc >
 Maps (possibly duplicate) keys to values. More...
 
template<typename T , typename Compare = std::less<T>, typename Alloc = std::allocator<T>>
using MultiSet = std::multiset< T, Compare, Alloc >
 Set of objects, with possible duplication. More...
 
typedef HyperplaneN< 3, Real > Plane3
 The default plane class in 3-dimensional real space. More...
 
template<typename T = Real>
using Quaternion = Eigen::Quaternion< T >
 Alias for Eigen::Quaternion<...>. More...
 
typedef RigidTransformN< 2, Real > RigidTransform2
 The default rigid transform class in real 2-space. More...
 
typedef RigidTransformN< 3, Real > RigidTransform3
 The default affine transform class in real 3-space. More...
 
template<int Size, typename T = Real, int Options = MatrixLayout::ROW_MAJOR, int MaxColsAtCompileTime = Size>
using RowVector = Eigen::Matrix< T, 1, Size, Options|((Options &Eigen::DontAlign)==0 &&Size==Eigen::Dynamic?Eigen::AutoAlign:Eigen::DontAlign), 1, MaxColsAtCompileTime >
 General 1D dense row vector template, alias for Eigen::Matrix<T, 1, Size,...>, with a custom alignment preference. More...
 
template<int Size, typename T = Real, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int Options = MatrixLayout::ROW_MAJOR, int MaxColsAtCompileTime = Size>
using RowVectorConstMap = Eigen::Map< RowVector< Size, T, Options, MaxColsAtCompileTime > const, MapOptions, StrideType >
 Alias for Eigen::Map< RowVector<...> const >. More...
 
template<int Size, typename T = Real, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int Options = MatrixLayout::ROW_MAJOR, int MaxColsAtCompileTime = Size>
using RowVectorMap = Eigen::Map< RowVector< Size, T, Options, MaxColsAtCompileTime >, MapOptions, StrideType >
 Alias for Eigen::Map< RowVector<...> >. More...
 
template<typename T = Real, int Options = MatrixLayout::ROW_MAJOR, int MaxColsAtCompileTime = Eigen::Dynamic>
using RowVectorX = Eigen::Matrix< T, 1, Eigen::Dynamic, Options, 1, MaxColsAtCompileTime >
 General 1D dense row vector template with dynamic resizing, alias for Eigen::Matrix<T, 1, Eigen::Dynamic,...> with a custom default layout (row or column major). More...
 
template<typename T = Real, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int Options = MatrixLayout::ROW_MAJOR, int MaxColsAtCompileTime = Eigen::Dynamic>
using RowVectorXConstMap = Eigen::Map< RowVectorX< T, Options, MaxColsAtCompileTime > const, MapOptions, StrideType >
 Alias for Eigen::Map< RowVectorX<...> const >. More...
 
template<typename T = Real, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int Options = MatrixLayout::ROW_MAJOR, int MaxColsAtCompileTime = Eigen::Dynamic>
using RowVectorXMap = Eigen::Map< RowVectorX< T, Options, MaxColsAtCompileTime >, MapOptions, StrideType >
 Alias for Eigen::Map< RowVectorX<...> >. More...
 
template<typename T , typename Compare = std::less<T>, typename Alloc = std::allocator<T>>
using Set = std::set< T, Compare, Alloc >
 Set of objects. More...
 
template<typename T = Real, typename StorageIndex = int>
using SparseColumnMatrix = Eigen::SparseMatrix< T, MatrixLayout::COLUMN_MAJOR, StorageIndex >
 2D sparse column matrix template, alias for Eigen::SparseMatrix with Eigen::ColMajor. More...
 
template<typename T = Real, typename StorageIndex = int>
using SparseColumnVector = Eigen::SparseVector< T, MatrixLayout::COLUMN_MAJOR, StorageIndex >
 1D sparse column vector template, alias for Eigen::SparseVector with Eigen::ColMajor. More...
 
template<typename T = Real, int Options = DEFAULT_SPARSE_MATRIX_LAYOUT, typename StorageIndex = int>
using SparseMatrix = Eigen::SparseMatrix< T, Options, StorageIndex >
 General 2D sparse matrix template, alias for Eigen::SparseMatrix with a custom default layout (row or column major). More...
 
template<typename T = Real, typename StorageIndex = int>
using SparseRowMatrix = Eigen::SparseMatrix< T, MatrixLayout::ROW_MAJOR, StorageIndex >
 2D sparse row matrix template, alias for Eigen::SparseMatrix with Eigen::RowMajor. More...
 
template<typename T = Real, typename StorageIndex = int>
using SparseRowVector = Eigen::SparseVector< T, MatrixLayout::ROW_MAJOR, StorageIndex >
 1D sparse row vector template, alias for Eigen::SparseVector with Eigen::RowMajor. More...
 
template<typename T = Real, int Options = DEFAULT_SPARSE_MATRIX_LAYOUT, typename StorageIndex = int>
using SparseVector = Eigen::SparseVector< T, Options, StorageIndex >
 General 1D sparse vector template, alias for Eigen::SparseVector with a custom default layout (row or column major). More...
 
typedef std::size_t uintx
 An unsigned integer suitable for indexing a structure held in memory. More...
 
template<typename Key , typename T , typename Hash = std::hash<Key>, typename Pred = std::equal_to<Key>, typename Alloc = std::allocator< std::pair<Key const, T> >>
using UnorderedMap = std::unordered_map< Key, T, Hash, Pred, Alloc >
 Hash table-based mapping from keys to values. More...
 
template<typename Key , typename T , typename Hash = std::hash<Key>, typename Pred = std::equal_to<Key>, typename Alloc = std::allocator< std::pair<Key const, T> >>
using UnorderedMultiMap = std::unordered_multimap< Key, T, Hash, Pred, Alloc >
 Hash table-based mapping from (possibly duplicate) keys to values. More...
 
template<typename T , typename Hash = std::hash<T>, typename Pred = std::equal_to<T>, typename Alloc = std::allocator<T>>
using UnorderedMultiSet = std::unordered_multiset< T, Hash, Pred, Alloc >
 Hash table-based set of objects, with possible duplication. More...
 
template<typename T , typename Hash = std::hash<T>, typename Pred = std::equal_to<T>, typename Alloc = std::allocator<T>>
using UnorderedSet = std::unordered_set< T, Hash, Pred, Alloc >
 Hash table-based set of objects. More...
 
template<int Size, typename T = Real, int Options = MatrixLayout::COLUMN_MAJOR, int MaxRowsAtCompileTime = Size>
using Vector = Eigen::Matrix< T, Size, 1, Options|((Options &Eigen::DontAlign)==0 &&Size==Eigen::Dynamic?Eigen::AutoAlign:Eigen::DontAlign), MaxRowsAtCompileTime, 1 >
 General 1D dense column vector template, alias for Eigen::Matrix<T, Size, 1,...>, with a custom alignment preference. More...
 
template<int Size, typename T = Real, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int Options = MatrixLayout::COLUMN_MAJOR, int MaxRowsAtCompileTime = Size>
using VectorConstMap = Eigen::Map< Vector< Size, T, Options, MaxRowsAtCompileTime > const, MapOptions, StrideType >
 Alias for Eigen::Map< Vector<...> const >. More...
 
template<int Size, typename T = Real, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int Options = MatrixLayout::COLUMN_MAJOR, int MaxRowsAtCompileTime = Size>
using VectorMap = Eigen::Map< Vector< Size, T, Options, MaxRowsAtCompileTime >, MapOptions, StrideType >
 Alias for Eigen::Map< Vector<...> >. More...
 
template<typename T = Real, int Options = MatrixLayout::COLUMN_MAJOR, int MaxRowsAtCompileTime = Eigen::Dynamic>
using VectorX = Eigen::Matrix< T, Eigen::Dynamic, 1, Options, MaxRowsAtCompileTime, 1 >
 General 1D dense column vector template with dynamic resizing, alias for Eigen::Matrix<T, Eigen::Dynamic, 1,...> with a custom default layout (row or column major). More...
 
template<typename T = Real, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int Options = MatrixLayout::COLUMN_MAJOR, int MaxRowsAtCompileTime = Eigen::Dynamic>
using VectorXConstMap = Eigen::Map< VectorX< T, Options, MaxRowsAtCompileTime > const, MapOptions, StrideType >
 Alias for Eigen::Map< VectorX<...> const >. More...
 
template<typename T = Real, typename StrideType = Eigen::Stride<0, 0>, int MapOptions = Eigen::Unaligned, int Options = MatrixLayout::COLUMN_MAJOR, int MaxRowsAtCompileTime = Eigen::Dynamic>
using VectorXMap = Eigen::Map< VectorX< T, Options, MaxRowsAtCompileTime >, MapOptions, StrideType >
 Alias for Eigen::Map< VectorX<...> >. More...
 

Functions

template<typename CondT , typename MessageT >
void alwaysAssertM (CondT const &test, MessageT const &msg)
 Check if a test condition is true, and immediately abort the program with an error code if not. More...
 
template<typename T >
T & asLvalue (T &&t)
 Convert an r-value to an l-value. More...
 
bool beginsWith (std::string const &test, std::string const &pattern)
 Check if the test string begins with the pattern string. More...
 
template<typename CondT , typename MessageT >
void debugAssertM (CondT const &test, MessageT const &msg)
 Check if a test condition is true, and immediately abort the program with an error code if not, in debug mode only. More...
 
IPlugindllStartPlugin (IFactoryRegistry *registry_)
 DLL start routine. More...
 
void dllStopPlugin ()
 DLL stop routine. More...
 
bool endsWith (std::string const &test, std::string const &pattern)
 Check if the test string ends with the pattern string. More...
 
intx findFirstSlash (std::string const &f, intx start=0)
 Finds the index of the first '\' or '/' character, starting at index start. More...
 
intx findLastSlash (std::string const &f, intx start=-1)
 Finds the index of the last '\' or '/' character, starting at index start (starts at the end of the string if start is negative). More...
 
std::string format (char const *fmt,...)
 Produces a string from arguments in the style of printf. More...
 
template<typename T , typename std::enable_if< std::is_arithmetic< T >::value, T >::type * = nullptr>
fromString (std::string const &str)
 Convert a string to a scalar number. More...
 
template<typename T >
std::string getTypeName ()
 Get the name of a type, ignoring reference and cv-qualifiers. More...
 
template<typename T >
std::string getTypeName (T const &obj)
 Get the name of the dynamic type of an object, ignoring reference and cv-qualifiers. More...
 
bool isAlpha (char c)
 Check if a character is a letter of the alphabet. More...
 
bool isDigit (char c)
 Check if a character is a digit. More...
 
bool isNewline (char c)
 Check if a character is a newline character. More...
 
bool isQuote (char c)
 Check if a character is a quote (single or double). More...
 
bool isSlash (char c)
 Check if a character is a slash (forward or backward). More...
 
bool isWhitespace (char c)
 Check if a character is a whitespace character. More...
 
ColorL8 operator* (Real lhs, ColorL8 const &rhs)
 Multiply by a scalar. More...
 
ColorL operator* (Real lhs, ColorL const &rhs)
 Multiply by a scalar. More...
 
ColorRgba8 operator* (Real s, ColorRgba8 const &c)
 Multiply by a scalar. More...
 
ColorRgba8 operator* (ColorL &s, ColorRgba8 const &c)
 Multiply by a one-channel color. More...
 
ColorRgb8 operator* (Real s, ColorRgb8 const &c)
 Multiply by a scalar. More...
 
ColorRgba8 operator* (ColorRgba8 const &c, ColorL &s)
 Multiply by a one-channel color. More...
 
ColorRgb8 operator* (ColorL &s, ColorRgb8 const &c)
 Multiply by a one-channel color. More...
 
ColorRgb8 operator* (ColorRgb8 const &c, ColorL &s)
 Multiply by a one-channel color. More...
 
ColorRgba operator* (Real s, ColorRgba const &c)
 Multiply by a scalar. More...
 
ColorRgba operator* (ColorL &s, ColorRgba const &c)
 Multiply by a one-channel color. More...
 
ColorRgba operator* (ColorRgba const &c, ColorL &s)
 Multiply by a one-channel color. More...
 
ColorRgb operator* (Real s, ColorRgb const &c)
 Multiply by a scalar. More...
 
ColorRgb operator* (ColorL &s, ColorRgb const &c)
 Multiply by a one-channel color. More...
 
ColorRgb operator* (ColorRgb const &c, ColorL &s)
 Multiply by a one-channel color. More...
 
std::ostream & operator<< (std::ostream &os, NamedObject const &obj)
 Write a short description of a named object to an output stream. More...
 
template<int N, typename T >
std::ostream & operator<< (std::ostream &os, CoordinateFrameN< N, T > const &cf)
 Pipe a textual representation of a coordinate frame to a std::ostream. More...
 
std::ostream & operator<< (std::ostream &os, Codec const &codec)
 Write the name of the object to an output stream. More...
 
template<int N, typename T >
std::ostream & operator<< (std::ostream &os, RigidTransformN< N, T > const &tr)
 Pipe a textual representation of a rigid transform to a std::ostream. More...
 
template<int N, typename T >
std::ostream & operator<< (std::ostream &os, AffineTransformN< N, T > const &tr)
 Pipe a textual representation of an affine transform to a std::ostream. More...
 
template<int N, typename T >
std::ostream & operator<< (std::ostream &os, HyperplaneN< N, T > const &plane)
 Pipe a textual representation of a hyperplane to a std::ostream. More...
 
void parseCommaSeparated (std::string const &s, Array< std::string > &array, bool strip_quotes=true)
 Separates a comma-separated line, properly escaping commas within double quotes (") and super quotes ("""). More...
 
bool patternMatch (std::string const &pattern, std::string const &query, int flags=0)
 Compares a filename or pathname to a pattern. More...
 
template<typename IteratorT , typename C >
std::string stringJoin (IteratorT begin, IteratorT end, C const &padding)
 Concatenate a sequence of serializable objects (typically strings), separated by a padding character, string or other serializable object. More...
 
template<typename ContainerT , typename C >
std::string stringJoin (ContainerT const &a, C const &padding)
 Concatenate a sequence of serializable objects (typically strings), separated by a padding character, string or other serializable object. More...
 
intx stringSplit (std::string const &s, char split_char, Array< std::string > &result, bool skip_empty_fields=false)
 Split a string at each occurrence of a splitting character. More...
 
intx stringSplit (std::string const &s, std::string const &split_chars, Array< std::string > &result, bool skip_empty_fields=false)
 Split a string at each occurrence of any splitting character from a provided set. More...
 
std::string toLower (std::string const &s)
 Get the lowercase version of a string. More...
 
std::string toString (char const *s)
 Convert a C-string to a std::string object, returning an empty string if the input is a null pointer. More...
 
template<typename Derived >
std::string toString (Eigen::DenseBase< Derived > const &m, intx max_rows=4, intx max_cols=4)
 Get a single-line string representation of a matrix or vector. More...
 
std::string toUpper (std::string const &s)
 Get the uppercase version of a string. More...
 
std::string trimWhitespace (std::string const &s)
 Strips whitespace from both ends of the string. More...
 
std::string vformat (char const *fmt, va_list arg_ptr)
 Produces a string from arguments in the style of printf, can be called with the argument list from a function that itself takes variable arguments. More...
 
std::string wordWrap (std::string const &input, intx num_cols, char const *newline=NEWLINE)
 Produces a new string that is the input string wrapped at a certain number of columns (where the line is broken at the latest space before the column limit). More...
 

Variables

char const * NEWLINE = "\n"
 The newline character sequence for the current platform. More...
 

Detailed Description

Root namespace for the Thea library.

Typedef Documentation

The default affine transform class in real 2-space.

Definition at line 84 of file AffineTransform2.hpp.

The default affine transform class in real 3-space.

Definition at line 146 of file AffineTransform3.hpp.

using AlignedArray = std::vector< T, AlignedAllocator<T, N> >

Dynamically resizable array with aligned memory allocation.

Definition at line 28 of file Array.hpp.

using Array = std::vector<T, Alloc>

Dynamically resizable array.

Definition at line 25 of file Array.hpp.

typedef AxisAlignedBoxN<3, Real> AxisAlignedBox3

The default axis-aligned box class in 3-dimensional real space.

Definition at line 342 of file AxisAlignedBox3.hpp.

typedef BallN<3, Real> Ball3

The default ball class in real 3-space.

Definition at line 28 of file Ball3.hpp.

typedef uint16 ColorL16

16-bit luminance value.

Todo:
Replace this with a proper class.

Definition at line 32 of file Colors.hpp.

The default coordinate frame class in real 2-space.

Definition at line 66 of file CoordinateFrame2.hpp.

The default coordinate frame class in real 3-space.

Definition at line 108 of file CoordinateFrame3.hpp.

typedef std::runtime_error Error

An error class.

Definition at line 27 of file Error.hpp.

typedef std::ptrdiff_t intx

A signed integer suitable for indexing a structure held in memory.

32-bit on 32-bit systems, 64-bit on 64-bit systems. This is expected to be fast and can usually be used for any application involving integers, unless smaller or larger storage is explicitly required. It also matches the current default type of Eigen::Index. Note that it is not equivalent to int, long or long long, whose sizes depend on LP32/64, ILP32/64 or LLP64 conventions.

The phonetic similarity to "index" is intentional.

See also
uintx
https://rust-lang.github.io/rfcs/0544-rename-int-uint.html

Definition at line 161 of file Platform.hpp.

typedef LineN<2, Real> Line2

The default straight line class in 2-dimensional real space.

Definition at line 28 of file Line2.hpp.

typedef LineN<3, Real> Line3

The default straight line class in 3-dimensional real space.

Definition at line 28 of file Line3.hpp.

typedef LineSegmentN<2, Real> LineSegment2

The default line segment class in 2-dimensional real space.

Definition at line 28 of file LineSegment2.hpp.

typedef LineSegmentN<3, Real> LineSegment3

The default line segment class in 3-dimensional real space.

Definition at line 28 of file LineSegment3.hpp.

using List = std::list<T, Alloc>

Linked list.

Definition at line 24 of file List.hpp.

A triangle with three vertex positions stored locally, in the class itself.

Definition at line 665 of file Triangle3.hpp.

using Map = std::map<Key, T, Compare, Alloc>

Maps keys to values.

Requires an ordering on the keys.

Definition at line 28 of file Map.hpp.

using Matrix = Eigen::Matrix<T, Rows, Cols, Options | ((Options & Eigen::DontAlign) == 0 && (Rows == Eigen::Dynamic || Cols == Eigen::Dynamic) ? Eigen::AutoAlign : Eigen::DontAlign), MaxRowsAtCompileTime, MaxColsAtCompileTime>

General 2D dense matrix template, alias for Eigen::Matrix with a custom default layout (row or column major) and alignment preference.

This alias currently disables alignment for all fixed-size types: fixed-size vectorizable types (Vector4f, Matrix4f, Vector2d etc) require special handling for every class which directly or indirectly has such a member, and could lead to unexpected bugs and considerably less ease of use.

See also

Definition at line 114 of file MatVec.hpp.

using MatrixConstMap = Eigen::Map< Matrix<Rows, Cols, T, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> const, MapOptions, StrideType >

Alias for Eigen::Map< Matrix<...> const >.

Definition at line 269 of file MatVec.hpp.

using MatrixMap = Eigen::Map< Matrix<Rows, Cols, T, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime>, MapOptions, StrideType >

Alias for Eigen::Map< Matrix<...> >.

Definition at line 259 of file MatVec.hpp.

using MatrixX = Eigen::Matrix<T, Eigen::Dynamic, Eigen::Dynamic, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime>

General 2D dense matrix template with dynamic resizing, alias for Eigen::Matrix with Eigen::Dynamic and a custom default layout (row or column major).

Definition at line 124 of file MatVec.hpp.

using MatrixXConstMap = Eigen::Map< MatrixX<T, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime> const, MapOptions, StrideType >

Alias for Eigen::Map< MatrixX<...> const >.

Definition at line 320 of file MatVec.hpp.

using MatrixXMap = Eigen::Map< MatrixX<T, Options, MaxRowsAtCompileTime, MaxColsAtCompileTime>, MapOptions, StrideType >

Alias for Eigen::Map< MatrixX<...> >.

Definition at line 310 of file MatVec.hpp.

using MultiMap = std::multimap<Key, T, Compare, Alloc>

Maps (possibly duplicate) keys to values.

Requires an ordering on the keys.

Definition at line 35 of file Map.hpp.

using MultiSet = std::multiset<T, Compare, Alloc>

Set of objects, with possible duplication.

Requires an ordering on the objects.

Definition at line 33 of file Set.hpp.

typedef HyperplaneN<3, Real> Plane3

The default plane class in 3-dimensional real space.

Definition at line 83 of file Hyperplane3.hpp.

using Quaternion = Eigen::Quaternion<T>

Alias for Eigen::Quaternion<...>.

Definition at line 359 of file MatVec.hpp.

typedef RigidTransformN<2, Real> RigidTransform2

The default rigid transform class in real 2-space.

Definition at line 65 of file RigidTransform2.hpp.

typedef RigidTransformN<3, Real> RigidTransform3

The default affine transform class in real 3-space.

Definition at line 126 of file RigidTransform3.hpp.

using RowVector = Eigen::Matrix<T, 1, Size, Options | ((Options & Eigen::DontAlign) == 0 && Size == Eigen::Dynamic ? Eigen::AutoAlign : Eigen::DontAlign), 1, MaxColsAtCompileTime>

General 1D dense row vector template, alias for Eigen::Matrix<T, 1, Size,...>, with a custom alignment preference.

This alias currently disables alignment for all fixed-size types: fixed-size vectorizable types (RowVector4f, RowVector2d etc) require special handling for every class which directly or indirectly has such a member, and could lead to unexpected bugs and considerably less ease of use.

See also

Definition at line 177 of file MatVec.hpp.

using RowVectorConstMap = Eigen::Map< RowVector<Size, T, Options, MaxColsAtCompileTime> const, MapOptions, StrideType >

Alias for Eigen::Map< RowVector<...> const >.

Definition at line 301 of file MatVec.hpp.

using RowVectorMap = Eigen::Map< RowVector<Size, T, Options, MaxColsAtCompileTime>, MapOptions, StrideType >

Alias for Eigen::Map< RowVector<...> >.

Definition at line 293 of file MatVec.hpp.

using RowVectorX = Eigen::Matrix<T, 1, Eigen::Dynamic, Options, 1, MaxColsAtCompileTime>

General 1D dense row vector template with dynamic resizing, alias for Eigen::Matrix<T, 1, Eigen::Dynamic,...> with a custom default layout (row or column major).

Definition at line 186 of file MatVec.hpp.

using RowVectorXConstMap = Eigen::Map< RowVectorX<T, Options, MaxColsAtCompileTime> const, MapOptions, StrideType >

Alias for Eigen::Map< RowVectorX<...> const >.

Definition at line 352 of file MatVec.hpp.

using RowVectorXMap = Eigen::Map< RowVectorX<T, Options, MaxColsAtCompileTime>, MapOptions, StrideType >

Alias for Eigen::Map< RowVectorX<...> >.

Definition at line 344 of file MatVec.hpp.

using Set = std::set<T, Compare, Alloc>

Set of objects.

Requires an ordering on the objects.

Definition at line 27 of file Set.hpp.

using SparseColumnMatrix = Eigen::SparseMatrix<T, MatrixLayout::COLUMN_MAJOR, StorageIndex>

2D sparse column matrix template, alias for Eigen::SparseMatrix with Eigen::ColMajor.

Definition at line 42 of file SparseMatVec.hpp.

using SparseColumnVector = Eigen::SparseVector<T, MatrixLayout::COLUMN_MAJOR, StorageIndex>

1D sparse column vector template, alias for Eigen::SparseVector with Eigen::ColMajor.

Definition at line 61 of file SparseMatVec.hpp.

using SparseMatrix = Eigen::SparseMatrix<T, Options, StorageIndex>

General 2D sparse matrix template, alias for Eigen::SparseMatrix with a custom default layout (row or column major).

Definition at line 37 of file SparseMatVec.hpp.

using SparseRowMatrix = Eigen::SparseMatrix<T, MatrixLayout::ROW_MAJOR, StorageIndex>

2D sparse row matrix template, alias for Eigen::SparseMatrix with Eigen::RowMajor.

Definition at line 47 of file SparseMatVec.hpp.

using SparseRowVector = Eigen::SparseVector<T, MatrixLayout::ROW_MAJOR, StorageIndex>

1D sparse row vector template, alias for Eigen::SparseVector with Eigen::RowMajor.

Definition at line 66 of file SparseMatVec.hpp.

using SparseVector = Eigen::SparseVector<T, Options, StorageIndex>

General 1D sparse vector template, alias for Eigen::SparseVector with a custom default layout (row or column major).

Definition at line 56 of file SparseMatVec.hpp.

typedef std::size_t uintx

An unsigned integer suitable for indexing a structure held in memory.

32-bit on 32-bit systems, 64-bit on 64-bit systems. Note that it is not equivalent to unsigned int, unsigned long or unsigned long long, whose sizes depend on LP32/64, ILP32/64 or LLP64 conventions.

The phonetic similarity to "(unsigned) index" is intentional.

See also
intx
https://rust-lang.github.io/rfcs/0544-rename-int-uint.html

Definition at line 173 of file Platform.hpp.

using UnorderedMap = std::unordered_map<Key, T, Hash, Pred, Alloc>

Hash table-based mapping from keys to values.

Definition at line 29 of file UnorderedMap.hpp.

using UnorderedMultiMap = std::unordered_multimap<Key, T, Hash, Pred, Alloc>

Hash table-based mapping from (possibly duplicate) keys to values.

Definition at line 37 of file UnorderedMap.hpp.

using UnorderedMultiSet = std::unordered_multiset<T, Hash, Pred, Alloc>

Hash table-based set of objects, with possible duplication.

Definition at line 35 of file UnorderedSet.hpp.

using UnorderedSet = std::unordered_set<T, Hash, Pred, Alloc>

Hash table-based set of objects.

Definition at line 28 of file UnorderedSet.hpp.

using Vector = Eigen::Matrix<T, Size, 1, Options | ((Options & Eigen::DontAlign) == 0 && Size == Eigen::Dynamic ? Eigen::AutoAlign : Eigen::DontAlign), MaxRowsAtCompileTime, 1>

General 1D dense column vector template, alias for Eigen::Matrix<T, Size, 1,...>, with a custom alignment preference.

This alias currently disables alignment for all fixed-size types: fixed-size vectorizable types (Vector4f, Vector2d etc) require special handling for every class which directly or indirectly has such a member, and could lead to unexpected bugs and considerably less ease of use.

See also

Definition at line 146 of file MatVec.hpp.

using VectorConstMap = Eigen::Map< Vector<Size, T, Options, MaxRowsAtCompileTime> const, MapOptions, StrideType >

Alias for Eigen::Map< Vector<...> const >.

Definition at line 285 of file MatVec.hpp.

using VectorMap = Eigen::Map< Vector<Size, T, Options, MaxRowsAtCompileTime>, MapOptions, StrideType >

Alias for Eigen::Map< Vector<...> >.

Definition at line 277 of file MatVec.hpp.

using VectorX = Eigen::Matrix<T, Eigen::Dynamic, 1, Options, MaxRowsAtCompileTime, 1>

General 1D dense column vector template with dynamic resizing, alias for Eigen::Matrix<T, Eigen::Dynamic, 1,...> with a custom default layout (row or column major).

Definition at line 155 of file MatVec.hpp.

using VectorXConstMap = Eigen::Map< VectorX<T, Options, MaxRowsAtCompileTime> const, MapOptions, StrideType >

Alias for Eigen::Map< VectorX<...> const >.

Definition at line 336 of file MatVec.hpp.

using VectorXMap = Eigen::Map< VectorX<T, Options, MaxRowsAtCompileTime>, MapOptions, StrideType >

Alias for Eigen::Map< VectorX<...> >.

Definition at line 328 of file MatVec.hpp.

Function Documentation

void Thea::alwaysAssertM ( CondT const &  test,
MessageT const &  msg 
)

Check if a test condition is true, and immediately abort the program with an error code if not.

Definition at line 66 of file Common.hpp.

T& Thea::asLvalue ( T &&  t)

Convert an r-value to an l-value.

Useful as a workaround for the "can't take address of temporary" compiler error. E.g.

int foo() { return 1; }
void bar(int * x) { ... }
bar(&foo()); // error
bar(&asLvalue(foo())); // ok

A more realistic example involves passing a matrix, wrapped in a temporary object implementing an abstract interface, to a plugin:

using namespace Graphics;
RenderSystem * render_system = ...;
Matrix4 m;
// Without asLvalue()
auto wm = Math::wrapMatrix(m);
render_system->getMatrix(RenderSystem::MatrixMode::MODELVIEW, &wm);
// With asLvalue()
render_system->getMatrix(RenderSystem::MatrixMode::MODELVIEW, &asLvalue(Math::wrapMatrix(m)));

From https://stackoverflow.com/a/47460052.

Definition at line 84 of file Memory.hpp.

bool beginsWith ( std::string const &  test,
std::string const &  pattern 
)

Check if the test string begins with the pattern string.

Definition at line 122 of file StringAlg.cpp.

void Thea::debugAssertM ( CondT const &  test,
MessageT const &  msg 
)

Check if a test condition is true, and immediately abort the program with an error code if not, in debug mode only.

Definition at line 52 of file Common.hpp.

IPlugin * dllStartPlugin ( IFactoryRegistry registry_)

DLL start routine.

Installs plugin.

Definition at line 24 of file ArpackPlugin.cpp.

void dllStopPlugin ( )

DLL stop routine.

Uninstalls plugin.

Definition at line 32 of file ArpackPlugin.cpp.

bool endsWith ( std::string const &  test,
std::string const &  pattern 
)

Check if the test string ends with the pattern string.

Definition at line 143 of file StringAlg.cpp.

intx Thea::findFirstSlash ( std::string const &  f,
intx  start = 0 
)

Finds the index of the first '\' or '/' character, starting at index start.

Returns
The index of the first slash if one is found, else a negative number.
See also
findLastSlash, isSlash

Definition at line 57 of file BasicStringAlg.hpp.

intx Thea::findLastSlash ( std::string const &  f,
intx  start = -1 
)

Finds the index of the last '\' or '/' character, starting at index start (starts at the end of the string if start is negative).

Returns
The index of the last slash if one is found, else a negative number.
See also
findFirstSlash, isSlash

Definition at line 72 of file BasicStringAlg.hpp.

std::string format ( char const *  fmt,
  ... 
)

Produces a string from arguments in the style of printf.

This avoids problems with buffer overflows when using sprintf and makes it easy to use the result functionally. This function is fast when the resulting string is under 160 characters (not including terminator) and slower when the string is longer.

Definition at line 305 of file StringAlg.cpp.

T Thea::fromString ( std::string const &  str)

Convert a string to a scalar number.

The string must contain the number and nothing else except leading/trailing whitespace.

Definition at line 56 of file StringAlg.hpp.

std::string Thea::getTypeName ( )

Get the name of a type, ignoring reference and cv-qualifiers.

Definition at line 107 of file Common.hpp.

std::string Thea::getTypeName ( T const &  obj)

Get the name of the dynamic type of an object, ignoring reference and cv-qualifiers.

Definition at line 119 of file Common.hpp.

bool Thea::isAlpha ( char  c)

Check if a character is a letter of the alphabet.

Definition at line 126 of file BasicStringAlg.hpp.

bool Thea::isDigit ( char  c)

Check if a character is a digit.

Definition at line 119 of file BasicStringAlg.hpp.

bool Thea::isNewline ( char  c)

Check if a character is a newline character.

Definition at line 112 of file BasicStringAlg.hpp.

bool Thea::isQuote ( char  c)

Check if a character is a quote (single or double).

Definition at line 140 of file BasicStringAlg.hpp.

bool Thea::isSlash ( char  c)

Check if a character is a slash (forward or backward).

Definition at line 133 of file BasicStringAlg.hpp.

bool Thea::isWhitespace ( char  c)

Check if a character is a whitespace character.

Definition at line 105 of file BasicStringAlg.hpp.

ColorL8 Thea::operator* ( Real  lhs,
ColorL8 const &  rhs 
)

Multiply by a scalar.

The result is rounded to the nearest byte value.

Definition at line 169 of file ColorL8.hpp.

ColorL Thea::operator* ( Real  lhs,
ColorL const &  rhs 
)

Multiply by a scalar.

Definition at line 201 of file ColorL.hpp.

ColorRgba8 Thea::operator* ( Real  s,
ColorRgba8 const &  c 
)

Multiply by a scalar.

Definition at line 218 of file ColorRgba8.hpp.

ColorRgba8 Thea::operator* ( ColorL s,
ColorRgba8 const &  c 
)

Multiply by a one-channel color.

Definition at line 225 of file ColorRgba8.hpp.

ColorRgb8 Thea::operator* ( Real  s,
ColorRgb8 const &  c 
)

Multiply by a scalar.

Definition at line 231 of file ColorRgb8.hpp.

ColorRgba8 Thea::operator* ( ColorRgba8 const &  c,
ColorL s 
)

Multiply by a one-channel color.

Definition at line 232 of file ColorRgba8.hpp.

ColorRgb8 Thea::operator* ( ColorL s,
ColorRgb8 const &  c 
)

Multiply by a one-channel color.

Definition at line 238 of file ColorRgb8.hpp.

ColorRgb8 Thea::operator* ( ColorRgb8 const &  c,
ColorL s 
)

Multiply by a one-channel color.

Definition at line 245 of file ColorRgb8.hpp.

ColorRgba Thea::operator* ( Real  s,
ColorRgba const &  c 
)

Multiply by a scalar.

Definition at line 288 of file ColorRgba.hpp.

ColorRgba Thea::operator* ( ColorL s,
ColorRgba const &  c 
)

Multiply by a one-channel color.

Definition at line 295 of file ColorRgba.hpp.

ColorRgba Thea::operator* ( ColorRgba const &  c,
ColorL s 
)

Multiply by a one-channel color.

Definition at line 302 of file ColorRgba.hpp.

ColorRgb Thea::operator* ( Real  s,
ColorRgb const &  c 
)

Multiply by a scalar.

Definition at line 373 of file ColorRgb.hpp.

ColorRgb Thea::operator* ( ColorL s,
ColorRgb const &  c 
)

Multiply by a one-channel color.

Definition at line 380 of file ColorRgb.hpp.

ColorRgb Thea::operator* ( ColorRgb const &  c,
ColorL s 
)

Multiply by a one-channel color.

Definition at line 387 of file ColorRgb.hpp.

std::ostream& Thea::operator<< ( std::ostream &  os,
NamedObject const &  obj 
)

Write a short description of a named object to an output stream.

Definition at line 107 of file NamedObject.hpp.

std::ostream& Thea::operator<< ( std::ostream &  os,
CoordinateFrameN< N, T > const &  cf 
)

Pipe a textual representation of a coordinate frame to a std::ostream.

Definition at line 156 of file CoordinateFrameN.hpp.

std::ostream& Thea::operator<< ( std::ostream &  os,
Codec const &  codec 
)

Write the name of the object to an output stream.

Definition at line 158 of file Codec.hpp.

std::ostream& Thea::operator<< ( std::ostream &  os,
RigidTransformN< N, T > const &  tr 
)

Pipe a textual representation of a rigid transform to a std::ostream.

Definition at line 171 of file RigidTransformN.hpp.

std::ostream& Thea::operator<< ( std::ostream &  os,
AffineTransformN< N, T > const &  tr 
)

Pipe a textual representation of an affine transform to a std::ostream.

Definition at line 204 of file AffineTransformN.hpp.

std::ostream& Thea::operator<< ( std::ostream &  os,
HyperplaneN< N, T > const &  plane 
)

Pipe a textual representation of a hyperplane to a std::ostream.

Definition at line 242 of file HyperplaneN.hpp.

void parseCommaSeparated ( std::string const &  s,
Array< std::string > &  array,
bool  strip_quotes = true 
)

Separates a comma-separated line, properly escaping commas within double quotes (") and super quotes (""").

This matches Microsoft Excel's CSV output.

Parameters
sThe string to parse.
arrayThe comma-separated fields are stored here.
strip_quotesIf true, strips leading and trailing " and """.
See also
stringSplit, TextInput

Definition at line 59 of file StringAlg.cpp.

bool patternMatch ( std::string const &  pattern,
std::string const &  query,
int  flags = 0 
)

Compares a filename or pathname to a pattern.

Equivalent (except for boolean instead of integer return value) to function fnmatch() as specified in POSIX 1003.2-1992, section B.6.

The function checks whether the query argument matches the pattern argument, which is a shell wildcard pattern. The flags argument modifies the behaviour; it is the bitwise OR of zero or more Match flags.

Returns
True if query matches pattern, false otherwise. Throws an error if the pattern is malformed.

Definition at line 665 of file StringAlg.cpp.

std::string Thea::stringJoin ( IteratorT  begin,
IteratorT  end,
C const &  padding 
)

Concatenate a sequence of serializable objects (typically strings), separated by a padding character, string or other serializable object.

Definition at line 116 of file StringAlg.hpp.

std::string Thea::stringJoin ( ContainerT const &  a,
C const &  padding 
)

Concatenate a sequence of serializable objects (typically strings), separated by a padding character, string or other serializable object.

This is shorthand for stringJoin(a.begin(), a.end(), padding).

Definition at line 134 of file StringAlg.hpp.

intx stringSplit ( std::string const &  s,
char  split_char,
Array< std::string > &  result,
bool  skip_empty_fields = false 
)

Split a string at each occurrence of a splitting character.

Parameters
sThe string to split.
split_charThe delimiting character.
resultUsed to return the sequence of fields found.
skip_empty_fieldsIf true, a sequence of delimiters is treated as a single delimiter.
Returns
The number of fields found.

Definition at line 246 of file StringAlg.cpp.

intx stringSplit ( std::string const &  s,
std::string const &  split_chars,
Array< std::string > &  result,
bool  skip_empty_fields = false 
)

Split a string at each occurrence of any splitting character from a provided set.

Parameters
sThe string to split.
split_charsThe set of delimiting characters. E.g. to split a string on whitespace, use split_chars = " \t\n\f\r".
resultUsed to return the sequence of fields found.
skip_empty_fieldsIf true, a sequence of delimiters is treated as a single delimiter.
Returns
The number of fields found.

Definition at line 252 of file StringAlg.cpp.

std::string toLower ( std::string const &  s)

Get the lowercase version of a string.

Definition at line 238 of file StringAlg.cpp.

std::string Thea::toString ( char const *  s)

Convert a C-string to a std::string object, returning an empty string if the input is a null pointer.

The std::string constructor itself has undefined behavior in this case.

Definition at line 44 of file BasicStringAlg.hpp.

std::string Thea::toString ( Eigen::DenseBase< Derived > const &  m,
intx  max_rows = 4,
intx  max_cols = 4 
)

Get a single-line string representation of a matrix or vector.

If the number of rows (or columns) of the matrix is larger than max_rows (resp. max_cols), the middle elements will be elided via ellipsis.

Matrix3 m; m << 1, 2, 3,
4, 5, 6,
7, 8, 9;
cout << toString(m, 3, 3) << endl;
// Output: [1 2 3; 4 5 6; 7 8 9]
cout << toString(m, 2, 2) << endl;
// Output: [1 ... 3; ... ; 7 ... 9]
cout << toString(m, 2, 1) << endl;
// Output: [1 ... ; ... ; 7 ... ]
cout << toString(m, 1, 2) << endl;
// Output: [1 ... 3; ... ]
cout << toString(m, 1, 1) << endl;
// Output: [1 ... ; ... ]

Definition at line 701 of file MatrixUtil.hpp.

std::string toUpper ( std::string const &  s)

Get the uppercase version of a string.

Definition at line 230 of file StringAlg.cpp.

std::string trimWhitespace ( std::string const &  s)

Strips whitespace from both ends of the string.

Definition at line 280 of file StringAlg.cpp.

std::string vformat ( char const *  fmt,
va_list  arg_ptr 
)

Produces a string from arguments in the style of printf, can be called with the argument list from a function that itself takes variable arguments.

This avoids problems with buffer overflows when using sprintf and makes it easy to use the result functionally. This function is fast when the resulting string is under 160 characters (not including terminator) and slower when the string is longer.

Definition at line 414 of file StringAlg.cpp.

std::string wordWrap ( std::string const &  input,
intx  num_cols,
char const *  newline = NEWLINE 
)

Produces a new string that is the input string wrapped at a certain number of columns (where the line is broken at the latest space before the column limit).

Platform specific newlines are inserted to wrap, or a specific "newline" character may be specified.

Definition at line 167 of file StringAlg.cpp.

Variable Documentation

char const * NEWLINE = "\n"

The newline character sequence for the current platform.

LF for Unix (Linux, Mac OS X), CR-LF for Windows.

Definition at line 54 of file StringAlg.cpp.