Public Member Functions | |
Point () | |
Point (const bool initialize) | |
Point (const Tensor< 1, dim > &) | |
Point (const double x) | |
Point (const double x, const double y) | |
Point (const double x, const double y, const double z) | |
double | operator() (const unsigned int index) const |
double & | operator() (const unsigned int index) |
Point< dim > | operator+ (const Tensor< 1, dim > &) const |
Point< dim > | operator- (const Tensor< 1, dim > &) const |
Point< dim > | operator- () const |
Point< dim > | operator* (const double) const |
double | operator* (const Tensor< 1, dim > &) const |
Point< dim > | operator/ (const double) const |
double | square () const |
double | distance (const Point< dim > &p) const |
Related Functions | |
(Note that these are not member functions.) | |
template<int dim> | |
Point< dim > | operator* (const double factor, const Point< dim > &p) |
template<int dim> | |
std::ostream & | operator<< (std::ostream &out, const Point< dim > &p) |
template<int dim> | |
std::istream & | operator>> (std::istream &in, Point< dim > &p) |
Point
class provides for a point or vector in a space with arbitrary dimension dim
.
It is the preferred object to be passed to functions which operate on points in spaces of a priori unknown dimension: rather than using functions like double f(double x)
and double f(double x, double y)
, you use double f(Point<dim> &p)
.
Point
also serves as a starting point for the implementation of the geometrical primitives like cells, edges, or faces.
Within deal.II, we use the Point
class mainly to denote the points that make up geometric objects. As such, they have a small number of additional operations over general tensors of rank 1 for which we use the Tensor<1,dim>
class. In particular, there is a distance() function to compute the Euclidian distance between two points in space.
The Point
class is really only used where the coordinates of an object can be thought to possess the dimension of a length. For all other uses, such as the gradient of a scalar function (which is a tensor of rank 1, or vector, with as many elements as a point object, but with different physical units), we use the Tensor<1,dim>
class.
Constructor. Initialize all entries to zero if initialize==true
.
Convert a tensor to a point. Since no additional data is inside a point, this is ok.
Constructor for one dimensional points. This function is only implemented for dim==1
since the usage is considered unsafe for points with dim!=1
.
Constructor for two dimensional points. This function is only implemented for dim==2
since the usage is considered unsafe for points with dim!=2
.
Constructor for three dimensional points. This function is only implemented for dim==3
since the usage is considered unsafe for points with dim!=3
.
Read access to the index
th coordinate.
Read and write access to the index
th coordinate.
Add two point vectors. If possible, use operator +=
instead since this does not need to copy a point at least once.
Reimplemented from Tensor< 1, dim >.
Subtract two point vectors. If possible, use operator +=
instead since this does not need to copy a point at least once.
Reimplemented from Tensor< 1, dim >.
The opposite vector.
Reimplemented from Tensor< 1, dim >.
Multiply by a factor. If possible, use operator *=
instead since this does not need to copy a point at least once.
There is a commutative complement to this function also
Returns the scalar product of two vectors.
Reimplemented from Tensor< 1, dim >.
Divide by a factor. If possible, use operator /=
instead since this does not need to copy a point at least once.
Returns the scalar product of this point vector with itself, i.e. the square, or the square of the norm.
Returns the Euclidian distance of this
point to the point p
, i.e. the l_2
norm of the difference between the vectors representing the two points.
Global operator scaling a point vector by a scalar.
std::ostream & operator<< | ( | std::ostream & | out, | |
const Point< dim > & | p | |||
) | [related] |
Output operator for points. Print the elements consecutively, with a space in between.
std::istream & operator>> | ( | std::istream & | in, | |
Point< dim > & | p | |||
) | [related] |
Output operator for points. Print the elements consecutively, with a space in between.