C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

Локальная система координат в трёхмерном пространстве. Подробнее...

Граф связей класса MbPlacement3D:
[см. легенду]

Открытые члены

MbPlacement3DInit ()
 Инициализировать единичную матрицу прямого преобразования (мировая СК).
 
MbPlacement3DInit (const MbPlacement3D &)
 Инициализировать по плейсменту.
 
MbPlacement3DInit (const MbMatrix3D &matr)
 Инициализировать по матрице.
 
MbPlacement3DInit (const MbCartPoint3D &p, const MbVector3D &axisZ, const MbVector3D &axisX, bool left=false)
 Инициализировать по началу и векторам осей X, Z.
 
MbPlacement3DInit (const MbCartPoint3D &p, const MbCartPoint3D &axisX, const MbCartPoint3D &axisY, bool left=false)
 Инициализировать по началу и точкам осей X, Y.
 
MbPlacement3DInit (const MbCartPoint3D &p, const MbVector3D &axisZ, bool left)
 Инициализировать осью Z с произвольной осью X.
 
MbPlacement3DInit (const MbPlacement3D &pl, double distance)
 Инициализировать по плейсменту со смещением.
 
MbPlacement3DInit (const MbCartPoint3D &p, const MbPlacement3D &pl)
 Инициализировать по началу и ориентирующему плейсменту.
 
MbPlacement3DInit (const MbCartPoint3D &org)
 Инициализировать по началу.
 
MbPlacement3DInitXY (const MbCartPoint3D &p, const MbVector3D &axisX, const MbVector3D &axisY, bool reset)
 Инициализировать по точке и двум векторам (оси X, Y).
 
MbPlacement3DInitXZ (const MbCartPoint3D &p, const MbVector3D &axisX, const MbVector3D &axisZ)
 Инициализировать по точке и двум векторам (оси X, Z).
 
MbPlacement3DInitYZ (const MbCartPoint3D &p, const MbVector3D &axisY, const MbVector3D &axisZ)
 Инициализировать по точке и двум векторам (оси Y, Z).
 
bool Init (const MbPlacement3D &pl, double ang, const MbCurve3D &c, double t)
 Инициализировать по кривой и углу к плоскости.
 
bool Init (const MbCartPoint3D &p, const MbCurve3D &c, double t)
 Инициализировать по точке и кривой.
 
bool Init (const MbCurve3D &, const MbCartPoint3D &, bool checkPlanar)
 Инициализировать по точке перпендикулярно кривой.
 
bool Init (const MbLine3D &, const MbCartPoint3D &)
 Инициализировать по прямой и точке.
 
bool Init (const MbLine3D &, const MbVector3D &)
 Инициализировать по прямой и вектору.
 
bool Init (const MbLine3D &l1, const MbLine3D &l2)
 Инициализировать по двум прямым.
 
bool Init (const MbCurve3D &, double t, bool checkPlanar)
 Инициализировать перпендикулярно кривой по параметру на кривой.
 
void Update (const MbPlacement3D &, VERSION version, bool fuzzy_null=true)
 Привязать плейсмент к другим координатам.
 
void Update (const MbPlacement3D &, const MbPlacement3D &)
 Привязать плейсмент к другим координатам.
 
void UpdateFromNull (VERSION version, bool fuzzy_null=true)
 Привязать плейсмент к локальному нулю.
 
bool IsSingle () const
 Проверить, свойство совпадения с мировой СК (т.е. прямая матрица СК - единичная).
 
bool IsTranslation () const
 Проверить, присутствует ли сдвиг системы координат относительно глобальной.
 
bool IsRotation () const
 Проверить, присутствует ли поворот системы координат относительно глобальной.
 
bool IsLeft () const
 Проверить, является ли СК левой. Подробнее...
 
bool IsOrt () const
 Проверить, является ли СК ортогональной, но ненормированной.
 
bool IsOrthogonal () const
 Выдать признак ортогональности СК.
 
bool IsAffine () const
 Проверить, является ли СК афинной (если нет - то она ортонормированная).
 
bool IsNormal () const
 Проверить, что СК ортонормированная.
 
bool IsUnSet () const
 Проверить, что битовые флаги не установлены.
 
bool IsUnit (double eps=Math::lengthEpsilon) const
 Выдать признак единичного плейсмента.
 
bool IsUnit (double &sqX, double &sqY, double &sqZ, double eps=Math::lengthEpsilon) const
 Выдать признак единичного плейсмента и квадраты ортов.
 
bool IsTranslationStandard () const
 Проверить, являются ли оси СК совпадающими со стандартной (правой ортонормированной СК).
 
bool IsCircular () const
 Проверить, является ли СК ортогональной с равными по длине осями X,Y (круг остается кругом).
 
bool IsCircular (double &lxy) const
 Проверить, является ли СК ортогональной с равными по длине осями X,Y (круг остается кругом).
 
bool IsIsotropic () const
 Проверить, является ли СК ортогональной с равными по длине осями X,Y,Z.
 
bool IsIsotropic (double &l) const
 Проверить, является ли СК ортогональной с равными по длине осями X,Y,Z.
 
const MbCartPoint3DGetOrigin () const
 Получить начало СК.
 
const MbVector3DGetAxisZ () const
 Получить ось Z.
 
const MbVector3DGetAxisX () const
 Получить ось X.
 
const MbVector3DGetAxisY () const
 Получить ось Y.
 
MbCartPoint3DSetOrigin ()
 Дать начало ЛСК.
 
MbVector3DSetAxisZ ()
 Дать ось Z.
 
MbVector3DSetAxisX ()
 Дать ось X.
 
MbVector3DSetAxisY ()
 Дать ось Y.
 
void SetOrigin (const MbCartPoint3D &o)
 Задать начало ЛСК.
 
void SetAxisZ (const MbVector3D &a)
 Задать ось Z.
 
void SetAxisX (const MbVector3D &a)
 Задать ось X.
 
void SetAxisY (const MbVector3D &a)
 Задать ось Y.
 
void AxisZInvert ()
 Инвертировать ось Z.
 
void AxisXInvert ()
 Инвертировать ось X.
 
void AxisYInvert ()
 Инвертировать ось Y.
 
void SetFlag (bool bLeft, bool bAffine=false, bool bOrt=true) const
 Установить флаг состояния. Подробнее...
 
MbPlacement3DTransform (const MbMatrix3D &)
 Преобразовать согласно матрице.
 
MbPlacement3DMove (const MbVector3D &)
 Сдвинуть вдоль вектора.
 
MbPlacement3DRotate (const MbAxis3D &axis, double angle)
 Повернуть вокруг оси на заданный угол.
 
MbPlacement3DScale (double sx, double sy, double sz)
 Масштабировать.
 
MbPlacement3DScale (double s)
 Масштабировать.
 
bool IsSame (const MbPlacement3D &other, double accuracy) const
 Являются ли объекты равными?
 
void GetMatrixInto (MbMatrix3D &) const
 Дать матрицу преобразования в ЛСК: r=R*into (обратная матрица).
 
MbMatrix3D GetMatrixInto () const
 Дать матрицу преобразования в ЛСК: r=R*into (обратная матрица).
 
void GetMatrixFrom (MbMatrix3D &) const
 Дать матрицу преобразования из ЛСК: R=r*from (прямая матрица).
 
MbMatrix3D GetMatrixFrom () const
 Дать матрицу преобразования из ЛСК: R=r*from (прямая матрица).
 
void Symmetry (MbMatrix3D &) const
 Дать матрицу симметрии относительно плоскости XY.
 
bool GetMatrixToPlace (const MbPlacement3D &p, MbMatrix &matr, double eps=Math::angleRegion) const
 Дать матрицу преобразования в place.
 
void GetMatrixToPlace (const MbPlacement3D &p, MbMatrix3D &matr) const
 Дать матрицу преобразования в place.
 
double DistanceToPoint (const MbCartPoint3D &to) const
 Вычислить расстояние до точки.
 
void PointProjection (const MbCartPoint3D &p, MbCartPoint3D &pOn) const
 Найти проекцию точки на плоскость XY.
 
void VectorProjection (const MbVector3D &v, double &x, double &y) const
 Найти вектор проекции на плоскость XY.
 
void PointProjection (const MbCartPoint3D &p, double &x, double &y) const
 Найти проекцию точки на плоскость XY.
 
bool DirectPointProjection (const MbCartPoint3D &p, const MbVector3D &v, double &x, double &y) const
 Найти проекцию точки на плоскость XY вдоль вектора в любом из двух направлений.
 
bool NearDirectPointProjection (const MbCartPoint3D &p, const MbVector3D &v, double &x, double &y, bool onlyPositiveDirection) const
 Найти проекцию точки на плоскость XY в направлении вектора.
 
void PointOn (double x, double y, MbCartPoint3D &p) const
 Дать координаты точки на плоскости XY.
 
void PointOn (const MbCartPoint &r, MbCartPoint3D &p) const
 Дать пространственную точку по точке на плоскости XY.
 
void VectorOn (const MbVector &r, MbVector3D &p) const
 Дать пространственный вектор по вектору на плоскости XY.
 
void VectorOn (const MbDirection &r, MbVector3D &p) const
 Дать пространственный вектор по вектору на плоскости XY.
 
void Normal (MbVector3D &n) const
 Дать нормаль плоскости XY локальной системы координат, направление оси Z при этом не учитывается.
 
MbVector3D Normal () const
 Дать нормаль плоскости XY локальной системы координат, направление оси Z при этом не учитывается.
 
MbeItemLocation PointRelative (const MbCartPoint3D &pnt, double eps=ANGLE_REGION) const
 Определить, с какой стороны от плоскости находится точка.
 
MbeItemLocation CubeRelative (const MbCube &cube, double eps=ANGLE_REGION) const
 Определить, с какой стороны от плоскости находится габарит.
 
bool Colinear (const MbPlacement3D &with, double eps=Math::angleRegion) const
 Проверить коллинеарность.
 
bool NormalColinear (const MbPlacement3D &with, double eps=Math::angleRegion) const
 Проверить коллинеарность нормалей.
 
bool Complanar (const MbPlacement3D &with, double eps=Math::angleRegion) const
 Проверить компланарность.
 
bool Orthogonal (const MbAxis3D &, double &x, double &y, double eps=Math::angleRegion) const
 Проверить ортогональность.
 
void AdaptToPlace (const MbPlacement3D &)
 Совместить с place путем вращения до параллельности и перемещения вдоль нормали place.
 
double Angle (const MbVector3D &v) const
 Найти угол с осью Z.
 
double Angle (const MbPlacement3D &) const
 Найти угол между вектором и плейсментом.
 
double GetNormalAngle (const MbVector3D &) const
 Дать синус угла вектора с плоскостью.
 
void Reset ()
 Пересчитать СК по измененным внутренним данным.
 
void Invert (MbMatrix *=NULL)
 Инвертировать.
 
bool LineIntersectionPoint (const MbCartPoint3D &pc, const MbVector3D &axis, MbCartPoint3D &p, double &d) const
 Найти ближайшую точку пересечения с линией.
 
bool PlanesIntersection (const MbPlacement3D &place, MbCartPoint3D &p, MbVector3D &axis) const
 Получить точку и направление линии пересечения плоскостей.
 
void TransformPoint (const MbMatrix3D &, MbCartPoint &) const
 Преобразовать 2D-точки в другую 2D-точку.
 
double GetXEpsilon () const
 Дать минимально различимую величину параметра U. Подробнее...
 
bool SetRoundedValue (bool total, double eps)
 Округлить.
 
bool operator== (const MbPlacement3D &) const
 Проверить на равенство.
 
bool operator!= (const MbPlacement3D &) const
 Проверить на неравенство.
 
void operator= (const MbPlacement3D &)
 Присвоить другую СК.
 
MbPlacement3D operator* (const MbPlacement3D &p) const
 Умножить на локальную систему (как перемножение матриц): P = this * p.
 
void Normalize ()
 Ортогонализовать и нормализовать оси ЛСК.
 
bool IsShift (const MbPlacement3D &, MbVector3D &, bool &isSame, double accuracy=LENGTH_EPSILON) const
 Проверить,является ли объект смещением.
 
bool IsDegenerate (double lenEps=Math::metricRegion, double angEps=Math::angleRegion) const
 Проверить на вырожденность.
 
void GetPointFrom (double x0, double y0, double z0, MbCartPoint3D &p, MbeLocalSystemType3D type=ls_CartesianSystem) const
 Дать точку в глобальной СК по локальным координатам.
 
void GetVectorFrom (double x1, double y1, double z1, MbVector3D &v, MbeLocalSystemType3D type=ls_CartesianSystem) const
 Дать вектор в глобальной СК по локальным координатам.
 
void GetPointFrom (MbCartPoint3D &p, MbeLocalSystemType3D type=ls_CartesianSystem) const
 Перевести точку из локальной в глобальную СК.
 
void GetVectorFrom (MbVector3D &v, MbeLocalSystemType3D type=ls_CartesianSystem) const
 Перевести вектор из локальной в глобальную СК.
 
void GetPointInto (MbCartPoint3D &p, MbeLocalSystemType3D type=ls_CartesianSystem) const
 Перевести точку из глобальной в локальную СК.
 
void GetVectorInto (MbVector3D &v, MbeLocalSystemType3D type=ls_CartesianSystem) const
 Перевести вектор из глобальной в локальную СК.
 
void GetPointAndDerivesFrom (MbCartPoint3D &point, MbVector3D &firstDer, MbVector3D &secondDer, MbVector3D &thirdDer, MbeLocalSystemType3D type=ls_CartesianSystem) const
 Перевести точку и первые три производные из локальной в глобальную СК.
 
void GetPointAndDerivesInto (MbCartPoint3D &point, MbVector3D &firstDer, MbVector3D &secondDer, MbVector3D &thirdDer, MbeLocalSystemType3D type=ls_CartesianSystem) const
 Перевести точку и первые три производные из глобальной в локальную СК.
 
void GetProperties (MbProperties &)
 Выдать свойства объекта.
 
void SetProperties (const MbProperties &)
 Записать свойства объекта.
 
Конструкторы.
 MbPlacement3D ()
 Конструктор по умолчанию.
 
 MbPlacement3D (const MbCartPoint3D &org)
 Конструктор по точке.
 
 MbPlacement3D (const MbVector3D &axisX, const MbVector3D &axisY, const MbCartPoint3D &org)
 Конструктор двум векторам и точке.
 
 MbPlacement3D (const MbPlacement3D &place)
 Конструктор копирования.
 
 MbPlacement3D (const MbMatrix3D &matr)
 Конструктор по матрице.
 
 MbPlacement3D (const MbCartPoint3D &org, const MbVector3D &axisZ, const MbVector3D &axisX, bool l=false)
 Конструктор по точке и двум векторам.
 
 MbPlacement3D (const MbCartPoint3D &org, const MbCartPoint3D &px, const MbCartPoint3D &py, bool l=false)
 Конструктор по трем точкам.
 
 MbPlacement3D (const MbCartPoint3D &org, const MbVector3D &axisZ, bool l=false)
 Конструктор по точке и вектору (ось Z) с произвольной осью X.
 

Статические открытые данные

static const MbPlacement3D global
 < Константа глобальной системы координат.
 

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

Локальная система координат в трёхмерном пространстве.

Локальная система координат в трёхмерном пространстве.
В большинстве случаев система координат является правой, а векторы системы ортонормированы. С помощью преобразований система координат (СК) может стать левой и не ортонормированной. Локальная система координат является декартовой. Точка в декартовой системе координат определяется тремя координатами x, y, z.
Локальная система может выступать в роли цилиндрической или сферической системы координат.
Точка в цилиндрической системе координат определяется тремя координатами r, f, z:
r, f - полярные координаты проекции точки на основную плоскость;
r - длина проекции радиус-вектора;
f - полярный угол проекции радиус-вектора;
z - аппликата (расстояние от точки до основной плоскости).
При использовании локальной системы координат в роли цилиндрической системы считаем, что:
начало координат цилиндрической системы совпадает с началом координат декартовой системы;
ось Oz цилиндрической системы координат совпадает с осью Oz декартовой системы;
основная плоскость цилиндрической системы координат совпадает с плоскостью Oxy декартовой системы;
полярная ось координат цилиндрической системы совпадает с осью Ox декартовой системы;
полярный угол f цилиндрической системы отсчитываем от оси Ox к положительному направлению оси Oy.
Точка в сферической системе координат определяется тремя координатами r, f, w:
r - расстояние от начала координат до точки (длина радиус-вектора);
f - угол между проекцией радиус-вектора на плоскость и лучом принадлежащим плоскости (долгота);
w - угол между радиус-вектором и нормалью к плоскости сферической системы (полярное расстояние).
При использовании локальной системы координат в роли сферической системы считаем, что:
начало сферической системы совпадает с началом декартовой системы координат;
луч перпендикулярный плоскости сферической системы координат совпадает с осью Oz декартовой системы;
плоскость сферической системы координат совпадает с плоскостью Oxy декартовой системы;
угол f сферической системы определяется отсчитываем от оси Ox к положительному направлению оси Oy.
Для ускорения преобразования координат локальная система имеет дополнительные данные - флаг состояния.
Для получения данных системы координат извне следует пользоваться методами Get...
Для модификации данных системы координат извне следует пользоваться методами Set..., которые автоматически сбрасывают флаг системы в неустановленное состояние.

Методы

◆ IsLeft()

bool MbPlacement3D::IsLeft ( ) const
inline

Проверить, является ли СК левой.

Проверить, является ли СК правой.

◆ SetFlag()

void MbPlacement3D::SetFlag ( bool  bLeft,
bool  bAffine = false,
bool  bOrt = true 
) const

Установить флаг состояния.

Установить СК как правую.

◆ GetXEpsilon()

double MbPlacement3D::GetXEpsilon ( ) const

Дать минимально различимую величину параметра U.

Дать минимально различимую величину параметра V.


Объявления и описания членов класса находятся в файле: