C3D Kernel  104065
Пространства имен | Функции
Файл alg_base.h

Вспомогательные общие функции. Подробнее...

Пространства имен

namespace  c3d
 

Объявление пространства имен C3D.


Функции

double c3d::CalcAngle0X (double dx, double dy)
 Вычислить угол между прямой и осью 0X.
long double c3d::CalcAngle0X (long double dx, long double dy)
 Вычислить угол между прямой и осью 0X.
double c3d::CalcAngle0X (const MbCartPoint &p1, const MbCartPoint &p2)
 Вычислить угол между прямой и осью 0X.
double & c3d::NormalizeAngle (double &angle, double angleEpsilon=Math::AngleEps)
 Нормализовать угол.
void c3d::AngleToParam (double dir, bool left, double &t)
 Перевести параметр окружности в параметр кривой.
template<class Type >
double c3d::AngleBetweenVectors (const Type &v1, const Type &v2)
 Вычислить угол между двумя векторами.
double c3d::CalcAngle3Points (const MbCartPoint &p1, const MbCartPoint &centre, const MbCartPoint &p3)
 Вычислить минимальный угол между прямыми.
template<class Vector >
bool c3d::ArFind (const Vector &arParam, double t, ptrdiff_t &id)
 Найти параметр в массиве.
MbCartPoint c3d::LineSegDivide (const MbCartPoint &p1, const MbCartPoint &p2)
 Разделить отрезок пополам.
ptrdiff_t c3d::mod (ptrdiff_t i, ptrdiff_t n)
 i по модулю n (циклический вариант).
int c3d::Sign (double a)
 Определение знака вещественного числа.
int c3d::Round (double x)
 Округление вещественного числа.
int32 c3d::LRound (double x)
 Округление вещественного числа.
int32 c3d::CheckLRound (double x)
 Округление вещественного числа с проверкой
bool c3d::InRange (double x1, double x2, double x)
 Лежит ли число в интервале [x1, x2].
bool c3d::IsParamOn (double tmin, double tmax, double t, double treg)
 Находится ли параметр в диапазоне кривой.
bool c3d::InRangePlus (double x1, double x, double eps=FLT_EPSILON)
 Лежит ли число в диапазоне [0, x1).
template<class TypeVector >
bool c3d::IsMonotonic (const TypeVector &items, bool isAscending, bool allowEqual=false)
 Нормализован ли массив объектов по возрастанию или убыванию.
template<class Point , class Vector >
bool c3d::ArePointsOnLine (const SArray< Point > &pnts, double metricEps=METRIC_EPSILON)
 Лежат ли точки на линии.
template<class Point , class Vector >
bool c3d::ArePointsOnLine (const std::vector< Point > &pnts, double metricEps=METRIC_EPSILON)
 Лежат ли точки на линии.
template<class PointsVector >
bool c3d::IsPlanar (const PointsVector &pnts, MbPlacement3D *place, double mEps=METRIC_EPSILON)
 Лежит ли набор точек на плоскости.
template<class Point >
bool c3d::IsPlanar2 (const Array2< Point > &pnts, MbPlacement3D *place, double mEps=METRIC_EPSILON)
 Лежит ли набор точек на плоскости.
template<class DoubleVector >
void c3d::SetLimitParam (DoubleVector &tarr, double tmin, double tmax, double teps=Math::paramEpsilon)
 Установить область изменения параметра.
void SortSynchroArrays (SArray< double > &tt0, SArray< double > &tt2, double eps, bool checkCoincidentParams)
 Отсортировать массив.
void SortArray (SArray< double > &tt0, double eps, bool checkCoincidentParams)
 Отсортировать массив.
void CorrectParameter (bool pext, bool pc, double pmin, double pmax, double &p, double eps=Math::paramRegion)
 Уточнить параметр.
bool CorrectCheckNearParameter (const double &tmin, const double &tmax, const double &tPeriod, const bool &ext, const double &tRegion, double &t)
 Коррекция параметра с проверкой.
bool MatrixRoughInverse (const MbPlacement3D &place3D, const MbDirection *pDir, const MbVector3D &seeY, const MbVector3D &seeZ, MbMatrix &matrix)
 Определить матрицу инвертирования значка.
bool MatrixTextInverse (const MbPlacement3D &place3D, const MbDirection *pDir, const MbVector3D &seeY, const MbVector3D &seeZ, MbMatrix &matrix)
 Определить матрицу инвертирования текста.
bool RoundedValue (double &value, uint8 n)
 Округлить значение до n значащих цифр.
int QuadraticEquation (double a, double b, double c, double &d, std::pair< double, double > &res)
 Решить квадратное уравнение вида a * x^2 + b * x + c = 0 без внешнего управления погрешностью.
int QuadraticEquation (double a, double b, double c, double &x1, double &x2, double epsilon=Math::paramEpsilon)
 Решить квадратное уравнение вида a * x^2 + b * x + c = 0.
int QubicEquation (double a, double b, double c, double d, double *x, double epsilon)
 Решить кубическое уравнение вида a * x^3 + b * x^2 + c * x + d = 0.
int CubicEquation (double i1, double i2, double i3, double *x, double epsilon)
 Решить кубическое уравнение вида x^3 - i1 * x^2 + i2 * x - i3 = 0.
int Degree4Equation (double a, double b, double c, double d, double e, double *x, double epsilon)
 Решить уравнение четвертой степени вида a * x^4 + b * x^3 + с * x^2 + d * x + e = 0.
void EigenVector (double a[SPACE_DIM][SPACE_DIM], MbVector3D &vect)
 Определить собственный вектор матрицы 3 x 3.

Подробное описание

 Указатель Классы Пространства имен Файлы Функции Переменные Определения типов Перечисления Элементы перечислений Друзья Макросы