Flow123d  release_3.0.0-1070-g00ac913
Public Member Functions | Private Attributes | Friends | List of all members
Plucker Class Reference

Plucker coordinates representing line given by points A,B. More...

#include <plucker.hh>

Collaboration diagram for Plucker:
Collaboration graph
[legend]

Public Member Functions

 Plucker ()
 
 Plucker (const Node *a, const Node *b)
 Creates Plucker coordinates object for a line AB. Does NOT compute Plucker coordinates. Does set end points and computes direction vector. More...
 
 Plucker (const Node *a, const Node *b, bool compute_pc)
 The same as above constructor, but can compute Pl. coordinates immediately if compute_pc. More...
 
 ~Plucker ()
 Destructor. More...
 
double scale () const
 
double operator[] (const unsigned int index) const
 Returns Plucker coordinate of index. More...
 
double operator* (const Plucker &b)
 Compute product of two Plucker coordinates. More...
 
void clear ()
 Sets the flag computed on false. More...
 
bool is_computed () const
 Return true if Plucker coordinates have been computed already. More...
 
arma::vec3 point (unsigned int idx) const
 Gets coordinates of point. More...
 
void compute ()
 Compute Plucker coordinates and set computed to true. More...
 
arma::vec3 get_u_vector () const
 Gets directional vector U. More...
 
arma::vec3 get_ua_vector () const
 Gets cross product vector UxA. More...
 
arma::vec6 get_plucker_coords () const
 Gets Plucker coordinates. More...
 

Private Attributes

arma::vec6 coordinates_
 Plucker coordinates. More...
 
double scale_
 
bool computed_
 True, if Plucker coordinates are computed; false otherwise. More...
 
const Nodepoints_ [2]
 

Friends

std::ostream & operator<< (std::ostream &os, const Plucker &p)
 Friend output operator. More...
 

Detailed Description

Plucker coordinates representing line given by points A,B.

Plucker class represents a line by 6 dimensional vector. After inserting a three-dimensional points A and B, which represents the line, class creates plucker coordinates of the line.

Class also can compute a product of two plucker coordinates.

Description of Plücker Coordinates: https://en.wikipedia.org/wiki/Pl%C3%BCcker_coordinates

Empty constructor is used for passing object to pointers from different places coordinates data are filled after calling method "compute" a flag "computed" is for comparison if coordinates data are filled

Definition at line 44 of file plucker.hh.

Constructor & Destructor Documentation

Plucker::Plucker ( )

Default constructor. Creates empty object, cannot call compute later!

Definition at line 5 of file plucker.cc.

Plucker::Plucker ( const Node a,
const Node b 
)

Creates Plucker coordinates object for a line AB. Does NOT compute Plucker coordinates. Does set end points and computes direction vector.

Parameters
a- A point from AB line
b- B point from AB line

Definition at line 13 of file plucker.cc.

Plucker::Plucker ( const Node a,
const Node b,
bool  compute_pc 
)

The same as above constructor, but can compute Pl. coordinates immediately if compute_pc.

Definition at line 32 of file plucker.cc.

Plucker::~Plucker ( )
inline

Destructor.

Definition at line 70 of file plucker.hh.

Member Function Documentation

void Plucker::clear ( )
inline

Sets the flag computed on false.

Definition at line 115 of file plucker.hh.

Here is the caller graph for this function:

void Plucker::compute ( )

Compute Plucker coordinates and set computed to true.

Definition at line 44 of file plucker.cc.

Here is the caller graph for this function:

arma::vec6 Plucker::get_plucker_coords ( ) const
inline

Gets Plucker coordinates.

Definition at line 132 of file plucker.hh.

Here is the caller graph for this function:

arma::vec3 Plucker::get_u_vector ( ) const
inline

Gets directional vector U.

Definition at line 124 of file plucker.hh.

Here is the caller graph for this function:

arma::vec3 Plucker::get_ua_vector ( ) const
inline

Gets cross product vector UxA.

Definition at line 128 of file plucker.hh.

Here is the caller graph for this function:

bool Plucker::is_computed ( ) const
inline

Return true if Plucker coordinates have been computed already.

Definition at line 118 of file plucker.hh.

Here is the caller graph for this function:

double Plucker::operator* ( const Plucker b)

Compute product of two Plucker coordinates.

Definition at line 39 of file plucker.cc.

Here is the caller graph for this function:

double Plucker::operator[] ( const unsigned int  index) const
inline

Returns Plucker coordinate of index.

Definition at line 111 of file plucker.hh.

Here is the caller graph for this function:

arma::vec3 Plucker::point ( unsigned int  idx) const
inline

Gets coordinates of point.

Definition at line 121 of file plucker.hh.

Here is the caller graph for this function:

double Plucker::scale ( ) const
inline

Definition at line 72 of file plucker.hh.

Here is the caller graph for this function:

Friends And Related Function Documentation

std::ostream& operator<< ( std::ostream &  os,
const Plucker p 
)
friend

Friend output operator.

Member Data Documentation

bool Plucker::computed_
private

True, if Plucker coordinates are computed; false otherwise.

Definition at line 49 of file plucker.hh.

arma::vec6 Plucker::coordinates_
private

Plucker coordinates.

Definition at line 47 of file plucker.hh.

const Node* Plucker::points_[2]
private

Definition at line 50 of file plucker.hh.

double Plucker::scale_
private

Definition at line 48 of file plucker.hh.


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