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< Vector< vector >, vector, 3 >
 VectorSpace ()
 Construct null. More...
 
 VectorSpace (const Foam::zero)
 Construct initialised to zero. More...
 
 VectorSpace (Istream &)
 Construct from Istream. More...
 
 VectorSpace (const VectorSpace< Form2, Cmpt2, Ncmpts > &)
 Construct as copy of a VectorSpace with the same size. More...
 
const vectorcomponent (const direction) const
 
vectorcomponent (const direction)
 
void component (vector &, const direction) const
 
void replace (const direction, const vector &)
 
const ConstBlock< SubVector, BStart > block () const
 
const VectorSpace< Vector< vector >, vector, Ncmpts >::template ConstBlock< SubVector, BStart > block () const
 
const vectoroperator[] (const direction) const
 
vectoroperator[] (const direction)
 
void operator+= (const VectorSpace< Vector< vector >, vector, Ncmpts > &)
 
void operator-= (const VectorSpace< Vector< vector >, vector, Ncmpts > &)
 
void operator= (const Foam::zero)
 
void operator*= (const scalar)
 
void operator/= (const scalar)
 

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< Vector< vector >, vector, 3 >
static direction size ()
 Return the number of elements in the VectorSpace = Ncmpts. More...
 
static Vector< vectoruniform (const vector &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< Vector< vector >, vector, 3 >
static const direction dim
 Dimensionality of space. More...
 
static const direction nComponents
 Number of components in this vector space. More...
 
static const direction mRows
 
static const direction nCols
 
static const char *const typeName
 
static const char *const componentNames []
 
static const Vector< vectorzero
 
static const Vector< vectorone
 
static const Vector< vectormax
 
static const Vector< vectormin
 
static const Vector< vectorrootMax
 
static const Vector< vectorrootMin
 

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< Vector< vector >, vector, 3 >
typedef VectorSpace< Vector< vector >, vector, Ncmpts > vsType
 VectorSpace type. More...
 
typedef vector cmptType
 Component type. More...
 
- Public Attributes inherited from VectorSpace< Vector< vector >, vector, 3 >
vector 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::operator=(), VectorSpace< Vector< vector >, vector, 3 >::operator[](), triad::primaryDirection(), and triad::unset.

Here is the call graph for this function:

◆ triad() [5/7]

triad ( const quaternion q)

Construct from a quaternion.

Definition at line 89 of file triad.C.

References quaternion::R(), Tensor< Cmpt >::T(), Vector< Cmpt >::x(), Vector< vector >::x(), Vector< vector >::y(), Vector< Cmpt >::y(), Vector< 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 98 of file triad.C.

References Vector< vector >::x(), Tensor< Cmpt >::x(), Vector< vector >::y(), Tensor< Cmpt >::y(), Vector< vector >::z(), 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.

References VectorSpace< Vector< vector >, vector, 3 >::operator[]().

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

Here is the call graph for this function:
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(), triad::orthogonal(), Vector< vector >::X, Vector< Cmpt >::x(), Vector< vector >::Y, Vector< Cmpt >::y(), Vector< vector >::Z, and Vector< Cmpt >::z().

Referenced by triad::triad().

Here is the call graph for this function:
Here is the caller 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 91 of file triadI.H.

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

Referenced by triad::orthogonalise(), and triad::primaryDirection().

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

◆ orthogonalise()

void orthogonalise ( )

Orthogonalise this triad so that it is ortho-normal.

Definition at line 108 of file triad.C.

References Foam::mag(), VectorSpace< Vector< vector >, vector, 3 >::operator[](), and triad::orthogonal().

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(), and VectorSpace< Vector< vector >, vector, 3 >::operator[]().

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 255 of file triad.C.

References Foam::mag(), VectorSpace< Vector< vector >, vector, 3 >::operator[](), R, Foam::rotationTensor(), Foam::transform(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().

Here is the call graph for this function:

◆ sortxyz()

◆ 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=().

Referenced by triad::triad().

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

◆ operator=() [2/2]

void operator= ( const tensor t)

Definition at line 393 of file triad.C.

References Vector< vector >::x(), Tensor< Cmpt >::x(), Vector< vector >::y(), Tensor< Cmpt >::y(), Vector< vector >::z(), 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 192 of file triad.C.

References k, Foam::mag(), VectorSpace< Vector< vector >, vector, 3 >::operator[](), 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(), triad::triad(), and triSurface::triSurfInstance().


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