C3D Kernel  104065
Открытые члены | Защищенные члены
Класс MbChannelSurface

Поверхность скругления с переменным радиусом обычная или с сохранением кромки. Подробнее...

Граф наследования:MbChannelSurface:
Inheritance graph
[см. легенду]
Граф связей класса MbChannelSurface:
Collaboration graph
[см. легенду]

Полный список членов класса

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

 MbChannelSurface (MbSurfaceCurve &crv1, MbSurfaceCurve &crv2, double d1, double d2, MbeSmoothForm fm, double cn, MbFunction &func, bool ev)
 Конструктор по двум кривым и типу сопряжения.
 MbChannelSurface (MbSurfaceCurve &crv1, MbSurfaceCurve &crv2, double d1, double d2, MbeSmoothForm fm, double cn, MbFunction &func, bool byFirst, bool ev)
 Конструктор по двум кривым и типу сопряжения.
 VISITING_CLASS (MbChannelSurface)
Общие функции геометрического объекта
virtual MbeSpaceType IsA () const
 Получить тип объекта.
virtual MbSpaceItemDuplicate (MbRegDuplicate *=NULL) const
 Создать копию объекта.
virtual bool IsSame (const MbSpaceItem &other, double accuracy=LENGTH_EPSILON) const
 Определить, являются ли объекты равными.
virtual bool SetEqual (const MbSpaceItem &)
 Сделать объекты равным, если они подобны.
virtual bool IsSimilar (const MbSpaceItem &) const
 Определить, являются ли объекты подобными.
virtual void GetProperties (MbProperties &properties)
 Выдать свойства объекта.
Общие функции поверхности
virtual MbSurfaceOffset (double d, bool same) const
 Построить эквидистантую поверхность.
virtual double GetFilletRadius (const MbCartPoint3D &p) const
 Дать радиус скругления, если поверхность является поверхностью скругления.
Функции поверхности сопряжения
virtual MbSmoothSurfaceCurvesDuplicate () const
 Копия с теми же опорными поверхностям.
virtual double GetSmoothRadius () const
 Дать радиус.
virtual double DistanceRatio (bool firstCurve, MbCartPoint3D &p, double distance) const
 Дать коэффициент для радиуса.
Функции поверхности скругления с переменным радиусом обычная или с сохранением кромки
virtual bool InsertPoints (double &t1, const MbCartPoint &p1, bool add1, double &t2, const MbCartPoint &p2, bool add2)
 Добавить точку в опорные кривые границы.
bool CheckPole (double &u, bool bModify=true)
 Проверить наличие полюса.
const MbFunctionGetFunction () const
 Получить функцию изменения радиуса.
MbFunctionSetFunction ()
 Получить функцию изменения радиуса.
void SetFunction (MbFunction &funcNew)
 Заменить функцию изменения радиуса.

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

 MbChannelSurface (const MbChannelSurface &, MbRegDuplicate *)
 MbChannelSurface (const MbChannelSurface *)
void CalculateCurves ()

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

Поверхность скругления с переменным радиусом является NURBS-поверхностью, построенной по трём кривым: curve1, curve0, curve2. Первый параметр поверхности совпадает с параметром кривых curve1, curve0, curve2. Второй параметр изменяется от нуля (точки совпадают с curve1) до единицы (точки совпадают с curve2). Функция function определяет изменение радиуса и равна отношению текущего радиуса к заданному для поверхности радиусу. Параметр функции радиуса совпадает с параметром кривых curve1, curve0, curve2. Если коэффициент формы conic = _ARC_ ( 0 ), то вес каждой точки кривой curve0 задаётся функцией weights0 и вычислен так, что сечение поверхности вдоль её второго параметра будет дугой окружности, то есть при любом параметре u три точки curve1(u), curve0(u), curve2(u) определяют NURBS-кривую в форме дуги окружности. Если коэффициент формы conic != _ARC_, то вес каждой точки кривой curve0 равен conic / ( 1.0 - conic ). При conic = 0.5 сечение поверхности вдоль её второго параметра будет параболой.


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

MbChannelSurface::MbChannelSurface ( MbSurfaceCurve crv1,
MbSurfaceCurve crv2,
double  d1,
double  d2,
MbeSmoothForm  fm,
double  cn,
MbFunction func,
bool  ev 
)

Конструктор по двум кривым и типу сопряжения.

Аргументы:
[in]crv1- Опорная кривая на первой поверхности
[in]crv2- Опорная кривая на второй поверхности
[in]d1- Радиус скругления со знаком для поверхности кривой crve1
[in]d2- Радиус скругления со знаком для поверхности кривой crve2
[in]fm- Тип сопряжения:
st_Span - скругление с заданной хордой
st_Fillet - скругление с заданными радиусами
[in]cn- Коэффициент формы, изменяется от 0.05 до 0.95 (при 0.5 - дуга окружности)
[in]func- Функция изменения радиуса
[in]ev- Равномерная параметризация по дуге или нет
MbChannelSurface::MbChannelSurface ( MbSurfaceCurve crv1,
MbSurfaceCurve crv2,
double  d1,
double  d2,
MbeSmoothForm  fm,
double  cn,
MbFunction func,
bool  byFirst,
bool  ev 
)

Конструктор поверхности с сохранением кромки по двум кривым и типу сопряжения.

Аргументы:
[in]crv1- Опорная кривая на первой поверхности
[in]crv2- Опорная кривая на второй поверхности
[in]d1- Радиус скругления со знаком для поверхности кривой crve1
[in]d2- Радиус скругления со знаком для поверхности кривой crve2
[in]fm- Тип сопряжения:
st_Span - скругление с заданной хордой
st_Fillet - скругление с заданными радиусами
[in]cn- Коэффициент формы, изменяется от 0.05 до 0.95 (при 0.5 - дуга окружности)
[in]func- Функция изменения радиуса
[in]byFirst- true - кривая curve2 является кромкой, false - кривая curve1 является кромкой
[in]ev- Равномерная параметризация по дуге или нет

Методы

virtual MbSpaceItem& MbChannelSurface::Duplicate ( MbRegDuplicate iReg = NULL) const [virtual]

Создать копию объекта с использованием регистратора. Регистратор используется для предотвращения многократного копирования объекта. Если объект содержит ссылки на другие объекты, то вложенные объекты так же копируются. Допустимо не передавать регистратор в функцию. Тогда будет создана новая копия объекта. При копировании одиночного объекта или набора не связанных между собой объектов допустимо не использовать регистратор. Регистратор необходимо использовать, если надо последовательно копировать несколько взаимосвязанных объектов. Возможно, что связь объектов обусловлена наличием в них ссылок на общие объекты. Тогда, при копировании без использования регистратора, можно получить набор копий, содержащих ссылки на разные копии одного и того же вложенного объекта, что ведет к потере связи между копиями.

Аргументы:
[in]iReg- Регистратор.
Возвращает:
Копия объекта.

Переопределяет метод предка MbFilletSurface.

virtual bool MbChannelSurface::IsSame ( const MbSpaceItem other,
double  accuracy = LENGTH_EPSILON 
) const [virtual]

Равными считаются однотипные объекты, все данные которых одинаковы (равны).

Аргументы:
[in]item- Объект для сравнения.
[in]accuracy- Точность сравнения.
Возвращает:
Равны ли объекты.

Переопределяет метод предка MbFilletSurface.

virtual bool MbChannelSurface::SetEqual ( const MbSpaceItem item) [virtual]

Равными можно сделать только подобные объекты. Подобный объект приравнивается присланному путем изменения численных данных.

Аргументы:
[in]item- Объект для инициализации.
Возвращает:
Сделан ли объект равным присланному.

Переопределяет метод предка MbFilletSurface.

virtual bool MbChannelSurface::IsSimilar ( const MbSpaceItem item) const [virtual]

Подобными считаются однотипные объекты, данные которых можно приравнять или данные так же являются подобными (указатели). Подобный объект можно инициализировать по данным подобного ему объекта (приравнять один другому без изменения адресов).

Аргументы:
[in]item- Объект для сравнения.
Возвращает:
Подобны ли объекты.

Переопределяет метод предка MbFilletSurface.

virtual void MbChannelSurface::GetProperties ( MbProperties properties) [virtual]

Выдать внутренние данные (свойства) объекта для их просмотра и модификации.

Аргументы:
[in]properties- Контейнер для внутренних данных объекта.

Переопределяет метод предка MbFilletSurface.

virtual MbSurface* MbChannelSurface::Offset ( double  d,
bool  same 
) const [virtual]
Аргументы:
[in]d- Расстояние по нормали от базовой до эквидистантной поверхности.
[in]same- Флаг, показывающий, использовать ли в эквидистантной поверхности текущую поверхность или ее копию.

Переопределяет метод предка MbFilletSurface.

virtual bool MbChannelSurface::InsertPoints ( double &  t1,
const MbCartPoint p1,
bool  add1,
double &  t2,
const MbCartPoint p2,
bool  add2 
) [virtual]

Добавить точку в опорные кривые границы.
Точка будет добавлена в кривую, если она имеет тип pt_LineSegment, pt_CubicSpline или pt_Hermit.

Аргументы:
[out]t1- Параметр точки на первой кривой (если add1 = true)
[in]p1- Точка на первой кривой
[in]add1- Нужно ли добавлять точку в первую кривую
[out]t2- Параметр точки на второй кривой (если add2 = true)
[in]p2- Точка на второй кривой
[in]add2- Нужно ли добавлять точку во вторую кривую

Переопределяет метод предка MbSmoothSurface.

bool MbChannelSurface::CheckPole ( double &  u,
bool  bModify = true 
)

Проверить наличие полюса.

Аргументы:
[in]u- Начальное приближение параметра по U для поиска полюса
[in]bModify- Флаг модификации поверхности
если true, то поверхность корректирует свои параметры по U и соответственно им опорные кривые curve1 и curve2
Возвращает:
true - если нашли полюс

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