for std::pair More...
Namespaces | |
functionality | |
pairwise | |
trait | |
Classes | |
class | BoundingBox |
class | TBoundingBox |
class | BoundingBox2D |
bounding rectangle More... | |
class | BoundingBox1D |
bounding interval More... | |
class | DualQuatCoord3 |
class | fixed_array |
class | Frame |
class | Vec |
class | VecNoInit |
Same as Vec except the values are not initialized by default. More... | |
class | Mat |
class | MatNoInit |
Same as Mat except the values are not initialized by default. More... | |
class | Quat |
struct | CleanupCheck |
struct | detect |
struct | detect< T, Op, void_t< Op< T > > > |
class | Material |
class | MatSym |
class | PrimitiveGroup |
struct | qNoInit |
class | QuatNoInit |
Same as Quat except the values are not initialized by default. More... | |
class | Ray |
class | RGBAColor |
encode a 4 RGBA component color More... | |
class | SpatialVector |
struct | StrongType |
class | SVector |
Same as type::vector, + delimiters on serialization. More... | |
struct | HasRebindTypedef |
struct | HasRebindTypedef< T, OtherType, std::void_t< typename T::template rebind_to< OtherType > > > |
struct | Rebind |
struct | Rebind< _T, _OtherType, std::enable_if_t< HasRebindTypedef< _T, _OtherType >::value > > |
Specialization for types that do have a nested rebind_to member. In this implementation, Rebind has a public member typedef to. It corresponds to the typedef rebind_to. More... | |
struct | Rebind< _T, _OtherType, std::enable_if_t<!HasRebindTypedef< _T, _OtherType >::value > > |
Specialization for types that do NOT have a nested rebind_to member. In this implementation, Rebind has no public member typedef to. If this implementation is chosen by the compiler (the number of template parameters is probably different from 1), a compilation error occurs. More... | |
struct | Rebind< _T< A >, _OtherType, std::enable_if_t<!HasRebindTypedef< _T< A >, _OtherType >::value > > |
Specialization for types that do NOT have a nested rebind_to member. In this implementation, Rebind has a public member typedef to. More... | |
class | Transform |
struct | NoInit |
class | vector_device |
class | CPUMemoryManager |
class | vector |
Typedefs | |
typedef Vec< 1, float > | Vec1f |
typedef Vec< 1, double > | Vec1d |
typedef Vec< 1, int > | Vec1i |
typedef Vec< 1, unsigned > | Vec1u |
typedef Vec< 1, SReal > | Vec1 |
typedef Vec< 2, float > | Vec2f |
typedef Vec< 2, double > | Vec2d |
typedef Vec< 2, int > | Vec2i |
typedef Vec< 2, unsigned > | Vec2u |
typedef Vec< 2, SReal > | Vec2 |
typedef Vec< 3, float > | Vec3f |
typedef Vec< 3, double > | Vec3d |
typedef Vec< 3, int > | Vec3i |
typedef Vec< 3, unsigned > | Vec3u |
typedef Vec< 3, SReal > | Vec3 |
typedef Vec< 4, float > | Vec4f |
typedef Vec< 4, double > | Vec4d |
typedef Vec< 4, int > | Vec4i |
typedef Vec< 4, unsigned > | Vec4u |
typedef Vec< 4, SReal > | Vec4 |
typedef Vec< 6, float > | Vec6f |
typedef Vec< 6, double > | Vec6d |
typedef Vec< 6, int > | Vec6i |
typedef Vec< 6, unsigned > | Vec6u |
typedef Vec< 6, SReal > | Vec6 |
typedef Mat< 1, 1, float > | Mat1x1f |
typedef Mat< 1, 1, double > | Mat1x1d |
typedef Mat< 2, 2, float > | Mat2x2f |
typedef Mat< 2, 2, double > | Mat2x2d |
typedef Mat< 3, 3, float > | Mat3x3f |
typedef Mat< 3, 3, double > | Mat3x3d |
typedef Mat< 3, 4, float > | Mat3x4f |
typedef Mat< 3, 4, double > | Mat3x4d |
typedef Mat< 4, 4, float > | Mat4x4f |
typedef Mat< 4, 4, double > | Mat4x4d |
typedef Mat< 6, 6, float > | Mat6x6f |
typedef Mat< 6, 6, double > | Mat6x6d |
typedef Mat< 2, 2, SReal > | Mat2x2 |
typedef Mat< 3, 3, SReal > | Mat3x3 |
typedef Mat< 4, 4, SReal > | Mat4x4 |
typedef Mat< 6, 6, SReal > | Mat6x6 |
typedef Mat< 2, 2, SReal > | Matrix2 |
typedef Mat< 3, 3, SReal > | Matrix3 |
typedef Mat< 4, 4, SReal > | Matrix4 |
using | Quatd = type::Quat< double > |
using | Quatf = type::Quat< float > |
using | BoundingBox3D = BoundingBox |
using | FixedArray1i = fixed_array< int, 1 > |
using | FixedArray1I = fixed_array< unsigned int, 1 > |
using | FixedArray2i = fixed_array< int, 2 > |
using | FixedArray2I = fixed_array< unsigned int, 2 > |
using | FixedArray3i = fixed_array< int, 3 > |
using | FixedArray3I = fixed_array< unsigned int, 3 > |
using | FixedArray4i = fixed_array< int, 4 > |
using | FixedArray4I = fixed_array< unsigned int, 4 > |
using | FixedArray5i = fixed_array< int, 5 > |
using | FixedArray5I = fixed_array< unsigned int, 5 > |
using | FixedArray6i = fixed_array< int, 6 > |
using | FixedArray6I = fixed_array< unsigned int, 6 > |
using | FixedArray7i = fixed_array< int, 7 > |
using | FixedArray7I = fixed_array< unsigned int, 7 > |
using | FixedArray8i = fixed_array< int, 8 > |
using | FixedArray8I = fixed_array< unsigned int, 8 > |
using | FixedArray1f = fixed_array< float, 1 > |
using | FixedArray1d = fixed_array< double, 1 > |
using | FixedArray2f = fixed_array< float, 2 > |
using | FixedArray2d = fixed_array< double, 2 > |
using | FixedArray3f = fixed_array< float, 3 > |
using | FixedArray3d = fixed_array< double, 3 > |
using | FixedArray4f = fixed_array< float, 4 > |
using | FixedArray4d = fixed_array< double, 4 > |
using | FixedArray5f = fixed_array< float, 5 > |
using | FixedArray5d = fixed_array< double, 5 > |
using | FixedArray6f = fixed_array< float, 6 > |
using | FixedArray6d = fixed_array< double, 6 > |
using | FixedArray7f = fixed_array< float, 7 > |
using | FixedArray7d = fixed_array< double, 7 > |
using | FixedArray8f = fixed_array< float, 8 > |
using | FixedArray8d = fixed_array< double, 8 > |
template<typename... > | |
using | void_t = void |
template<typename T > | |
using | isRigid_t = decltype(std::declval< typename T::Coord >().getOrientation()) |
template<typename T > | |
using | isRigidType = detect< T, isRigid_t > |
template<class T , class A = std::allocator<T>> | |
using | stable_vector = boost::container::stable_vector< T, A > |
template<class T , class B > | |
using | rebind_to = typename Rebind< T, B >::to |
Functions | |
BoundingBox::bbox_t | make_neutralBBox () |
template<typename... Ts> | |
constexpr auto | make_array (Ts &&... ts) -> fixed_array< std::common_type_t< Ts... >, sizeof...(Ts)> |
template<typename T , sofa::Size N> | |
constexpr sofa::type::fixed_array< T, N > | makeHomogeneousArray (const T &value) |
Builds a fixed_array in which all elements have the same value. More... | |
template<typename FixedArray > | |
constexpr FixedArray | makeHomogeneousArray (const typename FixedArray::value_type &value) |
Builds a fixed_array in which all elements have the same value. More... | |
template<typename T , sofa::Size N> | |
constexpr bool | operator< (const fixed_array< T, N > &v1, const fixed_array< T, N > &v2) noexcept |
Checks if v1 is lexicographically less than v2. Similar to std::lexicographical_compare. More... | |
template<typename T , sofa::Size N> | |
constexpr bool | operator> (const fixed_array< T, N > &v1, const fixed_array< T, N > &v2) noexcept |
std::ostream & | operator<< (std::ostream &out, const sofa::type::Frame &c) |
SOFA_TYPE_API void | init () |
Initialize the SofaHelper library. More... | |
SOFA_TYPE_API bool | isInitialized () |
Return true if and only if the SofaHelper library has been initialized. More... | |
SOFA_TYPE_API void | cleanup () |
Clean up the resources used by the SofaHelper library. More... | |
SOFA_TYPE_API bool | isCleanedUp () |
Return true if and only if the SofaHelper library has been cleaned up. More... | |
SOFA_TYPE_API void | printUninitializedLibraryWarning (const std::string &library, const std::string &initFunction) |
Print a warning about a library not being initialized (meant for internal use). More... | |
SOFA_TYPE_API void | printLibraryNotCleanedUpWarning (const std::string &library, const std::string &cleanupFunction) |
Print a warning about a library not being cleaned up (meant for internal use). More... | |
template<sofa::Size L, sofa::Size C, sofa::Size P, class real > | |
constexpr Mat< C, P, real > | multTranspose (const Mat< L, C, real > &m1, const Mat< L, P, real > &m2) noexcept |
template<class real > | |
constexpr real | determinant (const Mat< 3, 3, real > &m) noexcept |
Determinant of a 3x3 matrix. More... | |
template<class real > | |
constexpr real | determinant (const Mat< 2, 2, real > &m) noexcept |
Determinant of a 2x2 matrix. More... | |
template<class real > | |
constexpr real | determinant (const Mat< 2, 3, real > &m) noexcept |
template<class real > | |
constexpr real | determinant (const Mat< 3, 2, real > &m) noexcept |
template<class real > | |
real | oneNorm (const Mat< 3, 3, real > &A) |
template<class real > | |
real | infNorm (const Mat< 3, 3, real > &A) |
template<sofa::Size N, class real > | |
constexpr real | trace (const Mat< N, N, real > &m) noexcept |
trace of a square matrix More... | |
template<sofa::Size N, class real > | |
constexpr Vec< N, real > | diagonal (const Mat< N, N, real > &m) |
diagonal of a square matrix More... | |
template<sofa::Size S, class real > | |
bool | invertMatrix (Mat< S, S, real > &dest, const Mat< S, S, real > &from) |
Matrix inversion (general case). More... | |
template<class real > | |
constexpr bool | invertMatrix (Mat< 3, 3, real > &dest, const Mat< 3, 3, real > &from) |
Matrix inversion (special case 3x3). More... | |
template<class real > | |
constexpr bool | invertMatrix (Mat< 2, 2, real > &dest, const Mat< 2, 2, real > &from) |
Matrix inversion (special case 2x2). More... | |
template<class real > | |
constexpr bool | invertMatrix (Mat< 1, 1, real > &dest, const Mat< 1, 1, real > &from) |
Matrix inversion (special case 1x1). More... | |
template<sofa::Size S, class real > | |
constexpr bool | transformInvertMatrix (Mat< S, S, real > &dest, const Mat< S, S, real > &from) |
Inverse Matrix considering the matrix as a transformation. More... | |
template<sofa::Size L, sofa::Size C, typename real > | |
std::ostream & | operator<< (std::ostream &o, const Mat< L, C, real > &m) |
template<sofa::Size L, sofa::Size C, typename real > | |
std::istream & | operator>> (std::istream &in, Mat< L, C, real > &m) |
template<sofa::Size L, sofa::Size C, typename real > | |
void | printMatlab (std::ostream &o, const Mat< L, C, real > &m) |
printing in other software formats More... | |
template<sofa::Size L, sofa::Size C, typename real > | |
void | printMaple (std::ostream &o, const Mat< L, C, real > &m) |
template<class Tu , class Tv > | |
constexpr Mat< Tu::size(), Tv::size(), typename Tu::value_type > | dyad (const Tu &u, const Tv &v) noexcept |
Create a matrix as . More... | |
template<sofa::Size L, sofa::Size C, typename real > | |
constexpr real | scalarProduct (const Mat< L, C, real > &left, const Mat< L, C, real > &right) noexcept |
Compute the scalar product of two matrix (sum of product of all terms) More... | |
template<class Real > | |
constexpr Mat< 3, 3, Real > | crossProductMatrix (const Vec< 3, Real > &v) noexcept |
template<sofa::Size L, class Real > | |
constexpr Mat< L, L, Real > | tensorProduct (const Vec< L, Real > &a, const Vec< L, Real > &b) noexcept |
return a * b^T More... | |
template<sofa::Size L, sofa::Size C, sofa::Size P, class real > | |
constexpr Mat< L, P, real > | operator* (const Mat< L, C, real > &m1, const Mat< C, P, real > &m2) noexcept |
template<class real > | |
constexpr Mat< 3, 3, real > | operator* (const Mat< 3, 3, real > &m1, const Mat< 3, 3, real > &m2) noexcept |
template<class real > | |
constexpr Mat< 3, 3, real > | multTranspose (const Mat< 3, 3, real > &m1, const Mat< 3, 3, real > &m2) noexcept |
template<Size n, class real > | |
bool | cholDcmp (Mat< n, n, real > &L, const Mat< n, n, real > &M) |
template<Size n, class real > | |
void | cholBksb (Vec< n, real > &x, const Mat< n, n, real > &L, const Vec< n, real > &b) |
template<Size n, class real > | |
bool | cholSlv (Vec< n, real > &x, const Mat< n, n, real > &M, const Vec< n, real > &b) |
template<Size n, class real > | |
bool | cholInv (Mat< n, n, real > &Inv, const Mat< n, n, real > &M) |
template<Size dim, typename real > | |
bool | solveLCP (const Vec< dim, real > &q, const Mat< dim, dim, real > &M, Vec< dim *2, real > &res) |
template<int n, typename Real > | |
void | ludcmp (Mat< n, n, Real > &a, Vec< n, int > &indx) |
Compute the LU decomposition of matrix a. a is replaced by its pivoted LU decomposition. indx stores pivoting indices. More... | |
template<int n, typename Real > | |
void | lubksb (const Mat< n, n, Real > &a, const Vec< n, int > &indx, Vec< n, Real > &b) |
Compute the solution of Mx=b. b is replaced by x. a and indx together represent the LU decomposition of m, as given my method ludcmp. More... | |
template<int n, typename Real > | |
void | luinv (Mat< n, n, Real > &inv, Mat< n, n, Real > &m) |
template<class T1 , class T2 > | |
const T1 | S_MAX (const T1 &a, const T2 &b) |
return the max of two values More... | |
template<class T1 , class T2 > | |
const T1 | S_MIN (const T1 &a, const T2 &b) |
return the min of two values More... | |
template<class T1 , class T2 > | |
const T1 | S_SIGN (const T1 &a, const T2 &b) |
template<class T > | |
const T | S_SQR (const T a) |
template<class T1 , class T2 > | |
T1 | pythag (const T1 a, const T2 b) |
Computes sqrt(a^2 + b^2) without destructive underflow or overflow. More... | |
template<int m, int n, typename Real > | |
void | svddcmp (Mat< m, n, Real > &a, Vec< n, Real > &w, Mat< n, m, Real > &v) |
Compute the SVD decomposition of matrix a (from nr). a is replaced by its pivoted LU decomposition. indx stores pivoting indices. More... | |
template<int m, int n, typename Real > | |
Real | cond (Mat< m, n, Real > &a) |
return the condition number of the matrix a following the euclidean norm (using the svd decomposition to find singular values) More... | |
std::ostream & | operator<< (std::ostream &out, const Material &m) |
std::istream & | operator>> (std::istream &in, Material &m) |
template<sofa::Size D, class real > | |
Mat< D, D, real > | operator* (const Mat< D, D, real > &a, const MatSym< D, real > &b) |
template<class real > | |
real | determinant (const MatSym< 3, real > &m) |
Determinant of a 3x3 matrix. More... | |
template<class real > | |
real | determinant (const MatSym< 2, real > &m) |
Determinant of a 2x2 matrix. More... | |
template<class real > | |
real | trace (const MatSym< 3, real > &m) |
Trace of a 3x3 matrix. More... | |
template<class real > | |
real | trace (const MatSym< 2, real > &m) |
Trace of a 2x2 matrix. More... | |
template<sofa::Size S, class real > | |
bool | invertMatrix (MatSym< S, real > &dest, const MatSym< S, real > &from) |
Matrix inversion (general case). More... | |
template<class real > | |
bool | invertMatrix (MatSym< 3, real > &dest, const MatSym< 3, real > &from) |
Matrix inversion (special case 3x3). More... | |
template<class real > | |
bool | invertMatrix (MatSym< 2, real > &dest, const MatSym< 2, real > &from) |
Matrix inversion (special case 2x2). More... | |
template<sofa::Size D, class real > | |
std::ostream & | operator<< (std::ostream &o, const MatSym< D, real > &m) |
template<sofa::Size D, class real > | |
std::istream & | operator>> (std::istream &in, MatSym< D, real > &m) |
template<sofa::Size D, typename real > | |
real | scalarProduct (const MatSym< D, real > &left, const MatSym< D, real > &right) |
Compute the scalar product of two matrix (sum of product of all terms) More... | |
template<sofa::Size D, typename real > | |
real | scalarProduct (const MatSym< D, real > &left, const Mat< D, D, real > &right) |
template<sofa::Size D, typename real > | |
real | scalarProduct (const Mat< D, D, real > &left, const MatSym< D, real > &right) |
std::ostream & | operator<< (std::ostream &out, const PrimitiveGroup &g) |
std::istream & | operator>> (std::istream &in, PrimitiveGroup &g) |
template SOFA_TYPE_API std::ostream & | operator<< (std::ostream &out, const Quat< double > &v) |
template SOFA_TYPE_API std::istream & | operator>> (std::istream &in, Quat< double > &v) |
template SOFA_TYPE_API std::ostream & | operator<< (std::ostream &out, const Quat< float > &v) |
template SOFA_TYPE_API std::istream & | operator>> (std::istream &in, Quat< float > &v) |
template<class Real > | |
SOFA_TYPE_API std::ostream & | operator<< (std::ostream &out, const Quat< Real > &v) |
write to an output stream More... | |
template<class Real > | |
SOFA_TYPE_API std::istream & | operator>> (std::istream &in, Quat< Real > &v) |
read from an input stream More... | |
template<class Real > | |
std::ostream & | operator<< (std::ostream &out, const Quat< Real > &v) |
write to an output stream More... | |
template<class Real > | |
std::istream & | operator>> (std::istream &in, Quat< Real > &v) |
read from an input stream More... | |
SOFA_TYPE_API std::istream & | operator>> (std::istream &i, RGBAColor &t) |
SOFA_TYPE_API std::ostream & | operator<< (std::ostream &out, const RGBAColor &t) |
Write to an output stream. More... | |
constexpr RGBAColor | operator- (const RGBAColor &l, const RGBAColor &r) |
constexpr RGBAColor | operator+ (const RGBAColor &l, const RGBAColor &r) |
constexpr RGBAColor | operator/ (const RGBAColor &l, const float div) |
template<sofa::Size N, typename Real > | |
std::istream & | operator>> (std::istream &in, Vec< N, Real > &v) |
Read from an input stream. More... | |
template<sofa::Size N, typename Real > | |
std::ostream & | operator<< (std::ostream &out, const Vec< N, Real > &v) |
Write to an output stream. More... | |
template<typename real1 , typename real2 > | |
constexpr Vec< 3, real1 > | cross (const Vec< 3, real1 > &a, const Vec< 3, real2 > &b) noexcept |
Cross product for 3-elements vectors. More... | |
template<typename real1 , typename real2 > | |
constexpr real1 | cross (const type::Vec< 2, real1 > &a, const type::Vec< 2, real2 > &b) noexcept |
Cross product for 2-elements vectors. More... | |
template<sofa::Size N, typename real > | |
constexpr real | dot (const Vec< N, real > &a, const Vec< N, real > &b) noexcept |
Dot product (alias for operator*) More... | |
template<sofa::Size N, typename real > | |
constexpr Vec< N, real > | operator* (const double &a, const Vec< N, real > &V) noexcept |
template<sofa::Size N, typename real > | |
constexpr Vec< N, real > | operator* (const float &a, const Vec< N, real > &V) noexcept |
template<typename T , sofa::Size N> | |
constexpr bool | operator< (const Vec< N, T > &v1, const Vec< N, T > &v2) noexcept |
Checks if v1 is lexicographically less than v2. Similar to std::lexicographical_compare. More... | |
void SOFA_TYPE_API | vector_access_failure (const void *vec, const std::size_t size, const std::size_t i, const std::type_info &type) |
template<class T1 , class T2 > | |
void | remove (T1 &v, const T2 &elem) |
template<class T1 , class T2 > | |
void | removeValue (T1 &v, const T2 &elem) |
template<class T , class TT > | |
void | removeIndex (std::vector< T, TT > &v, size_t index) |
Remove value at given index, replace it by the value at the last index, other values are not changed. More... | |
SOFA_TYPE_API int | getInteger (const std::string &s, std::stringstream &msg, unsigned int &numErrors) |
SOFA_TYPE_API unsigned int | getUnsignedInteger (const std::string &s, std::stringstream &msg, unsigned int &numErrors) |
linear algebra on standard vectors | |
template<class V1 , class V2 > | |
SReal | dot (const V1 &vector1, const V2 &vector2) |
Dot product of two vectors. More... | |
template<class V > | |
SReal | norm (const V &v) |
Norm of a vector. More... | |
template<class V1 , class Scalar , class V2 , class V3 > | |
void | axpy (V1 &result, Scalar a, const V2 &x, const V3 &y) |
Vector operation: result = ax + y. More... | |
Variables | |
template class SOFA_TYPE_API | DualQuatCoord3< double > |
template class SOFA_TYPE_API | DualQuatCoord3< float > |
template class SOFA_TYPE_API | fixed_array< float, 2 > |
template class SOFA_TYPE_API | fixed_array< double, 2 > |
template class SOFA_TYPE_API | fixed_array< float, 3 > |
template class SOFA_TYPE_API | fixed_array< double, 3 > |
template class SOFA_TYPE_API | fixed_array< float, 4 > |
template class SOFA_TYPE_API | fixed_array< double, 4 > |
template class SOFA_TYPE_API | fixed_array< float, 5 > |
template class SOFA_TYPE_API | fixed_array< double, 5 > |
template class SOFA_TYPE_API | fixed_array< float, 6 > |
template class SOFA_TYPE_API | fixed_array< double, 6 > |
template class SOFA_TYPE_API | fixed_array< float, 7 > |
template class SOFA_TYPE_API | fixed_array< double, 7 > |
template class SOFA_TYPE_API | Quat< double > |
Explicit instantiation of the quaternions for double precision. More... | |
template class SOFA_TYPE_API | Quat< float > |
Explicit instantiation of the quaternions for single precision. More... | |
constexpr qNoInit | QNOINIT |
const std::map< std::string, RGBAColor > | stringToColorMap |
constexpr RGBAColor | g_white {1.0f, 1.0f, 1.0f, 1.0f} |
constexpr RGBAColor | g_black {0.0f, 0.0f, 0.0f, 1.0f} |
constexpr RGBAColor | g_red {1.0f, 0.0f, 0.0f, 1.0f} |
constexpr RGBAColor | g_green {0.0f, 1.0f, 0.0f, 1.0f} |
constexpr RGBAColor | g_blue {0.0f, 0.0f, 1.0f, 1.0f} |
constexpr RGBAColor | g_cyan {0.0f, 1.0f, 1.0f, 1.0f} |
constexpr RGBAColor | g_magenta {1.0f, 0.0f, 1.0f, 1.0f} |
constexpr RGBAColor | g_yellow {1.0f, 1.0f, 0.0f, 1.0f} |
constexpr RGBAColor | g_gray {0.5f, 0.5f, 0.5f, 1.0f} |
constexpr RGBAColor | g_darkgray {0.25f, 0.25f,0.25f, 1.0f} |
constexpr RGBAColor | g_lightgray {0.75f, 0.75f,0.75f, 1.0f} |
constexpr RGBAColor | g_orange { 1.0f, 0.5f, 0.0f, 1.0f } |
constexpr RGBAColor | g_purple { 0.5f, 0.0f, 0.5f, 1.0f } |
constexpr RGBAColor | g_pink { 1.0f, 0.0f, 0.5f, 1.0f } |
constexpr RGBAColor | g_brown { 0.6f, 0.3f, 0.0f, 1.0f } |
constexpr RGBAColor | g_lime { 0.5f, 1.0f, 0.0f, 1.0f } |
constexpr RGBAColor | g_teal { 0.0f, 0.5f, 0.5f, 1.0f } |
constexpr RGBAColor | g_navy { 0.0f, 0.0f, 0.5f, 1.0f } |
constexpr RGBAColor | g_olive { 0.5f, 0.5f, 0.0f, 1.0f } |
constexpr RGBAColor | g_maroon { 0.5f, 0.0f, 0.0f, 1.0f } |
constexpr RGBAColor | g_silver { 0.75f, 0.75f, 0.75f, 1.0f } |
constexpr RGBAColor | g_gold { 1.0f, 0.84f, 0.0f, 1.0f } |
template class SOFA_TYPE_API | SpatialVector< double > |
template class SOFA_TYPE_API | SpatialVector< float > |
template<class... > | |
constexpr auto | deny = false |
template class SOFA_TYPE_API | Transform< double > |
template class SOFA_TYPE_API | Transform< float > |
template class SOFA_TYPE_API | Vec< 2, float > |
template class SOFA_TYPE_API | Vec< 2, int > |
template class SOFA_TYPE_API | Vec< 2, double > |
template class SOFA_TYPE_API | Vec< 2, unsigned > |
template class SOFA_TYPE_API | Vec< 3, float > |
template class SOFA_TYPE_API | Vec< 3, int > |
template class SOFA_TYPE_API | Vec< 3, double > |
template class SOFA_TYPE_API | Vec< 3, unsigned > |
template class SOFA_TYPE_API | Vec< 4, float > |
template class SOFA_TYPE_API | Vec< 4, int > |
template class SOFA_TYPE_API | Vec< 4, double > |
template class SOFA_TYPE_API | Vec< 4, unsigned > |
template class SOFA_TYPE_API | Vec< 6, float > |
template class SOFA_TYPE_API | Vec< 6, int > |
template class SOFA_TYPE_API | Vec< 6, double > |
template class SOFA_TYPE_API | Vec< 6, unsigned > |
constexpr NoInit | NOINIT |
for std::pair
All integral types are considered as extern templates.
using sofa::type::BoundingBox3D = typedef BoundingBox |
using sofa::type::FixedArray1d = typedef fixed_array<double, 1> |
using sofa::type::FixedArray1f = typedef fixed_array<float, 1> |
using sofa::type::FixedArray1i = typedef fixed_array<int, 1> |
using sofa::type::FixedArray1I = typedef fixed_array<unsigned int, 1> |
using sofa::type::FixedArray2d = typedef fixed_array<double, 2> |
using sofa::type::FixedArray2f = typedef fixed_array<float, 2> |
using sofa::type::FixedArray2i = typedef fixed_array<int, 2> |
using sofa::type::FixedArray2I = typedef fixed_array<unsigned int, 2> |
using sofa::type::FixedArray3d = typedef fixed_array<double, 3> |
using sofa::type::FixedArray3f = typedef fixed_array<float, 3> |
using sofa::type::FixedArray3i = typedef fixed_array<int, 3> |
using sofa::type::FixedArray3I = typedef fixed_array<unsigned int, 3> |
using sofa::type::FixedArray4d = typedef fixed_array<double, 4> |
using sofa::type::FixedArray4f = typedef fixed_array<float, 4> |
using sofa::type::FixedArray4i = typedef fixed_array<int, 4> |
using sofa::type::FixedArray4I = typedef fixed_array<unsigned int, 4> |
using sofa::type::FixedArray5d = typedef fixed_array<double, 5> |
using sofa::type::FixedArray5f = typedef fixed_array<float, 5> |
using sofa::type::FixedArray5i = typedef fixed_array<int, 5> |
using sofa::type::FixedArray5I = typedef fixed_array<unsigned int, 5> |
using sofa::type::FixedArray6d = typedef fixed_array<double, 6> |
using sofa::type::FixedArray6f = typedef fixed_array<float, 6> |
using sofa::type::FixedArray6i = typedef fixed_array<int, 6> |
using sofa::type::FixedArray6I = typedef fixed_array<unsigned int, 6> |
using sofa::type::FixedArray7d = typedef fixed_array<double, 7> |
using sofa::type::FixedArray7f = typedef fixed_array<float, 7> |
using sofa::type::FixedArray7i = typedef fixed_array<int, 7> |
using sofa::type::FixedArray7I = typedef fixed_array<unsigned int, 7> |
using sofa::type::FixedArray8d = typedef fixed_array<double, 8> |
using sofa::type::FixedArray8f = typedef fixed_array<float, 8> |
using sofa::type::FixedArray8i = typedef fixed_array<int, 8> |
using sofa::type::FixedArray8I = typedef fixed_array<unsigned int, 8> |
using sofa::type::isRigid_t = typedef decltype(std::declval<typename T::Coord>().getOrientation()) |
using sofa::type::isRigidType = typedef detect<T, isRigid_t> |
typedef Mat<1,1,double> sofa::type::Mat1x1d |
typedef Mat<1,1,float> sofa::type::Mat1x1f |
typedef Mat<2,2,SReal> sofa::type::Mat2x2 |
typedef Mat<2,2,double> sofa::type::Mat2x2d |
typedef Mat<2,2,float> sofa::type::Mat2x2f |
typedef Mat<3,3,SReal> sofa::type::Mat3x3 |
typedef Mat<3,3,double> sofa::type::Mat3x3d |
typedef Mat<3,3,float> sofa::type::Mat3x3f |
typedef Mat<3,4,double> sofa::type::Mat3x4d |
typedef Mat<3,4,float> sofa::type::Mat3x4f |
typedef Mat<4,4,SReal> sofa::type::Mat4x4 |
typedef Mat<4,4,double> sofa::type::Mat4x4d |
typedef Mat<4,4,float> sofa::type::Mat4x4f |
typedef Mat<6,6,SReal> sofa::type::Mat6x6 |
typedef Mat<6, 6, double> sofa::type::Mat6x6d |
typedef Mat<6, 6, float> sofa::type::Mat6x6f |
typedef Mat<2,2,SReal> sofa::type::Matrix2 |
typedef Mat<3,3,SReal> sofa::type::Matrix3 |
typedef Mat<4,4,SReal> sofa::type::Matrix4 |
using sofa::type::Quatd = typedef type::Quat<double> |
using sofa::type::Quatf = typedef type::Quat<float> |
using sofa::type::rebind_to = typedef typename Rebind<T, B>::to |
Convenient alias to ease usage of Rebind.
Example: 1) sofa::type::rebind_to< sofa::type::vector<int>, float> is of type sofa::type::vector<float>. In this example, sofa::type::vector has a typedef rebind_to that will be used to deduce the type. 2) sofa::type::rebind_to< sofa::type::Quat<float>, double> is of type sofa::type::Quat<double>. In this example, sofa::type::Quat does not have a typdef rebind_to. 3) It makes no sense to use sofa::type::rebind on types having more than one template parameter, such as sofa::type::fixed_array. A compilation error would occur.
using sofa::type::stable_vector = typedef boost::container::stable_vector<T,A> |
typedef Vec<1,SReal> sofa::type::Vec1 |
typedef Vec<1,double> sofa::type::Vec1d |
typedef Vec<1,float> sofa::type::Vec1f |
typedef Vec<1,int> sofa::type::Vec1i |
typedef Vec<1,unsigned> sofa::type::Vec1u |
typedef Vec<2,SReal> sofa::type::Vec2 |
typedef Vec<2,double> sofa::type::Vec2d |
typedef Vec<2,float> sofa::type::Vec2f |
typedef Vec<2,int> sofa::type::Vec2i |
typedef Vec<2,unsigned> sofa::type::Vec2u |
typedef Vec<3,SReal> sofa::type::Vec3 |
typedef Vec<3,double> sofa::type::Vec3d |
typedef Vec<3,float> sofa::type::Vec3f |
typedef Vec<3,int> sofa::type::Vec3i |
typedef Vec<3,unsigned> sofa::type::Vec3u |
typedef Vec<4,SReal> sofa::type::Vec4 |
typedef Vec<4,double> sofa::type::Vec4d |
typedef Vec<4,float> sofa::type::Vec4f |
typedef Vec<4,int> sofa::type::Vec4i |
typedef Vec<4,unsigned> sofa::type::Vec4u |
typedef Vec<6,SReal> sofa::type::Vec6 |
typedef Vec<6,double> sofa::type::Vec6d |
typedef Vec<6,float> sofa::type::Vec6f |
typedef Vec<6,int> sofa::type::Vec6i |
typedef Vec<6,unsigned> sofa::type::Vec6u |
using sofa::type::void_t = typedef void |
void sofa::type::axpy | ( | V1 & | result, |
Scalar | a, | ||
const V2 & | x, | ||
const V3 & | y | ||
) |
Vector operation: result = ax + y.
void sofa::type::cholBksb | ( | Vec< n, real > & | x, |
const Mat< n, n, real > & | L, | ||
const Vec< n, real > & | b | ||
) |
Cholesky back-substitution: solve the system Mx=b using the triangular matrix L such that M=L.Lt
bool sofa::type::cholDcmp | ( | Mat< n, n, real > & | L, |
const Mat< n, n, real > & | M | ||
) |
Cholesky decomposition: compute triangular matrix L such that M=L.Lt
bool sofa::type::cholInv | ( | Mat< n, n, real > & | Inv, |
const Mat< n, n, real > & | M | ||
) |
Inversion of a positive symmetric definite (PSD) matrix using a Cholesky decomposition. Returns false if the matrix is not PSD.
bool sofa::type::cholSlv | ( | Vec< n, real > & | x, |
const Mat< n, n, real > & | M, | ||
const Vec< n, real > & | b | ||
) |
Cholesky solution: solve the system Mx=b using a Cholesky decomposition.
SOFA_TYPE_API void sofa::type::cleanup | ( | ) |
Clean up the resources used by the SofaHelper library.
Real sofa::type::cond | ( | Mat< m, n, Real > & | a | ) |
return the condition number of the matrix a following the euclidean norm (using the svd decomposition to find singular values)
|
constexprnoexcept |
Cross product for 2-elements vectors.
|
constexprnoexcept |
Cross product for 3-elements vectors.
|
constexprnoexcept |
skew-symmetric mapping crossProductMatrix(v) * x = v.cross(x)
|
constexprnoexcept |
Determinant of a 2x2 matrix.
|
constexprnoexcept |
Generalized-determinant of a 2x3 matrix. Mirko Radi, "About a Determinant of Rectangular 2×n Matrix and its Geometric Interpretation"
|
constexprnoexcept |
Generalized-determinant of a 3x2 matrix. Mirko Radi, "About a Determinant of Rectangular 2×n Matrix and its Geometric Interpretation"
|
constexprnoexcept |
Determinant of a 3x3 matrix.
|
inline |
Determinant of a 2x2 matrix.
|
inline |
Determinant of a 3x3 matrix.
|
constexpr |
diagonal of a square matrix
SReal sofa::type::dot | ( | const V1 & | vector1, |
const V2 & | vector2 | ||
) |
Dot product of two vectors.
|
constexprnoexcept |
Dot product (alias for operator*)
|
constexprnoexcept |
Create a matrix as .
SOFA_TYPE_API int sofa::type::getInteger | ( | const std::string & | s, |
std::stringstream & | msg, | ||
unsigned int & | numErrors | ||
) |
Convert the string 's' into an unsigned int. The error are reported in msg & numErrors is incremented.
SOFA_TYPE_API unsigned int sofa::type::getUnsignedInteger | ( | const std::string & | s, |
std::stringstream & | msg, | ||
unsigned int & | numErrors | ||
) |
Convert the string 's' into an unsigned int. The error are reported in msg & numErrors is incremented.
real sofa::type::infNorm | ( | const Mat< 3, 3, real > & | A | ) |
SOFA_TYPE_API void sofa::type::init | ( | ) |
Initialize the SofaHelper library.
|
constexpr |
Matrix inversion (special case 1x1).
|
constexpr |
Matrix inversion (special case 2x2).
|
constexpr |
Matrix inversion (special case 3x3).
bool sofa::type::invertMatrix | ( | Mat< S, S, real > & | dest, |
const Mat< S, S, real > & | from | ||
) |
Matrix inversion (general case).
bool sofa::type::invertMatrix | ( | MatSym< 2, real > & | dest, |
const MatSym< 2, real > & | from | ||
) |
Matrix inversion (special case 2x2).
bool sofa::type::invertMatrix | ( | MatSym< 3, real > & | dest, |
const MatSym< 3, real > & | from | ||
) |
Matrix inversion (special case 3x3).
bool sofa::type::invertMatrix | ( | MatSym< S, real > & | dest, |
const MatSym< S, real > & | from | ||
) |
Matrix inversion (general case).
SOFA_TYPE_API bool sofa::type::isCleanedUp | ( | ) |
Return true if and only if the SofaHelper library has been cleaned up.
SOFA_TYPE_API bool sofa::type::isInitialized | ( | ) |
Return true if and only if the SofaHelper library has been initialized.
void sofa::type::lubksb | ( | const Mat< n, n, Real > & | a, |
const Vec< n, int > & | indx, | ||
Vec< n, Real > & | b | ||
) |
Compute the solution of Mx=b. b is replaced by x. a and indx together represent the LU decomposition of m, as given my method ludcmp.
void sofa::type::ludcmp | ( | Mat< n, n, Real > & | a, |
Vec< n, int > & | indx | ||
) |
Compute the LU decomposition of matrix a. a is replaced by its pivoted LU decomposition. indx stores pivoting indices.
void sofa::type::luinv | ( | Mat< n, n, Real > & | inv, |
Mat< n, n, Real > & | m | ||
) |
Compute the inverse of matrix m.
|
constexpr |
BoundingBox::bbox_t sofa::type::make_neutralBBox | ( | ) |
|
constexpr |
Builds a fixed_array in which all elements have the same value.
|
constexpr |
Builds a fixed_array in which all elements have the same value.
|
constexprnoexcept |
|
constexprnoexcept |
SReal sofa::type::norm | ( | const V & | v | ) |
Norm of a vector.
real sofa::type::oneNorm | ( | const Mat< 3, 3, real > & | A | ) |
|
constexprnoexcept |
|
constexprnoexcept |
|
constexprnoexcept |
Mat<D, D, real> sofa::type::operator* | ( | const Mat< D, D, real > & | a, |
const MatSym< D, real > & | b | ||
) |
|
constexprnoexcept |
|
constexprnoexcept |
Checks if v1 is lexicographically less than v2. Similar to std::lexicographical_compare.
|
constexprnoexcept |
Checks if v1 is lexicographically less than v2. Similar to std::lexicographical_compare.
std::ostream& sofa::type::operator<< | ( | std::ostream & | o, |
const Mat< L, C, real > & | m | ||
) |
std::ostream& sofa::type::operator<< | ( | std::ostream & | o, |
const MatSym< D, real > & | m | ||
) |
std::ostream& sofa::type::operator<< | ( | std::ostream & | out, |
const Material & | m | ||
) |
std::ostream& sofa::type::operator<< | ( | std::ostream & | out, |
const PrimitiveGroup & | g | ||
) |
template SOFA_TYPE_API std::ostream& sofa::type::operator<< | ( | std::ostream & | out, |
const Quat< double > & | v | ||
) |
template SOFA_TYPE_API std::ostream& sofa::type::operator<< | ( | std::ostream & | out, |
const Quat< float > & | v | ||
) |
SOFA_TYPE_API std::ostream& sofa::type::operator<< | ( | std::ostream & | out, |
const Quat< Real > & | v | ||
) |
write to an output stream
std::ostream& sofa::type::operator<< | ( | std::ostream & | out, |
const Quat< Real > & | v | ||
) |
write to an output stream
SOFA_TYPE_API std::ostream& sofa::type::operator<< | ( | std::ostream & | out, |
const RGBAColor & | t | ||
) |
Write to an output stream.
std::ostream& sofa::type::operator<< | ( | std::ostream & | out, |
const sofa::type::Frame & | c | ||
) |
std::ostream& sofa::type::operator<< | ( | std::ostream & | out, |
const Vec< N, Real > & | v | ||
) |
Write to an output stream.
|
constexprnoexcept |
SOFA_TYPE_API std::istream& sofa::type::operator>> | ( | std::istream & | i, |
RGBAColor & | t | ||
) |
std::istream& sofa::type::operator>> | ( | std::istream & | in, |
Mat< L, C, real > & | m | ||
) |
std::istream& sofa::type::operator>> | ( | std::istream & | in, |
Material & | m | ||
) |
std::istream& sofa::type::operator>> | ( | std::istream & | in, |
MatSym< D, real > & | m | ||
) |
std::istream& sofa::type::operator>> | ( | std::istream & | in, |
PrimitiveGroup & | g | ||
) |
template SOFA_TYPE_API std::istream& sofa::type::operator>> | ( | std::istream & | in, |
Quat< double > & | v | ||
) |
template SOFA_TYPE_API std::istream& sofa::type::operator>> | ( | std::istream & | in, |
Quat< float > & | v | ||
) |
SOFA_TYPE_API std::istream& sofa::type::operator>> | ( | std::istream & | in, |
Quat< Real > & | v | ||
) |
read from an input stream
std::istream& sofa::type::operator>> | ( | std::istream & | in, |
Quat< Real > & | v | ||
) |
read from an input stream
std::istream& sofa::type::operator>> | ( | std::istream & | in, |
Vec< N, Real > & | v | ||
) |
Read from an input stream.
SOFA_TYPE_API void sofa::type::printLibraryNotCleanedUpWarning | ( | const std::string & | library, |
const std::string & | cleanupFunction | ||
) |
Print a warning about a library not being cleaned up (meant for internal use).
void sofa::type::printMaple | ( | std::ostream & | o, |
const Mat< L, C, real > & | m | ||
) |
void sofa::type::printMatlab | ( | std::ostream & | o, |
const Mat< L, C, real > & | m | ||
) |
printing in other software formats
SOFA_TYPE_API void sofa::type::printUninitializedLibraryWarning | ( | const std::string & | library, |
const std::string & | initFunction | ||
) |
Print a warning about a library not being initialized (meant for internal use).
T1 sofa::type::pythag | ( | const T1 | a, |
const T2 | b | ||
) |
Computes sqrt(a^2 + b^2) without destructive underflow or overflow.
void sofa::type::remove | ( | T1 & | v, |
const T2 & | elem | ||
) |
Remove the first occurrence of a given value. The remaining values are shifted.
void sofa::type::removeIndex | ( | std::vector< T, TT > & | v, |
size_t | index | ||
) |
Remove value at given index, replace it by the value at the last index, other values are not changed.
void sofa::type::removeValue | ( | T1 & | v, |
const T2 & | elem | ||
) |
Remove the first occurrence of a given value.
The last value is moved to where the value was found, and the other values are not shifted.
|
inline |
return the max of two values
|
inline |
return the min of two values
|
inline |
|
inline |
|
inline |
|
constexprnoexcept |
Compute the scalar product of two matrix (sum of product of all terms)
|
inline |
|
inline |
Compute the scalar product of two matrix (sum of product of all terms)
bool sofa::type::solveLCP | ( | const Vec< dim, real > & | q, |
const Mat< dim, dim, real > & | M, | ||
Vec< dim *2, real > & | res | ||
) |
void sofa::type::svddcmp | ( | Mat< m, n, Real > & | a, |
Vec< n, Real > & | w, | ||
Mat< n, m, Real > & | v | ||
) |
Compute the SVD decomposition of matrix a (from nr). a is replaced by its pivoted LU decomposition. indx stores pivoting indices.
SVD decomposition a = u.w.vt
|
constexprnoexcept |
return a * b^T
|
constexprnoexcept |
trace of a square matrix
|
inline |
Trace of a 2x2 matrix.
|
inline |
Trace of a 3x3 matrix.
|
constexpr |
Inverse Matrix considering the matrix as a transformation.
void SOFA_TYPE_API sofa::type::vector_access_failure | ( | const void * | vec, |
const std::size_t | size, | ||
const std::size_t | i, | ||
const std::type_info & | type | ||
) |
|
inlineconstexpr |
template class SOFA_TYPE_API sofa::type::DualQuatCoord3< double > |
template class SOFA_TYPE_API sofa::type::DualQuatCoord3< float > |
template class SOFA_TYPE_API sofa::type::fixed_array< double, 2 > |
template class SOFA_TYPE_API sofa::type::fixed_array< double, 3 > |
template class SOFA_TYPE_API sofa::type::fixed_array< double, 4 > |
template class SOFA_TYPE_API sofa::type::fixed_array< double, 5 > |
template class SOFA_TYPE_API sofa::type::fixed_array< double, 6 > |
template class SOFA_TYPE_API sofa::type::fixed_array< double, 7 > |
template class SOFA_TYPE_API sofa::type::fixed_array< float, 2 > |
template class SOFA_TYPE_API sofa::type::fixed_array< float, 3 > |
template class SOFA_TYPE_API sofa::type::fixed_array< float, 4 > |
template class SOFA_TYPE_API sofa::type::fixed_array< float, 5 > |
template class SOFA_TYPE_API sofa::type::fixed_array< float, 6 > |
template class SOFA_TYPE_API sofa::type::fixed_array< float, 7 > |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
|
constexpr |
template class SOFA_TYPE_API sofa::type::Quat< double > |
Explicit instantiation of the quaternions for double precision.
template class SOFA_TYPE_API sofa::type::Quat< float > |
Explicit instantiation of the quaternions for single precision.
template class SOFA_TYPE_API sofa::type::SpatialVector< double > |
template class SOFA_TYPE_API sofa::type::SpatialVector< float > |
const std::map<std::string, RGBAColor> sofa::type::stringToColorMap |
template class SOFA_TYPE_API sofa::type::Transform< double > |
template class SOFA_TYPE_API sofa::type::Transform< float > |
template class SOFA_TYPE_API sofa::type::Vec< 2, double > |
template class SOFA_TYPE_API sofa::type::Vec< 2, float > |
template class SOFA_TYPE_API sofa::type::Vec< 2, int > |
template class SOFA_TYPE_API sofa::type::Vec< 2, unsigned > |
template class SOFA_TYPE_API sofa::type::Vec< 3, double > |
template class SOFA_TYPE_API sofa::type::Vec< 3, float > |
template class SOFA_TYPE_API sofa::type::Vec< 3, int > |
template class SOFA_TYPE_API sofa::type::Vec< 3, unsigned > |
template class SOFA_TYPE_API sofa::type::Vec< 4, double > |
template class SOFA_TYPE_API sofa::type::Vec< 4, float > |
template class SOFA_TYPE_API sofa::type::Vec< 4, int > |
template class SOFA_TYPE_API sofa::type::Vec< 4, unsigned > |
template class SOFA_TYPE_API sofa::type::Vec< 6, double > |
template class SOFA_TYPE_API sofa::type::Vec< 6, float > |
template class SOFA_TYPE_API sofa::type::Vec< 6, int > |
template class SOFA_TYPE_API sofa::type::Vec< 6, unsigned > |