vgl_vector_3d< T > Class Template Reference

#include <vgl_vector_3d.h>

List of all members.


Detailed Description

template<class T>
class vgl_vector_3d< T >

Direction vector in Euclidean 3D space, templated by type of element.

(typically float or double). A vgl_vector_3d<T> represents the difference (or connecting vector) between two vgl_point_3d<T>s.

Use this class to do arithmetic (adding and scaling) in 3d geometric space.

Definition at line 30 of file vgl_vector_3d.h.


Public Member Functions

x () const
y () const
z () const
 vgl_vector_3d ()
 Creates the vector (0,0,0) of zero length.
 vgl_vector_3d (T vx, T vy, T vz)
 Creates the vector (vx,vy,vz).
 vgl_vector_3d (const T v[3])
 Creates the vector (vx,vy,vz).
void set (T vx, T vy, T vz)
 Assignment.
void set (T const v[3])
 Set x, y and z.
bool operator== (vgl_vector_3d< T >const &v) const
 Comparison.
bool operator!= (vgl_vector_3d< T >const &v) const
double length () const
 Return the length of this vector.
sqr_length () const
 Return the squared length of this vector.
vgl_vector_3d< T > orthogonal_vectors (double s)
 One-parameter family of unit vectors that are orthogonal to *this, v(s).

Public Attributes

x_
y_
z_

Related Functions

(Note that these are not member functions.)

vcl_istream & read (vcl_istream &is)
 Read from stream, possibly with formatting.
vcl_istream & operator>> (vcl_istream &is, vgl_vector_3d< T > &p)
 Read from stream, possibly with formatting.

Constructor & Destructor Documentation

template<class T>
vgl_vector_3d< T >::vgl_vector_3d (  )  [inline]

Creates the vector (0,0,0) of zero length.

Definition at line 41 of file vgl_vector_3d.h.

template<class T>
vgl_vector_3d< T >::vgl_vector_3d ( vx,
vy,
vz 
) [inline]

Creates the vector (vx,vy,vz).

Definition at line 44 of file vgl_vector_3d.h.

template<class T>
vgl_vector_3d< T >::vgl_vector_3d ( const T  v[3]  )  [inline]

Creates the vector (vx,vy,vz).

Definition at line 47 of file vgl_vector_3d.h.


Member Function Documentation

template<class T>
T vgl_vector_3d< T >::x (  )  const [inline]

Definition at line 36 of file vgl_vector_3d.h.

template<class T>
T vgl_vector_3d< T >::y (  )  const [inline]

Definition at line 37 of file vgl_vector_3d.h.

template<class T>
T vgl_vector_3d< T >::z (  )  const [inline]

Definition at line 38 of file vgl_vector_3d.h.

template<class T>
void vgl_vector_3d< T >::set ( vx,
vy,
vz 
) [inline]

Assignment.

Definition at line 60 of file vgl_vector_3d.h.

template<class T>
void vgl_vector_3d< T >::set ( T const  v[3]  )  [inline]

Set x, y and z.

Definition at line 63 of file vgl_vector_3d.h.

template<class T>
bool vgl_vector_3d< T >::operator== ( vgl_vector_3d< T >const &  v  )  const [inline]

Comparison.

Definition at line 66 of file vgl_vector_3d.h.

template<class T>
bool vgl_vector_3d< T >::operator!= ( vgl_vector_3d< T >const &  v  )  const [inline]

Definition at line 68 of file vgl_vector_3d.h.

template<class T>
double vgl_vector_3d< T >::length (  )  const

Return the length of this vector.

Definition at line 15 of file vgl_vector_3d.txx.

template<class T>
T vgl_vector_3d< T >::sqr_length (  )  const [inline]

Return the squared length of this vector.

Definition at line 74 of file vgl_vector_3d.h.

template<class T>
vgl_vector_3d< T > vgl_vector_3d< T >::orthogonal_vectors ( double  s  ) 

One-parameter family of unit vectors that are orthogonal to *this, v(s).

To get two orthogonal vectors call this function twice with s=0 and s=0.25 for example.

Parameters:
s 0<=s<=1, v(0)==v(1)
Note:
This function is not continuous near z==0. (Under the Hairy Ball theorem no such smooth function can exist.)

This vector need not be normalized but it should have non-zero length.

Definition at line 23 of file vgl_vector_3d.txx.


Friends And Related Function Documentation

template<class T>
vcl_istream & vgl_vector_3d< T >::read ( vcl_istream &  is  )  [related]

Read from stream, possibly with formatting.

Either just reads three blank-separated numbers, or reads three comma-separated numbers, or reads three numbers in parenthesized form "(123, 321, 567)"

Definition at line 123 of file vgl_vector_3d.txx.

template<class T>
vcl_istream & operator>> ( vcl_istream &  is,
vgl_vector_3d< T > &  p 
) [related]

Read from stream, possibly with formatting.

Either just reads three blank-separated numbers, or reads three comma-separated numbers, or reads three numbers in parenthesized form "(123, 321, 567)"

Definition at line 153 of file vgl_vector_3d.txx.


Member Data Documentation

template<class T>
T vgl_vector_3d< T >::x_

Definition at line 33 of file vgl_vector_3d.h.

template<class T>
T vgl_vector_3d< T >::y_

Definition at line 34 of file vgl_vector_3d.h.

template<class T>
T vgl_vector_3d< T >::z_

Definition at line 35 of file vgl_vector_3d.h.


The documentation for this class was generated from the following files:
Generated on Mon Mar 8 05:07:57 2010 for core/vgl by  doxygen 1.5.1