Classes | Typedefs | Enumerations | Functions | Variables

awLinear Namespace Reference

Classes

class   Promise
class   evalFunction
class   minimumBracket

Typedefs

typedef int  TransformDescriptor

Enumerations

enum   segmentRangeIntersection {
  eSegmentOutside, eSegmentContained, eSegmentOverlaps, eSegmentCrossed,
  eSegmentMightOverlap
}
enum   TransformOperation {
  IdentityOp = 0, TranslateOp = 1, RotateOp = 2, ScaleOp = 4,
  NonPScaleOp = 8, GeneralOp = 16
}

Functions

Point2  operator+ (const Point2 &pt, const Vector2 &vect)
Point2  operator+ (const Vector2 &vect, const Point2 &pt)
Point2  operator- (const Point2 &pt, const Vector2 &vect)
Vector2  operator- (const Vector2 &vect)
Vector2  operator- (const Point2 &pt1, const Point2 &pt2)
Vector2  operator+ (const Vector2 &v1, const Vector2 &v2)
Vector2  operator- (const Vector2 &v1, const Vector2 &v2)
Vector2  operator* (double s, const Vector2 &vect)
Vector2  operator* (const Vector2 &vect, double s)
Point  operator+ (const Point &pt, const Vector &vect)
Point  operator+ (const Vector &vect, const Point &pt)
Point  operator- (const Point &pt, const Vector &vect)
Vector  operator- (const Vector &vect)
Vector  operator- (const Point &pt1, const Point &pt2)
Vector  operator+ (const Vector &v1, const Vector &v2)
Vector  operator- (const Vector &v1, const Vector &v2)
Vector  operator* (double s, const Vector &vect)
Vector  operator* (const Vector &vect, double s)
Vector  operator* (double s, const Normal &norm)
Vector  operator* (const Normal &norm, double s)
double  dot (const Vector &vect1, const Vector &vect2)
double  dot (const Normal &vect1, const Normal &vect2)
double  dot (const Normal &vect1, const Vector &vect2)
double  dot (const Vector &vect1, const Normal &vect2)
PointFlt  operator+ (const PointFlt &pt, const VectorFlt &vect)
PointFlt  operator+ (const VectorFlt &vect, const PointFlt &pt)
PointFlt  operator- (const PointFlt &pt, const VectorFlt &vect)
VectorFlt  operator- (const VectorFlt &vect)
VectorFlt  operator- (const PointFlt &pt1, const PointFlt &pt2)
VectorFlt  operator+ (const VectorFlt &v1, const VectorFlt &v2)
VectorFlt  operator- (const VectorFlt &v1, const VectorFlt &v2)
VectorFlt  operator* (float s, const VectorFlt &vect)
VectorFlt  operator* (const VectorFlt &vect, float s)
float  dot (const VectorFlt &vect1, const VectorFlt &vect2)
Point2Flt  operator+ (const Point2Flt &pt, const Vector2Flt &vect)
Point2Flt  operator+ (const Vector2Flt &vect, const Point2Flt &pt)
Point2Flt  operator- (const Point2Flt &pt, const Vector2Flt &vect)
Vector2Flt  operator- (const Vector2Flt &vect)
Vector2Flt  operator- (const Point2Flt &pt1, const Point2Flt &pt2)
Vector2Flt  operator+ (const Vector2Flt &v1, const Vector2Flt &v2)
Vector2Flt  operator- (const Vector2Flt &v1, const Vector2Flt &v2)
Vector2Flt  operator* (float s, const Vector2Flt &vect)
Vector2Flt  operator* (const Vector2Flt &vect, float s)
AWLINEAR_DECL Vector  operator/ (const Vector &, double)
AWLINEAR_DECL Quaternion  operator/ (const Quaternion &, double)
AWLINEAR_DECL Normal  operator- (const Normal &)
AWLINEAR_DECL Line  operator+ (const Line &, const Vector &)
AWLINEAR_DECL Line  operator- (const Line &, const Vector &)
AWLINEAR_DECL ParamLine  operator+ (const ParamLine &, const Vector &)
AWLINEAR_DECL ParamLine  operator- (const ParamLine &, const Vector &)
AWLINEAR_DECL Plane  operator- (const Plane &)
AWLINEAR_DECL Plane  operator+ (const Plane &, const Vector &)
AWLINEAR_DECL Plane  operator- (const Plane &, const Vector &)
AWLINEAR_DECL ParamPlane  operator- (const ParamPlane &)
AWLINEAR_DECL ParamPlane  operator+ (const ParamPlane &, const Vector &)
AWLINEAR_DECL ParamPlane  operator- (const ParamPlane &, const Vector &)
AWLINEAR_DECL Vector  operator* (const Vector &, const AffineMatrix &)
AWLINEAR_DECL Vector2  operator* (const Vector2 &, const AffineMatrix2 &)
AWLINEAR_DECL Point  operator* (const Point &, const AffineMatrix &)
AWLINEAR_DECL Point2  operator* (const Point2 &, const AffineMatrix2 &)
AWLINEAR_DECL Line  operator* (const Line &, const AffineMatrix &)
AWLINEAR_DECL ParamLine  operator* (const ParamLine &, const AffineMatrix &)
AWLINEAR_DECL Plane  operator* (const Plane &, const AffineMatrix &)
AWLINEAR_DECL ParamPlane  operator* (const ParamPlane &, const AffineMatrix &)
AWLINEAR_DECL Range2d  operator* (const Range2d &, const AffineMatrix2 &)
AWLINEAR_DECL Range3d  operator* (const Range3d &, const AffineMatrix &)
AWLINEAR_DECL HPoint  operator* (const HPoint &, const ProjMatrix &)
AWLINEAR_DECL HPoint  operator* (const Point &, const ProjMatrix &)
AWLINEAR_DECL Vector  operator* (const Vector &, const ProjMatrix &)
AWLINEAR_DECL Tuple4  operator* (const Tuple4 &, const ProjMatrix &)
AWLINEAR_DECL AffineMatrix  operator* (const AffineMatrix &, const AffineMatrix &)
AWLINEAR_DECL AffineMatrix2  operator* (const AffineMatrix2 &, const AffineMatrix2 &)
AWLINEAR_DECL ProjMatrix  operator* (const ProjMatrix &, const ProjMatrix &)
AWLINEAR_DECL AffineMatrix  operator+ (const AffineMatrix &, const AffineMatrix &)
AWLINEAR_DECL AffineMatrix  operator- (const AffineMatrix &, const AffineMatrix &)
AWLINEAR_DECL AffineMatrix  operator* (double, const AffineMatrix &)
AWLINEAR_DECL AffineMatrix  operator* (const AffineMatrix &, double)
AWLINEAR_DECL VectorFlt  operator/ (const VectorFlt &, float)
AWLINEAR_DECL VectorFlt  operator* (const VectorFlt &, const AffineMatrixFlt &)
AWLINEAR_DECL PointFlt  operator* (const PointFlt &, const AffineMatrixFlt &)
AWLINEAR_DECL AffineMatrixFlt  operator* (const AffineMatrixFlt &, const AffineMatrixFlt &)
AWLINEAR_DECL ProjMatrixFlt  operator* (const ProjMatrixFlt &, const ProjMatrixFlt &)
AWLINEAR_DECL Vector2  operator/ (const Vector2 &, double)
AWLINEAR_DECL Vector2Flt  operator/ (const Vector2Flt &, float)
AWLINEAR_DECL Vector  combine (const Vector &, const Vector &)
AWLINEAR_DECL Vector2  combine (const Vector2 &, const Vector2 &)
AWLINEAR_DECL VectorFlt  combine (const VectorFlt &, const VectorFlt &)
AWLINEAR_DECL Vector2Flt  combine (const Vector2Flt &, const Vector2Flt &)
AWLINEAR_DECL Point  combine (const Point &, const Point &)
AWLINEAR_DECL Point2  combine (const Point2 &, const Point2 &)
AWLINEAR_DECL PointFlt  combine (const PointFlt &, const PointFlt &)
AWLINEAR_DECL Point2Flt  combine (const Point2Flt &, const Point2Flt &)
AWLINEAR_DECL HPoint  combine (const HPoint &, const HPoint &)
AWLINEAR_DECL Vector  combine (double, const Vector &, double, const Vector &)
AWLINEAR_DECL Vector  combine (double, const Normal &, double, const Normal &)
AWLINEAR_DECL Vector2  combine (double, const Vector2 &, double, const Vector2 &)
AWLINEAR_DECL VectorFlt  combine (float, const VectorFlt &, float, const VectorFlt &)
AWLINEAR_DECL Vector2Flt  combine (float, const Vector2Flt &, float, const Vector2Flt &)
AWLINEAR_DECL Point  combine (double, const Point &, double, const Point &)
AWLINEAR_DECL Point2  combine (double, const Point2 &, double, const Point2 &)
AWLINEAR_DECL PointFlt  combine (float, const PointFlt &, float, const PointFlt &)
AWLINEAR_DECL Point2Flt  combine (float, const Point2Flt &, float, const Point2Flt &)
AWLINEAR_DECL HPoint  combine (double, const HPoint &, double, const HPoint &)
AWLINEAR_DECL Vector  combine (int n, const double[], const Vector[])
AWLINEAR_DECL Vector2  combine (int n, const double[], const Vector2[])
AWLINEAR_DECL VectorFlt  combine (int n, const float[], const VectorFlt[])
AWLINEAR_DECL Vector2Flt  combine (int n, const float[], const Vector2Flt[])
AWLINEAR_DECL Point  combine (int n, const double[], const Point[])
AWLINEAR_DECL Point2  combine (int n, const double[], const Point2[])
AWLINEAR_DECL PointFlt  combine (int n, const float[], const PointFlt[])
AWLINEAR_DECL Point2Flt  combine (int n, const float[], const Point2Flt[])
AWLINEAR_DECL HPoint  combine (int n, const double[], const HPoint[])
AWLINEAR_DECL Vector  combine (int n, const Vector[])
AWLINEAR_DECL Vector2  combine (int n, const Vector2[])
AWLINEAR_DECL VectorFlt  combine (int n, const VectorFlt[])
AWLINEAR_DECL Vector2Flt  combine (int n, const Vector2Flt[])
AWLINEAR_DECL Point  combine (int n, const Point[])
AWLINEAR_DECL Point2  combine (int n, const Point2[])
AWLINEAR_DECL PointFlt  combine (int n, const PointFlt[])
AWLINEAR_DECL Point2Flt  combine (int n, const Point2Flt[])
AWLINEAR_DECL HPoint  combine (int n, const HPoint[])
AWLINEAR_DECL bool  circumcenter (const Point &, const Point &, const Point &, Point &, double collinearTol=epsilonTol)
AWLINEAR_DECL Vector  cross (const Vector &, const Vector &)
AWLINEAR_DECL VectorFlt  cross (const VectorFlt &, const VectorFlt &)
AWLINEAR_DECL Vector  cross (const Normal &, const Normal &)
AWLINEAR_DECL Vector  cross (const Normal &, const Vector &)
AWLINEAR_DECL Vector  cross (const Vector &, const Normal &)
AWLINEAR_DECL double  distance (const Point &, const Point &)
AWLINEAR_DECL double  distance (const Point2 &, const Point2 &)
AWLINEAR_DECL float  distance (const PointFlt &, const PointFlt &)
AWLINEAR_DECL float  distance (const Point2Flt &, const Point2Flt &)
AWLINEAR_DECL double  distance (const Tuple2 &, const Tuple2 &)
AWLINEAR_DECL double  distance (const Tuple3 &, const Tuple3 &)
AWLINEAR_DECL double  distance (const Point &, const Line &)
AWLINEAR_DECL double  distance (const Point &, const Plane &)
AWLINEAR_DECL double  distance (double, const Range1d &)
AWLINEAR_DECL double  distance (const Point2 &, const Range2d &)
AWLINEAR_DECL double  distance (const Point &, const Range3d &)
AWLINEAR_DECL double  distance (const Range1d &, const Range1d &)
AWLINEAR_DECL double  distance (const Range2d &, const Range2d &)
AWLINEAR_DECL double  distance (const Range3d &, const Range3d &)
AWLINEAR_DECL double  distance2 (const Point &, const Point &)
AWLINEAR_DECL double  distance2 (const Point2 &, const Point2 &)
AWLINEAR_DECL float  distance2 (const PointFlt &, const PointFlt &)
AWLINEAR_DECL float  distance2 (const Point2Flt &, const Point2Flt &)
AWLINEAR_DECL double  projectMagnitude (const Vector &, const Normal &)
AWLINEAR_DECL double  projectParam (const Vector &, const Vector &)
AWLINEAR_DECL double  projectParam (const Vector2 &, const Vector2 &)
AWLINEAR_DECL double  projectParam (const Vector &, const Normal &)
AWLINEAR_DECL double  projectParam (const Point &, const Line &)
AWLINEAR_DECL double  projectParam (const Point &, const ParamLine &)
AWLINEAR_DECL double  projectParam (const Point2 &, const ParamLine2 &)
AWLINEAR_DECL Point2  projectParam (const Point &, const ParamPlane &)
AWLINEAR_DECL Range1d  projectParam (const Range3d &, const Line &)
AWLINEAR_DECL Vector  project (const Vector &, const Normal &)
AWLINEAR_DECL Vector  project (const Vector &, const Plane &)
AWLINEAR_DECL Point  project (const Point &, const Line &)
AWLINEAR_DECL Point  project (const Point &, const Line &, double &)
AWLINEAR_DECL Point  project (const Point &, const ParamLine &, double &)
AWLINEAR_DECL Point2  project (const Point2 &, const ParamLine2 &, double &)
AWLINEAR_DECL Point  project (const Point &, const Plane &)
AWLINEAR_DECL Point  project (const Point &, const ParamPlane &, Point2 &)
AWLINEAR_DECL Line  project (const Line &, const Plane &, bool &valid)
AWLINEAR_DECL Vector  rotate (const Vector &, const Normal &, double rad)
AWLINEAR_DECL Normal  interpolate (const Normal &from, const Normal &into, double frac)
AWLINEAR_DECL Vector  interpolate (const Vector &from, const Vector &into, double frac)
AWLINEAR_DECL Point  interpolate (const Point &from, const Point &into, double frac)
AWLINEAR_DECL Point2  interpolate (const Point2 &from, const Point2 &into, double frac)
AWLINEAR_DECL Point2Flt  interpolate (const Point2Flt &from, const Point2Flt &into, float frac)
AWLINEAR_DECL Point  intersect (const Line &, const Line &, bool &unique, double tol=perpendicular2Tol)
AWLINEAR_DECL Point  intersect (const Line &, const Plane &, bool &valid, double tol=perpendicular2Tol)
AWLINEAR_DECL Line  intersect (const Plane &, const Plane &, bool &valid)
AWLINEAR_DECL Point  intersect (const Plane &, const Plane &, const Plane &, bool &valid)
AWLINEAR_DECL Range1d  intersect (const ParamLine &, const Range3d &)
AWLINEAR_DECL bool  intersect (const ParamLine2 &l0, const ParamLine2 &l1, double &p0, double &p1, bool &inRange)
AWLINEAR_DECL Range1d  intersect (const Range1d &, const Range1d &, double tol=epsilonTol)
AWLINEAR_DECL Range2d  intersect (const Range2d &, const Range2d &, double tol=epsilonTol)
AWLINEAR_DECL Range3d  intersect (const Range3d &, const Range3d &, double tol=epsilonTol)
AWLINEAR_DECL int  intersectCylinder (const ParamLine &line, const Line &cylinder, double radius, double params[2])
AWLINEAR_DECL
segmentRangeIntersection 
classifySegmentRangeIntersection (const awLinear::Range2d &quad, const awLinear::Point2 &pt0, const awLinear::Point2 &pt1)
AWLINEAR_DECL bool  doLineSegmentsIntersect (const awLinear::Point2 &start0, const awLinear::Point2 &end0, const awLinear::Point2 &start1, const awLinear::Point2 &end1, double &t0, awLinear::Point2 &ipt, bool &unique, double overlapTol=epsilonTol)
AWLINEAR_DECL bool  doesRayIntersectLineSegment (const awLinear::Point2 &rayOrigin, const awLinear::Vector2 &direction, const awLinear::Point2 &start, const awLinear::Point2 &end, double &t0, double &t1, bool &unique, double overlapTol=epsilonTol)
AWLINEAR_DECL bool  doesRayIntersectRange2d (const Point2 &pt, const Vector2 &direction, const Range2d &box, double t0, double t1)
AWLINEAR_DECL bool  triangleBoxOverlap (const Point2Flt &center, const Point2Flt &halfsize, const Point2Flt &p0, const Point2Flt &p1, const Point2Flt &p2)
AWLINEAR_DECL double  toRadians (double)
AWLINEAR_DECL double  toDegrees (double)
AWLINEAR_DECL double  angle (const Normal &, const Normal &)
AWLINEAR_DECL bool  angle (const Normal &, const Normal &, double &radians)
AWLINEAR_DECL double  signedAngle (const Vector2 &, const Vector2 &)
AWLINEAR_DECL double  unitCircleRotation (const Normal &vect, const Normal &X, const Normal &Y, bool positive=false)
AWLINEAR_DECL bool  isAbove (const Point &pt, const Plane &plane, double tol=epsilonTol)
AWLINEAR_DECL bool  isParallel (const Normal &, const Normal &, double tol=parallelTol)
AWLINEAR_DECL bool  isPerpendicular (const Normal &, const Normal &, double tol=perpendicularTol)
AWLINEAR_DECL bool  areCollinear (const Point &, const Point &, const Point &, double tol=epsilonTol)
AWLINEAR_DECL int  dominantDimension (const Vector &)
AWLINEAR_DECL Normal  dominantAxisSigned (const Vector &)
bool  equivalent (double a, double b, double eps=epsilonTol)
bool  equivalent (float a, float b, float eps=epsilonTolFlt)
AWLINEAR_DECL bool  equivalent (const Vector &, const Vector &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const Vector2 &, const Vector2 &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const VectorFlt &, const VectorFlt &, float eps=epsilonTolFlt)
AWLINEAR_DECL bool  equivalent (const Vector2Flt &, const Vector2Flt &, float eps=epsilonTolFlt)
AWLINEAR_DECL bool  equivalent (const Normal &, const Normal &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const Point &, const Point &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const Point2 &, const Point2 &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const PointFlt &, const PointFlt &, float eps=epsilonTolFlt)
AWLINEAR_DECL bool  equivalent (const Point2Flt &, const Point2Flt &, float eps=epsilonTolFlt)
AWLINEAR_DECL bool  equivalent (const RPoint &, const RPoint &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const HPoint &, const HPoint &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const Line &, const Line &)
AWLINEAR_DECL bool  equivalent (const Plane &, const Plane &)
AWLINEAR_DECL bool  equivalent (const ParamPlane &, const ParamPlane &)
AWLINEAR_DECL bool  equivalent (const Quaternion &, const Quaternion &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const AffineMatrix &, const AffineMatrix &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const AffineMatrix2 &, const AffineMatrix2 &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const AffineMatrixFlt &, const AffineMatrixFlt &, float eps=epsilonTolFlt)
AWLINEAR_DECL bool  equivalent (const ProjMatrix &, const ProjMatrix &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const ProjMatrixFlt &, const ProjMatrixFlt &, float eps=epsilonTolFlt)
AWLINEAR_DECL bool  equivalent (const Range1d &, const Range1d &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const Range2d &, const Range2d &, double eps=epsilonTol)
AWLINEAR_DECL bool  equivalent (const Range3d &, const Range3d &, double eps=epsilonTol)
double  max (double a, double b)
double  min (double a, double b)
AWLINEAR_DECL double  max (double, double, double)
AWLINEAR_DECL double  max (double, double, double, double)
AWLINEAR_DECL double  min (double, double, double)
AWLINEAR_DECL double  min (double, double, double, double)
template<class C >
max_obj (const C &a, const C &b)
template<class C >
min_obj (const C &a, const C &b)
double  clamp (double a, double min, double max)
float  clamp (float a, float min, float max)
double  wrap (double a, double min, double max)
AWLINEAR_DECL int  solveQuadratic (double a, double b, double c, double roots[2])
AWLINEAR_DECL Quaternion  slerp (const Quaternion &q1, const Quaternion &q2, double t)
template<class C >
void  swap_obj (C &a, C &b)
AWLINEAR_DECL bool  studioDecompose (const AffineMatrix &, Point &translate, Vector &scale, Vector &rotate, Vector &shear)
AWLINEAR_DECL bool  isNaN (const Point &)
AWLINEAR_DECL bool  isNaN (const Vector &)
AWLINEAR_DECL bool  isNaN (const AffineMatrix &)
AWLINEAR_DECL bool  isNaN (const AffineMatrixFlt &)
AWLINEAR_DECL bool  isNaN (const ProjMatrix &)
AWLINEAR_DECL bool  isNaN (const ProjMatrixFlt &)
AWLINEAR_DECL bool  isFinite (const Point &)
AWLINEAR_DECL bool  isFinite (const Vector &)
AWLINEAR_DECL bool  isFinite (const AffineMatrix &)
AWLINEAR_DECL bool  isFinite (const AffineMatrixFlt &)
AWLINEAR_DECL bool  isFinite (const ProjMatrix &)
AWLINEAR_DECL bool  isFinite (const ProjMatrixFlt &)
AWLINEAR_DECL double  brentsIteration (evalFunction &func, double x1, double x2, double tol, int &rc)
AWLINEAR_DECL bool  brentMinimize (evalFunction &f, double tol, minimumBracket &bracket, double &minParam, double &minF)
AWLINEAR_DECL bool  bracketMinimum (double tMin, double tMax, double tol, evalFunction &f, minimumBracket &bracket)

Variables

AWLINEAR_DECL double  epsilonTol
AWLINEAR_DECL float  epsilonTolFlt
AWLINEAR_DECL double  epsilon2Tol
AWLINEAR_DECL float  epsilon2TolFlt
AWLINEAR_DECL double  degreeTol
AWLINEAR_DECL double  perpendicularTol
AWLINEAR_DECL double  perpendicular2Tol
AWLINEAR_DECL double  parallelTol
AWLINEAR_DECL double  parallel2Tol

Typedef Documentation

typedef int TransformDescriptor

Enumeration Type Documentation


Function Documentation

Point2 awLinear::operator+ ( const Point2 &  pt,
const Vector2 &  vect 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);
    
    Point2 r (pt.p[0] + vect.v[0],
              pt.p[1] + vect.v[1]);
    
    return r;
}
Point2 awLinear::operator+ ( const Vector2 &  vect,
const Point2 &  pt 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);

    Point2 r (pt.p[0] + vect.v[0],
              pt.p[1] + vect.v[1]);

    return r;
}
Point2 awLinear::operator- ( const Point2 &  pt,
const Vector2 &  vect 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);

    Point2 r (pt.p[0] - vect.v[0],
              pt.p[1] - vect.v[1]);

    return r;
}
Vector2 awLinear::operator- ( const Vector2 &  vect ) [inline]
{
    awLinearAssertInited (vect);

    Vector2 r (-vect.v[0],
               -vect.v[1]);

    return r;
}
Vector2 awLinear::operator- ( const Point2 &  pt1,
const Point2 &  pt2 
) [inline]
{
    awLinearAssertInited (pt1);
    awLinearAssertInited (pt2);

    Vector2 r (pt1.p[0] - pt2.p[0],
               pt1.p[1] - pt2.p[1]);

    return r;
}
Vector2 awLinear::operator+ ( const Vector2 &  v1,
const Vector2 &  v2 
) [inline]
{
    awLinearAssertInited (v1);
    awLinearAssertInited (v2);

    Vector2 r (v1.v[0] + v2.v[0],
               v1.v[1] + v2.v[1]);
    
    return r;
}
Vector2 awLinear::operator- ( const Vector2 &  v1,
const Vector2 &  v2 
) [inline]
{
    awLinearAssertInited (v1);
    awLinearAssertInited (v2);

    Vector2 r (v1.v[0] - v2.v[0],
               v1.v[1] - v2.v[1]);

    return r;
}
Vector2 awLinear::operator* ( double  s,
const Vector2 &  vect 
) [inline]
{
    awLinearAssertInited (vect);

    Vector2 r (s * vect.v[0],
               s * vect.v[1]);

    return r;
}
Vector2 awLinear::operator* ( const Vector2 &  vect,
double  s 
) [inline]
{
    awLinearAssertInited (vect);

    Vector2 r (s * vect.v[0],
               s * vect.v[1]);

    return r;
}
Point awLinear::operator+ ( const Point &  pt,
const Vector &  vect 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);
    
    Point r (pt.p[0] + vect.v[0],
             pt.p[1] + vect.v[1],
             pt.p[2] + vect.v[2]);

    return r;
}
Point awLinear::operator+ ( const Vector &  vect,
const Point &  pt 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);

    Point r (pt.p[0] + vect.v[0],
             pt.p[1] + vect.v[1],
             pt.p[2] + vect.v[2]);

    return r;
}
Point awLinear::operator- ( const Point &  pt,
const Vector &  vect 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);

    Point r (pt.p[0] - vect.v[0],
             pt.p[1] - vect.v[1],
             pt.p[2] - vect.v[2]);

    return r;
}
Vector awLinear::operator- ( const Vector &  vect ) [inline]
{
    awLinearAssertInited (vect);

    Vector r (-vect.v[0],
              -vect.v[1],
              -vect.v[2]);

    return r;
}
Vector awLinear::operator- ( const Point &  pt1,
const Point &  pt2 
) [inline]
{
    awLinearAssertInited (pt1);
    awLinearAssertInited (pt2);

    Vector r (pt1.p[0] - pt2.p[0],
              pt1.p[1] - pt2.p[1],
              pt1.p[2] - pt2.p[2]);

    return r;
}
Vector awLinear::operator+ ( const Vector &  v1,
const Vector &  v2 
) [inline]
{
    awLinearAssertInited (v1);
    awLinearAssertInited (v2);

    Vector r (v1.v[0] + v2.v[0],
              v1.v[1] + v2.v[1],
              v1.v[2] + v2.v[2]);

    return r;
}
Vector awLinear::operator- ( const Vector &  v1,
const Vector &  v2 
) [inline]
{
    awLinearAssertInited (v1);
    awLinearAssertInited (v2);

    Vector r (v1.v[0] - v2.v[0],
              v1.v[1] - v2.v[1],
              v1.v[2] - v2.v[2]);

    return r;
}
Vector awLinear::operator* ( double  s,
const Vector &  vect 
) [inline]
{
    awLinearAssertInited (vect);

    Vector r (s * vect.v[0],
              s * vect.v[1],
              s * vect.v[2]);

    return r;
}
Vector awLinear::operator* ( const Vector &  vect,
double  s 
) [inline]
{
    awLinearAssertInited (vect);

    Vector r (s * vect.v[0],
              s * vect.v[1],
              s * vect.v[2]);

    return r;
}
Vector awLinear::operator* ( double  s,
const Normal &  norm 
) [inline]
{
    awLinearAssertInited (norm);

    Vector r (s * norm[0],
              s * norm[1],
              s * norm[2]);

    return r;
}
Vector awLinear::operator* ( const Normal &  norm,
double  s 
) [inline]
{
    awLinearAssertInited (norm);

    Vector r (s * norm[0],
              s * norm[1],
              s * norm[2]);

    return r;
}
double awLinear::dot ( const Vector &  vect1,
const Vector &  vect2 
) [inline]
{
    awLinearAssertInited (vect1);
    awLinearAssertInited (vect2);
        
    const double *v1 = vect1;
    const double *v2 = vect2;
    
    return (v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]);
}
double awLinear::dot ( const Normal &  vect1,
const Normal &  vect2 
) [inline]
{
    awLinearAssertInited (vect1);
    awLinearAssertInited (vect2);

    const double *v1 = vect1;
    const double *v2 = vect2;
    
    return (v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]);
}
double awLinear::dot ( const Normal &  vect1,
const Vector &  vect2 
) [inline]
{
    awLinearAssertInited (vect1);
    awLinearAssertInited (vect2);

    const double *v1 = vect1;
    const double *v2 = vect2;
    
    return (v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]);
}
double awLinear::dot ( const Vector &  vect1,
const Normal &  vect2 
) [inline]
{
    awLinearAssertInited (vect1);
    awLinearAssertInited (vect2);

    const double *v1 = vect1;
    const double *v2 = vect2;
    
    return (v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]);
}
PointFlt awLinear::operator+ ( const PointFlt &  pt,
const VectorFlt &  vect 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);
    
    PointFlt r (pt.p[0] + vect.v[0],
                pt.p[1] + vect.v[1],
                pt.p[2] + vect.v[2]);

    return r;
}
PointFlt awLinear::operator+ ( const VectorFlt &  vect,
const PointFlt &  pt 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);

    PointFlt r (pt.p[0] + vect.v[0],
                pt.p[1] + vect.v[1],
                pt.p[2] + vect.v[2]);

    return r;
}
PointFlt awLinear::operator- ( const PointFlt &  pt,
const VectorFlt &  vect 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);

    PointFlt r (pt.p[0] - vect.v[0],
                pt.p[1] - vect.v[1],
                pt.p[2] - vect.v[2]);

    return r;
}
VectorFlt awLinear::operator- ( const VectorFlt &  vect ) [inline]
{
    awLinearAssertInited (vect);

    VectorFlt r (-vect.v[0],
                 -vect.v[1],
                 -vect.v[2]);

    return r;
}
VectorFlt awLinear::operator- ( const PointFlt &  pt1,
const PointFlt &  pt2 
) [inline]
{
    awLinearAssertInited (pt1);
    awLinearAssertInited (pt2);

    VectorFlt r (pt1.p[0] - pt2.p[0],
                 pt1.p[1] - pt2.p[1],
                 pt1.p[2] - pt2.p[2]);

    return r;
}
VectorFlt awLinear::operator+ ( const VectorFlt &  v1,
const VectorFlt &  v2 
) [inline]
{
    awLinearAssertInited (v1);
    awLinearAssertInited (v2);

    VectorFlt r (v1.v[0] + v2.v[0],
                 v1.v[1] + v2.v[1],
                 v1.v[2] + v2.v[2]);

    return r;
}
VectorFlt awLinear::operator- ( const VectorFlt &  v1,
const VectorFlt &  v2 
) [inline]
{
    awLinearAssertInited (v1);
    awLinearAssertInited (v2);

    VectorFlt r (v1.v[0] - v2.v[0],
                 v1.v[1] - v2.v[1],
                 v1.v[2] - v2.v[2]);

    return r;
}
VectorFlt awLinear::operator* ( float  s,
const VectorFlt &  vect 
) [inline]
{
    awLinearAssertInited (vect);

    VectorFlt r (s * vect.v[0],
                 s * vect.v[1],
                 s * vect.v[2]);

    return r;
}
VectorFlt awLinear::operator* ( const VectorFlt &  vect,
float  s 
) [inline]
{
    awLinearAssertInited (vect);

    VectorFlt r (s * vect.v[0],
                 s * vect.v[1],
                 s * vect.v[2]);

    return r;
}
float awLinear::dot ( const VectorFlt &  vect1,
const VectorFlt &  vect2 
) [inline]
{
    awLinearAssertInited (vect1);
    awLinearAssertInited (vect2);
        
    const float *v1 = vect1;
    const float *v2 = vect2;
    
    return (v1[0]*v2[0] + v1[1]*v2[1] + v1[2]*v2[2]);
}
Point2Flt awLinear::operator+ ( const Point2Flt &  pt,
const Vector2Flt &  vect 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);
    
    Point2Flt r (pt.p[0] + vect.v[0],
                 pt.p[1] + vect.v[1]);

    return r;
}
Point2Flt awLinear::operator+ ( const Vector2Flt &  vect,
const Point2Flt &  pt 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);

    Point2Flt r (pt.p[0] + vect.v[0],
                 pt.p[1] + vect.v[1]);

    return r;
}
Point2Flt awLinear::operator- ( const Point2Flt &  pt,
const Vector2Flt &  vect 
) [inline]
{
    awLinearAssertInited (pt);
    awLinearAssertInited (vect);

    Point2Flt r (pt.p[0] - vect.v[0],
                 pt.p[1] - vect.v[1]);

    return r;
}
Vector2Flt awLinear::operator- ( const Vector2Flt &  vect ) [inline]
{
    awLinearAssertInited (vect);

    Vector2Flt r (-vect.v[0],
                  -vect.v[1]);

    return r;
}
Vector2Flt awLinear::operator- ( const Point2Flt &  pt1,
const Point2Flt &  pt2 
) [inline]
{
    awLinearAssertInited (pt1);
    awLinearAssertInited (pt2);

    Vector2Flt r (pt1.p[0] - pt2.p[0],
                  pt1.p[1] - pt2.p[1]);

    return r;
}
Vector2Flt awLinear::operator+ ( const Vector2Flt &  v1,
const Vector2Flt &  v2 
) [inline]
{
    awLinearAssertInited (v1);
    awLinearAssertInited (v2);

    Vector2Flt r (v1.v[0] + v2.v[0],
                  v1.v[1] + v2.v[1]);

    return r;
}
Vector2Flt awLinear::operator- ( const Vector2Flt &  v1,
const Vector2Flt &  v2 
) [inline]
{
    awLinearAssertInited (v1);
    awLinearAssertInited (v2);

    Vector2Flt r (v1.v[0] - v2.v[0],
                  v1.v[1] - v2.v[1]);

    return r;
}
Vector2Flt awLinear::operator* ( float  s,
const Vector2Flt &  vect 
) [inline]
{
    awLinearAssertInited (vect);

    Vector2Flt r (s * vect.v[0],
                  s * vect.v[1]);

    return r;
}
Vector2Flt awLinear::operator* ( const Vector2Flt &  vect,
float  s 
) [inline]
{
    awLinearAssertInited (vect);

    Vector2Flt r (s * vect.v[0],
                  s * vect.v[1]);

    return r;
}
AWLINEAR_DECL Vector awLinear::operator/ ( const Vector &  ,
double   
)
AWLINEAR_DECL Quaternion awLinear::operator/ ( const Quaternion &  ,
double   
)
AWLINEAR_DECL Normal awLinear::operator- ( const Normal &  )
AWLINEAR_DECL Line awLinear::operator+ ( const Line &  ,
const Vector &   
)
AWLINEAR_DECL Line awLinear::operator- ( const Line &  ,
const Vector &   
)
AWLINEAR_DECL ParamLine awLinear::operator+ ( const ParamLine &  ,
const Vector &   
)
AWLINEAR_DECL ParamLine awLinear::operator- ( const ParamLine &  ,
const Vector &   
)
AWLINEAR_DECL Plane awLinear::operator- ( const Plane &  )
AWLINEAR_DECL Plane awLinear::operator+ ( const Plane &  ,
const Vector &   
)
AWLINEAR_DECL Plane awLinear::operator- ( const Plane &  ,
const Vector &   
)
AWLINEAR_DECL ParamPlane awLinear::operator- ( const ParamPlane &  )
AWLINEAR_DECL ParamPlane awLinear::operator+ ( const ParamPlane &  ,
const Vector &   
)
AWLINEAR_DECL ParamPlane awLinear::operator- ( const ParamPlane &  ,
const Vector &   
)
AWLINEAR_DECL Vector awLinear::operator* ( const Vector &  ,
const AffineMatrix &   
)
AWLINEAR_DECL Vector2 awLinear::operator* ( const Vector2 &  ,
const AffineMatrix2 &   
)
AWLINEAR_DECL Point awLinear::operator* ( const Point &  ,
const AffineMatrix &   
)
AWLINEAR_DECL Point2 awLinear::operator* ( const Point2 &  ,
const AffineMatrix2 &   
)
AWLINEAR_DECL Line awLinear::operator* ( const Line &  ,
const AffineMatrix &   
)
AWLINEAR_DECL ParamLine awLinear::operator* ( const ParamLine &  ,
const AffineMatrix &   
)
AWLINEAR_DECL Plane awLinear::operator* ( const Plane &  ,
const AffineMatrix &   
)
AWLINEAR_DECL ParamPlane awLinear::operator* ( const ParamPlane &  ,
const AffineMatrix &   
)
AWLINEAR_DECL Range2d awLinear::operator* ( const Range2d &  ,
const AffineMatrix2 &   
)
AWLINEAR_DECL Range3d awLinear::operator* ( const Range3d &  ,
const AffineMatrix &   
)
AWLINEAR_DECL HPoint awLinear::operator* ( const HPoint &  ,
const ProjMatrix &   
)
AWLINEAR_DECL HPoint awLinear::operator* ( const Point &  ,
const ProjMatrix &   
)
AWLINEAR_DECL Vector awLinear::operator* ( const Vector &  ,
const ProjMatrix &   
)
AWLINEAR_DECL Tuple4 awLinear::operator* ( const Tuple4 &  ,
const ProjMatrix &   
)
AWLINEAR_DECL AffineMatrix awLinear::operator* ( const AffineMatrix &  ,
const AffineMatrix &   
)
AWLINEAR_DECL AffineMatrix2 awLinear::operator* ( const AffineMatrix2 &  ,
const AffineMatrix2 &   
)
AWLINEAR_DECL ProjMatrix awLinear::operator* ( const ProjMatrix &  ,
const ProjMatrix &   
)
AWLINEAR_DECL AffineMatrix awLinear::operator+ ( const AffineMatrix &  ,
const AffineMatrix &   
)
AWLINEAR_DECL AffineMatrix awLinear::operator- ( const AffineMatrix &  ,
const AffineMatrix &   
)
AWLINEAR_DECL AffineMatrix awLinear::operator* ( double  ,
const AffineMatrix &   
)
AWLINEAR_DECL AffineMatrix awLinear::operator* ( const AffineMatrix &  ,
double   
)
AWLINEAR_DECL VectorFlt awLinear::operator/ ( const VectorFlt &  ,
float   
)
AWLINEAR_DECL VectorFlt awLinear::operator* ( const VectorFlt &  ,
const AffineMatrixFlt &   
)
AWLINEAR_DECL PointFlt awLinear::operator* ( const PointFlt &  ,
const AffineMatrixFlt &   
)
AWLINEAR_DECL AffineMatrixFlt awLinear::operator* ( const AffineMatrixFlt &  ,
const AffineMatrixFlt &   
)
AWLINEAR_DECL ProjMatrixFlt awLinear::operator* ( const ProjMatrixFlt &  ,
const ProjMatrixFlt &   
)
AWLINEAR_DECL Vector2 awLinear::operator/ ( const Vector2 &  ,
double   
)
AWLINEAR_DECL Vector2Flt awLinear::operator/ ( const Vector2Flt &  ,
float   
)
AWLINEAR_DECL Vector awLinear::combine ( const Vector &  ,
const Vector &   
)
AWLINEAR_DECL Vector2 awLinear::combine ( const Vector2 &  ,
const Vector2 &   
)
AWLINEAR_DECL VectorFlt awLinear::combine ( const VectorFlt &  ,
const VectorFlt &   
)
AWLINEAR_DECL Vector2Flt awLinear::combine ( const Vector2Flt &  ,
const Vector2Flt &   
)
AWLINEAR_DECL Point awLinear::combine ( const Point &  ,
const Point &   
)
AWLINEAR_DECL Point2 awLinear::combine ( const Point2 &  ,
const Point2 &   
)
AWLINEAR_DECL PointFlt awLinear::combine ( const PointFlt &  ,
const PointFlt &   
)
AWLINEAR_DECL Point2Flt awLinear::combine ( const Point2Flt &  ,
const Point2Flt &   
)
AWLINEAR_DECL HPoint awLinear::combine ( const HPoint &  ,
const HPoint &   
)
AWLINEAR_DECL Vector awLinear::combine ( double  ,
const Vector &  ,
double  ,
const Vector &   
)
AWLINEAR_DECL Vector awLinear::combine ( double  ,
const Normal &  ,
double  ,
const Normal &   
)
AWLINEAR_DECL Vector2 awLinear::combine ( double  ,
const Vector2 &  ,
double  ,
const Vector2 &   
)
AWLINEAR_DECL VectorFlt awLinear::combine ( float  ,
const VectorFlt &  ,
float  ,
const VectorFlt &   
)
AWLINEAR_DECL Vector2Flt awLinear::combine ( float  ,
const Vector2Flt &  ,
float  ,
const Vector2Flt &   
)
AWLINEAR_DECL Point awLinear::combine ( double  ,
const Point &  ,
double  ,
const Point &   
)
AWLINEAR_DECL Point2 awLinear::combine ( double  ,
const Point2 &  ,
double  ,
const Point2 &   
)
AWLINEAR_DECL PointFlt awLinear::combine ( float  ,
const PointFlt &  ,
float  ,
const PointFlt &   
)
AWLINEAR_DECL Point2Flt awLinear::combine ( float  ,
const Point2Flt &  ,
float  ,
const Point2Flt &   
)
AWLINEAR_DECL HPoint awLinear::combine ( double  ,
const HPoint &  ,
double  ,
const HPoint &   
)
AWLINEAR_DECL Vector awLinear::combine ( int  n,
const double  [],
const Vector  [] 
)
AWLINEAR_DECL Vector2 awLinear::combine ( int  n,
const double  [],
const Vector2  [] 
)
AWLINEAR_DECL VectorFlt awLinear::combine ( int  n,
const float  [],
const VectorFlt  [] 
)
AWLINEAR_DECL Vector2Flt awLinear::combine ( int  n,
const float  [],
const Vector2Flt  [] 
)
AWLINEAR_DECL Point awLinear::combine ( int  n,
const double  [],
const Point  [] 
)
AWLINEAR_DECL Point2 awLinear::combine ( int  n,
const double  [],
const Point2  [] 
)
AWLINEAR_DECL PointFlt awLinear::combine ( int  n,
const float  [],
const PointFlt  [] 
)
AWLINEAR_DECL Point2Flt awLinear::combine ( int  n,
const float  [],
const Point2Flt  [] 
)
AWLINEAR_DECL HPoint awLinear::combine ( int  n,
const double  [],
const HPoint  [] 
)
AWLINEAR_DECL Vector awLinear::combine ( int  n,
const Vector  [] 
)
AWLINEAR_DECL Vector2 awLinear::combine ( int  n,
const Vector2  [] 
)
AWLINEAR_DECL VectorFlt awLinear::combine ( int  n,
const VectorFlt  [] 
)
AWLINEAR_DECL Vector2Flt awLinear::combine ( int  n,
const Vector2Flt  [] 
)
AWLINEAR_DECL Point awLinear::combine ( int  n,
const Point  [] 
)
AWLINEAR_DECL Point2 awLinear::combine ( int  n,
const Point2  [] 
)
AWLINEAR_DECL PointFlt awLinear::combine ( int  n,
const PointFlt  [] 
)
AWLINEAR_DECL Point2Flt awLinear::combine ( int  n,
const Point2Flt  [] 
)
AWLINEAR_DECL HPoint awLinear::combine ( int  n,
const HPoint  [] 
)
AWLINEAR_DECL bool awLinear::circumcenter ( const Point &  ,
const Point &  ,
const Point &  ,
Point &  ,
double  collinearTol = epsilonTol 
)
AWLINEAR_DECL Vector awLinear::cross ( const Vector &  ,
const Vector &   
)
AWLINEAR_DECL VectorFlt awLinear::cross ( const VectorFlt &  ,
const VectorFlt &   
)
AWLINEAR_DECL Vector awLinear::cross ( const Normal &  ,
const Normal &   
)
AWLINEAR_DECL Vector awLinear::cross ( const Normal &  ,
const Vector &   
)
AWLINEAR_DECL Vector awLinear::cross ( const Vector &  ,
const Normal &   
)
AWLINEAR_DECL double awLinear::distance ( const Point &  ,
const Point &   
)
AWLINEAR_DECL double awLinear::distance ( const Point2 &  ,
const Point2 &   
)
AWLINEAR_DECL float awLinear::distance ( const PointFlt &  ,
const PointFlt &   
)
AWLINEAR_DECL float awLinear::distance ( const Point2Flt &  ,
const Point2Flt &   
)
AWLINEAR_DECL double awLinear::distance ( const Tuple2 &  ,
const Tuple2 &   
)
AWLINEAR_DECL double awLinear::distance ( const Tuple3 &  ,
const Tuple3 &   
)
AWLINEAR_DECL double awLinear::distance ( const Point &  ,
const Line &   
)
AWLINEAR_DECL double awLinear::distance ( const Point &  ,
const Plane &   
)
AWLINEAR_DECL double awLinear::distance ( double  ,
const Range1d &   
)
AWLINEAR_DECL double awLinear::distance ( const Point2 &  ,
const Range2d &   
)
AWLINEAR_DECL double awLinear::distance ( const Point &  ,
const Range3d &   
)
AWLINEAR_DECL double awLinear::distance ( const Range1d &  ,
const Range1d &   
)
AWLINEAR_DECL double awLinear::distance ( const Range2d &  ,
const Range2d &   
)
AWLINEAR_DECL double awLinear::distance ( const Range3d &  ,
const Range3d &   
)
AWLINEAR_DECL double awLinear::distance2 ( const Point &  ,
const Point &   
)
AWLINEAR_DECL double awLinear::distance2 ( const Point2 &  ,
const Point2 &   
)
AWLINEAR_DECL float awLinear::distance2 ( const PointFlt &  ,
const PointFlt &   
)
AWLINEAR_DECL float awLinear::distance2 ( const Point2Flt &  ,
const Point2Flt &   
)
AWLINEAR_DECL double awLinear::projectMagnitude ( const Vector &  ,
const Normal &   
)
AWLINEAR_DECL double awLinear::projectParam ( const Vector &  ,
const Vector &   
)
AWLINEAR_DECL double awLinear::projectParam ( const Vector2 &  ,
const Vector2 &   
)
AWLINEAR_DECL double awLinear::projectParam ( const Vector &  ,
const Normal &   
)
AWLINEAR_DECL double awLinear::projectParam ( const Point &  ,
const Line &   
)
AWLINEAR_DECL double awLinear::projectParam ( const Point &  ,
const ParamLine &   
)
AWLINEAR_DECL double awLinear::projectParam ( const Point2 &  ,
const ParamLine2 &   
)
AWLINEAR_DECL Point2 awLinear::projectParam ( const Point &  ,
const ParamPlane &   
)
AWLINEAR_DECL Range1d awLinear::projectParam ( const Range3d &  ,
const Line &   
)
AWLINEAR_DECL Vector awLinear::project ( const Vector &  ,
const Normal &   
)
AWLINEAR_DECL Vector awLinear::project ( const Vector &  ,
const Plane &   
)
AWLINEAR_DECL Point awLinear::project ( const Point &  ,
const Line &   
)
AWLINEAR_DECL Point awLinear::project ( const Point &  ,
const Line &  ,
double &   
)
AWLINEAR_DECL Point awLinear::project ( const Point &  ,
const ParamLine &  ,
double &   
)
AWLINEAR_DECL Point2 awLinear::project ( const Point2 &  ,
const ParamLine2 &  ,
double &   
)
AWLINEAR_DECL Point awLinear::project ( const Point &  ,
const Plane &   
)
AWLINEAR_DECL Point awLinear::project ( const Point &  ,
const ParamPlane &  ,
Point2 &   
)
AWLINEAR_DECL Line awLinear::project ( const Line &  ,
const Plane &  ,
bool &  valid 
)
AWLINEAR_DECL Vector awLinear::rotate ( const Vector &  ,
const Normal &  ,
double  rad 
)
AWLINEAR_DECL Normal awLinear::interpolate ( const Normal &  from,
const Normal &  into,
double  frac 
)
AWLINEAR_DECL Vector awLinear::interpolate ( const Vector &  from,
const Vector &  into,
double  frac 
)
AWLINEAR_DECL Point awLinear::interpolate ( const Point &  from,
const Point &  into,
double  frac 
)
AWLINEAR_DECL Point2 awLinear::interpolate ( const Point2 &  from,
const Point2 &  into,
double  frac 
)
AWLINEAR_DECL Point2Flt awLinear::interpolate ( const Point2Flt &  from,
const Point2Flt &  into,
float  frac 
)
AWLINEAR_DECL Point awLinear::intersect ( const Line &  ,
const Line &  ,
bool &  unique,
double  tol = perpendicular2Tol 
)
AWLINEAR_DECL Point awLinear::intersect ( const Line &  ,
const Plane &  ,
bool &  valid,
double  tol = perpendicular2Tol 
)
AWLINEAR_DECL Line awLinear::intersect ( const Plane &  ,
const Plane &  ,
bool &  valid 
)
AWLINEAR_DECL Point awLinear::intersect ( const Plane &  ,
const Plane &  ,
const Plane &  ,
bool &  valid 
)
AWLINEAR_DECL Range1d awLinear::intersect ( const ParamLine &  ,
const Range3d &   
)
AWLINEAR_DECL bool awLinear::intersect ( const ParamLine2 &  l0,
const ParamLine2 &  l1,
double &  p0,
double &  p1,
bool &  inRange 
)
AWLINEAR_DECL Range1d awLinear::intersect ( const Range1d &  ,
const Range1d &  ,
double  tol = epsilonTol 
)
AWLINEAR_DECL Range2d awLinear::intersect ( const Range2d &  ,
const Range2d &  ,
double  tol = epsilonTol 
)
AWLINEAR_DECL Range3d awLinear::intersect ( const Range3d &  ,
const Range3d &  ,
double  tol = epsilonTol 
)
AWLINEAR_DECL int awLinear::intersectCylinder ( const ParamLine &  line,
const Line &  cylinder,
double  radius,
double  params[2] 
)
AWLINEAR_DECL segmentRangeIntersection awLinear::classifySegmentRangeIntersection ( const awLinear::Range2d &  quad,
const awLinear::Point2 &  pt0,
const awLinear::Point2 &  pt1 
)
AWLINEAR_DECL bool awLinear::doLineSegmentsIntersect ( const awLinear::Point2 &  start0,
const awLinear::Point2 &  end0,
const awLinear::Point2 &  start1,
const awLinear::Point2 &  end1,
double &  t0,
awLinear::Point2 &  ipt,
bool &  unique,
double  overlapTol = epsilonTol 
)
AWLINEAR_DECL bool awLinear::doesRayIntersectLineSegment ( const awLinear::Point2 &  rayOrigin,
const awLinear::Vector2 &  direction,
const awLinear::Point2 &  start,
const awLinear::Point2 &  end,
double &  t0,
double &  t1,
bool &  unique,
double  overlapTol = epsilonTol 
)
AWLINEAR_DECL bool awLinear::doesRayIntersectRange2d ( const Point2 &  pt,
const Vector2 &  direction,
const Range2d &  box,
double  t0,
double  t1 
)
AWLINEAR_DECL bool awLinear::triangleBoxOverlap ( const Point2Flt &  center,
const Point2Flt &  halfsize,
const Point2Flt &  p0,
const Point2Flt &  p1,
const Point2Flt &  p2 
)
AWLINEAR_DECL double awLinear::toRadians ( double  )
AWLINEAR_DECL double awLinear::toDegrees ( double  )
AWLINEAR_DECL double awLinear::angle ( const Normal &  ,
const Normal &   
)
AWLINEAR_DECL bool awLinear::angle ( const Normal &  ,
const Normal &  ,
double &  radians 
)
AWLINEAR_DECL double awLinear::signedAngle ( const Vector2 &  ,
const Vector2 &   
)
AWLINEAR_DECL double awLinear::unitCircleRotation ( const Normal &  vect,
const Normal &  X,
const Normal &  Y,
bool  positive = false 
)
AWLINEAR_DECL bool awLinear::isAbove ( const Point &  pt,
const Plane &  plane,
double  tol = epsilonTol 
)
AWLINEAR_DECL bool awLinear::isParallel ( const Normal &  ,
const Normal &  ,
double  tol = parallelTol 
)
AWLINEAR_DECL bool awLinear::isPerpendicular ( const Normal &  ,
const Normal &  ,
double  tol = perpendicularTol 
)
AWLINEAR_DECL bool awLinear::areCollinear ( const Point &  ,
const Point &  ,
const Point &  ,
double  tol = epsilonTol 
)
AWLINEAR_DECL int awLinear::dominantDimension ( const Vector &  )
AWLINEAR_DECL Normal awLinear::dominantAxisSigned ( const Vector &  )
bool awLinear::equivalent ( double  a,
double  b,
double  eps = epsilonTol 
) [inline]
{
    if (fabs (a - b) < eps)
        return true;

    return false;
}
bool awLinear::equivalent ( float  a,
float  b,
float  eps = epsilonTolFlt 
) [inline]
{
    if ((float)fabs ((double)(a - b)) < eps)
        return true;

    return false;
}
AWLINEAR_DECL bool awLinear::equivalent ( const Vector &  ,
const Vector &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const Vector2 &  ,
const Vector2 &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const VectorFlt &  ,
const VectorFlt &  ,
float  eps = epsilonTolFlt 
)
AWLINEAR_DECL bool awLinear::equivalent ( const Vector2Flt &  ,
const Vector2Flt &  ,
float  eps = epsilonTolFlt 
)
AWLINEAR_DECL bool awLinear::equivalent ( const Normal &  ,
const Normal &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const Point &  ,
const Point &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const Point2 &  ,
const Point2 &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const PointFlt &  ,
const PointFlt &  ,
float  eps = epsilonTolFlt 
)
AWLINEAR_DECL bool awLinear::equivalent ( const Point2Flt &  ,
const Point2Flt &  ,
float  eps = epsilonTolFlt 
)
AWLINEAR_DECL bool awLinear::equivalent ( const RPoint &  ,
const RPoint &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const HPoint &  ,
const HPoint &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const Line &  ,
const Line &   
)
AWLINEAR_DECL bool awLinear::equivalent ( const Plane &  ,
const Plane &   
)
AWLINEAR_DECL bool awLinear::equivalent ( const ParamPlane &  ,
const ParamPlane &   
)
AWLINEAR_DECL bool awLinear::equivalent ( const Quaternion &  ,
const Quaternion &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const AffineMatrix &  ,
const AffineMatrix &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const AffineMatrix2 &  ,
const AffineMatrix2 &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const AffineMatrixFlt &  ,
const AffineMatrixFlt &  ,
float  eps = epsilonTolFlt 
)
AWLINEAR_DECL bool awLinear::equivalent ( const ProjMatrix &  ,
const ProjMatrix &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const ProjMatrixFlt &  ,
const ProjMatrixFlt &  ,
float  eps = epsilonTolFlt 
)
AWLINEAR_DECL bool awLinear::equivalent ( const Range1d &  ,
const Range1d &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const Range2d &  ,
const Range2d &  ,
double  eps = epsilonTol 
)
AWLINEAR_DECL bool awLinear::equivalent ( const Range3d &  ,
const Range3d &  ,
double  eps = epsilonTol 
)
double awLinear::max ( double  a,
double  b 
) [inline]
{
    if (a < b)
        return b;
    
    return a;
}
double awLinear::min ( double  a,
double  b 
) [inline]
{
    if (a < b)
        return a;
    
    return b;
}
AWLINEAR_DECL double awLinear::max ( double  ,
double  ,
double   
)
AWLINEAR_DECL double awLinear::max ( double  ,
double  ,
double  ,
double   
)
AWLINEAR_DECL double awLinear::min ( double  ,
double  ,
double   
)
AWLINEAR_DECL double awLinear::min ( double  ,
double  ,
double  ,
double   
)
C awLinear::max_obj ( const C &  a,
const C &  b 
) [inline]
{
    if (a < b)
        return b;

    return a;
}
C awLinear::min_obj ( const C &  a,
const C &  b 
) [inline]
{
    if (a < b)
        return a;

    return b;
}
double awLinear::clamp ( double  a,
double  min,
double  max 
) [inline]
{
    if (a < min)
        return min;
    
    if (a > max)
        return max;

    return a;
}
float awLinear::clamp ( float  a,
float  min,
float  max 
) [inline]
{
    if (a < min)
        return min;
    
    if (a > max)
        return max;

    return a;
}
double awLinear::wrap ( double  a,
double  min,
double  max 
) [inline]
{
    a -= min;

    double interval = max - min;
    double d = a / interval;
    
    d -= (int) d;
    d *= interval;

    if( d > 0.0 )
        return min + d;
    else
        return max + d;
}
AWLINEAR_DECL int awLinear::solveQuadratic ( double  a,
double  b,
double  c,
double  roots[2] 
)
AWLINEAR_DECL Quaternion awLinear::slerp ( const Quaternion &  q1,
const Quaternion &  q2,
double  t 
)
void awLinear::swap_obj ( C &  a,
C &  b 
) [inline]
{
  C tmp = a;
  a = b;
  b = tmp;
}
AWLINEAR_DECL bool awLinear::studioDecompose ( const AffineMatrix &  ,
Point &  translate,
Vector &  scale,
Vector &  rotate,
Vector &  shear 
)
AWLINEAR_DECL bool awLinear::isNaN ( const Point &  )
AWLINEAR_DECL bool awLinear::isNaN ( const Vector &  )
AWLINEAR_DECL bool awLinear::isNaN ( const AffineMatrix &  )
AWLINEAR_DECL bool awLinear::isNaN ( const AffineMatrixFlt &  )
AWLINEAR_DECL bool awLinear::isNaN ( const ProjMatrix &  )
AWLINEAR_DECL bool awLinear::isNaN ( const ProjMatrixFlt &  )
AWLINEAR_DECL bool awLinear::isFinite ( const Point &  )
AWLINEAR_DECL bool awLinear::isFinite ( const Vector &  )
AWLINEAR_DECL bool awLinear::isFinite ( const AffineMatrix &  )
AWLINEAR_DECL bool awLinear::isFinite ( const AffineMatrixFlt &  )
AWLINEAR_DECL bool awLinear::isFinite ( const ProjMatrix &  )
AWLINEAR_DECL bool awLinear::isFinite ( const ProjMatrixFlt &  )
AWLINEAR_DECL double awLinear::brentsIteration ( evalFunction &  func,
double  x1,
double  x2,
double  tol,
int &  rc 
)
AWLINEAR_DECL bool awLinear::brentMinimize ( evalFunction &  f,
double  tol,
minimumBracket &  bracket,
double &  minParam,
double &  minF 
)
AWLINEAR_DECL bool awLinear::bracketMinimum ( double  tMin,
double  tMax,
double  tol,
evalFunction &  f,
minimumBracket &  bracket 
)

Variable Documentation

AWLINEAR_DECL double epsilonTol
AWLINEAR_DECL float epsilonTolFlt
AWLINEAR_DECL double epsilon2Tol
AWLINEAR_DECL float epsilon2TolFlt
AWLINEAR_DECL double degreeTol
AWLINEAR_DECL double perpendicularTol
AWLINEAR_DECL double perpendicular2Tol
AWLINEAR_DECL double parallelTol
AWLINEAR_DECL double parallel2Tol