OpenVDB  12.0.0
Classes | Namespaces | Typedefs | Functions
Vec3.h File Reference
#include <openvdb/Exceptions.h>
#include <openvdb/util/Assert.h>
#include "Math.h"
#include "Tuple.h"
#include <algorithm>
#include <cmath>
#include <type_traits>

Go to the source code of this file.

Classes

class  Mat3< T >
 3x3 matrix class. More...
 
class  Vec3< T >
 

Namespaces

 openvdb
 
 openvdb::v12_0
 
 openvdb::v12_0::math
 

Typedefs

using Vec3i = Vec3< int32_t >
 
using Vec3ui = Vec3< uint32_t >
 
using Vec3s = Vec3< float >
 
using Vec3d = Vec3< double >
 

Functions

template<typename T0 , typename T1 >
bool operator== (const Vec3< T0 > &v0, const Vec3< T1 > &v1)
 Equality operator, does exact floating point comparisons. More...
 
template<typename T0 , typename T1 >
bool operator!= (const Vec3< T0 > &v0, const Vec3< T1 > &v1)
 Inequality operator, does exact floating point comparisons. More...
 
template<typename S , typename T >
Vec3< typename promote< S, T >::type > operator* (S scalar, const Vec3< T > &v)
 Multiply each element of the given vector by scalar and return the result. More...
 
template<typename S , typename T >
Vec3< typename promote< S, T >::type > operator* (const Vec3< T > &v, S scalar)
 Multiply each element of the given vector by scalar and return the result. More...
 
template<typename T0 , typename T1 >
Vec3< typename promote< T0, T1 >::type > operator* (const Vec3< T0 > &v0, const Vec3< T1 > &v1)
 Multiply corresponding elements of v0 and v1 and return the result. More...
 
template<typename S , typename T >
Vec3< typename promote< S, T >::type > operator/ (S scalar, const Vec3< T > &v)
 Divide scalar by each element of the given vector and return the result. More...
 
template<typename S , typename T >
Vec3< typename promote< S, T >::type > operator/ (const Vec3< T > &v, S scalar)
 Divide each element of the given vector by scalar and return the result. More...
 
template<typename T0 , typename T1 >
Vec3< typename promote< T0, T1 >::type > operator/ (const Vec3< T0 > &v0, const Vec3< T1 > &v1)
 Divide corresponding elements of v0 and v1 and return the result. More...
 
template<typename T0 , typename T1 >
Vec3< typename promote< T0, T1 >::type > operator+ (const Vec3< T0 > &v0, const Vec3< T1 > &v1)
 Add corresponding elements of v0 and v1 and return the result. More...
 
template<typename S , typename T >
Vec3< typename promote< S, T >::type > operator+ (const Vec3< T > &v, S scalar)
 Add scalar to each element of the given vector and return the result. More...
 
template<typename T0 , typename T1 >
Vec3< typename promote< T0, T1 >::type > operator- (const Vec3< T0 > &v0, const Vec3< T1 > &v1)
 Subtract corresponding elements of v0 and v1 and return the result. More...
 
template<typename S , typename T >
Vec3< typename promote< S, T >::type > operator- (const Vec3< T > &v, S scalar)
 Subtract scalar from each element of the given vector and return the result. More...
 
template<typename T >
angle (const Vec3< T > &v1, const Vec3< T > &v2)
 
template<typename T >
bool isApproxEqual (const Vec3< T > &a, const Vec3< T > &b)
 
template<typename T >
bool isApproxEqual (const Vec3< T > &a, const Vec3< T > &b, const Vec3< T > &eps)
 
template<typename T >
Vec3< T > Abs (const Vec3< T > &v)
 
template<typename T >
void orthonormalize (Vec3< T > &v1, Vec3< T > &v2, Vec3< T > &v3)
 
template<typename T >
Vec3< T > minComponent (const Vec3< T > &v1, const Vec3< T > &v2)
 Return component-wise minimum of the two vectors. More...
 
template<typename T >
Vec3< T > maxComponent (const Vec3< T > &v1, const Vec3< T > &v2)
 Return component-wise maximum of the two vectors. More...
 
template<typename T >
Vec3< T > Exp (Vec3< T > v)
 Return a vector with the exponent applied to each of the components of the input vector. More...
 
template<typename T >
Vec3< T > Log (Vec3< T > v)
 Return a vector with log applied to each of the components of the input vector. More...