C3D Toolkit  Kernel - 107737, Vision - 190918.107737

Криволинейная направляющая для кинематической поверхности. Подробнее...

#include <surf_spine.h>

+ Граф наследования:MbSpine:
+ Граф связей класса MbSpine:

Открытые типы

enum  LocalAxises {
  la_planeParallel = 0, la_culcDirection = 1, la_userDirection = 2, la_surfaceNormal = 3,
  la_optionalCurve = 4
}
 Способы движения локальной системы координат вдоль направляющей кривой "curve". Подробнее...
 

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

Базовые функции
MbeSpaceType IsA () const
 Тип элемента.
 
MbSpineDuplicate (MbRegDuplicate *=NULL) const
 Сделать копию элемента.
 
bool SetEqual (const MbSpine &)
 Сделать равным.
 
bool IsSimilar (const MbSpine &) const
 Являются ли объекты подобными.
 
bool IsSame (const MbSpine &other, double accuracy=LENGTH_EPSILON) const
 Равны ли объекты.
 
void Transform (const MbMatrix3D &, MbRegTransform *=NULL)
 Преобразовать элемент согласно матрице.
 
void Move (const MbVector3D &, MbRegTransform *=NULL)
 Сдвиг.
 
void Rotate (const MbAxis3D &, double angle, MbRegTransform *=NULL)
 Повернуть вокруг оси.
 
void Inverse (MbRegTransform *iReg=NULL)
 Изменить направление.
 
void Reset ()
 Сбросить временные данные объекта.
 
Общие описания области определения направляющей кривой
double GetTMax () const
 Вернуть максимальное значение параметра.
 
double GetTMin () const
 Вернуть минимальное значение параметра.
 
bool IsClosed () const
 Проверка замкнутости кривой.
 
Функции для работы в области определения направляющей кривой

Функции PointOn, FirstDer... корректируют параметры при выходе их за пределы области определения параметров направляющей кривой.

void PointOn (double &t, MbCartPoint3D &p) const
 Точка на кривой.
 
void FirstDer (double &t, MbVector3D &p) const
 Первая производная.
 
void SecondDer (double &t, MbVector3D &p) const
 Вторая производная.
 
void ThirdDer (double &t, MbVector3D &p) const
 Третья производная.
 
Функции для работы внутри и вне области определения направляющей кривой

функции _PointOn, _FirstDer... корректируют параметры при выходе их за пределы области определения параметров направляющей кривой.

void _PointOn (double t, MbCartPoint3D &p) const
 Точка на кривой.
 
void _FirstDer (double t, MbVector3D &p) const
 Первая производная.
 
void _SecondDer (double t, MbVector3D &p) const
 Вторая производная.
 
void _ThirdDer (double t, MbVector3D &p) const
 Третья производная.
 
virtual void Explore (double &t, bool ext, MbCartPoint3D &pnt, MbVector3D &fir, MbVector3D *sec, MbVector3D *thir) const
 Вычислить значения точки и производных для заданного параметра.
 
Функции движения по направляющей кривой
double Step (double t, double sag) const
 Вычисление шага аппроксимации по величине прогиба.
 
double DeviationStep (double t, double angle) const
 Вычисление шага аппроксимации по углу отклонения нормали.
 
Функции изменения и доступа к данным
void TransformMatrix (double v, MbMatrix3D &matrix) const
 Определение матрицы переноса для образующей.
Подробнее...
 
void MoveVector (double &v, MbVector3D &vect) const
 Определение вектора переноса для образующей.
Подробнее...
 
const MbVector3DGetOrt0 () const
 Первой вектор базиса в рассчитанной направляющей. Подробнее...
 
void CalculateMatrix (double &v, bool ext, MbMatrix3D &matrix0, MbMatrix3D &matrix1, MbMatrix3D &matrix2) const
 Вычисление матриц преобразования. Подробнее...
 
void CalculateMatrix (double &v, bool ext, MbMatrix3D &matrix0, MbMatrix3D &matrix1) const
 
void CalculateMatrix0 (double &v, bool ext, MbMatrix3D &matrix0) const
 
void CalculateMatrix1 (double &v, bool ext, MbMatrix3D &matrix1) const
 
void CalculateMatrix2 (double &v, bool ext, MbMatrix3D &matrix2) const
 
MbPlacement3D GetPlacement (double v) const
 Построить плейсмент в заданной точке. Подробнее...
 
const MbCurve3DGetCurve () const
 Направляющая кривая.
 
MbCurve3DSetCurve ()
 Дать направляющую кривую для изменения.
 
const MbCurve3DGetDirectionCurve () const
 Ориентирующая кривая.
 
VERSION GetVersion () const
 Версия расчета вектора ориентации матрицы преобразования.
 
void ChangeCurve (const MbCurve3D &c)
 Изменить направляющую кривую.
 
void ChangeOptionalCurve (const MbCurve3D *d)
 Изменить ориентирующую кривую.
 
const MbVector3DGetDirection () const
 Вектор ориентации матрицы преобразования.
 
bool SetDirection (const MbVector3D &d, bool checkBySpineCurve=false)
 Изменить вектор ориентации матрицы преобразования.
 
LocalAxises GetLocalAxisMethod () const
 Лать способ ориентации локальной системы координат.
 
void SetLocalAxisMethod (LocalAxises la)
 Лать способ ориентации локальной системы координат.
 
bool IsParallel () const
 Признак параллельного переноса.
 
bool IsUserDirection () const
 Признак пользовательского направления.
 
double GetOrtParam () const
 Параметр кривой, для которой расчитан базис направляющей.
 
void SetOrtParam (double t)
 Установить параметр кривой, для которой расчитан базис направляющей.
 
size_t GetSegmentsCount () const
 Количество сегментов направляющей кривой.
 
void PrepareWrite ()
 Функция регистрации по количеству ссылок для предотвращения многократной записи. Подробнее...
 
- Открытые члены унаследованные от MbRefItem
 MbRefItem ()
 Конструктор без параметров.
 
virtual MbeRefType RefType () const
 Регистрационный тип (для копирования, дублирования).
 
refcount_t GetUseCount () const
 Выдать количество ссылок (выдать количество владельцев объекта).
 
refcount_t AddRef () const
 Увеличить количество ссылок на единицу.
 
refcount_t DecRef () const
 Уменьшить количество ссылок на единицу.
 
refcount_t Release () const
 Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя.
 
- Открытые члены унаследованные от TapeBase
 TapeBase (RegistrableRec regs=noRegistrable)
 Конструктор.
 
 TapeBase (const TapeBase &)
 Конструктор копирования
 
virtual ~TapeBase ()
 Деструктор.
 
RegistrableRec GetRegistrable () const
 Является ли потоковый класс регистрируемым.
 
void SetRegistrable (RegistrableRec regs=registrable) const
 Установить состояние регистрации потокового класса.
 
virtual ClassDescriptor GetClassDescriptor (const VersionContainer &) const =0
 Получить дескриптор класса
 
virtual const char * GetPureName (const VersionContainer &) const
 Получить имя класса.
 
virtual bool IsFamilyRegistrable () const
 Принадлежит ли объект к регистрируемому семейству.
 

Открытые статические члены

static MbSpineCreate (const MbCurve3D &c, bool parallel, bool same, VERSION vers=Math::DefaultMathVersion())
 Конструктор по направляющей кривой.
Подробнее...
 
static MbSpineCreate (const MbCurve3D &c, bool same, const MbVector3D &dir, bool parallel, VERSION vers=Math::DefaultMathVersion())
 Конструктор по направляющей кривой и вектору ориентации матрицы преобразования.
Подробнее...
 
static MbSpineCreate (const MbCurve3D &sp, bool sameS, const MbCurve3D &dc, bool sameD, bool parallel, VERSION vers=Math::DefaultMathVersion())
 Конструктор по направляющей кривой и кривой векторa ориентации матрицы преобразования.
Подробнее...
 

Защищенные члены

 MbSpine (const MbCurve3D &cur, bool par, bool same, VERSION vers=Math::DefaultMathVersion())
 Конструктор по направляющей кривой.
Подробнее...
 
 MbSpine (const MbCurve3D &cur, bool same, const MbVector3D &dir, bool par, VERSION vers=Math::DefaultMathVersion())
 Конструктор по направляющей кривой и вектору ориентации матрицы преобразования.
Подробнее...
 
 MbSpine (const MbCurve3D &cur, bool same, const MbCurve3D &opt, bool sameO, bool par, VERSION vers=Math::DefaultMathVersion())
 Конструктор по направляющей кривой и кривой векторa ориентации матрицы преобразования.
Подробнее...
 

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

Криволинейная направляющая для кинематической поверхности.

Криволинейная направляющая для кинематической поверхности (поверхности заметания) служит для расчёта в каждой точке направляющей кривой локальной система координат.
Локальная ось 0 ориентирована по касательной кривой "curve".
Локальная ось 1 ориентирована в сторону вектора "direction" или в сторону кривой "optionalCurve".
Локальная ось 2 дополняет локальную систему до правой системы координат.

Перечисления

◆ LocalAxises

Способы движения локальной системы координат вдоль направляющей кривой "curve".

Элементы перечислений
la_planeParallel 

Плоскопараллельный, сохраняющий исходную ориентацию осей.

la_culcDirection 

Вектор "direction" рассчитан объектом. Ось 0 ориентирована по касательной кривой "curve", ось 1 - в сторону вектора "direction".

la_userDirection 

Вектор "direction" задан конструктору. Ось 0 ориентирована по касательной кривой "curve", ось 1 - в сторону вектора "direction".

la_surfaceNormal 

Ось 0 ориентирована по касательной кривой на поверхности "curve", ось 1 - по нормали поверхности кривой "curve".

la_optionalCurve 

Ось 0 ориентирована по касательной кривой "curve", ось 1 - в сторону кривой "optionalCurve".

Конструктор(ы)

◆ MbSpine() [1/3]

MbSpine::MbSpine ( const MbCurve3D cur,
bool  par,
bool  same,
VERSION  vers = Math::DefaultMathVersion() 
)
protected

Конструктор по направляющей кривой.

Конструктор по направляющей кривой.

Аргументы
[in]cur- Направляющая кривая.
[in]par- Признак параллельного переноса.
[in]same- Признак использования оригинала направляющей кривой, а не ее копии.
[in]vers- Версия операции.

◆ MbSpine() [2/3]

MbSpine::MbSpine ( const MbCurve3D cur,
bool  same,
const MbVector3D dir,
bool  par,
VERSION  vers = Math::DefaultMathVersion() 
)
protected

Конструктор по направляющей кривой и вектору ориентации матрицы преобразования.

Конструктор по направляющей кривой и вектору ориентации матрицы преобразования.

Аргументы
[in]cur- Направляющая кривая.
[in]same- Признак использования оригинала направляющей кривой, а не ее копии.
[in]dir- Вектор ориентации матрицы преобразования.
[in]par- Признак параллельного переноса.
[in]vers- Версия вычисления осей локальной системы координат.

◆ MbSpine() [3/3]

MbSpine::MbSpine ( const MbCurve3D cur,
bool  same,
const MbCurve3D opt,
bool  sameO,
bool  par,
VERSION  vers = Math::DefaultMathVersion() 
)
protected

Конструктор по направляющей кривой и кривой векторa ориентации матрицы преобразования.

Конструктор по направляющей кривой и кривой векторa ориентации матрицы преобразования.

Аргументы
[in]cur- Направляющая кривая
[in]same- Признак использования оригинала направляющей кривой, а не ее копии
[in]opt- Кривая векторa ориентации матрицы преобразования
[in]sameO- Признак использования оригинала кривой векторa ориентации матрицы преобразования, а не ее копии
[in]par- Признак параллельного переноса.
[in]vers- Версия вычисления осей локальной системы координат.

Методы

◆ TransformMatrix()

void MbSpine::TransformMatrix ( double  v,
MbMatrix3D matrix 
) const

Определение матрицы переноса для образующей.

Определение матрицы переноса для образующей.

Аргументы
[in]v- Параметр на направляющей кривой
[out]matrix- Результат - матрица

◆ MoveVector()

void MbSpine::MoveVector ( double &  v,
MbVector3D vect 
) const

Определение вектора переноса для образующей.

Определение вектора переноса для образующей.

Аргументы
[in]v- Параметр на направляющей кривой
[out]vect- Результат - вектор

◆ GetOrt0()

const MbVector3D& MbSpine::GetOrt0 ( ) const
inline

Первой вектор базиса в рассчитанной направляющей.

Первой вектор базиса в рассчитанной направляющей.

Возвращает
Вектор

◆ CalculateMatrix()

void MbSpine::CalculateMatrix ( double &  v,
bool  ext,
MbMatrix3D matrix0,
MbMatrix3D matrix1,
MbMatrix3D matrix2 
) const

Вычисление матриц преобразования.

Вычисление матриц преобразования радиуса-вектора (matrix0) и его первой и второй производных (matrix1, matrix2) для параметра на направляющей. При ext==true функция переносит параметр v в область определения направляющей кривой.

Аргументы
[in,out]v- Параметр на направляющей кривой

◆ GetPlacement()

MbPlacement3D MbSpine::GetPlacement ( double  v) const

Построить плейсмент в заданной точке.

Построить плейсмент в заданной точке.

Аргументы
[in]v- Параметр на направляющей кривой

◆ PrepareWrite()

void MbSpine::PrepareWrite ( )
inline

Функция регистрации по количеству ссылок для предотвращения многократной записи.

Функция регистрации по количеству ссылок для предотвращения многократной записи.

◆ Create() [1/3]

static MbSpine& MbSpine::Create ( const MbCurve3D c,
bool  parallel,
bool  same,
VERSION  vers = Math::DefaultMathVersion() 
)
static

Конструктор по направляющей кривой.

Конструктор по направляющей кривой.

Аргументы
[in]c- Направляющая кривая
[in]parallel- Признак параллельного переноса
[in]same- Признак использования оригинала направляющей кривой, а не ее копии
[in]vers- Версия вычисления осей локальной системы координат.

◆ Create() [2/3]

static MbSpine* MbSpine::Create ( const MbCurve3D c,
bool  same,
const MbVector3D dir,
bool  parallel,
VERSION  vers = Math::DefaultMathVersion() 
)
static

Конструктор по направляющей кривой и вектору ориентации матрицы преобразования.

Конструктор по направляющей кривой и вектору ориентации матрицы преобразования.

Аргументы
[in]c- Направляющая кривая
[in]same- Признак использования оригинала направляющей кривой, а не ее копии
[in]direction- Вектор ориентации матрицы преобразования.
[in]parallel- Признак параллельного переноса
[in]vers- Версия вычисления осей локальной системы координат.

◆ Create() [3/3]

static MbSpine* MbSpine::Create ( const MbCurve3D sp,
bool  sameS,
const MbCurve3D dc,
bool  sameD,
bool  parallel,
VERSION  vers = Math::DefaultMathVersion() 
)
static

Конструктор по направляющей кривой и кривой векторa ориентации матрицы преобразования.

Конструктор по направляющей кривой и кривой векторa ориентации матрицы преобразования.

Аргументы
[in]sp- Направляющая кривая
[in]sameS- Признак использования оригинала направляющей кривой, а не ее копии
[in]dc- Кривая векторa ориентации матрицы преобразования
[in]sameD- Признак использования оригинала кривой векторa ориентации матрицы преобразования, а не ее копии
[in]parallel- Признак параллельного переноса
[in]vers- Версия вычисления осей локальной системы координат.

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