Vector3D is the object that effeciently stores information about about three-deminsional vectors. It is also the parent class of MsqVertex. More...
#include <Vector3D.hpp>
Public Member Functions | |
Vector3D () | |
Vector3D (const double &x, const double &y, const double &z) | |
Vector3D (const double xyz[3]) | |
Vector3D (const Vector3D &to_copy) | |
double | x () const |
double | y () const |
double | z () const |
void | get_coordinates (double &x, double &y, double &z) const |
void | get_coordinates (double xyz[3]) const |
const double & | operator[] (size_t index) const |
void | x (const double x) |
void | y (const double y) |
void | z (const double z) |
void | set (const double x, const double y, const double z) |
void | set (const double xyz[3]) |
void | set (const Vector3D &to_copy) |
double & | operator[] (size_t index) |
Vector3D & | operator= (const Vector3D &to_copy) |
Vector3D & | operator= (const double &to_copy) |
Vector3D | operator- () const |
Vector3D & | operator*= (const double scalar) |
Vector3D & | operator/= (const double scalar) |
divides each Vector3D entry by the given scalar. More... | |
Vector3D & | operator*= (const Vector3D &rhs) |
Vector3D & | operator+= (const Vector3D &rhs) |
Vector3D & | operator-= (const Vector3D &rhs) |
int | within_tolerance_box (const Vector3D &compare_to, double tolerance) const |
double | length_squared () const |
double | length () const |
void | set_length (const double new_length) |
void | normalize () |
const double * | to_array () const |
Vector3D () | |
Vector3D (const double &x, const double &y, const double &z) | |
Vector3D (const double xyz[3]) | |
Vector3D (const Vector3D &to_copy) | |
double | x () const |
double | y () const |
double | z () const |
void | get_coordinates (double &x, double &y, double &z) const |
void | get_coordinates (double xyz[3]) const |
const double & | operator[] (size_t index) const |
void | x (const double x) |
void | y (const double y) |
void | z (const double z) |
void | set (const double x, const double y, const double z) |
void | set (const double xyz[3]) |
void | set (const Vector3D &to_copy) |
double & | operator[] (size_t index) |
Vector3D & | operator= (const Vector3D &to_copy) |
Vector3D & | operator= (const double &to_copy) |
Vector3D | operator- () const |
Vector3D & | operator*= (const double scalar) |
Vector3D & | operator/= (const double scalar) |
Vector3D & | operator*= (const Vector3D &rhs) |
Vector3D & | operator+= (const Vector3D &rhs) |
Vector3D & | operator-= (const Vector3D &rhs) |
int | within_tolerance_box (const Vector3D &compare_to, double tolerance) const |
double | length_squared () const |
double | length () const |
void | set_length (const double new_length) |
void | normalize () |
const double * | to_array () const |
Static Public Member Functions | |
static double | distance_between (const Vector3D &p1, const Vector3D &p2) |
static double | interior_angle (const Vector3D &a, const Vector3D &b, MsqError &err) |
static Vector3D | interpolate (const double param, const Vector3D &p1, const Vector3D &p2) |
static double | distance_between (const Vector3D &p1, const Vector3D &p2) |
static double | interior_angle (const Vector3D &a, const Vector3D &b, MsqError &err) |
static Vector3D | interpolate (const double param, const Vector3D &p1, const Vector3D &p2) |
Protected Attributes | |
double | mCoords [3] |
Friends | |
const Vector3D | operator+ (const Vector3D &lhs, const Vector3D &rhs) |
const Vector3D | operator- (const Vector3D &lhs, const Vector3D &rhs) |
const Vector3D | operator* (const Vector3D &lhs, const double scalar) |
lhs * scalar More... | |
const Vector3D | operator* (const double scalar, const Vector3D &rhs) |
scalar * rhs More... | |
const Vector3D | operator/ (const Vector3D &lhs, const double scalar) |
double | operator% (const Vector3D &v1, const Vector3D &v2) |
dot product More... | |
double | inner (const Vector3D v1[], const Vector3D v2[], int n) |
dot product for array More... | |
double | operator% (const double scalar, const Vector3D &v2) |
scalar * sum_i v2[i] More... | |
double | operator% (const Vector3D &v1, const double scalar) |
scalar * sum_i v1[i] More... | |
const Vector3D | operator* (const Vector3D &v1, const Vector3D &v2) |
cross product More... | |
void | eqAx (Vector3D &v, const Matrix3D &A, const Vector3D &x) |
More... | |
void | plusEqAx (Vector3D &v, const Matrix3D &A, const Vector3D &x) |
More... | |
void | plusEqTransAx (Vector3D &v, const Matrix3D &A, const Vector3D &x) |
More... | |
bool | operator== (const Vector3D &lhs, const Vector3D &rhs) |
bool | operator!= (const Vector3D &lhs, const Vector3D &rhs) |
double | length (Vector3D *const v, int n) |
L2 norm for an array of Vector3Ds. More... | |
double | Linf (Vector3D *const v, int n) |
L inf norm for array of Vector3Ds. More... | |
const Vector3D | operator+ (const Vector3D &lhs, const Vector3D &rhs) |
const Vector3D | operator- (const Vector3D &lhs, const Vector3D &rhs) |
const Vector3D | operator* (const Vector3D &lhs, const double scalar) |
lhs * scalar More... | |
const Vector3D | operator* (const double scalar, const Vector3D &rhs) |
scalar * rhs More... | |
const Vector3D | operator/ (const Vector3D &lhs, const double scalar) |
double | operator% (const Vector3D &v1, const Vector3D &v2) |
dot product More... | |
double | inner (const Vector3D v1[], const Vector3D v2[], int n) |
dot product for array More... | |
double | operator% (const double scalar, const Vector3D &v2) |
scalar * sum_i v2[i] More... | |
double | operator% (const Vector3D &v1, const double scalar) |
scalar * sum_i v1[i] More... | |
const Vector3D | operator* (const Vector3D &v1, const Vector3D &v2) |
cross product More... | |
void | eqAx (Vector3D &v, const Matrix3D &A, const Vector3D &x) |
More... | |
void | plusEqAx (Vector3D &v, const Matrix3D &A, const Vector3D &x) |
More... | |
void | plusEqTransAx (Vector3D &v, const Matrix3D &A, const Vector3D &x) |
More... | |
bool | operator== (const Vector3D &lhs, const Vector3D &rhs) |
bool | operator!= (const Vector3D &lhs, const Vector3D &rhs) |
double | length (Vector3D *const v, int n) |
L2 norm for an array of Vector3Ds. More... | |
double | Linf (Vector3D *const v, int n) |
L inf norm for array of Vector3Ds. More... | |
Vector3D is the object that effeciently stores information about about three-deminsional vectors. It is also the parent class of MsqVertex.
Definition at line 64 of file includeLinks/Vector3D.hpp.
|
inline |
Definition at line 171 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords.
Referenced by Vector3D::operator-().
|
inline |
Definition at line 177 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords, Vector3D::x(), Vector3D::y(), and Vector3D::z().
|
inline |
Vector3D | ( | ) |
Vector3D | ( | const double & | x, |
const double & | y, | ||
const double & | z | ||
) |
Vector3D | ( | const double | xyz[3] | ) |
Definition at line 373 of file includeLinks/Vector3D.hpp.
References Vector3D::length(), p1, and v.
|
inline |
Definition at line 197 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords.
Referenced by NonSmoothSteepestDescent::validity_check(), and MesqPane::vertex_set_coordinates().
void get_coordinates | ( | double & | x, |
double & | y, | ||
double & | z | ||
) | const |
void get_coordinates | ( | double | xyz[3] | ) | const |
|
inline |
Definition at line 49 of file Misc/Vector3D.cpp.
References cimg_library::acos(), MsqError::INTERNAL_ERROR, len1, len2, Vector3D::length(), MSQ_SETERR, and rhs.
Definition at line 430 of file includeLinks/Vector3D.hpp.
|
inline |
Definition at line 394 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords, and sqrt().
Referenced by LocalSizeQualityMetric::compute_corner_area(), MsqMeshEntity::compute_corner_normals(), IdealWeightInverseMeanRatio::compute_element_analytical_gradient(), IdealWeightMeanRatio::compute_element_analytical_gradient(), IdealWeightInverseMeanRatio::compute_element_analytical_hessian(), IdealWeightMeanRatio::compute_element_analytical_hessian(), TargetCalculator::compute_Q_3D(), MsqMeshEntity::compute_signed_area(), TargetCalculator::compute_V_3D(), Vector3D::distance_between(), RI_DFT::evaluate_element(), IdealWeightInverseMeanRatio::evaluate_element(), IdealWeightMeanRatio::evaluate_element(), EdgeLengthQualityMetric::evaluate_vertex(), EdgeLengthRangeQualityMetric::evaluate_vertex(), Vector3D::interior_angle(), SphericalDomain::normal_at(), Vector3D::set_length(), SphericalDomain::snap_to(), and UntangleBetaQualityMetric::untangle_function_2d().
|
inline |
|
inline |
Definition at line 388 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords.
Referenced by AspectRatioGammaQualityMetric::evaluate_element(), and PatchData::get_max_vertex_movement_squared().
|
inline |
|
inline |
Definition at line 426 of file includeLinks/Vector3D.hpp.
References Vector3D::set_length().
Referenced by SphericalDomain::closest_point(), MsqMeshEntity::compute_corner_normals(), RI_DFT::evaluate_element(), PatchData::get_domain_normal_at_vertex(), and PlanarDomain::set_plane().
|
inline |
|
inline |
Vector3D& operator*= | ( | const double | scalar | ) |
|
inline |
Definition at line 250 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords, and Vector3D::Vector3D().
Vector3D operator- | ( | ) | const |
|
inline |
divides each Vector3D entry by the given scalar.
Definition at line 262 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords.
Vector3D& operator/= | ( | const double | scalar | ) |
Definition at line 232 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords.
Referenced by MsqVertex::operator=().
|
inline |
Vector3D& operator= | ( | const double & | to_copy | ) |
const double& operator[] | ( | size_t | index | ) | const |
|
inline |
double& operator[] | ( | size_t | index | ) |
|
inline |
void set | ( | const double | x, |
const double | y, | ||
const double | z | ||
) |
|
inline |
Definition at line 217 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords, Vector3D::x(), Vector3D::y(), and Vector3D::z().
Referenced by SphericalDomain::closest_point(), MsqMeshEntity::compute_weighted_jacobian(), SphericalDomain::normal_at(), ConjugateGradient::optimize_vertex_positions(), SphericalDomain::snap_to(), MesqPane::vertices_get_coordinates(), and MeshTSTTImpl::vertices_get_coordinates().
|
inline |
void set | ( | const double | xyz[3] | ) |
void set | ( | const Vector3D & | to_copy | ) |
|
inline |
|
inline |
Definition at line 421 of file includeLinks/Vector3D.hpp.
References Vector3D::length().
Referenced by Vector3D::normalize().
|
inline |
|
inline |
Definition at line 163 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords.
Referenced by MeshTSTTImpl::vertex_set_coordinates(), MeshImpl::vtk_read_polydata(), MeshImpl::vtk_read_structured_grid(), and MeshImpl::vtk_read_unstructured_grid().
|
inline |
|
inline |
int within_tolerance_box | ( | const Vector3D & | compare_to, |
double | tolerance | ||
) | const |
double x | ( | ) | const |
|
inline |
Definition at line 191 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords.
Referenced by SphericalDomain::closest_point(), SphericalDomain::normal_at(), Mesquite::operator*(), Mesquite::operator+(), Mesquite::operator-(), Mesquite::operator/(), Vector3D::set(), SphericalDomain::snap_to(), Vector3D::Vector3D(), MeshTSTTImpl::vertices_get_coordinates(), MeshImpl::write_exodus(), and Vector3D::x().
|
inline |
Definition at line 211 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords, and Vector3D::x().
void x | ( | const double | x | ) |
double y | ( | ) | const |
|
inline |
Definition at line 193 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords.
Referenced by Mesquite::operator*(), Mesquite::operator+(), Mesquite::operator-(), Mesquite::operator/(), Vector3D::set(), Vector3D::Vector3D(), MeshTSTTImpl::vertices_get_coordinates(), MeshImpl::write_exodus(), and Vector3D::y().
|
inline |
Definition at line 213 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords, and Vector3D::y().
void y | ( | const double | y | ) |
double z | ( | ) | const |
|
inline |
Definition at line 195 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords.
Referenced by Mesquite::operator*(), Mesquite::operator+(), Mesquite::operator-(), Mesquite::operator/(), Vector3D::set(), Vector3D::Vector3D(), MeshTSTTImpl::vertices_get_coordinates(), MeshImpl::write_exodus(), and Vector3D::z().
void z | ( | const double | z | ) |
|
inline |
Definition at line 215 of file includeLinks/Vector3D.hpp.
References Vector3D::mCoords, and Vector3D::z().
Definition at line 522 of file includeLinks/Matrix3D.hpp.
Definition at line 522 of file includeLinks/Matrix3D.hpp.
dot product for array
Dot product for arrays of Vector3Ds. see also operator% .
Definition at line 340 of file includeLinks/Vector3D.hpp.
dot product for array
Dot product for arrays of Vector3Ds. see also operator% .
Definition at line 340 of file includeLinks/Vector3D.hpp.
|
friend |
L2 norm for an array of Vector3Ds.
Definition at line 400 of file includeLinks/Vector3D.hpp.
|
friend |
L2 norm for an array of Vector3Ds.
Definition at line 400 of file includeLinks/Vector3D.hpp.
|
friend |
L inf norm for array of Vector3Ds.
Definition at line 409 of file includeLinks/Vector3D.hpp.
|
friend |
L inf norm for array of Vector3Ds.
Definition at line 409 of file includeLinks/Vector3D.hpp.
Definition at line 442 of file includeLinks/Vector3D.hpp.
Definition at line 442 of file includeLinks/Vector3D.hpp.
|
friend |
|
friend |
|
friend |
scalar * sum_i v1[i]
Definition at line 357 of file includeLinks/Vector3D.hpp.
|
friend |
scalar * sum_i v1[i]
Definition at line 357 of file includeLinks/Vector3D.hpp.
Definition at line 295 of file includeLinks/Vector3D.hpp.
Definition at line 295 of file includeLinks/Vector3D.hpp.
Definition at line 302 of file includeLinks/Vector3D.hpp.
Definition at line 302 of file includeLinks/Vector3D.hpp.
Definition at line 323 of file includeLinks/Vector3D.hpp.
Definition at line 323 of file includeLinks/Vector3D.hpp.
Definition at line 437 of file includeLinks/Vector3D.hpp.
Definition at line 437 of file includeLinks/Vector3D.hpp.
Definition at line 529 of file includeLinks/Matrix3D.hpp.
Definition at line 529 of file includeLinks/Matrix3D.hpp.
Definition at line 536 of file includeLinks/Matrix3D.hpp.
Definition at line 536 of file includeLinks/Matrix3D.hpp.
|
protected |
Definition at line 167 of file includeLinks/Vector3D.hpp.
Referenced by Mesquite::eqAx(), Vector3D::get_coordinates(), Vector3D::length(), Vector3D::length_squared(), Mesquite::operator!=(), Mesquite::operator%(), Mesquite::operator*(), Vector3D::operator*=(), Vector3D::operator+=(), Vector3D::operator-(), Vector3D::operator-=(), Vector3D::operator/=(), Vector3D::operator=(), Mesquite::operator==(), Vector3D::operator[](), Mesquite::plusEqAx(), Mesquite::plusEqTransAx(), Vector3D::set(), Vector3D::to_array(), Vector3D::Vector3D(), Vector3D::within_tolerance_box(), Vector3D::x(), Vector3D::y(), and Vector3D::z().