|
MOAB: Mesh Oriented datABase
(version 5.4.1)
|
#include <VerdictVector.hpp>
Public Member Functions | |
| VerdictVector () | |
| VerdictVector (const double x, const double y, const double z) | |
| VerdictVector (const double xyz[3]) | |
| VerdictVector (const VerdictVector &tail, const VerdictVector &head) | |
| VerdictVector (const VerdictVector ©_from) | |
| void | set (const double xv, const double yv, const double zv) |
| void | set (const double xyz[3]) |
| void | set (const VerdictVector &tail, const VerdictVector &head) |
| void | set (const VerdictVector &to_copy) |
| double | x () const |
| double | y () const |
| double | z () const |
| void | get_xyz (double &x, double &y, double &z) |
| void | get_xyz (double xyz[3]) |
| double & | r () |
| double & | theta () |
| void | x (const double xv) |
| void | y (const double yv) |
| void | z (const double zv) |
| void | r (const double xv) |
| void | theta (const double yv) |
| void | xy_to_rtheta () |
| void | rtheta_to_xy () |
| void | scale_angle (double gamma, double) |
| void | blow_out (double gamma, double gamma2=0.0) |
| void | rotate (double angle, double) |
| void | reflect_about_xaxis (double dummy, double) |
| double | normalize () |
| VerdictVector & | length (const double new_length) |
| double | length () const |
| double | distance_between (const VerdictVector &test_vector) |
| double | length_squared () const |
| double | interior_angle (const VerdictVector &otherVector) |
| double | vector_angle_quick (const VerdictVector &vec1, const VerdictVector &vec2) |
| double | vector_angle (const VerdictVector &vector1, const VerdictVector &vector2) const |
| void | perpendicular_z () |
| void | print_me () |
| void | orthogonal_vectors (VerdictVector &vector2, VerdictVector &vector3) |
| void | next_point (const VerdictVector &direction, double distance, VerdictVector &out_point) |
| bool | within_tolerance (const VerdictVector &vectorPtr2, double tolerance) const |
| VerdictVector & | operator+= (const VerdictVector &vec) |
| VerdictVector & | operator-= (const VerdictVector &vec) |
| VerdictVector & | operator*= (const VerdictVector &vec) |
| VerdictVector & | operator*= (const double scalar) |
| VerdictVector & | operator/= (const double scalar) |
| VerdictVector | operator- () const |
| VerdictVector & | operator= (const VerdictVector &from) |
Private Attributes | |
| double | xVal |
| double | yVal |
| double | zVal |
Friends | |
| VerdictVector | operator~ (const VerdictVector &vec) |
| VerdictVector | operator+ (const VerdictVector &v1, const VerdictVector &v2) |
| VerdictVector | operator- (const VerdictVector &v1, const VerdictVector &v2) |
| VerdictVector | operator* (const VerdictVector &v1, const VerdictVector &v2) |
| VerdictVector | operator* (const VerdictVector &v1, const double sclr) |
| VerdictVector | operator* (const double sclr, const VerdictVector &v1) |
| double | operator% (const VerdictVector &v1, const VerdictVector &v2) |
| VerdictVector | operator/ (const VerdictVector &v1, const double sclr) |
| int | operator== (const VerdictVector &v1, const VerdictVector &v2) |
| int | operator!= (const VerdictVector &v1, const VerdictVector &v2) |
| VerdictVector | interpolate (const double param, const VerdictVector &v1, const VerdictVector &v2) |
Definition at line 35 of file VerdictVector.hpp.
| VerdictVector::VerdictVector | ( | ) | [inline] |
Definition at line 325 of file VerdictVector.hpp.
Referenced by operator-().
| VerdictVector::VerdictVector | ( | const double | x, |
| const double | y, | ||
| const double | z | ||
| ) | [inline] |
Definition at line 332 of file VerdictVector.hpp.
| VerdictVector::VerdictVector | ( | const double | xyz[3] | ) |
Definition at line 438 of file VerdictVector.cpp.
| VerdictVector::VerdictVector | ( | const VerdictVector & | tail, |
| const VerdictVector & | head | ||
| ) | [inline] |
| VerdictVector::VerdictVector | ( | const VerdictVector & | copy_from | ) | [inline] |
| void VerdictVector::blow_out | ( | double | gamma, |
| double | gamma2 = 0.0 |
||
| ) |
Definition at line 133 of file VerdictVector.cpp.
References r(), rtheta_to_xy(), and xy_to_rtheta().
{
// if gamma == 1, then
// map on a circle : r'^2 = sqrt( 1 - (1-r)^2 )
// if gamma ==0, then map back to itself
// in between, linearly interpolate
xy_to_rtheta();
// r() = sqrt( (2. - r()) * r() ) * gamma + r() * (1-gamma);
assert( gamma > 0.0 );
// the following limits should really be roundoff-based
if( r() > rmin * 1.001 && r() < 1.001 )
{
r() = rmin + pow( r(), gamma ) * ( 1.0 - rmin );
}
rtheta_to_xy();
}
| double VerdictVector::distance_between | ( | const VerdictVector & | test_vector | ) |
| void VerdictVector::get_xyz | ( | double & | x, |
| double & | y, | ||
| double & | z | ||
| ) | [inline] |
Definition at line 258 of file VerdictVector.hpp.
References xVal, yVal, and zVal.
Referenced by orthogonal_vectors(), and v_tet_aspect_frobenius().
| void VerdictVector::get_xyz | ( | double | xyz[3] | ) | [inline] |
| double VerdictVector::interior_angle | ( | const VerdictVector & | otherVector | ) |
Definition at line 64 of file VerdictVector.cpp.
References length(), and VERDICT_PI.
Referenced by v_tri_maximum_angle(), and v_tri_minimum_angle().
{
double cosAngle = 0., angleRad = 0., len1, len2 = 0.;
if( ( ( len1 = this->length() ) > 0 ) && ( ( len2 = otherVector.length() ) > 0 ) )
cosAngle = ( *this % otherVector ) / ( len1 * len2 );
else
{
assert( len1 > 0 );
assert( len2 > 0 );
}
if( ( cosAngle > 1.0 ) && ( cosAngle < 1.0001 ) )
{
cosAngle = 1.0;
angleRad = acos( cosAngle );
}
else if( cosAngle < -1.0 && cosAngle > -1.0001 )
{
cosAngle = -1.0;
angleRad = acos( cosAngle );
}
else if( cosAngle >= -1.0 && cosAngle <= 1.0 )
angleRad = acos( cosAngle );
else
{
assert( cosAngle < 1.0001 && cosAngle > -1.0001 );
}
return ( ( angleRad * 180. ) / VERDICT_PI );
}
| VerdictVector & VerdictVector::length | ( | const double | new_length | ) |
Definition at line 36 of file VerdictVector.cpp.
References length(), xVal, yVal, and zVal.
Referenced by interior_angle(), v_hex_max_edge_ratio(), v_hex_quality(), v_hex_taper(), v_quad_aspect_ratio(), v_quad_distortion(), v_quad_max_aspect_frobenius(), v_quad_max_edge_ratio(), v_quad_maximum_angle(), v_quad_med_aspect_frobenius(), v_quad_minimum_angle(), v_quad_quality(), v_quad_radius_ratio(), v_quad_scaled_jacobian(), v_quad_taper(), v_tet_aspect_beta(), v_tet_aspect_ratio(), v_tet_collapse_ratio(), v_tet_minimum_angle(), v_tet_quality(), v_tet_radius_ratio(), v_tri_area(), v_tri_aspect_ratio(), v_tri_condition(), v_tri_distortion(), v_tri_quality(), v_tri_relative_size_squared(), and v_tri_scaled_jacobian().
| double VerdictVector::length | ( | ) | const [inline] |
Definition at line 477 of file VerdictVector.hpp.
References xVal, yVal, and zVal.
Referenced by interior_angle(), length(), normalize(), and xy_to_rtheta().
| double VerdictVector::length_squared | ( | ) | const [inline] |
Definition at line 472 of file VerdictVector.hpp.
References xVal, yVal, and zVal.
Referenced by normalize_jacobian(), v_hex_edge_ratio(), v_hex_quality(), v_hex_scaled_jacobian(), v_hex_shear(), v_quad_edge_ratio(), v_quad_max_aspect_frobenius(), v_quad_med_aspect_frobenius(), v_quad_quality(), v_quad_radius_ratio(), v_quad_shape(), v_quad_stretch(), v_tet_aspect_beta(), v_tet_aspect_gamma(), v_tet_aspect_ratio(), v_tet_edge_ratio(), v_tet_quality(), v_tet_radius_ratio(), v_tet_scaled_jacobian(), v_tri_aspect_frobenius(), v_tri_edge_ratio(), v_tri_maximum_angle(), v_tri_minimum_angle(), v_tri_radius_ratio(), and vector_angle().
| void VerdictVector::next_point | ( | const VerdictVector & | direction, |
| double | distance, | ||
| VerdictVector & | out_point | ||
| ) |
Definition at line 425 of file VerdictVector.cpp.
References normalize(), x(), xVal, y(), yVal, z(), and zVal.
| double VerdictVector::normalize | ( | ) | [inline] |
Definition at line 482 of file VerdictVector.hpp.
References length(), xVal, yVal, and zVal.
Referenced by localize_quad_coordinates(), localize_quad_for_ef(), next_point(), orthogonal_vectors(), quad_normal(), signed_corner_areas(), v_hex_quality(), v_hex_skew(), v_quad_distortion(), v_tri_distortion(), vector_angle(), and vectorRotate().
| VerdictVector & VerdictVector::operator*= | ( | const VerdictVector & | vec | ) | [inline] |
Definition at line 308 of file VerdictVector.hpp.
| VerdictVector & VerdictVector::operator*= | ( | const double | scalar | ) | [inline] |
| VerdictVector & VerdictVector::operator+= | ( | const VerdictVector & | vec | ) | [inline] |
| VerdictVector VerdictVector::operator- | ( | ) | const [inline] |
Definition at line 414 of file VerdictVector.hpp.
References VerdictVector(), xVal, yVal, and zVal.
{
return VerdictVector( -xVal, -yVal, -zVal );
}
| VerdictVector & VerdictVector::operator-= | ( | const VerdictVector & | vec | ) | [inline] |
| VerdictVector & VerdictVector::operator/= | ( | const double | scalar | ) | [inline] |
| VerdictVector & VerdictVector::operator= | ( | const VerdictVector & | from | ) | [inline] |
| void VerdictVector::orthogonal_vectors | ( | VerdictVector & | vector2, |
| VerdictVector & | vector3 | ||
| ) |
Definition at line 354 of file VerdictVector.cpp.
References get_xyz(), normalize(), and set().
{
double xv[3];
unsigned short i = 0;
unsigned short imin = 0;
double rmin = 1.0E20;
unsigned short iperm1[3];
unsigned short iperm2[3];
unsigned short cont_flag = 1;
double vec1[3], vec2[3];
double rmag;
// Copy the input vector and normalize it
VerdictVector vector1 = *this;
vector1.normalize();
// Initialize perm flags
iperm1[0] = 1;
iperm1[1] = 2;
iperm1[2] = 0;
iperm2[0] = 2;
iperm2[1] = 0;
iperm2[2] = 1;
// Get into the array format we can work with
vector1.get_xyz( vec1 );
while( i < 3 && cont_flag )
{
if( fabs( vec1[i] ) < 1e-6 )
{
vec2[i] = 1.0;
vec2[iperm1[i]] = 0.0;
vec2[iperm2[i]] = 0.0;
cont_flag = 0;
}
if( fabs( vec1[i] ) < rmin )
{
imin = i;
rmin = fabs( vec1[i] );
}
++i;
}
if( cont_flag )
{
xv[imin] = 1.0;
xv[iperm1[imin]] = 0.0;
xv[iperm2[imin]] = 0.0;
// Determine cross product
vec2[0] = vec1[1] * xv[2] - vec1[2] * xv[1];
vec2[1] = vec1[2] * xv[0] - vec1[0] * xv[2];
vec2[2] = vec1[0] * xv[1] - vec1[1] * xv[0];
// Unitize
rmag = sqrt( vec2[0] * vec2[0] + vec2[1] * vec2[1] + vec2[2] * vec2[2] );
vec2[0] /= rmag;
vec2[1] /= rmag;
vec2[2] /= rmag;
}
// Copy 1st orthogonal vector into VerdictVector vector2
vector2.set( vec2 );
// Cross vectors to determine last orthogonal vector
vector3 = vector1 * vector2;
}
| void VerdictVector::perpendicular_z | ( | ) | [inline] |
| void VerdictVector::print_me | ( | ) |
| double & VerdictVector::r | ( | ) | [inline] |
Definition at line 264 of file VerdictVector.hpp.
References xVal.
Referenced by blow_out(), rtheta_to_xy(), scale_angle(), and xy_to_rtheta().
{
return xVal;
}
| void VerdictVector::r | ( | const double | xv | ) | [inline] |
| void VerdictVector::reflect_about_xaxis | ( | double | dummy, |
| double | |||
| ) |
| void VerdictVector::rotate | ( | double | angle, |
| double | |||
| ) |
Definition at line 126 of file VerdictVector.cpp.
References moab::angle(), rtheta_to_xy(), theta(), and xy_to_rtheta().
{
xy_to_rtheta();
theta() += angle;
rtheta_to_xy();
}
| void VerdictVector::rtheta_to_xy | ( | ) |
Definition at line 116 of file VerdictVector.cpp.
References r(), theta(), x(), and y().
Referenced by blow_out(), rotate(), and scale_angle().
| void VerdictVector::scale_angle | ( | double | gamma, |
| double | |||
| ) |
Definition at line 155 of file VerdictVector.cpp.
References r(), rtheta_to_xy(), theta(), TWO_VERDICT_PI, VERDICT_PI, and xy_to_rtheta().
{
const double r_factor = 0.3;
const double theta_factor = 0.6;
xy_to_rtheta();
// if neary 2pi, treat as zero
// some near zero stuff strays due to roundoff
if( theta() > TWO_VERDICT_PI - 0.02 ) theta() = 0;
// the above screws up on big sheets - need to overhaul at the sheet level
if( gamma < 1 )
{
// squeeze together points of short radius so that
// long chords won't cross them
theta() += ( VERDICT_PI - theta() ) * ( 1 - gamma ) * theta_factor * ( 1 - r() );
// push away from center of circle, again so long chords won't cross
r( ( r_factor + r() ) / ( 1 + r_factor ) );
// scale angle by gamma
theta() *= gamma;
}
else
{
// scale angle by gamma, making sure points nearly 2pi are treated as zero
double new_theta = theta() * gamma;
if( new_theta < 2.5 * VERDICT_PI || r() < 0.2 ) theta( new_theta );
}
rtheta_to_xy();
}
| void VerdictVector::set | ( | const double | xv, |
| const double | yv, | ||
| const double | zv | ||
| ) | [inline] |
Definition at line 347 of file VerdictVector.hpp.
References xVal, yVal, and zVal.
Referenced by calc_hex_efg(), form_Q(), get_weight(), inverse(), localize_hex_coordinates(), localize_quad_coordinates(), make_hex_edges(), make_quad_edges(), orthogonal_vectors(), product(), quad_normal(), v_hex_distortion(), v_hex_get_weight(), v_hex_oddy(), v_knife_volume(), v_pyramid_volume(), v_quad_condition(), v_quad_distortion(), v_quad_max_edge_ratio(), v_quad_maximum_angle(), v_quad_minimum_angle(), v_quad_quality(), v_quad_radius_ratio(), v_quad_stretch(), v_tet_aspect_beta(), v_tet_aspect_frobenius(), v_tet_aspect_gamma(), v_tet_aspect_ratio(), v_tet_collapse_ratio(), v_tet_condition(), v_tet_distortion(), v_tet_edge_ratio(), v_tet_jacobian(), v_tet_minimum_angle(), v_tet_quality(), v_tet_radius_ratio(), v_tet_scaled_jacobian(), v_tet_shape(), v_tet_volume(), v_tri_distortion(), v_tri_maximum_angle(), v_tri_minimum_angle(), v_tri_quality(), v_tri_relative_size_squared(), v_tri_scaled_jacobian(), and v_wedge_volume().
| void VerdictVector::set | ( | const double | xyz[3] | ) | [inline] |
| void VerdictVector::set | ( | const VerdictVector & | tail, |
| const VerdictVector & | head | ||
| ) | [inline] |
| void VerdictVector::set | ( | const VerdictVector & | to_copy | ) | [inline] |
Definition at line 376 of file VerdictVector.hpp.
{
*this = to_copy;
}
| double & VerdictVector::theta | ( | ) | [inline] |
Definition at line 268 of file VerdictVector.hpp.
References yVal.
Referenced by rotate(), rtheta_to_xy(), scale_angle(), and xy_to_rtheta().
{
return yVal;
}
| void VerdictVector::theta | ( | const double | yv | ) | [inline] |
| double VerdictVector::vector_angle | ( | const VerdictVector & | vector1, |
| const VerdictVector & | vector2 | ||
| ) | const |
Definition at line 252 of file VerdictVector.cpp.
References moab::angle(), moab::dot(), length_squared(), normalize(), TWO_VERDICT_PI, and VERDICT_PI.
{
// This routine does not assume that any of the input vectors are of unit
// length. This routine does not normalize the input vectors.
// Special cases:
// If the normal vector is zero length:
// If a new one can be computed from vectors 1 & 2:
// the normal is replaced with the vector cross product
// else the two vectors are colinear and zero or 2PI is returned.
// If the normal is colinear with either (or both) vectors
// a new one is computed with the cross products
// (and checked again).
// Check for zero length normal vector
VerdictVector normal = *this;
double normal_lensq = normal.length_squared();
double len_tol = 0.0000001;
if( normal_lensq <= len_tol )
{
// null normal - make it the normal to the plane defined by vector1
// and vector2. If still null, the vectors are colinear so check
// for zero or 180 angle.
normal = vector1 * vector2;
normal_lensq = normal.length_squared();
if( normal_lensq <= len_tol )
{
double cosine = vector1 % vector2;
if( cosine > 0.0 )
return 0.0;
else
return VERDICT_PI;
}
}
// Trap for normal vector colinear to one of the other vectors. If so,
// use a normal defined by the two vectors.
double dot_tol = 0.985;
double dot = vector1 % normal;
if( dot * dot >= vector1.length_squared() * normal_lensq * dot_tol )
{
normal = vector1 * vector2;
normal_lensq = normal.length_squared();
// Still problems if all three vectors were colinear
if( normal_lensq <= len_tol )
{
double cosine = vector1 % vector2;
if( cosine >= 0.0 )
return 0.0;
else
return VERDICT_PI;
}
}
else
{
// The normal and vector1 are not colinear, now check for vector2
dot = vector2 % normal;
if( dot * dot >= vector2.length_squared() * normal_lensq * dot_tol )
{
normal = vector1 * vector2;
}
}
// Assume a plane such that the normal vector is the plane's normal.
// Create yAxis perpendicular to both the normal and vector1. yAxis is
// now in the plane. Create xAxis as the perpendicular to both yAxis and
// the normal. xAxis is in the plane and is the projection of vector1
// into the plane.
normal.normalize();
VerdictVector yAxis = normal;
yAxis *= vector1;
double yv = vector2 % yAxis;
// yAxis memory slot will now be used for xAxis
yAxis *= normal;
double xv = vector2 % yAxis;
// assert(x != 0.0 || y != 0.0);
if( xv == 0.0 && yv == 0.0 )
{
return 0.0;
}
double angle = atan2( yv, xv );
if( angle < 0.0 )
{
angle += TWO_VERDICT_PI;
}
return angle;
}
| double VerdictVector::vector_angle_quick | ( | const VerdictVector & | vec1, |
| const VerdictVector & | vec2 | ||
| ) |
Definition at line 188 of file VerdictVector.cpp.
References moab::angle(), and TWO_VERDICT_PI.
{
//- compute the angle between two vectors in the plane defined by this vector
// build yAxis and xAxis such that xAxis is the projection of
// vec1 onto the normal plane of this vector
// NOTE: vec1 and vec2 are Vectors from the vertex of the angle along
// the two sides of the angle.
// The angle returned is the right-handed angle around this vector
// from vec1 to vec2.
// NOTE: vector_angle_quick gives exactly the same answer as vector_angle below
// providing this vector is normalized. It does so with two fewer
// cross-product evaluations and two fewer vector normalizations.
// This can be a substantial time savings if the function is called
// a significant number of times (e.g Hexer) ... (jrh 11/28/94)
// NOTE: vector_angle() is much more robust. Do not use vector_angle_quick()
// unless you are very sure of the safety of your input vectors.
VerdictVector ry = ( *this ) * vec1;
VerdictVector rx = ry * ( *this );
double xv = vec2 % rx;
double yv = vec2 % ry;
double angle;
assert( xv != 0.0 || yv != 0.0 );
angle = atan2( yv, xv );
if( angle < 0.0 )
{
angle += TWO_VERDICT_PI;
}
return angle;
}
| bool VerdictVector::within_tolerance | ( | const VerdictVector & | vectorPtr2, |
| double | tolerance | ||
| ) | const |
| double VerdictVector::x | ( | ) | const [inline] |
Definition at line 240 of file VerdictVector.hpp.
References xVal.
Referenced by distance_between(), inverse(), localize_hex_coordinates(), localize_quad_coordinates(), localize_quad_for_ef(), next_point(), operator%(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), perpendicular_z(), product(), rtheta_to_xy(), v_tri_condition(), v_tri_quality(), v_tri_scaled_jacobian(), within_tolerance(), and xy_to_rtheta().
{
return xVal;
}
| void VerdictVector::x | ( | const double | xv | ) | [inline] |
| void VerdictVector::xy_to_rtheta | ( | ) |
Definition at line 105 of file VerdictVector.cpp.
References length(), r(), theta(), TWO_VERDICT_PI, x(), and y().
Referenced by blow_out(), rotate(), and scale_angle().
| double VerdictVector::y | ( | ) | const [inline] |
Definition at line 244 of file VerdictVector.hpp.
References yVal.
Referenced by distance_between(), inverse(), localize_hex_coordinates(), localize_quad_coordinates(), localize_quad_for_ef(), next_point(), operator%(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), perpendicular_z(), product(), rtheta_to_xy(), v_tri_condition(), v_tri_quality(), v_tri_scaled_jacobian(), within_tolerance(), and xy_to_rtheta().
{
return yVal;
}
| void VerdictVector::y | ( | const double | yv | ) | [inline] |
| double VerdictVector::z | ( | ) | const [inline] |
Definition at line 248 of file VerdictVector.hpp.
References zVal.
Referenced by distance_between(), inverse(), localize_hex_coordinates(), localize_quad_coordinates(), next_point(), operator%(), operator*=(), operator+(), operator+=(), operator-(), operator-=(), product(), v_tri_condition(), v_tri_quality(), v_tri_scaled_jacobian(), and within_tolerance().
{
return zVal;
}
| void VerdictVector::z | ( | const double | zv | ) | [inline] |
| VerdictVector interpolate | ( | const double | param, |
| const VerdictVector & | v1, | ||
| const VerdictVector & | v2 | ||
| ) | [friend] |
Definition at line 98 of file VerdictVector.cpp.
{
VerdictVector temp = ( 1.0 - param ) * v1;
temp += param * v2;
return temp;
}
| int operator!= | ( | const VerdictVector & | v1, |
| const VerdictVector & | v2 | ||
| ) | [friend] |
| double operator% | ( | const VerdictVector & | v1, |
| const VerdictVector & | v2 | ||
| ) | [friend] |
Definition at line 495 of file VerdictVector.hpp.
{
return ( vector1.x() * vector2.x() + vector1.y() * vector2.y() + vector1.z() * vector2.z() );
}
| VerdictVector operator* | ( | const VerdictVector & | v1, |
| const VerdictVector & | v2 | ||
| ) | [friend] |
Definition at line 439 of file VerdictVector.hpp.
{
return VerdictVector( vector1 ) *= vector2;
}
| VerdictVector operator* | ( | const VerdictVector & | v1, |
| const double | sclr | ||
| ) | [friend] |
Definition at line 445 of file VerdictVector.hpp.
{
return VerdictVector( vector1 ) *= scalar;
}
| VerdictVector operator* | ( | const double | sclr, |
| const VerdictVector & | v1 | ||
| ) | [friend] |
Definition at line 451 of file VerdictVector.hpp.
{
return VerdictVector( vector1 ) *= scalar;
}
| VerdictVector operator+ | ( | const VerdictVector & | v1, |
| const VerdictVector & | v2 | ||
| ) | [friend] |
Definition at line 419 of file VerdictVector.hpp.
{
double xv = vector1.x() + vector2.x();
double yv = vector1.y() + vector2.y();
double zv = vector1.z() + vector2.z();
return VerdictVector( xv, yv, zv );
// return VerdictVector(vector1) += vector2;
}
| VerdictVector operator- | ( | const VerdictVector & | v1, |
| const VerdictVector & | v2 | ||
| ) | [friend] |
Definition at line 428 of file VerdictVector.hpp.
{
double xv = vector1.x() - vector2.x();
double yv = vector1.y() - vector2.y();
double zv = vector1.z() - vector2.z();
return VerdictVector( xv, yv, zv );
// return VerdictVector(vector1) -= vector2;
}
| VerdictVector operator/ | ( | const VerdictVector & | v1, |
| const double | sclr | ||
| ) | [friend] |
Definition at line 457 of file VerdictVector.hpp.
{
return VerdictVector( vector1 ) /= scalar;
}
| int operator== | ( | const VerdictVector & | v1, |
| const VerdictVector & | v2 | ||
| ) | [friend] |
| VerdictVector operator~ | ( | const VerdictVector & | vec | ) | [friend] |
Definition at line 401 of file VerdictVector.hpp.
double VerdictVector::xVal [private] |
Definition at line 225 of file VerdictVector.hpp.
Referenced by distance_between(), get_xyz(), length(), length_squared(), next_point(), normalize(), operator!=(), operator*=(), operator+=(), operator-(), operator-=(), operator/=(), operator=(), operator==(), operator~(), r(), set(), and x().
double VerdictVector::yVal [private] |
Definition at line 226 of file VerdictVector.hpp.
Referenced by distance_between(), get_xyz(), length(), length_squared(), next_point(), normalize(), operator!=(), operator*=(), operator+=(), operator-(), operator-=(), operator/=(), operator=(), operator==(), operator~(), reflect_about_xaxis(), set(), theta(), and y().
double VerdictVector::zVal [private] |
Definition at line 227 of file VerdictVector.hpp.
Referenced by distance_between(), get_xyz(), length(), length_squared(), next_point(), normalize(), operator!=(), operator*=(), operator+=(), operator-(), operator-=(), operator/=(), operator=(), operator==(), operator~(), set(), and z().