libMVRgdtf 40bc00a
A library for GDTF and MVR
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
VWMathUtils.h
Go to the documentation of this file.
1//
2// Copyright Nemetschek Vectorworks, Inc.
3// Use of this file is governed by the Nemetschek Vectorworks SDK License Agreement
4// http://developer.vectorworks.net/index.php?title=Vectorworks_SDK_License
5//
6
7#pragma once
8
9namespace VectorworksMVR
10{
11 namespace VWFC
12 {
13 namespace Math
14 {
16 {
17 protected:
18 MathUtils();
19 virtual ~MathUtils();
20
21 public:
22 // check if for equal
23 static bool Equalish(double num1, double num2, double dEpsilon);
24 static bool Equalish(const VWPoint2D& a, const VWPoint2D& b, double dEpsilon);
25 static bool Equalish(const VWPoint3D& a, const VWPoint3D& b, double dEpsilon);
26 static bool Equalish(double ax, double ay, double bx, double by, double dEpsilon);
27 // ... greater or equal
28 static bool GEish(double num1, double num2, double dEpsilon);
29 // ... less or equal
30 static bool LEish(double num1, double num2, double dEpsilon);
31 // ... greater
32 static bool Greaterish(double num1, double num2, double dEpsilon);
33 // ... less
34 static bool Lesserish(double num1, double num2, double dEpsilon);
35
36 // ... between
37 static bool IsBetween(double a, double b, double c, double dEpsilon);
38 static bool IsBetween(const VWPoint2D& a, const VWPoint2D& b, const VWPoint2D& c, double dEpsilon);
39
40 // calculates the angle of (p2 - p1) to Ox axis
41 static double FixedAngle(const VWPoint2D& p1, const VWPoint2D& p2);
42 // implements a periodic FracSin function - obtains a fast approximation of the sine of a Fixed number
43 static double SpecialSin( double ang );
44 // implements a periodic FracCos function - obtains a fast approximation of the cosine of a Fixed number
45 static double SpecialCos( double ang );
46
47 // convert radian angle value to degrees
48 static double Rad2Deg(double radAng);
49 // convert degrees angle value to radian
50 static double Deg2Rad(double degAng);
51 // this function generates a real random number between a1 and a2
52 static double RealRandom(double a1, double a2);
53
54 // sign function
55 static double Sign(const double dNum);
56
57 // calculate interpolated value of 'a' and 'b' at given 'interpolationLen'
58 // 'interpolationLen' is the distance from 'a' to the interpolated value
59 // 'len' is the distance from 'a' to 'b'
60 static double CalculateInterpolatedValue(double a, double b, double len, double interpolationLen);
61
62 public:
63 static double PI;
64 static double PI2;
65 static double PIOver2;
66 static double PIOver4;
67 static double PI3Over2;
68 };
69 }
70 }
71}
Definition VWMathUtils.h:16
static double Rad2Deg(double radAng)
Definition VWMathUtils.cpp:163
virtual ~MathUtils()
Definition VWMathUtils.cpp:21
static double CalculateInterpolatedValue(double a, double b, double len, double interpolationLen)
Definition VWMathUtils.cpp:198
static double PI
Definition VWMathUtils.h:63
static double Deg2Rad(double degAng)
Definition VWMathUtils.cpp:168
static double PI2
Definition VWMathUtils.h:64
static bool Lesserish(double num1, double num2, double dEpsilon)
Definition VWMathUtils.cpp:67
static double Sign(const double dNum)
Definition VWMathUtils.cpp:188
static bool Equalish(double num1, double num2, double dEpsilon)
Definition VWMathUtils.cpp:25
static bool IsBetween(double a, double b, double c, double dEpsilon)
Definition VWMathUtils.cpp:72
static double PIOver4
Definition VWMathUtils.h:66
static bool GEish(double num1, double num2, double dEpsilon)
Definition VWMathUtils.cpp:52
static bool Greaterish(double num1, double num2, double dEpsilon)
Definition VWMathUtils.cpp:62
static double PI3Over2
Definition VWMathUtils.h:67
static double RealRandom(double a1, double a2)
Definition VWMathUtils.cpp:173
static double SpecialCos(double ang)
Definition VWMathUtils.cpp:137
MathUtils()
Definition VWMathUtils.cpp:17
static double FixedAngle(const VWPoint2D &p1, const VWPoint2D &p2)
Definition VWMathUtils.cpp:84
static double PIOver2
Definition VWMathUtils.h:65
static bool LEish(double num1, double num2, double dEpsilon)
Definition VWMathUtils.cpp:57
static double SpecialSin(double ang)
Definition VWMathUtils.cpp:111
Definition VWPoint2D.h:17
Definition VWPoint3D.h:19
Definition CieColor.h:9