91 coords[2] = (*this)(2);
94 coords[1] = (*this)(1);
97 coords[0] = (*this)(0);
112 (*this)(0) =
a[0] +
b[0];
113 (*this)(1) =
a[1] +
b[1];
114 (*this)(2) =
a[2] +
b[2];
115 m_coordim = std::max(
a.GetCoordim(),
b.GetCoordim());
121 (*this)(0) =
a[0] -
b[0];
122 (*this)(1) =
a[1] -
b[1];
123 (*this)(2) =
a[2] -
b[2];
124 m_coordim = std::max(
a.GetCoordim(),
b.GetCoordim());
130 (*this)(0) =
a[1] *
b[2] -
a[2] *
b[1];
131 (*this)(1) =
a[2] *
b[0] -
a[0] *
b[2];
132 (*this)(2) =
a[0] *
b[1] -
a[1] *
b[0];
143 NekDouble yrot = cos(angle) *
a.y() - sin(angle) *
a.z();
144 NekDouble zrot = sin(angle) *
a.y() + cos(angle) *
a.z();
153 NekDouble zrot = cos(angle) *
a.z() - sin(angle) *
a.x();
154 NekDouble xrot = sin(angle) *
a.z() + cos(angle) *
a.x();
163 NekDouble xrot = cos(angle) *
a.x() - sin(angle) *
a.y();
164 NekDouble yrot = sin(angle) *
a.x() + cos(angle) *
a.y();
177 return sqrt((
x() -
a.x()) * (
x() -
a.x()) + (
y() -
a.y()) * (
y() -
a.y()) +
178 (
z() -
a.z()) * (
z() -
a.z()));
184 return (
x() *
a.x() +
y() *
a.y() +
z() *
a.z());
221 ASSERTL0(i == 0,
"Index other than 0 is meaningless.");
#define ASSERTL0(condition, msg)
boost::call_traits< DataType >::const_reference x() const
boost::call_traits< DataType >::const_reference a() const
boost::call_traits< DataType >::const_reference z() const
boost::call_traits< DataType >::const_reference b() const
boost::call_traits< DataType >::const_reference y() const
LibUtilities::ShapeType m_shapeType
Type of shape.
int m_coordim
Coordinate dimension of this geometry object.
void Sub(PointGeom &a, PointGeom &b)
void GetCoords(NekDouble &x, NekDouble &y, NekDouble &z)
void Mult(PointGeom &a, PointGeom &b)
_this = a x b
void Rotate(PointGeom &a, int dir, NekDouble angle)
_this = rotation of a by angle 'angle' around axis dir
NekDouble dot(PointGeom &a)
retun the dot product between this and input a
void Add(PointGeom &a, PointGeom &b)
void v_GenGeomFactors() override
PointGeomSharedPtr v_GetVertex(int i) const override
void UpdatePosition(NekDouble x, NekDouble y, NekDouble z)
NekDouble dist(PointGeom &a)
return distance between this and input a
bool operator==(const GeomFactors &lhs, const GeomFactors &rhs)
Equivalence test for GeomFactors objects.
bool operator!=(const PointGeom &x, const PointGeom &y)
std::shared_ptr< PointGeom > PointGeomSharedPtr
std::vector< double > z(NPUPPER)
scalarT< T > sqrt(scalarT< T > in)