triad Class Reference

Representation of a 3D Cartesian coordinate system as a Vector of vectors. More...

Inheritance diagram for triad:
Collaboration diagram for triad:

Public Member Functions

 triad ()
 Construct null. More...
 
 triad (const Vector< vector > &vv)
 Construct from components. More...
 
 triad (const vector &x, const vector &y, const vector &z)
 Construct from coordinate axes. More...
 
 triad (const vector &pa)
 Construct from a primary axis with the other two unset. More...
 
 triad (const quaternion &q)
 Construct from a quaternion. More...
 
 triad (const tensor &t)
 Construct from a tensor. More...
 
 triad (Istream &)
 Construct from Istream. More...
 
bool set (const direction d) const
 Is the vector in the direction d set. More...
 
bool set () const
 Are all the vector set. More...
 
void orthogonalise ()
 Orthogonalise this triad so that it is ortho-normal. More...
 
void normalise ()
 Normalise each set axis vector to have a unit magnitude. More...
 
void align (const vector &v)
 Align this triad with the given vector v. More...
 
triad sortxyz () const
 Sort the axes such that they are closest to the x, y and z axes. More...
 
 operator quaternion () const
 Convert to a quaternion. More...
 
void operator= (const Vector< vector > &)
 
void operator= (const tensor &t)
 
void operator+= (const triad &t2)
 Add the triad t2 to this triad. More...
 
- Public Member Functions inherited from Vector< vector >
 Vector ()
 Construct null. More...
 
 Vector (const Foam::zero)
 Construct initialised to zero. More...
 
 Vector (const VectorSpace< Vector< Cmpt2 >, Cmpt2, 3 > &)
 Construct given VectorSpace of the same rank. More...
 
 Vector (const vector &vx, const vector &vy, const vector &vz)
 Construct given three components. More...
 
 Vector (Istream &)
 Construct from Istream. More...
 
const vectorx () const
 
vectorx ()
 
const vectory () const
 
vectory ()
 
const vectorz () const
 
vectorz ()
 
const Vector< vector > & centre (const Foam::List< Vector< vector >> &) const
 Return *this (used for point which is a typedef to Vector<scalar>. More...
 
- Public Member Functions inherited from VectorSpace< Form, Cmpt, Ncmpts >
 VectorSpace ()
 Construct null. More...
 
 VectorSpace (const Foam::zero)
 Construct initialised to zero. More...
 
 VectorSpace (Istream &)
 Construct from Istream. More...
 
template<class Form2 , class Cmpt2 >
 VectorSpace (const VectorSpace< Form2, Cmpt2, Ncmpts > &)
 Construct as copy of a VectorSpace with the same size. More...
 
const Cmpt & component (const direction) const
 
Cmpt & component (const direction)
 
void component (Cmpt &, const direction) const
 
void replace (const direction, const Cmpt &)
 
template<class SubVector , direction BStart>
const ConstBlock< SubVector, BStart > block () const
 
const Cmpt & operator[] (const direction) const
 
Cmpt & operator[] (const direction)
 
void operator+= (const VectorSpace< Form, Cmpt, Ncmpts > &)
 
void operator-= (const VectorSpace< Form, Cmpt, Ncmpts > &)
 
void operator= (const Foam::zero)
 
template<class Type , class Enable = EnableRank0<Type>>
void operator*= (const Type)
 
template<class Type , class Enable = EnableRank0<Type>>
void operator/= (const Type)
 
template<class SubVector , direction BStart>
const VectorSpace< Form, Cmpt, Ncmpts >::template ConstBlock< SubVector, BStart > block () const
 

Static Public Member Functions

static direction primaryDirection (const vector &v)
 Return the primary direction of the vector v. More...
 
static vector orthogonal (const vector &v1, const vector &v2)
 Return the vector orthogonal to the two provided. More...
 
- Static Public Member Functions inherited from VectorSpace< Form, Cmpt, Ncmpts >
static direction size ()
 Return the number of elements in the VectorSpace = Ncmpts. More...
 
static Form uniform (const Cmpt &s)
 Return a VectorSpace with all elements = s. More...
 

Static Public Attributes

static const triad I
 
static const triad unset
 
- Static Public Attributes inherited from Vector< vector >
static const direction rank
 Rank of Vector is 1. More...
 
- Static Public Attributes inherited from VectorSpace< Form, Cmpt, Ncmpts >
static const direction dim = 3
 Dimensionality of space. More...
 
static const direction nComponents = Ncmpts
 Number of components in this vector space. More...
 
static const direction mRows = Ncmpts
 
static const direction nCols = 1
 
static const char *const typeName = "vectorVector"
 
static const char *const componentNames [] = {"x", "y", "z"}
 
static const Form zero
 
static const Form one
 
static const Form max
 
static const Form min
 
static const Form rootMax
 
static const Form rootMin
 
static const Form nan
 

Friends

Istreamoperator>> (Istream &, triad &)
 
Ostreamoperator<< (Ostream &, const triad &)
 

Additional Inherited Members

- Public Types inherited from Vector< vector >
enum  components
 Component labeling enumeration. More...
 
typedef Vector< labellabelType
 Equivalent type of labels used for valid component indexing. More...
 
- Public Types inherited from VectorSpace< Form, Cmpt, Ncmpts >
typedef VectorSpace< Form, Cmpt, Ncmpts > vsType
 VectorSpace type. More...
 
typedef Cmpt cmptType
 Component type. More...
 
- Public Attributes inherited from VectorSpace< Form, Cmpt, Ncmpts >
Cmpt v_ [Ncmpts]
 The components of this vector space. More...
 

Detailed Description

Representation of a 3D Cartesian coordinate system as a Vector of vectors.

See also
Foam::quaternion
Source files

Definition at line 65 of file triad.H.

Constructor & Destructor Documentation

◆ triad() [1/7]

triad ( )
inline

Construct null.

Definition at line 28 of file triadI.H.

◆ triad() [2/7]

triad ( const Vector< vector > &  vv)
inline

Construct from components.

Definition at line 34 of file triadI.H.

◆ triad() [3/7]

triad ( const vector x,
const vector y,
const vector z 
)
inline

Construct from coordinate axes.

Definition at line 40 of file triadI.H.

◆ triad() [4/7]

triad ( const vector pa)
inline

Construct from a primary axis with the other two unset.

Definition at line 46 of file triadI.H.

References triad::unset.

◆ triad() [5/7]

triad ( const quaternion q)

Construct from a quaternion.

Definition at line 95 of file triad.C.

References quaternion::R(), Tensor< Cmpt >::T(), Tensor< Cmpt >::x(), Vector< vector >::x(), Tensor< Cmpt >::y(), Vector< vector >::y(), Tensor< Cmpt >::z(), and Vector< vector >::z().

Here is the call graph for this function:

◆ triad() [6/7]

triad ( const tensor t)

Construct from a tensor.

Definition at line 104 of file triad.C.

References x, Tensor< Cmpt >::x(), y, Tensor< Cmpt >::y(), and Tensor< Cmpt >::z().

Here is the call graph for this function:

◆ triad() [7/7]

triad ( Istream is)
inline

Construct from Istream.

Definition at line 53 of file triadI.H.

Member Function Documentation

◆ set() [1/2]

bool set ( const direction  d) const
inline

Is the vector in the direction d set.

Definition at line 61 of file triadI.H.

Referenced by triSurface::curvature(), Foam::diff(), and triad::operator+=().

Here is the caller graph for this function:

◆ set() [2/2]

bool set ( ) const
inline

Are all the vector set.

Definition at line 67 of file triadI.H.

◆ primaryDirection()

Foam::direction primaryDirection ( const vector v)
inlinestatic

Return the primary direction of the vector v.

Definition at line 73 of file triadI.H.

References Foam::mag(), Vector< vector >::X, Vector< Cmpt >::x(), Vector< vector >::Y, Vector< Cmpt >::y(), Vector< vector >::Z, and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ orthogonal()

Foam::vector orthogonal ( const vector v1,
const vector v2 
)
inlinestatic

Return the vector orthogonal to the two provided.

Definition at line 90 of file triadI.H.

References Foam::mag(), and triad::unset.

Here is the call graph for this function:

◆ orthogonalise()

void orthogonalise ( )

Orthogonalise this triad so that it is ortho-normal.

Definition at line 114 of file triad.C.

References Foam::mag().

Here is the call graph for this function:

◆ normalise()

void normalise ( )
inline

Normalise each set axis vector to have a unit magnitude.

Definition at line 111 of file triadI.H.

References Foam::mag().

Referenced by triSurface::curvature().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ align()

void align ( const vector v)

Align this triad with the given vector v.

by rotating the most aligned axis to be coincident with v

Definition at line 261 of file triad.C.

References Foam::mag(), Foam::R(), Foam::rotationTensor(), Foam::transform(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ sortxyz()

Foam::triad sortxyz ( ) const

Sort the axes such that they are closest to the x, y and z axes.

Definition at line 306 of file triad.C.

References Foam::mag(), x, and y.

Here is the call graph for this function:

◆ operator quaternion()

operator quaternion ( ) const

Convert to a quaternion.

◆ operator=() [1/2]

void operator= ( const Vector< vector > &  vv)
inline

Definition at line 121 of file triadI.H.

References VectorSpace< Vector< Cmpt >, Cmpt, 3 >::operator=().

Here is the call graph for this function:

◆ operator=() [2/2]

void operator= ( const tensor t)

Definition at line 399 of file triad.C.

References x, Tensor< Cmpt >::x(), y, Tensor< Cmpt >::y(), and Tensor< Cmpt >::z().

Here is the call graph for this function:

◆ operator+=()

void operator+= ( const triad t2)

Add the triad t2 to this triad.

without normalising or orthogonalising

Definition at line 198 of file triad.C.

References k, Foam::mag(), triad::set(), and Foam::sign().

Here is the call graph for this function:

Friends And Related Function Documentation

◆ operator>>

Istream& operator>> ( Istream ,
triad  
)
friend

◆ operator<<

Ostream& operator<< ( Ostream ,
const triad  
)
friend

Member Data Documentation

◆ I

const Foam::triad I
static

Definition at line 98 of file triad.H.

◆ unset

const Foam::triad unset
static

Definition at line 99 of file triad.H.

Referenced by triad::orthogonal(), and triad::triad().


The documentation for this class was generated from the following files: