www.mooseframework.org
EFAPoint.C
Go to the documentation of this file.
1 //* This file is part of the MOOSE framework
2 //* https://www.mooseframework.org
3 //*
4 //* All rights reserved, see COPYRIGHT for full restrictions
5 //* https://github.com/idaholab/moose/blob/master/COPYRIGHT
6 //*
7 //* Licensed under LGPL 2.1, please see LICENSE for details
8 //* https://www.gnu.org/licenses/lgpl-2.1.html
9 
10 #include "EFAPoint.h"
11 #include <cmath>
12 #include "EFAError.h"
13 
14 EFAPoint::EFAPoint(const double x, const double y, const double z) : _x(x), _y(y), _z(z) {}
15 
16 double
17 EFAPoint::operator()(const unsigned int i) const
18 {
19  switch (i)
20  {
21  case 0:
22  return _x;
23  case 1:
24  return _y;
25  case 2:
26  return _z;
27  default:
28  EFAError("EFAPoint: Out of index range.");
29  }
30 }
31 
32 EFAPoint &
33 EFAPoint::operator/=(const double a)
34 {
35  _x /= a;
36  _y /= a;
37  _z /= a;
38  return *this;
39 }
40 
41 EFAPoint &
42 EFAPoint::operator*=(const double a)
43 {
44  _x *= a;
45  _y *= a;
46  _z *= a;
47  return *this;
48 }
49 
50 EFAPoint &
52 {
53  _x += point._x;
54  _y += point._y;
55  _z += point._z;
56  return *this;
57 }
58 
60 {
61  return EFAPoint(this->_x * a, this->_y * a, this->_z * a);
62 }
63 
64 double EFAPoint::operator*(const EFAPoint & point)
65 {
66  return this->_x * point._x + this->_y * point._y + this->_z * point._z;
67 }
68 
71 {
72  return EFAPoint(this->_x + point._x, this->_y + point._y, this->_z + point._z);
73 }
74 
77 {
78  return EFAPoint(this->_x - point._x, this->_y - point._y, this->_z - point._z);
79 }
80 
81 double
83 {
84  return std::sqrt(_x * _x + _y * _y + _z * _z);
85 }
86 
87 void
89 {
90  _x = 0.0;
91  _y = 0.0;
92  _z = 0.0;
93 }
94 
96 EFAPoint::cross(const EFAPoint & point)
97 {
98  double x = this->_y * point._z - this->_z * point._y;
99  double y = this->_z * point._x - this->_x * point._z;
100  double z = this->_x * point._y - this->_y * point._x;
101  return EFAPoint(x, y, z);
102 }
EFAPoint.h
EFAPoint::_x
double _x
Definition: EFAPoint.h:18
EFAPoint::EFAPoint
EFAPoint(const double x=0., const double y=0., const double z=0.)
Definition: EFAPoint.C:14
EFAPoint::cross
EFAPoint cross(const EFAPoint &point)
Definition: EFAPoint.C:96
EFAPoint::zero
void zero()
Definition: EFAPoint.C:88
EFAPoint::operator/=
EFAPoint & operator/=(const double a)
Definition: EFAPoint.C:33
EFAPoint::operator*
EFAPoint operator*(const double a)
Definition: EFAPoint.C:59
EFAPoint::norm
double norm()
Definition: EFAPoint.C:82
EFAPoint::_z
double _z
Definition: EFAPoint.h:20
EFAPoint::operator*=
EFAPoint & operator*=(const double a)
Definition: EFAPoint.C:42
EFAPoint
Definition: EFAPoint.h:12
EFAError.h
EFAPoint::operator+
EFAPoint operator+(const EFAPoint &point)
Definition: EFAPoint.C:70
EFAPoint::_y
double _y
Definition: EFAPoint.h:19
EFAPoint::operator()
double operator()(const unsigned int i) const
Definition: EFAPoint.C:17
EFAPoint::operator+=
EFAPoint & operator+=(const EFAPoint &point)
Definition: EFAPoint.C:51
EFAPoint::operator-
EFAPoint operator-(const EFAPoint &point)
Definition: EFAPoint.C:76