Radium Engine  1.5.20
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
 
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 const > reversed (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 = Eigen::AlignedBox<Scalar, 3>

Definition at line 95 of file Types.hpp.

◆ Aabbd

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

Definition at line 97 of file Types.hpp.

◆ Aabbf

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

Definition at line 96 of file Types.hpp.

◆ Adjacency

◆ AlignedStdVector

template<typename T >
using Ra::Core::AlignedStdVector = 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 = Eigen::AngleAxis<Scalar>

Definition at line 99 of file Types.hpp.

◆ AngleAxisd

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

Definition at line 101 of file Types.hpp.

◆ AngleAxisf

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

Definition at line 100 of file Types.hpp.

◆ ChildrenList

Definition at line 13 of file AdjacencyList.hpp.

◆ Diagonal

using Ra::Core::Diagonal
Initial value:
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 = Eigen::Matrix<Scalar, 2, 2>

Definition at line 63 of file Types.hpp.

◆ Matrix2d

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

Definition at line 73 of file Types.hpp.

◆ Matrix2f

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

Definition at line 68 of file Types.hpp.

◆ Matrix3

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

Definition at line 62 of file Types.hpp.

◆ Matrix3d

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

Definition at line 72 of file Types.hpp.

◆ Matrix3f

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

Definition at line 67 of file Types.hpp.

◆ Matrix4

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

Definition at line 61 of file Types.hpp.

◆ Matrix4d

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

Definition at line 71 of file Types.hpp.

◆ Matrix4f

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

Definition at line 66 of file Types.hpp.

◆ MatrixN

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

Definition at line 60 of file Types.hpp.

◆ MatrixNd

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

Definition at line 70 of file Types.hpp.

◆ MatrixNf

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

Definition at line 65 of file Types.hpp.

◆ MatrixNui

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

Definition at line 75 of file Types.hpp.

◆ ParentList

Definition at line 11 of file AdjacencyList.hpp.

◆ Quaternion

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

Definition at line 87 of file Types.hpp.

◆ Quaterniond

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

Definition at line 89 of file Types.hpp.

◆ Quaternionf

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

Definition at line 88 of file Types.hpp.

◆ Ray

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

Definition at line 52 of file Types.hpp.

◆ Rayd

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

Definition at line 54 of file Types.hpp.

◆ Rayf

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

Definition at line 53 of file Types.hpp.

◆ Sparse

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

Definition at line 81 of file Types.hpp.

◆ Tex2D

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

Definition at line 48 of file Tex.hpp.

◆ Tex3D

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

Definition at line 51 of file Tex.hpp.

◆ Transform

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

Definition at line 91 of file Types.hpp.

◆ Transformd

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

Definition at line 93 of file Types.hpp.

◆ Transformf

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

Definition at line 92 of file Types.hpp.

◆ Translation

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

Definition at line 103 of file Types.hpp.

◆ Translationd

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

Definition at line 105 of file Types.hpp.

◆ Translationf

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

Definition at line 104 of file Types.hpp.

◆ Vector1Array

Definition at line 119 of file VectorArray.hpp.

◆ Vector1ui

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

Definition at line 43 of file Types.hpp.

◆ Vector2

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

Definition at line 33 of file Types.hpp.

◆ Vector2d

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

Definition at line 35 of file Types.hpp.

◆ Vector2f

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

Definition at line 34 of file Types.hpp.

◆ Vector2i

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

Definition at line 38 of file Types.hpp.

◆ Vector2ui

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

Definition at line 44 of file Types.hpp.

◆ Vector3

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

Definition at line 29 of file Types.hpp.

◆ Vector3d

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

Definition at line 31 of file Types.hpp.

◆ Vector3f

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

Definition at line 30 of file Types.hpp.

◆ Vector3i

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

Definition at line 39 of file Types.hpp.

◆ Vector3ui

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

Definition at line 45 of file Types.hpp.

◆ Vector4

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

Definition at line 25 of file Types.hpp.

◆ Vector4d

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

Definition at line 27 of file Types.hpp.

◆ Vector4f

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

Definition at line 26 of file Types.hpp.

◆ Vector4i

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

Definition at line 40 of file Types.hpp.

◆ Vector4ui

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

Definition at line 46 of file Types.hpp.

◆ VectorN

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

Definition at line 21 of file Types.hpp.

◆ VectorNd

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

Definition at line 23 of file Types.hpp.

◆ VectorNf

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

Definition at line 22 of file Types.hpp.

◆ VectorNi

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

Definition at line 37 of file Types.hpp.

◆ VectorNui

using Ra::Core::VectorNui = 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.

+ Here is the call graph for this function:

◆ 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.