C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

Ребро грани. Подробнее...

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

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

 MbCurveEdge (const MbVertex &beg, const MbVertex &end, const MbSurfaceIntersectionCurve &initCurve, bool sense)
 Конструктор по вершинам, кривой пересечения и ее ориентации в ребре.
 
 MbCurveEdge (const MbVertex *beg, const MbVertex *end, const MbSurfaceIntersectionCurve &initCurve, bool sense)
 Конструктор по вершинам, кривой пересечения и ее ориентации в ребре. Подробнее...
 
 MbCurveEdge (const MbSurfaceIntersectionCurve &, bool sense)
 Конструктор по кривой пересечения. Подробнее...
 
 MbCurveEdge (const MbCurveEdge &other, const MbSurfaceIntersectionCurve &newCurve)
 Конструктор копирования с использованием другой кривой.
 
virtual ~MbCurveEdge ()
 Деструктор.
 
virtual MbeTopologyType IsA () const
 Тип элемента.
 
virtual MbCurveEdgeDataDuplicate (MbRegDuplicate *=NULL) const
 Создать новое ребро копированием всех данных исходного ребра.
 
virtual void SetOwnChangedThrough (MbeChangedType)
 Установить флаг изменения в положение измененного объекта.
 
virtual void Reverse ()
 Изменить направление ребра на противоположной, не изменяя кривую.
 
virtual bool IsSame (const MbTopologyItem &, double accuracy) const
 Являются ли объекты равными?
 
virtual bool ChangeCurve (MbCurve3D &crv)
 Замена кривой ребра на кривую crv.
 
const MbSurfaceIntersectionCurveGetIntersectionCurve () const
 Выдать кривую пересечения поверхностей.
 
MbSurfaceIntersectionCurveSetIntersectionCurve ()
 Выдать кривую пересечения поверхностей для модификации.
 
const MbCurve3DGetSpaceCurve () const
 Дать пространственную копию кривой пересечения поверхностей.
 
MbCurve3DMakeCurve () const
 Построить пространственную копию кривой пересечение поверхностей.
 
MbFaceGetFacePlus () const
 Выдать грань слева.
 
MbFaceGetFaceMinus () const
 Выдать грань справа.
 
MbFaceGetFace (size_t i) const
 Выдать грань по индексу (0 - справа от ребра, 1 - слева от ребра.
 
void SetFacePlus (MbFace *f)
 Установить грань слева.
 
void SetFaceMinus (MbFace *f)
 Установить грань справа.
 
bool IsSmooth (double epsilon=Math::paramPrecision) const
 Является ли ребро гладким?
 
bool IsSeam () const
 Является ли ребро швом?
 
bool IsSplit (bool strict=false) const
 Является ли ребро разбиением грани?
 
bool IsPole () const
 Является ли ребро полюсным?
 
bool IsUsual (bool tolerantIsUsual) const
 Является ли ребро обычным ребром пересечения (толерантное по флагу)?
 
void SetOrientedEdgesLabel (MbeLabelState, void *key=NULL)
 Установить метки ориентированных ребер.
 
bool FindOrientedEdge (bool orient, const MbFace *face, MbLoop *&findLoop, size_t &index) const
 Найти ориентированное ребро.
 
bool FindOrientedEdgePlus (size_t &loopIndex, MbLoop *&findLoop, size_t &index) const
 Найти ориентированное ребро.
 
bool FindOrientedEdgeMinus (size_t &loopIndex, MbLoop *&findLoop, size_t &index) const
 Найти ориентированное ребро.
 
void DeleteOrientedEdges ()
 Удалить ориентированные ребра на данном ребре.
 
void ChangeSurface (const MbSurface &oldSurf, MbSurface &newSurf, bool faceSense, bool orient)
 Замена поверхности. Подробнее...
 
bool ChangeCarrierBorne (const MbSurface &item, MbSurface &init, const MbMatrix &matr)
 Замена поверхности. Подробнее...
 
bool GetTraverses (const MbFace *face, bool plus, double t, double paramStep, double metricStep, MbCartPoint &p0, MbVector3D &leftNorm, MbVector3D &rightNorm, MbVector3D &left, MbVector3D &right, VERSION version=Math::DefaultMathVersion()) const
 Построение нормалей грани face и векторов от ребра в обе стороны.
 
bool GetOutTraverse (const MbFace &face, bool plus, double t, double metricStep, MbCartPoint3D &q0, MbVector3D &outv, MbCartPoint &p0, MbVector &tv, bool &out) const
 Построить вектор от ребра вне/внутрь грани (out==true/false).
 
bool Transversal (double t, MbVector3D &f, bool plus) const
 Построить перпендикуляр к ребру (0 <= t <= 1) внутрь грани facePlus/faceMinus (plus==true/false).
 
bool Transversal (double t, MbVector &f, MbCartPoint &p, bool plus) const
 Построить перпендикуляр к ребру (0 <= t <= 1) внутрь грани facePlus/faceMinus (plus==true/false).
 
bool TransversalReper (double t, MbPlacement3D &pl, bool plus) const
 Построить перпендикуляр к ребру (0 <= t <= 1) внутрь грани facePlus/faceMinus (plus==true/false).
 
bool PointBy (const MbSurface &surf, bool faceSense, bool orient, double t, MbCartPoint &p) const
 Вычислить на ребре (0 <= t <= 1) двумерную точку p в области параметров поверхности surf.
 
bool PointOn (const MbSurface &surf, bool faceSense, bool orient, double &t, MbCartPoint &p) const
 Вычислить на ребре двумерную точку p в области параметров поверхности surf по значению параметра t кривой ребра.
 
bool PointOn (const MbFace *face, bool orient, double &t, MbCartPoint &p) const
 Вычислить на ребре двумерную точку p в области параметров поверхности грани face по значению параметра t кривой ребра.
 
bool FaceNormal (double t, MbVector3D &n, bool plus) const
 Нормаль к грани facePlus или faceMinus на ребре (0 <= t <= 1).
 
bool FaceNormal (const MbSurface &surf, bool faceSense, double t, MbVector3D &p) const
 Нормаль к грани поверхности surf на ребре (0 <= t <= 1) поверхности surf.
 
bool EdgeNormal (double t, MbVector3D &p) const
 Средняя нормаль на ребре (0 <= t <= 1) наружу оболочки.
 
bool VertexNormal (bool begin, MbVector3D &normal) const
 Вычислить среднюю нормаль в вершине begin ребра edge.
 
MbCurveChooseCurve (const MbSurface &surf, bool faceSene, bool orient) const
 Выбор двумерной кривой на поверхности surf в направлении цикла.
 
MbCurveChooseCurve (const MbFace *face, bool orient) const
 Выбор двумерной кривой на поверхности surf в направлении цикла.
 
bool GetLimitParam (bool beg, MbCartPoint &pPlus, MbCartPoint &pMinus, double &t) const
 Дать параметр t крайней точки ребра и соответствующие ему точки на поверхностях кривой пересечения.
 
double FacesAngle (double t) const
 Вычислить угол ребра (0 <= t <= 1): для выпуклого ребра угол больше нуля, для вогнутого ребра угол меньше нуля.
 
ThreeStates IsConvex (double angleEps=EXTENT_EPSILON, const MbRect1D *tRange=NULL) const
 Выпуклое ли ребро? Подробнее...
 
bool CopyReadyMutable (const MbCurveEdge &e)
 
bool GetMoveVector (const MbSurface &surf, bool faceSene, bool orient, MbVector &to) const
 Вычислить двумерный вектор сдвига двумерной кривой. Подробнее...
 
int IsCurveOneOnFacePlus () const
 
bool MoveBy (const MbSurface &surf, bool faceSense, bool orient, const MbVector &to)
 Cдвиг одной двумерной кривой.
 
MbCurveEdgeCuttingEdge (double t, bool beginSafe, const MbSurface *surface)
 Разбить ребро на два ребра по параметру его кривой. Подробнее...
 
bool TruncateEdge (double &t, bool beginCutting, const MbSurface *surface)
 Усечь ребро по параметру его кривой. Подробнее...
 
bool CuttingEdge (SArray< double > &params, bool beginSafe, double eps, const MbSurface *surface, RPArray< MbCurveEdge > &edges)
 Разбить ребро по параметрам его кривой на несколько его частей. Подробнее...
 
bool ConvexoConcaveCutting (RPArray< MbCurveEdge > &edges)
 Разбить ребро по точкам изменения выпуклости-вогнутости. Подробнее...
 
bool ProlongEdge (double &t, bool begin, double deviateAngle, const VERSION version)
 Продолжить ребро. Подробнее...
 
MbCurveEdgeMergeEdges (MbCurveEdge &edge2, bool begin1, bool begin2, VERSION version, bool addParentNamesAttributes)
 Объединение двух стыкующихся ребер. Подробнее...
 
void GetConnectedEdges (bool begin, RPArray< MbCurveEdge > &edges, SArray< bool > &orients) const
 Собрать все ребра, стыкующиеся с заданным ребром в его начале begin==true (конце begin==false).
 
bool GetProlongEdges (RPArray< MbCurveEdge > &edges)
 Собрать все ребра, гладко стыкующиеся с заданным ребром и образующие гладкую цепочку ребер.
 
void GetProperties (MbProperties &)
 Выдать свойства объекта.
 
void SetProperties (const MbProperties &)
 Установить свойства объекта.
 
bool IsBoundaryFace (double mEps=Math::metricEpsilon) const
 Является ли ребро граничным, по которому происходит разрыв оболочки?
 
MbeCurveBuildType GetBuildType () const
 Получить тип кривой по построению.
 
double GetTolerance () const
 Вычислить и выдать толерантность кривой ребра.
 
void SetTolerance (double eps)
 Изменить точность построения кривой пересечения.
 
bool IsTolerant () const
 Является ли кривая толерантной?
 
bool MakeBoundaryCurve ()
 Сделать ребро граничным (изменить кривую ребра).
 
void CurveSection (const MbPlacement3D &place, SArray< MbCartPoint > &points, RPArray< MbCurve > &pCurve) const
 Пересечение ребра с плоскостью, результат - множество параметров на плейсменте или множество двумерных кривых на плейсменте.
 
bool CutPeriodicEdge (const MbVector3D &eye, SSArray< double > &trimParams, double &delT1, double &delT2) const
 Получить параметры разрезки для периодического ребра.
 
- Открытые члены унаследованные от MbEdge
 MbEdge (const MbCurve3D &initCurve, bool sense, const MbVertex &beg, const MbVertex &end)
 Конструктор по кривой, ее ориентации и вершинам.
 
 MbEdge (const MbCurve3D &initCurve, bool sense, const MbVertex *beg, const MbVertex *end)
 Конструктор по кривой, ее ориентации и вершинам. Подробнее...
 
 MbEdge (const MbCurve3D &initCurve, bool sense)
 Конструктор по кривой и ее ориентации. Подробнее...
 
 MbEdge (const MbEdge &other, const MbCurve3D &newCurve)
 Конструктор копирования с использованием другой кривой.
 
virtual ~MbEdge ()
 Деструктор.
 
virtual void Transform (const MbMatrix3D &, MbRegTransform *=NULL)
 Преобразовать согласно матрице. Подробнее...
 
virtual void Move (const MbVector3D &, MbRegTransform *=NULL)
 Сдвинуть вдоль вектора. Подробнее...
 
virtual void Rotate (const MbAxis3D &, double angle, MbRegTransform *=NULL)
 Повернуть вокруг оси. Подробнее...
 
virtual double DistanceToPoint (const MbCartPoint3D &) const
 Вычислить расстояние до точки.
 
virtual void AddYourGabaritTo (MbCube &) const
 Добавить свой габарит в присланный габарит.
 
virtual void CalculateLocalGabarit (const MbMatrix3D &into, MbCube &cube) const
 Рассчитать габарит в локальной системы координат, заданной матрицей преобразования в эту систему.
 
virtual void CalculateMesh (const MbStepData &stepData, const MbFormNote &note, MbMesh &mesh) const
 Построить полигональную копию объекта mesh.
 
const MbCurve3DGetCurve () const
 Выдать кривую, по которой проходит ребро.
 
MbCurve3DSetCurve ()
 Выдать кривую, по которой проходит ребро.
 
bool IsSameSense () const
 Выдать направление по отношению к кривой.
 
void SetSameSense (bool s)
 Установить направление по отношению к кривой.
 
const MbVertexGetBegVertexPointer () const
 Выдать вершину-начало.
 
const MbVertexGetEndVertexPointer () const
 Выдать вершину-конец.
 
const MbVertexGetBegVertex () const
 Выдать вершину-начало.
 
const MbVertexGetEndVertex () const
 Выдать вершину-конец.
 
const MbVertexGetVertex (size_t i) const
 Выдать вершину по номеру (0 - вершина-начало, 1 - вершина-конец).
 
MbVertexSetBegVertex ()
 Выдать вершину-начало.
 
MbVertexSetEndVertex ()
 Выдать вершину-конец.
 
MbVertexSetVertex (size_t i)
 Выдать вершину по номеру (0 - вершина-начало, 1 - вершина-конец).
 
void SetBegVertex (const MbVertex &ver)
 Установить вершину-начало.
 
void SetEndVertex (const MbVertex &ver)
 Установить вершину-конец.
 
const MbVertexGetTMinVertex () const
 Выдать вершину, соответствующую начальной точке кривой.
 
const MbVertexGetTMaxVertex () const
 Выдать вершину, соответствующую конечной точке кривой.
 
MbVertexSetTMinVertex ()
 Выдать вершину, соответствующую начальной точке кривой.
 
MbVertexSetTMaxVertex ()
 Выдать вершину, соответствующую конечной точке кривой.
 
void SetTMinVertex (const MbVertex &ver)
 Установить вершину, соответствующую начальной точке кривой.
 
void SetTMaxVertex (const MbVertex &ver)
 Установить вершину, соответствующую конечной точке кривой.
 
double GetTBegVertex () const
 Выдать параметр кривой, соответствующий начальной вершине.
 
double GetTEndVertex () const
 Выдать параметр кривой, соответствующий конечной вершине.
 
bool IsStraight () const
 Является ли ребро прямолинейным?
 
void GetBegVertexPoint (MbCartPoint3D &cp) const
 Выдать декартову точку начальной вершины.
 
void GetEndVertexPoint (MbCartPoint3D &cp) const
 Выдать декартову точку конечной вершины.
 
bool IsColinear (const MbPlacement3D &p, double epsilon=Math::angleRegion) const
 Параллельно ли ребро плейсменту?
 
bool IsClosed () const
 Является ли ребро циклически замкнутым?
 
void SetLabelThrough (MbeLabelState l, void *key=NULL) const
 Установить метку себе и вершинам.
 
void RemovePrivateLabelThrough (void *key) const
 Удалить частную метку себе и вершинам.
 
bool IsVertexOn (const MbVertex *vertex) const
 Проверка того, что вершина принадлежит ребру.
 
const MbVertexIsConnectedWith (const MbEdge &edge) const
 Нахождение общей вершины ребер.
 
void GetVerticesArray (RPArray< MbVertex > &)
 Добавить вершины ребра в множество вершин (если их там нет).
 
void GetVerticesArray (RPArray< const MbVertex > &) const
 Добавить вершины ребра в множество вершин (если их там нет).
 
double GetCurveParam (double w) const
 Дать параметр для кривой по параметру ребра (0 <= w <= 1).
 
double GetEdgeParam (double t) const
 Дать параметр от 0(начало) до 1(конец) для ребра по параметру кривой.
 
void Point (double t, MbCartPoint3D &) const
 Вычислить точка на ребре (0 <= t <= 1).
 
void GetBegPoint (MbCartPoint3D &p) const
 Получить точку в начальной вершине.
 
void GetEndPoint (MbCartPoint3D &p) const
 Получить точку в конечной вершине.
 
void Tangent (double t, MbVector3D &) const
 Выдать касательный вектор к ребру ( 0 <= t <= 1 ).
 
void GetBegTangent (MbVector3D &v) const
 Выдать касательный вектор в начальной вершине.
 
void GetEndTangent (MbVector3D &v) const
 Выдать касательный вектор в конечной вершине.
 
void GetMiddleDerive (MbVector3D &) const
 Вычислить производную в середине ребра.
 
double GetMetricLength () const
 Выдать метрическую длину ребра.
 
double GetLengthEvaluation () const
 Выдать оценку метрической длины ребра.
 
double DistanceToEdge (const MbEdge &edge, MbCartPoint3D &p0, MbCartPoint3D &p1) const
 Вычислить ближайшее расстояние до ребра.
 
double DistanceToFace (const MbFace &face, MbCartPoint3D &p0, MbCartPoint3D &p1) const
 Вычислить ближайшее расстояние до грани.
 
double DistanceToSurface (const MbSurface &surf, MbCartPoint3D &p0, MbCartPoint3D &p1) const
 Вычислить ближайшее расстояние до поверхности.
 
double PointProjection (const MbCartPoint3D &) const
 Вычислить проекцию точки на ребро.
 
bool PointProjection (const MbCartPoint3D &p0, MbCartPoint3D &pOnEdge, double &distance) const
 Вычислить проекцию точки на продолжение прямого ребра.
 
bool AngleWithEdge (const MbEdge &, double &angle) const
 Вычислить угол между прямыми ребрами.
 
MbCurveGetProjection (const MbPlacement3D &, VERSION version) const
 Создать проекцию ребра на плоскость.
 
void GetProperties (MbProperties &)
 Выдать свойства объекта.
 
void SetProperties (const MbProperties &)
 Установить свойства объекта.
 
- Открытые члены унаследованные от MbTopologyItem
virtual ~MbTopologyItem ()
 Деструктор.
 
virtual MbeImplicationType ImplicationType () const
 Тип контейнера атрибутов.
 
const MbNameGetName () const
 Выдать имя объекта.
 
MbNameSetName ()
 Выдать имя объекта для модификации.
 
SimpleName GetMainName () const
 Выдать главное имя.
 
void SetMainName (SimpleName n)
 Установить главное имя.
 
SimpleName GetFirstName () const
 Получить первое имя.
 
SimpleName GetNameHash () const
 Выдать hash имени.
 
void SetName (const MbName &n)
 Установить имя.
 
bool GetOwnChanged () const
 Получить флаг, свидетельствующий о том, что объект был (не был) изменен.
 
bool GetOwnChanged (MbeChangedType n) const
 Получить флаг, свидетельствующий о том, что объект был (не был) изменен.
 
void SetOwnChanged (MbeChangedType)
 Установить флаг, свидетельствующий о том, что объект был (не был) изменен.
 
void CopyOwnChanged (const MbTopologyItem &ti)
 Копировать флаг, свидетельствующий о том, что объект был (не был) изменен.
 
uint16 GetOwnChangedFlag () const
 Получить флаг, свидетельствующий о том, что объект был (не был) изменен.
 
template<class Uint >
void SetOwnChangedFlag (Uint n)
 Установить флаг, свидетельствующий о том, что объект был (не был) изменен.
 
bool IsOwnRenamedOnly () const
 Получить флаг, свидетельствующий о том, что объект был только переименован.
 
bool IsOwnTransformedOnly () const
 Получить флаг, свидетельствующий о том, что объект был только трансформирован.
 
bool IsOwnReorientedOnly () const
 Получить флаг, свидетельствующий о том, что объект был только переориентирован.
 
bool IsOwnChangedWeakly () const
 Получить флаг, свидетельствующий о том, что объект был создан, переименован, трансформирован или переориентирован.
 
MbeLabelState GetLabel (void *key=NULL) const
 Получить метку.
 
void SetOwnLabel (MbeLabelState l, void *key=NULL) const
 Установить метку.
 
bool ToDelete () const
 Предназначен ли объект для удаления? Определяется по меткам.
 
void RemovePrivateLabel (void *key=NULL) const
 Удалить частную метку.
 
void Assign (const MbTopologyItem &other)
 Копирование данных объекта.
 
void RemoveParentNamesAttribute ()
 Удалить атрибут типа имя с родительскими именами.
 
- Открытые члены унаследованные от MbTopItem
virtual MbeRefType RefType () const
 Регистрационный тип (для копирования, дублирования).
 
void PrepareWrite ()
 Подготовить объект к записи.
 
bool IsAVertex () const
 Это вершина?
 
bool IsAWireEdge () const
 Это ребро каркаса?
 
bool IsAnEdge () const
 Это ребро?
 
bool IsAFace () const
 Это грань?
 
bool IsAShell () const
 Это оболочка?
 
- Открытые члены унаследованные от MbRefItem
 MbRefItem ()
 Конструктор без параметров.
 
refcount_t GetUseCount () const
 Выдать количество ссылок (выдать количество владельцев объекта).
 
refcount_t AddRef () const
 Увеличить количество ссылок на единицу.
 
refcount_t DecRef () const
 Уменьшить количество ссылок на единицу.
 
refcount_t Release () const
 Уменьшить количество ссылок на единицу и, если количество ссылок стало равным нулю, удалить себя.
 
- Открытые члены унаследованные от TapeBase
 TapeBase (RegistrableRec regs=noRegistrable)
 Конструктор.
 
 TapeBase (const TapeBase &other)
 Конструктор копирования
 
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
 Принадлежит ли объект к регистрируемому семейству.
 
- Открытые члены унаследованные от MbAttributeContainer
 MbAttributeContainer ()
 Конструктор без параметров.
 
 MbAttributeContainer (MbAttribute &)
 Конструктор по атрибуту.
 
virtual ~MbAttributeContainer ()
 Деструктор.
 
void AttributesRead (reader &)
 Прочитать атрибуты из потока.
 
void AttributesWrite (writer &) const
 Записать атрибуты в поток.
 
void GetProperties (MbProperties &)
 Выдать свойства атрибутов.
 
void SetProperties (const MbProperties &)
 Установить свойства атрибутов.
 
void SetDensity (double)
 Установить плотность объекта.
 
double GetDensity () const
 Выдать плотность объекта.
 
void SetVisual (float a, float d, float sp, float sh, float t, float e)
 Установить визуальные свойства объекта.
 
bool GetVisual (float &a, float &d, float &sp, float &sh, float &t, float &e) const
 Выдать визуальные свойства объекта. Подробнее...
 
bool IsColored () const
 Есть ли у объекта свой цвет. Подробнее...
 
void SetColor (uint32)
 Изменить цвет объекта.
 
uint32 GetColor () const
 Выдать цвет объекта.
 
void SetWidth (int)
 Установить толщину линий для отображения объекта.
 
int GetWidth () const
 Выдать толщину линий для отображения объекта.
 
void SetStyle (int)
 Установить стиль линий для отображения объекта.
 
int GetStyle () const
 Выдать стиль линий для отображения объекта.
 
void SetSelected (bool s=true)
 Выделить или не выделить объект.
 
bool IsSelected () const
 Выделен ли объект?
 
bool ReverseSelected ()
 Инвертировать выделение объекта.
 
void SetChanged (bool c=true)
 Задать: объект изменен или не изменён.
 
bool IsChanged () const
 Изменен ли объект?
 
void SetVisible (bool)
 Установить видимость.
 
bool IsVisible () const
 Видимый ли объект?
 
bool IsInvisible () const
 Не видимый ли элемент?
 
void AttributesAssign (const MbAttributeContainer &)
 Cдублировать атрибуты присланного объекта, свои отпустить.
 
size_t AttributesCount () const
 Выдать количество объектов.
 
void RemoveAttributes ()
 Удалить все атрибуты из контейнера.
 
MbAttributeAddAttribute (MbAttribute *attr, bool checkSame=true)
 Добавить атрибут в контейнер.
 
MbAttributeAddAttribute (const MbAttribute &attr, bool checkSame=true)
 Добавить атрибут в контейнер (всегда копирует атрибут).
 
void GetAttributes (std::vector< MbAttribute *> &attrs, MbeAttributeType type, MbeAttributeType subType) const
 Выдать атрибуты заданного типа.
 
void GetCommonAttributes (std::vector< MbAttribute *> &attrs, const c3d::string_t &samplePrompt, MbeAttributeType subType=at_Undefined) const
 Выдать атрибуты по строке описания.
 
void GetStringAttributes (std::vector< MbAttribute *> &attrs, const c3d::string_t &sampleContent) const
 Выдать строковые атрибуты по строке содержания.
 
bool RemoveAttribute (const MbAttribute *)
 Выдать атрибут заданного типа, если их несколько - то первый попавшийся. Подробнее...
 
bool RemoveAttributes (MbeAttributeType type, MbeAttributeType subType)
 Удалить атрибуты заданного типа.
 
const MbAttributeGetSimpleAttribute (MbeAttributeType) const
 Выдать простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (MbeAttributeType)
 Выдать простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (MbAttribute *simpAttr)
 Установить простой атрибут данного подтипа.
 
MbAttributeSetSimpleAttribute (const MbAttribute &simpAttr)
 Установить простой атрибут данного подтипа (всегда копирует атрибут).
 
void RemoveSimpleAttribute (MbeAttributeType)
 Удалить простой атрибут(один и более) данного подтипа.
 
MbAttributeDetachSimpleAttribute (MbeAttributeType)
 Отдать простой атрибут данного подтипа.
 
void GetUserAttributes (std::vector< MbUserAttribute *> &attrs, const MbUserAttribType &type) const
 Выдать пользовательский атрибут данного подтипа.
 
void RemoveUserAttributes (const MbUserAttribType &type)
 Удалить пользовательский атрибут (один и более) данного подтипа.
 
void DetachUserAttributes (std::vector< MbUserAttribute *> &attrs, const MbUserAttribType &type)
 Отдать пользовательский атрибут данного подтипа.
 
void AttributesChange ()
 Выполнить действия при изменении атрибутов.
 
void AttributesConvert (MbAttributeContainer &other) const
 Выполнить действия при конвертации атрибутов.
 
void AttributesTransform (const MbMatrix3D &, MbRegTransform *=NULL)
 Выполнить действия при трансформировании атрибутов.
 
void AttributesMove (const MbVector3D &, MbRegTransform *=NULL)
 Выполнить действия при перемещении атрибутов.
 
void AttributesRotate (const MbAxis3D &, double angle, MbRegTransform *=NULL)
 Выполнить действия при вращении атрибутов.
 
void AttributesCopy (MbAttributeContainer &other, MbRegDuplicate *=NULL) const
 Выполнить действия при копировании атрибутов.
 
void AttributesMerge (MbAttributeContainer &other)
 Выполнить действия при объединении атрибутов.
 
void AttributesReplace (MbAttributeContainer &other)
 Выполнить действия при замене атрибутов.
 
void AttributesSplit (const std::vector< MbAttributeContainer *> &others)
 Выполнить действия при разделении атрибутов.
 
void AttributesDelete ()
 Выполнить действия при удалении атрибутов.
 

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

 MbCurveEdge (const MbCurveEdge &, MbRegDuplicate *iReg)
 Конструктор копирования.
 
- Защищенные члены унаследованные от MbEdge
 MbEdge (const MbEdge &init, MbRegDuplicate *iReg)
 Конструктор копирования.
 
- Защищенные члены унаследованные от MbTopologyItem
 MbTopologyItem ()
 Конструктор без параметров.
 
 MbTopologyItem (const MbTopologyItem &init, MbRegDuplicate *iReg)
 Конструктор дублирования.
 
- Защищенные члены унаследованные от MbTopItem
 MbTopItem ()
 Конструктор.
 
- Защищенные члены унаследованные от MbAttributeContainer
 MbAttributeContainer (const MbAttributeContainer &, MbRegDuplicate *)
 Конструктор копирования с регистратором.
 

Защищенные данные

MbFacefacePlus
 Грань слева, в которой направление ребра совпадает с направлением цикла.
 
MbFacefaceMinus
 Грань справа, в которой направление ребра не совпадает с направлением цикла.
 
- Защищенные данные унаследованные от MbEdge
MbCurve3Dcurve
 Кривая, по которой проходит ребро (всегда не NULL).
 
bool sameSense
 Признак совпадения направления ребра с направлением кривой.
 
MbVertexbegVertex
 Вершина-начало (всегда не NULL).
 
MbVertexendVertex
 Вершина-конец (всегда не NULL).
 
- Защищенные данные унаследованные от MbTopologyItem
MbLabel label
 Временная метка для выполнения операций.
 

Дополнительные унаследованные члены

- Открытые статические члены унаследованные от MbAttributeContainer
static MbUserAttributeReduceUserAttrib (const MbExternalAttribute &source)
 Преобразовать из пользовательского в "системный".
 
static MbExternalAttributeAdvanceUserAttrib (const MbUserAttribute &source)
 Преобразовать из "системного" в пользовательский
 

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

Ребро грани.

Ребро грани представляет собой кривую пересечения поверхностей MbSurfaceIntersectionCurve, которой приписано направление. В отличие от ребра MbEdge ребро MbCurveEdge описывает не просто кривую, а гладкий участок стыковки двух граней или гладкий участок края грани.
Ребро грани служит для описания участка стыковки двух граней или для описания участка края грани.
Если ребро описывает участок стыковки двух граней, то указатели на грань слева и грань справа ненулевые.
Ребро, описывающее участок стыковки циклически замкнутой грани самой с собой, называется швом.
В последнем случае указатели на грань слева и грань справа одинаковые.
Если ребро описывает участок края грани, то указатель на грань слева или грань справа равен нулю.
Ребро, описывающее участок края грани, стянутый в точку, называется полюсным ребром.
Если ребро описывает участок края грани, то кривая пересечения поверхностей также является граничной, то есть состоит из двух одинаковых кривых на поверхности.
Ребро начинается и заканчивается в вершинах MbVertex. Если кривая ребра циклически замкнута, то ребро начинается и заканчивается в одной и той же вершине.

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

◆ MbCurveEdge() [1/2]

MbCurveEdge::MbCurveEdge ( const MbVertex beg,
const MbVertex end,
const MbSurfaceIntersectionCurve initCurve,
bool  sense 
)

Конструктор по вершинам, кривой пересечения и ее ориентации в ребре.

Конструктор ребра по вершинам, кривой пересечения и ее ориентации в ребре. Проводится проверка существования и правильности положения точек-вершин ребра.

◆ MbCurveEdge() [2/2]

MbCurveEdge::MbCurveEdge ( const MbSurfaceIntersectionCurve ,
bool  sense 
)

Конструктор по кривой пересечения.

Конструктор ребра по кривой пересечения. Вершины формируются на основе граничных точек кривой.

Методы

◆ ChangeSurface()

void MbCurveEdge::ChangeSurface ( const MbSurface oldSurf,
MbSurface newSurf,
bool  faceSense,
bool  orient 
)

Замена поверхности.

Замена в кривой поверхности oldSurf на поверхность newSurf.

Аргументы
[in]oldSurf- Заменяемая поверхность грани.
[in]newSurf- Заменяющая (новая) поверхность грани.
[in]faceSense- Совпадение направления нормали грани и нормали поверхности.
[in]orient- Ориентация ребра в цикле грани.

◆ ChangeCarrierBorne()

bool MbCurveEdge::ChangeCarrierBorne ( const MbSurface item,
MbSurface init,
const MbMatrix matr 
)

Замена поверхности.

Замена в кривой поверхности item на поверхность init при объединении подобных граней.

Аргументы
[in]item- Заменяемая поверхность грани.
[in]init- Заменяющая (новая) поверхность грани.
[in]matr- Матрица преобразования двумерных кривых кривой пересечения curve при замене поверхностей.
Возвращает
Выполнена ли замена и преобразование?

◆ IsConvex()

ThreeStates MbCurveEdge::IsConvex ( double  angleEps = EXTENT_EPSILON,
const MbRect1D tRange = NULL 
) const

Выпуклое ли ребро?

Выпуклое ли ребро по среднему параметру ребра (или среднему параметру указанного диапазона)? Расчет верен для не меняющего выпуклость ребра. Для гладких рёбер возвращает ts_neutral.

◆ CopyReadyMutable()

bool MbCurveEdge::CopyReadyMutable ( const MbCurveEdge e)

Скопировать из копии готовые метрические оценки, которые в оригинале не были рассчитаны.

Предупреждения
Внимание: для скорости проверка идентичности оригинала и копии не выполняется!

◆ GetMoveVector()

bool MbCurveEdge::GetMoveVector ( const MbSurface surf,
bool  faceSene,
bool  orient,
MbVector to 
) const

Вычислить двумерный вектор сдвига двумерной кривой.

Вычислить двумерный вектор сдвига двумерной кривой.

◆ IsCurveOneOnFacePlus()

int MbCurveEdge::IsCurveOneOnFacePlus ( ) const

Где лежат кривые пересечения поверхностей (граней):
curveOne на facePlus, curveTwo на faceMinus => +1
curveOne на faceMinus, curveTwo на facePlus => -1
иначе => 0

◆ CuttingEdge() [1/2]

MbCurveEdge* MbCurveEdge::CuttingEdge ( double  t,
bool  beginSafe,
const MbSurface surface 
)

Разбить ребро на два ребра по параметру его кривой.

Если beginSafe == true - ребро сохранит начальный участок, разбиваемое ребро сохранит начальную вершину и будет кончаться в вершине breakVertex, новое ребро newEdge будет начинаться в вершине breakVertex и кончаться в бывшей конечной вершине разбиваемого ребра Если beginSafe == false - ребро сохранит конечный участок, разбиваемое ребро сохранит конечную вершину и будет начинаться в вершине breakVertex, новое ребро newEdge будет начинаться в начальной вершине разбиваемого ребра и кончаться в вершине breakVertex
Параметр 'surface' необходим только для толерантной кривой пересечения. Новое ребро встраиваются в циклы смежных граней. Вернет новое ребро. Параметр кривой пересечения для разбиения ребра,

Аргументы
[in]beginSafe- Ребро сохранит начальную половину (true) или ребро сохранит конечную половину (false),
[in]surface- Для толерантной кривой требуется указать поверхность, к кривой которой относится параметр.
Возвращает
Возвращает отрезанную часть ребра.

◆ TruncateEdge()

bool MbCurveEdge::TruncateEdge ( double &  t,
bool  beginCutting,
const MbSurface surface 
)

Усечь ребро по параметру его кривой.

Если beginCutting == true - отрезается начало ребра, Если beginCutting == false - отрезается конец ребра.

Аргументы
[in]t- Параметр кривой пересечения для усечения ребра.
[in]beginCutting- Ребро сохранит начальную половину (false) или ребро сохранит конечную половину (true).
[in]surface- Для толерантной кривой требуется указать поверхность, к кривой которой относится параметр.
Возвращает
Возвращает true, если усечение выполнено, false - в противном случае.

◆ CuttingEdge() [2/2]

bool MbCurveEdge::CuttingEdge ( SArray< double > &  params,
bool  beginSafe,
double  eps,
const MbSurface surface,
RPArray< MbCurveEdge > &  edges 
)

Разбить ребро по параметрам его кривой на несколько его частей.

. Если beginSafe == true - ребро сохранит начальный участок, Если beginSafe == false - ребро сохранит конечный участок. По параметру 'eps' отсеиваются значения в контейнере 'params', совпадающие друг с другом и с начальным и конечным параметрами кривой пересечения. Параметр 'surface' необходим только для толерантной кривой пересечения. Контейнер 'edges' содержит отрезанные части. Отрезанные части встраиваются в циклы смежных граней.

Аргументы
[in]params- Параметры кривой пересечения для разбиения ребра,
[in]beginSafe- Ребро сохранит начальную половину (true) или ребро сохранит конечную половину (false),
[in]eps- Точность совпадения параметров разбиения,
[in]surface- Для толерантной кривой требуется указать поверхность грани, к кривой которой относятся параметры резки.
[out]edges- Отрезанные части ребра.
Возвращает
Возвращает true, если ребро было порезано.

◆ ConvexoConcaveCutting()

bool MbCurveEdge::ConvexoConcaveCutting ( RPArray< MbCurveEdge > &  edges)

Разбить ребро по точкам изменения выпуклости-вогнутости.

Разбить ребро по точкам изменения выпуклости-вогнутости и сложить отрезанные части в контейнер 'edges'. Отрезанные части встраиваются в циклы смежных граней.

Аргументы
[out]edges- Отрезанные части ребра.
Возвращает
Возвращает true, если ребро было порезано.

◆ ProlongEdge()

bool MbCurveEdge::ProlongEdge ( double &  t,
bool  begin,
double  deviateAngle,
const VERSION  version 
)

Продолжить ребро.

Продолжить кривую пересечения ребра до параметра t, лежащего за пределами области определения.

Аргументы
[in/out]t - Параметра на продолжении кривой ребра.
[in]begin- Начало (true) или конец (false) ребра продолжить.
[in]deviateAngle- Угловое отклонение для шага при движении вдоль кривой в общем случае.
[in]version- Версия операции.
Возвращает
Возвращает true, если продление выполнено, false - в противном случае.

◆ MergeEdges()

MbCurveEdge* MbCurveEdge::MergeEdges ( MbCurveEdge edge2,
bool  begin1,
bool  begin2,
VERSION  version,
bool  addParentNamesAttributes 
)

Объединение двух стыкующихся ребер.

Объединение двух стыкующихся ребер:
перед вызовом на ребра надо сделать AddRef, т.к. одно из них может быть удалено, а после вызова и использования ребер на них надо сделать Release.

Аргументы
[in/out]edge2 - Присоединяемое ребро.
[in]begin1- К началу (true) или к концу (false) ребра this стыкуется присоединяемое ребро.
[in]begin2- Началом (true) или концом (false) стыкуется присоединяемое ребро к ребру this.
[in]version- Версия операции.
[in]addParentNamesAttributes- Добавить атрибут имени с именами слитых ребер.
Возвращает
Возвращает поглощенное ребро edge2, которое можно удалять.

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