C3D Toolkit
Kernel - 113382, Vision - 2.6.3.22
|
Трехмерная точка. Подробнее...
#include <mb_cart_point3d.h>
Открытые члены | |
MbCartPoint3D () | |
Конструктор без параметров, точка расположена в начале глобальных координат. | |
MbCartPoint3D (const MbCartPoint3D &p) | |
Конструктор копирования. | |
MbCartPoint3D (const MbFloatPoint3D &) | |
Конструктор копирования. | |
MbCartPoint3D (double xx, double yy, double zz) | |
Конструктор по координатам. | |
MbCartPoint3D (const MbCartPoint3D &p, const MbMatrix3D &matr) | |
Конструктор по точке в локальной системе координат. Подробнее... | |
MbCartPoint3D (const MbCartPoint &p, const MbPlacement3D &place) | |
Конструктор по двумерной точке. Подробнее... | |
void | Init (const MbCartPoint &p, const MbPlacement3D &place) |
Инициализация по двумерной точке. Подробнее... | |
void | Init (const MbCartPoint &p) |
Инициализация по двумерной точке. | |
template<class Point > | |
MbCartPoint3D & | Init (const Point &p) |
Инициализировать по другой точке. | |
MbCartPoint3D & | Init (double xx, double yy, double zz) |
Инициализировать по координатам. | |
MbCartPoint3D & | Transform (const MbMatrix3D &) |
Преобразовать согласно матрице. | |
MbCartPoint3D & | Move (double dx, double dy, double dz) |
Сдвинуть вдоль вектора. | |
MbCartPoint3D & | Move (const MbVector3D &to) |
Сдвинуть вдоль вектора. | |
MbCartPoint3D & | Rotate (const MbAxis3D &, double angle) |
Повернуть вокруг оси. | |
double | DistanceToPoint (const MbCartPoint3D &) const |
Расстояние до точки. | |
void | SetZero () |
Обнулить координаты. | |
double | DistanceToPoint2 (const MbCartPoint3D &to) const |
Квадрат расстояния от точки до точки. Подробнее... | |
void | MoveAlongLine (const MbCartPoint3D &to, double delta) |
Сдвинуть по направлению точки to на расстояние delta. | |
void | GoNearToPoint (const MbCartPoint3D &to, double ratio) |
Сдвинуть по направлению. Подробнее... | |
void | Maximum (const MbCartPoint3D &p) |
Инициализация максимальными координатами. Подробнее... | |
void | Minimum (const MbCartPoint3D &p) |
Инициализация минимальными координатами. Подробнее... | |
void | Perspective (double znear) |
Увеличить координаты x и y в ( znear / z ) раз. Подробнее... | |
void | Mirror (const MbCartPoint3D &p0, const MbVector3D &dir) |
Зеркальное отражение точки относительно плоскости. Подробнее... | |
void | Scale (double sx, double sy, double sz) |
Масштабировать координаты. Подробнее... | |
void | Scale (double s) |
Масштабировать координаты. Подробнее... | |
double | MaxFactor () const |
Дать максимальную по модулю координату | |
bool | SetRoundedValue (bool total, double eps) |
Округлить с точностью до eps. Подробнее... | |
void | GetProperties (MbProperties &) |
Выдать свойства объекта. | |
void | SetProperties (const MbProperties &) |
Записать свойства объекта. | |
bool | IsSame (const MbCartPoint3D &other, double accuracy) const |
Являются ли объекты равными? Подробнее... | |
bool | IsUndefined () const |
Является ли точка неопределенной? | |
Логические и арифметические операции. | |
void | operator+= (const MbVector3D &) |
Добавить вектор. | |
void | operator-= (const MbVector3D &) |
Вычесть вектор. | |
void | operator+= (const MbCartPoint3D &) |
Добавить координаты точки. | |
void | operator-= (const MbCartPoint3D &) |
Вычесть координаты точки. | |
void | operator*= (double factor) |
Умножить координаты на число. | |
void | operator/= (double factor) |
Разделить координаты на число. | |
bool | operator== (const MbCartPoint3D &) const |
Проверить на равенство. | |
bool | operator!= (const MbCartPoint3D &) const |
Проверить на неравенство. | |
bool | operator< (const MbCartPoint3D &) const |
Проверить на меньше. | |
bool | operator> (const MbCartPoint3D &) const |
Проверить на больше. | |
MbCartPoint3D & | operator= (const MbCartPoint3D &) |
Присвоить точке координаты другой точки. | |
MbCartPoint3D & | operator= (const MbFloatPoint3D &) |
Присвоить точке координаты другой точки. | |
MbCartPoint3D & | operator= (const MbVector3D &) |
Присвоить точке компоненты вектора. | |
MbCartPoint3D & | operator= (const MbHomogeneous3D &) |
Присвоить точке значения однородных координат. | |
MbCartPoint3D | operator+ (const MbVector3D &) const |
Сложить точку и вектор. | |
MbCartPoint3D | operator- (const MbVector3D &) const |
Вычесть из точки вектор. | |
MbVector3D | operator+ (const MbCartPoint3D &) const |
Сложить две точки. | |
MbVector3D | operator- (const MbCartPoint3D &) const |
Вычесть из точки точку. | |
MbCartPoint3D | operator- () const |
Унарный минус. | |
MbCartPoint3D | operator* (const MbMatrix3D &) const |
Вычислить точку как копию данной точки, преобразованную матрицей. | |
double & | operator[] (size_t i) |
Доступ к координате по индексу. | |
double | operator[] (size_t i) const |
Значение координаты по индексу. | |
Функции сложения и умножения точек с точками и с векторами. | |
MbCartPoint3D & | SetAdd (const MbCartPoint3D &v1, const MbVector3D &v2) |
Приравнять координаты сумме координат точки и вектора. Подробнее... | |
MbCartPoint3D & | SetDec (const MbCartPoint3D &v1, const MbVector3D &v2) |
Приравнять координаты разности координат точки и вектора. Подробнее... | |
MbCartPoint3D & | Set (const MbCartPoint3D &v1, const MbVector3D &v2, double t2) |
Приравнять координаты сумме координат точки и вектора. Подробнее... | |
MbCartPoint3D & | Set (const MbCartPoint3D &v1, const MbVector3D &v2, double t2, const MbVector3D &v3, double t3) |
Приравнять координаты сумме координат точки и двух векторов. Подробнее... | |
MbCartPoint3D & | Set (const MbVector3D &v1, double t1, const MbVector3D &v2, double t2) |
Приравнять координаты сумме компонент двух векторов. Подробнее... | |
MbCartPoint3D & | Set (const MbVector3D &v1, double t1, const MbVector3D &v2, double t2, const MbVector3D &v3, double t3, const MbVector3D &v4, double t4) |
Приравнять координаты сумме компонент четырех векторов. Подробнее... | |
MbCartPoint3D & | Set (const MbCartPoint3D &v1, double t1, const MbCartPoint3D &v2, double t2) |
Приравнять координаты сумме координат двух точек. Подробнее... | |
MbCartPoint3D & | Set (const MbCartPoint3D &v1, double t1, const MbCartPoint3D &v2, double t2, const MbCartPoint3D &v3, double t3) |
Приравнять координаты сумме координат трех точек. Подробнее... | |
MbCartPoint3D & | Set (const MbCartPoint3D &v1, double t1, const MbCartPoint3D &v2, double t2, const MbCartPoint3D &v3, double t3, const MbCartPoint3D &v4, double t4) |
Приравнять координаты сумме координат четырех точек. Подробнее... | |
void | Add (const MbVector3D &v1, double t1) |
Увеличить координаты на значения компонент вектора. Подробнее... | |
void | Add (const MbVector3D &v1, double t1, const MbVector3D &v2, double t2) |
Увеличить координаты на значения компонент двух векторов. Подробнее... | |
void | Add (const MbVector3D &v1, double t1, const MbVector3D &v2, double t2, const MbVector3D &v3, double t3) |
Увеличить координаты на значения компонент трех векторов. Подробнее... | |
void | Add (const MbVector3D &v1, double t1, const MbVector3D &v2, double t2, const MbVector3D &v3, double t3, const MbVector3D &v4, double t4) |
Увеличить координаты на значения компонент четырех векторов. Подробнее... | |
void | Add (const MbCartPoint3D &v1, double t1) |
Увеличить координаты на значения координат точки. Подробнее... | |
void | Add (const MbCartPoint3D &v1, double t1, const MbCartPoint3D &v2, double t2, const MbCartPoint3D &v3, double t3) |
Увеличить координаты на значения координат трех точек. Подробнее... | |
void | Add (const MbCartPoint3D &v1, double t1, const MbCartPoint3D &v2, double t2, const MbCartPoint3D &v3, double t3, const MbCartPoint3D &v4, double t4) |
Увеличить координаты на значения координат четырех точек. Подробнее... | |
Открытые статические члены | |
static size_t | GetDimension () |
Количество координат точки. | |
Открытые атрибуты | |
double | x |
Первая координата точки. | |
double | y |
Вторая координата точки. | |
double | z |
Третья координата точки. | |
Статические открытые данные | |
static const MbCartPoint3D | origin |
Начало координат или { 0, 0, 0 }. | |
Трехмерная точка.
Трехмерная точка (картезианская точка) описывается тремя координатами в декартовой системе координат. Точка названа картезианской в честь французского учёного геометра Рене Декарта (Rene Descartes, по латыни Renatus Cartesius).
Точку можно описать радиусом-вектором. Радиус-вектор описывает преобразование, переводящее начальную точку декартовой системы координат в точку пространства с заданными координатами в этой декартовой системе координат.
MbCartPoint3D::MbCartPoint3D | ( | const MbCartPoint3D & | p, |
const MbMatrix3D & | matr | ||
) |
Конструктор по точке в локальной системе координат.
Для перевода точки в глобальную систему координат задаётся матрица перехода из локальной системы.
[in] | p | - Точка в локальной системе координат. |
[in] | matr | - Матрица перехода из локальной системы координат в глобальную. |
MbCartPoint3D::MbCartPoint3D | ( | const MbCartPoint & | p, |
const MbPlacement3D & | place | ||
) |
Конструктор по двумерной точке.
Двумерная точка лежит в плоскости XOY заданной локальной системы координат.
[in] | p | - Двумерная точка. |
[in] | place | - Исходная локальная система координат. |
void MbCartPoint3D::Init | ( | const MbCartPoint & | p, |
const MbPlacement3D & | place | ||
) |
Инициализация по двумерной точке.
Двумерная точка лежит в плоскости XOY заданной локальной системы координат.
[in] | p | - Двумерная точка. |
[in] | place | - Исходная локальная система координат. |
|
inline |
Квадрат расстояния от точки до точки.
Вычислить квадрат расстояния от точки до точки.
[in] | to | - Точка. |
|
inline |
Сдвинуть по направлению.
Сдвиг по направлению точки to на расстояние, определяемое отношением величины ratio к расстоянию между точками.
[in] | to | - Точка. |
[in] | ratio | - Доля расстояния. |
|
inline |
Инициализация максимальными координатами.
Координата x (или y,z) точки инициализируется максимальным значением получаемым из сравнения соответствующей координаты исходной точки и точки заданной в аргументе функции.
[in] | p | - Заданная точка. |
|
inline |
Инициализация минимальными координатами.
Координата x (или y,z) точки инициализируется минимальным значением получаемым из сравнения соответствующей координаты исходной точки и точки заданной в аргументе функции.
[in] | p | - Заданная точка. |
void MbCartPoint3D::Perspective | ( | double | znear | ) |
Увеличить координаты x и y в ( znear / z ) раз.
Увеличение координат производится для учета перспективного преобразования. Точка должна находится в локальной или видовой системе координат. z - координата точки не может быть равна нулю.
[in] | znear | - Величина znear/z определяет масштаб увеличения. |
|
inline |
Зеркальное отражение точки относительно плоскости.
Зеркальное отражение точки относительно плоскости с началом p0 и нормалью dir.
[in] | p0 | - Точка плоскости симметрии. |
[in] | dir | - Направление нормали плоскости симметрии. |
|
inline |
Приравнять координаты сумме координат точки и вектора.
[in] | v1 | - Исходная точка. |
[in] | v2 | - Исходный вектор. |
|
inline |
Приравнять координаты разности координат точки и вектора.
[in] | v1 | - Исходная точка. |
[in] | v2 | - Исходный вектор. |
|
inline |
Приравнять координаты сумме координат точки и вектора.
Приравнять координаты сумме координат точки v1 и вектора v2, умноженного на число t2.
[in] | v1 | - Исходная точка. |
[in] | v2 | - Исходный вектор. |
[in] | t2 | - Число, на которое умножаются координаты исходного вектора v2. |
|
inline |
Приравнять координаты сумме координат точки и двух векторов.
Приравнять координаты сумме координат точки v1 и векторов v2 и v3, умноженных на числа t2 и t3, соответственно.
[in] | v1 | - Исходная точка. |
[in] | v2,v3 | - Исходные векторы. |
[in] | t2,t3 | - Числа, на которые умножаются координаты векторов v2 и v3 соответственно. |
|
inline |
Приравнять координаты сумме компонент двух векторов.
Приравнять координаты сумме компонент векторов v1 и v2, умноженных на числа t1 и t2, соответственно.
[in] | v1,v2 | - Исходные векторы. |
[in] | t1,t2 | - Числа, на которые умножаются координаты векторов v1 и v2 соответственно. |
|
inline |
Приравнять координаты сумме компонент четырех векторов.
Приравнять координаты сумме компонент векторов v1, v2, v3 и v4, умноженных на числа t1, t2, t3 и t4, соответственно.
[in] | v1,v2,v3,v4 | - Исходные векторы. |
[in] | t1,t2,t3,t4 | - Числа, на которые умножаются координаты векторов v1, v2, v3 и v4 соответственно. |
|
inline |
Приравнять координаты сумме координат двух точек.
Приравнять координаты сумме координат точек v1 и v2, умноженных на числа t1 и t2, соответственно.
[in] | v1,v2 | - Исходные точки. |
[in] | t1,t2 | - Числа, на которые умножаются координаты точек v1 и v2 соответственно. |
|
inline |
Приравнять координаты сумме координат трех точек.
Приравнять координаты сумме координат точек v1, v2 и v3, умноженных на числа t1, t2 и t3, соответственно.
[in] | v1,v2,v3 | - Исходные точки. |
[in] | t1,t2,t3 | - Числа, на которые умножаются координаты точек v1, v2 и v3 соответственно. |
|
inline |
Приравнять координаты сумме координат четырех точек.
Приравнять координаты сумме координат точек v1, v2, v3 и v4, умноженных на числа t1, t2, t3 и t4, соответственно.
[in] | v1,v2,v3,v4 | - Исходные точки. |
[in] | t1,t2,t3,t4 | - Числа, на которые умножаются координаты точек v1, v2, v3 и v4 соответственно. |
|
inline |
Увеличить координаты на значения компонент вектора.
Увеличить координаты на значения компонент вектора v1, умноженных на число t1.
[in] | v1 | - Исходный вектор. |
[in] | t1 | - Число, на которое умножаются координаты исходного вектора v1. |
|
inline |
Увеличить координаты на значения компонент двух векторов.
Увеличить координаты на значения компонент векторов v1 и v2, умноженных на числа t1 и t2, соответственно.
[in] | v1,v2 | - Исходные векторы. |
[in] | t1,t2 | - Числа, на которые умножаются координаты векторов v1 и v2 соответственно. |
|
inline |
Увеличить координаты на значения компонент трех векторов.
Увеличить координаты на значения компонент векторов v1, v2 и v3, умноженных на числа t1, t2 и t3, соответственно.
[in] | v1,v2,v3 | - Исходные векторы. |
[in] | t1,t2,t3 | - Числа, на которые умножаются координаты векторов v1, v2 и v3 соответственно. |
|
inline |
Увеличить координаты на значения компонент четырех векторов.
Увеличить координаты на значения компонент векторов v1, v2, v3 и v4, умноженных на числа t1, t2, t3 и t4, соответственно.
[in] | v1,v2,v3,v4 | - Исходные векторы. |
[in] | t1,t2,t3,t4 | - Числа, на которые умножаются координаты векторов v1, v2, v3 и v4 соответственно. |
|
inline |
Увеличить координаты на значения координат точки.
Увеличить координаты на значения координат точки v1, умноженных на число t1.
[in] | v1 | - Исходная точка. |
[in] | t1 | - Число, на которое умножаются координаты исходной точки v1. |
|
inline |
Увеличить координаты на значения координат трех точек.
Увеличить координаты на значения координат точек v1, v2 и v3, умноженных на числа t1, t2 и t3, соответственно.
[in] | v1,v2,v3 | - Исходные точки. |
[in] | t1,t2,t3 | - Числа, на которые умножаются координаты точек v1, v2 и v3 соответственно. |
|
inline |
Увеличить координаты на значения координат четырех точек.
Увеличить координаты на значения координат точек v1, v2, v3 и v4, умноженных на числа t1, t2, t3 и t4, соответственно.
[in] | v1,v2,v3,v4 | - Исходные точки. |
[in] | t1,t2,t3,t4 | - Числа, на которые умножаются координаты точек v1, v2, v3 и v4 соответственно. |
|
inline |
Масштабировать координаты.
[in] | sx,sy,sz | - Масштабирующие коэффициенты для компонент x, y и z соответственно. |
|
inline |
Масштабировать координаты.
[in] | s | - Масштабирующий коэффициент. |
bool MbCartPoint3D::SetRoundedValue | ( | bool | total, |
double | eps | ||
) |
Округлить с точностью до eps.
Округляются координаты точки с заданное точностью.
[in] | total | - Если true, то округлять в любом случае. |
[in] | eps | - Точность округления. |
|
inline |
Являются ли объекты равными?
Равными считаются объекты, данные которых равны с заданной точностью.
[in] | other | - Объект для сравнения. |
[in] | accuracy | - Точность сравнения. |