Radium Engine  1.5.14
Loading...
Searching...
No Matches
Ra::Core Namespace Reference

This namespace contains everything "low level", related to data, datastuctures, and computation. More...

Namespaces

namespace  Math
 This namespace contains usefull math functions.
 
namespace  Resources
 Resources paths, plugins paths and data paths management for Radium.
 

Classes

class  AdjacencyList
 
class  AlignedAllocator
 
class  DualQuaternion
 
class  FunctionTask
 
class  Grid
 
class  Quadric
 
class  Task
 
class  TaskQueue
 This class allows tasks to be registered and then executed in parallel on separate threads. More...
 
class  Tex
 
class  VariableSet
 Heterogeneous container storing "Variables", that maps a name (std::string) to a value (of any type T). More...
 
class  VectorArray
 This class implements ContainerIntrospectionInterface for AlignedStdVector. More...
 
struct  VectorArrayTypeHelper
 
struct  VectorArrayTypeHelperInternal
 

Typedefs

using ParentList = AlignedStdVector< int >
 
using LevelList = AlignedStdVector< uint8_t >
 
using ChildrenList = AlignedStdVector< uint8_t >
 
using Adjacency = AlignedStdVector< ChildrenList >
 
template<typename T >
using AlignedStdVector = std::vector< T, Eigen::aligned_allocator< T > >
 
template<typename T >
using Tex2D = Tex< T, 2 >
 
template<typename T >
using Tex3D = Tex< T, 3 >
 
using Vector1Array = VectorArray< Scalar >
 

Common vector types

using VectorN = Eigen::Matrix< Scalar, Eigen::Dynamic, 1 >
 
using VectorNf = Eigen::VectorXf
 
using VectorNd = Eigen::VectorXd
 
using Vector4 = Eigen::Matrix< Scalar, 4, 1 >
 
using Vector4f = Eigen::Vector4f
 
using Vector4d = Eigen::Vector4d
 
using Vector3 = Eigen::Matrix< Scalar, 3, 1 >
 
using Vector3f = Eigen::Vector3f
 
using Vector3d = Eigen::Vector3d
 
using Vector2 = Eigen::Matrix< Scalar, 2, 1 >
 
using Vector2f = Eigen::Vector2f
 
using Vector2d = Eigen::Vector2d
 
using VectorNi = Eigen::VectorXi
 
using Vector2i = Eigen::Vector2i
 
using Vector3i = Eigen::Vector3i
 
using Vector4i = Eigen::Vector4i
 
using VectorNui = Eigen::Matrix< uint, Eigen::Dynamic, 1 >
 
using Vector1ui = Eigen::Matrix< uint, 1, 1 >
 
using Vector2ui = Eigen::Matrix< uint, 2, 1 >
 
using Vector3ui = Eigen::Matrix< uint, 3, 1 >
 
using Vector4ui = Eigen::Matrix< uint, 4, 1 >
 

Ray types

using Ray = Eigen::ParametrizedLine< Scalar, 3 >
 
using Rayf = Eigen::ParametrizedLine< float, 3 >
 
using Rayd = Eigen::ParametrizedLine< double, 3 >
 

Common matrix types

using MatrixN = Eigen::Matrix< Scalar, Eigen::Dynamic, Eigen::Dynamic >
 
using Matrix4 = Eigen::Matrix< Scalar, 4, 4 >
 
using Matrix3 = Eigen::Matrix< Scalar, 3, 3 >
 
using Matrix2 = Eigen::Matrix< Scalar, 2, 2 >
 
using MatrixNf = Eigen::MatrixXf
 
using Matrix4f = Eigen::Matrix4f
 
using Matrix3f = Eigen::Matrix3f
 
using Matrix2f = Eigen::Matrix2f
 
using MatrixNd = Eigen::MatrixXd
 
using Matrix4d = Eigen::Matrix4d
 
using Matrix3d = Eigen::Matrix3d
 
using Matrix2d = Eigen::Matrix2d
 
using MatrixNui = Eigen::Matrix< uint, Eigen::Dynamic, Eigen::Dynamic >
 
using Diagonal = Eigen::SparseMatrix< Scalar >
 
using Sparse = Eigen::SparseMatrix< Scalar >
 

Transforms and rotations

using Quaternion = Eigen::Quaternion< Scalar >
 
using Quaternionf = Eigen::Quaternionf
 
using Quaterniond = Eigen::Quaterniond
 
using Transform = Eigen::Transform< Scalar, 3, Eigen::Affine >
 
using Transformf = Eigen::Affine3f
 
using Transformd = Eigen::Affine3d
 
using Aabb = Eigen::AlignedBox< Scalar, 3 >
 
using Aabbf = Eigen::AlignedBox3f
 
using Aabbd = Eigen::AlignedBox3d
 
using AngleAxis = Eigen::AngleAxis< Scalar >
 
using AngleAxisf = Eigen::AngleAxisf
 
using AngleAxisd = Eigen::AngleAxisd
 
using Translation = Eigen::Translation< Scalar, 3 >
 
using Translationf = Eigen::Translation3f
 
using Translationd = Eigen::Translation3d
 

Functions

std::ofstreamoperator<< (std::ofstream &ofs, const AdjacencyList &adj)
 
template<class T >
_internalIterator::_reversed< T > reversed (T &t)
 
template<class T >
_internalIterator::_reversed< T constreversed (T const &t)
 
template<typename T , class... Args>
std::shared_ptr< T > make_shared (Args &&... args)
 
DualQuaternion operator* (Scalar scalar, const DualQuaternion &dq)
 Pre-multiplication of dual quaternion.
 

Detailed Description

This namespace contains everything "low level", related to data, datastuctures, and computation.

Typedef Documentation

◆ Aabb

using Ra::Core::Aabb = typedef Eigen::AlignedBox<Scalar, 3>

Definition at line 95 of file Types.hpp.

◆ Aabbd

using Ra::Core::Aabbd = typedef Eigen::AlignedBox3d

Definition at line 97 of file Types.hpp.

◆ Aabbf

using Ra::Core::Aabbf = typedef Eigen::AlignedBox3f

Definition at line 96 of file Types.hpp.

◆ Adjacency

◆ AlignedStdVector

template<typename T >
using Ra::Core::AlignedStdVector = typedef std::vector<T, Eigen::aligned_allocator<T> >

Shortcut for the ubiquitous aligned std::vector Uses Eigen's aligned allocator, as stated in http://eigen.tuxfamily.org/dox/group__TopicStlContainers.html

Definition at line 14 of file AlignedStdVector.hpp.

◆ AngleAxis

using Ra::Core::AngleAxis = typedef Eigen::AngleAxis<Scalar>

Definition at line 99 of file Types.hpp.

◆ AngleAxisd

using Ra::Core::AngleAxisd = typedef Eigen::AngleAxisd

Definition at line 101 of file Types.hpp.

◆ AngleAxisf

using Ra::Core::AngleAxisf = typedef Eigen::AngleAxisf

Definition at line 100 of file Types.hpp.

◆ ChildrenList

Definition at line 13 of file AdjacencyList.hpp.

◆ Diagonal

using Ra::Core::Diagonal = typedef Eigen::SparseMatrix<Scalar>

Definition at line 78 of file Types.hpp.

◆ LevelList

Definition at line 12 of file AdjacencyList.hpp.

◆ Matrix2

using Ra::Core::Matrix2 = typedef Eigen::Matrix<Scalar, 2, 2>

Definition at line 63 of file Types.hpp.

◆ Matrix2d

using Ra::Core::Matrix2d = typedef Eigen::Matrix2d

Definition at line 73 of file Types.hpp.

◆ Matrix2f

using Ra::Core::Matrix2f = typedef Eigen::Matrix2f

Definition at line 68 of file Types.hpp.

◆ Matrix3

using Ra::Core::Matrix3 = typedef Eigen::Matrix<Scalar, 3, 3>

Definition at line 62 of file Types.hpp.

◆ Matrix3d

using Ra::Core::Matrix3d = typedef Eigen::Matrix3d

Definition at line 72 of file Types.hpp.

◆ Matrix3f

using Ra::Core::Matrix3f = typedef Eigen::Matrix3f

Definition at line 67 of file Types.hpp.

◆ Matrix4

using Ra::Core::Matrix4 = typedef Eigen::Matrix<Scalar, 4, 4>

Definition at line 61 of file Types.hpp.

◆ Matrix4d

using Ra::Core::Matrix4d = typedef Eigen::Matrix4d

Definition at line 71 of file Types.hpp.

◆ Matrix4f

using Ra::Core::Matrix4f = typedef Eigen::Matrix4f

Definition at line 66 of file Types.hpp.

◆ MatrixN

using Ra::Core::MatrixN = typedef Eigen::Matrix<Scalar, Eigen::Dynamic, Eigen::Dynamic>

Definition at line 60 of file Types.hpp.

◆ MatrixNd

using Ra::Core::MatrixNd = typedef Eigen::MatrixXd

Definition at line 70 of file Types.hpp.

◆ MatrixNf

using Ra::Core::MatrixNf = typedef Eigen::MatrixXf

Definition at line 65 of file Types.hpp.

◆ MatrixNui

using Ra::Core::MatrixNui = typedef Eigen::Matrix<uint, Eigen::Dynamic, Eigen::Dynamic>

Definition at line 75 of file Types.hpp.

◆ ParentList

◆ Quaternion

using Ra::Core::Quaternion = typedef Eigen::Quaternion<Scalar>

Definition at line 87 of file Types.hpp.

◆ Quaterniond

using Ra::Core::Quaterniond = typedef Eigen::Quaterniond

Definition at line 89 of file Types.hpp.

◆ Quaternionf

using Ra::Core::Quaternionf = typedef Eigen::Quaternionf

Definition at line 88 of file Types.hpp.

◆ Ray

using Ra::Core::Ray = typedef Eigen::ParametrizedLine<Scalar, 3>

Definition at line 52 of file Types.hpp.

◆ Rayd

using Ra::Core::Rayd = typedef Eigen::ParametrizedLine<double, 3>

Definition at line 54 of file Types.hpp.

◆ Rayf

using Ra::Core::Rayf = typedef Eigen::ParametrizedLine<float, 3>

Definition at line 53 of file Types.hpp.

◆ Sparse

using Ra::Core::Sparse = typedef Eigen::SparseMatrix<Scalar>

Definition at line 81 of file Types.hpp.

◆ Tex2D

template<typename T >
using Ra::Core::Tex2D = typedef Tex<T, 2>

Definition at line 48 of file Tex.hpp.

◆ Tex3D

template<typename T >
using Ra::Core::Tex3D = typedef Tex<T, 3>

Definition at line 51 of file Tex.hpp.

◆ Transform

using Ra::Core::Transform = typedef Eigen::Transform<Scalar, 3, Eigen::Affine>

Definition at line 91 of file Types.hpp.

◆ Transformd

using Ra::Core::Transformd = typedef Eigen::Affine3d

Definition at line 93 of file Types.hpp.

◆ Transformf

using Ra::Core::Transformf = typedef Eigen::Affine3f

Definition at line 92 of file Types.hpp.

◆ Translation

using Ra::Core::Translation = typedef Eigen::Translation<Scalar, 3>

Definition at line 103 of file Types.hpp.

◆ Translationd

using Ra::Core::Translationd = typedef Eigen::Translation3d

Definition at line 105 of file Types.hpp.

◆ Translationf

using Ra::Core::Translationf = typedef Eigen::Translation3f

Definition at line 104 of file Types.hpp.

◆ Vector1Array

Definition at line 119 of file VectorArray.hpp.

◆ Vector1ui

using Ra::Core::Vector1ui = typedef Eigen::Matrix<uint, 1, 1>

Definition at line 43 of file Types.hpp.

◆ Vector2

using Ra::Core::Vector2 = typedef Eigen::Matrix<Scalar, 2, 1>

Definition at line 33 of file Types.hpp.

◆ Vector2d

using Ra::Core::Vector2d = typedef Eigen::Vector2d

Definition at line 35 of file Types.hpp.

◆ Vector2f

using Ra::Core::Vector2f = typedef Eigen::Vector2f

Definition at line 34 of file Types.hpp.

◆ Vector2i

using Ra::Core::Vector2i = typedef Eigen::Vector2i

Definition at line 38 of file Types.hpp.

◆ Vector2ui

using Ra::Core::Vector2ui = typedef Eigen::Matrix<uint, 2, 1>

Definition at line 44 of file Types.hpp.

◆ Vector3

using Ra::Core::Vector3 = typedef Eigen::Matrix<Scalar, 3, 1>

Definition at line 29 of file Types.hpp.

◆ Vector3d

using Ra::Core::Vector3d = typedef Eigen::Vector3d

Definition at line 31 of file Types.hpp.

◆ Vector3f

using Ra::Core::Vector3f = typedef Eigen::Vector3f

Definition at line 30 of file Types.hpp.

◆ Vector3i

using Ra::Core::Vector3i = typedef Eigen::Vector3i

Definition at line 39 of file Types.hpp.

◆ Vector3ui

using Ra::Core::Vector3ui = typedef Eigen::Matrix<uint, 3, 1>

Definition at line 45 of file Types.hpp.

◆ Vector4

using Ra::Core::Vector4 = typedef Eigen::Matrix<Scalar, 4, 1>

Definition at line 25 of file Types.hpp.

◆ Vector4d

using Ra::Core::Vector4d = typedef Eigen::Vector4d

Definition at line 27 of file Types.hpp.

◆ Vector4f

using Ra::Core::Vector4f = typedef Eigen::Vector4f

Definition at line 26 of file Types.hpp.

◆ Vector4i

using Ra::Core::Vector4i = typedef Eigen::Vector4i

Definition at line 40 of file Types.hpp.

◆ Vector4ui

using Ra::Core::Vector4ui = typedef Eigen::Matrix<uint, 4, 1>

Definition at line 46 of file Types.hpp.

◆ VectorN

using Ra::Core::VectorN = typedef Eigen::Matrix<Scalar, Eigen::Dynamic, 1>

Definition at line 21 of file Types.hpp.

◆ VectorNd

using Ra::Core::VectorNd = typedef Eigen::VectorXd

Definition at line 23 of file Types.hpp.

◆ VectorNf

using Ra::Core::VectorNf = typedef Eigen::VectorXf

Definition at line 22 of file Types.hpp.

◆ VectorNi

using Ra::Core::VectorNi = typedef Eigen::VectorXi

Definition at line 37 of file Types.hpp.

◆ VectorNui

using Ra::Core::VectorNui = typedef Eigen::Matrix<uint, Eigen::Dynamic, 1>

Definition at line 42 of file Types.hpp.

Function Documentation

◆ make_shared()

template<typename T , class... Args>
std::shared_ptr< T > Ra::Core::make_shared ( Args &&...  args)
inline

A replacement for std::make_shared on platforms where it does not respect alignments. Most platforms try to be clever and implement std::make_shared so that the shared pointer data and the new object are allocated within the same memory chunk. This is usually desirable, but means that your new object may not be properly aligned despite your declarations in our case we ditch std::make_shared and use a replacement.

Todo:
Check if we still need that thing...

Definition at line 17 of file MakeShared.hpp.

◆ operator*()

DualQuaternion Ra::Core::operator* ( Scalar  scalar,
const DualQuaternion dq 
)
inline

Pre-multiplication of dual quaternion.

Definition at line 165 of file DualQuaternion.hpp.

◆ operator<<()

RA_CORE_API std::ofstream & Ra::Core::operator<< ( std::ofstream ofs,
const AdjacencyList adj 
)

Definition at line 124 of file AdjacencyList.cpp.

◆ reversed() [1/2]

template<class T >
_internalIterator::_reversed< T > Ra::Core::reversed ( T &  t)

Definition at line 23 of file Iterators.hpp.

◆ reversed() [2/2]

template<class T >
_internalIterator::_reversed< T const > Ra::Core::reversed ( T const t)

Definition at line 27 of file Iterators.hpp.