C3D Toolkit  Kernel - 111634, Vision - 2.6.1.24

Параметры поверхности по сетке кривых. Подробнее...

#include <op_shell_parameter.h>

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

 MeshSurfaceValues ()
 Конструктор по умолчанию.
 
 ~MeshSurfaceValues ()
 Деструктор.
 
bool Init (const RPArray< MbCurve3D > &curvesU, bool uClosed, const RPArray< MbCurve3D > &curvesV, bool vClosed, bool checkSelfInt, bool tess=false, const RPArray< MbPolyline3D > *chainsU=c3d_null, const RPArray< MbPolyline3D > *chainsV=c3d_null, MbeMatingType type0=trt_Position, MbeMatingType type1=trt_Position, MbeMatingType type2=trt_Position, MbeMatingType type3=trt_Position, const c3d::ConstSurfacesVector *surf0=c3d_null, const c3d::ConstSurfacesVector *surf1=c3d_null, const c3d::ConstSurfacesVector *surf2=c3d_null, const c3d::ConstSurfacesVector *surf3=c3d_null, const MbPoint3D *pnt=c3d_null, bool modify=true, bool direct0=true, bool direct1=true, bool direct2=true, bool direct3=true)
 Функция инициализации. Подробнее...
 
void Init (const MeshSurfaceValues &pars, bool sameItems)
 Функция инициализации. Подробнее...
 
bool IsCurveOnSurface (const MbCurve3D &curve, const MbSurface &surf) const
 Лежит ли кривая на поверхности. Подробнее...
 
bool GetPointsOfCrossing (const MbCurve3D &curve, const RPArray< MbCurve3D > &otherCurves, SArray< MbCartPoint3D > &res) const
 Получить точки скрещивания-пересечения кривой с семейством кривых.
 
bool CheckMultiSegment (const MbSNameMaker &snMaker) const
 Проверка на наличие контуров и ломаных.
 
void InvertCurvesV ()
 Обратить порядок следования кривых по второму направлению, чтобы directOrderV был true.
 
const MbCurve3DGetBorderCurve (ptrdiff_t i) const
 Получить кривую на границе с номером i.
 
MbeMatingType GetTransitType (ptrdiff_t i) const
 Получить тип сопряжения на границе с номером i.
 
void GetSurface (size_t i, c3d::ConstSurfacesVector &surfaces) const
 Получить поверхность сопряжения на границе с номером i.
 
void SetSurface (size_t i, c3d::SurfacesVector &surfaces)
 Получить поверхность сопряжения на границе с номером i.
 
bool IsDefaultDirection (size_t i) const
 Получить направление сопряжения на границе с номером i.
 
bool GetUClosed () const
 Замкнутость по U направлению.
 
bool GetVClosed () const
 Замкнутость по V направлению.
 
void SetUClosed (bool cls)
 Замкнутость по U направлению.
 
void SetVClosed (bool cls)
 Замкнутость по V направлению.
 
size_t GetCurvesUCount () const
 Количество кривых по U.
 
ptrdiff_t GetCurvesUMaxIndex () const
 Максимальный индекс в массиве кривых по U.
 
const MbCurve3DGetCurveU (size_t k) const
 Получить кривую по индексу.
 
MbCurve3DSetCurveU (size_t k)
 Получить кривую по индексу.
 
void GetCurvesU (RPArray< MbCurve3D > &curves) const
 Получить кривые по U.
 
void SetCurvesU (const RPArray< MbCurve3D > &newCurves)
 Установить кривые по U.
 
void DetachCurvesU (RPArray< MbCurve3D > &curves)
 Отцепить кривые по U.
 
size_t FindCurveU (const MbCurve3D *curve) const
 Найти кривую.
 
size_t GetCurvesVCount () const
 Количество кривых по V.
 
ptrdiff_t GetCurvesVMaxIndex () const
 Максимальный индекс в массиве кривых по V.
 
const MbCurve3DGetCurveV (size_t k) const
 Получить кривую по индексу.
 
MbCurve3DSetCurveV (size_t k) const
 Получить кривую по индексу.
 
void GetCurvesV (RPArray< MbCurve3D > &curves) const
 Получить кривые по V.
 
void SetCurvesV (const RPArray< MbCurve3D > &newCurves)
 Установить кривые по V.
 
void DetachCurvesV (RPArray< MbCurve3D > &curves)
 Отцепить кривые по V.
 
size_t FindCurveV (const MbCurve3D *curve) const
 Найти кривую.
 
size_t GetChainsUCount () const
 Количество цепочек по U.
 
ptrdiff_t GetChainsUMaxIndex () const
 Максимальный индекс в массиве цепочек по U.
 
const MbPolyline3DGetChainU (size_t k) const
 Получить цепочку по индексу.
 
MbPolyline3DSetChainU (size_t k)
 Получить цепочку по индексу.
 
void GetChainsU (RPArray< MbPolyline3D > &chains) const
 Получить цепочки по U.
 
void SetChainsU (const RPArray< MbPolyline3D > &newChains)
 Установить цепочки по U.
 
void DetachChainsU (RPArray< MbPolyline3D > &chains)
 Отцепить цепочки по U.
 
size_t FindChainU (const MbPolyline3D *curve) const
 Найти цепочку.
 
size_t GetChainsVCount () const
 Количество цепочек по V.
 
ptrdiff_t GetChainsVMaxIndex () const
 Максимальный индекс в массиве цепочек по V.
 
const MbPolyline3DGetChainV (size_t k) const
 Получить цепочку по индексу.
 
MbPolyline3DSetChainV (size_t k)
 Получить цепочку по индексу.
 
void GetChainsV (RPArray< MbPolyline3D > &chains) const
 Получить цепочки по V.
 
void SetChainsV (const RPArray< MbPolyline3D > &newChains)
 Установить цепочки по V.
 
void DetachChainsV (RPArray< MbPolyline3D > &chains)
 Отцепить цепочки по V.
 
size_t FindChainV (const MbPolyline3D *curve) const
 Найти цепочку.
 
void SetPoint (const MbPoint3D *pnt)
 Установить точку.
 
const MbPoint3DGetPoint () const
 Получить точку.
 
MbPoint3DSetPoint ()
 Получить точку.
 
bool IsSame (const MeshSurfaceValues &, double accuracy) const
 Являются ли объекты равными?
 
bool CheckSelfInt () const
 Нужно ли проверять самопересечения? Подробнее...
 
Вспомогательные функции геометрических преобразований.
void Transform (const MbMatrix3D &, MbRegTransform *ireg)
 Преобразовать кривые согласно матрице.
 
void Move (const MbVector3D &, MbRegTransform *ireg)
 Сдвинуть кривые вдоль вектора.
 
void Rotate (const MbAxis3D &, double angle, MbRegTransform *ireg)
 Повернуть кривые вокруг оси на заданный угол.
 
bool TransformCurves ()
 Привести кривые к поверхностной форме (кривые на поверхности)
 
bool TransformForCompositeSurfaceMating ()
 Привести кривые к поверхностной форме (кривые на поверхности)
 
bool SetContinuousDerivativeLength (bool dirU, bool &smooth, VERSION version)
 Обеспечить непрерывность длины первой производной для кривых семейства dirU.
 

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

static bool AreCurvesMatingToSurface (const RPArray< MbCurve3D > &curves, const MbCurve3D *borderCurve, const c3d::SurfacesVector &matSurfaces, bool &isTangent, bool &isNormal, bool &isSmooth, bool uc, bool vc)
 Сопрягаются ли кривые с поверхностью в точках пересечения с borderCurve. Подробнее...
 
static bool AreCurvesMatingToSurface (const RPArray< MbCurve3D > &curves, const MbCurve3D *borderCurve, bool &isTangent, bool &isNormal, bool &isSmooth, bool uc, bool vc)
 Сопрягаются ли кривые с поверхностью в точках пересечения с поверхностной кривой (borderCurve).
 
static const MbSurfaceGetMatingSurface (const MbCurve3D *borderCurve, double param)
 Получить поверхность сопряжения к граничной кривой по параметру на кривой.
 
static const MbSurfaceGetMatingSurface (const MbCurve3D *borderCurve, const MbCurve3D *transCurve)
 Получить поверхность сопряжения к граничной кривой в точке пересечения с трансверсальной кривой.
 
static bool GetSurfaceCurve (const MbCurve3D *borderCurve, double param, const MbSurfaceCurve *&sCurve, double &t)
 Получить поверхностную кривую в указанной точке на границе сопряжения.
 
static bool IsSurfaceCurveType (const MbCurve3D *borderCurve)
 Является ли кривая поверхностной по типу.
 

Друзья

class MbMeshShell
 

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

Параметры поверхности по сетке кривых.

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

Методы

◆ Init() [1/2]

bool MeshSurfaceValues::Init ( const RPArray< MbCurve3D > &  curvesU,
bool  uClosed,
const RPArray< MbCurve3D > &  curvesV,
bool  vClosed,
bool  checkSelfInt,
bool  tess = false,
const RPArray< MbPolyline3D > *  chainsU = c3d_null,
const RPArray< MbPolyline3D > *  chainsV = c3d_null,
MbeMatingType  type0 = trt_Position,
MbeMatingType  type1 = trt_Position,
MbeMatingType  type2 = trt_Position,
MbeMatingType  type3 = trt_Position,
const c3d::ConstSurfacesVector *  surf0 = c3d_null,
const c3d::ConstSurfacesVector *  surf1 = c3d_null,
const c3d::ConstSurfacesVector *  surf2 = c3d_null,
const c3d::ConstSurfacesVector *  surf3 = c3d_null,
const MbPoint3D pnt = c3d_null,
bool  modify = true,
bool  direct0 = true,
bool  direct1 = true,
bool  direct2 = true,
bool  direct3 = true 
)

Функция инициализации.

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

Аргументы
[in]curvesU,curvesV- Наборы кривых по первому и второму направлению.
[in]chainsU,chainsV- Наборы цепочек по первому и второму направлению.
[in]uClosed,vClosed- Признак замкнутости по направлениям u и v.
[in]checkSelfInt- Флаг проверки на самопересечение.
[in]tesselate- Достраивать ли дополнительные сечения.
[in]type0,type1,type2,type3- Типы сопряжений на границах.
[in]surf0,surf1,surf2,surf3- Соответствующие сопрягаемые поверхности.
[in]point- Точка на поверхности. Используется для уточнения.
[in]modify- Флаг модификации кривых по сопряжениям.
[in]direct0,direct1,direct2,direct3- Направление поверхности на границе сопряжения.
Возвращает
Статус выполнения.

◆ Init() [2/2]

void MeshSurfaceValues::Init ( const MeshSurfaceValues pars,
bool  sameItems 
)

Функция инициализации.

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

Аргументы
[in]pars- Исходные параметры.
[in]sameItems- Флаг использования оригиналов кривых и поверхностей.

◆ IsCurveOnSurface()

bool MeshSurfaceValues::IsCurveOnSurface ( const MbCurve3D curve,
const MbSurface surf 
) const

Лежит ли кривая на поверхности.

Лежит ли кривая полностью на поверхности.

Аргументы
[in]curve- Проверяемая кривая.
[in]surf- Проверяемая поверхность.
Возвращает
Признак, что кривая лежит на поверхности.

◆ AreCurvesMatingToSurface()

static bool MeshSurfaceValues::AreCurvesMatingToSurface ( const RPArray< MbCurve3D > &  curves,
const MbCurve3D borderCurve,
const c3d::SurfacesVector &  matSurfaces,
bool &  isTangent,
bool &  isNormal,
bool &  isSmooth,
bool  uc,
bool  vc 
)
static

Сопрягаются ли кривые с поверхностью в точках пересечения с borderCurve.

Сопрягаются ли кривые (касательно, по нормали, гладко) с поверхностью в точках пересечения с borderCurve.

Аргументы
[in]curves- Набор проверяемых кривых.
[in]borderCurve-Кривая на поверхности.
[in]matSurfaces-Набор поверхностей сопряжения.
[out]isTangent- Признак касательного сопряжения.
[out]isNormal- Признак сопряжения по нормали.
[out]isSmooth- Признак гладкого сопряжения.
[in]uc,vc- Замкнутость поверхности по u и v.
Возвращает
Признак, что кривая лежит на поверхности.

◆ CheckSelfInt()

bool MeshSurfaceValues::CheckSelfInt ( ) const
inline

Нужно ли проверять самопересечения?

Достраивать ли дополнительные сечения.


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