C3D Toolkit  Kernel - 105122, Vision - 0.181114.105122

Грань. Подробнее...

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

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

 MbFace (const MbSurface &, bool sense)
 Конструктор по поверхности и ориентации нормали грани относительно нормали поверхности.
 
 MbFace (MbLoop &bnd, const MbSurface &surf, bool sense)
 Конструктор по циклу, поверхности и ориентации нормали грани относительно нормали поверхности.
 
 MbFace (MbLoop &bnd0, MbLoop &bnd1, const MbSurface &surf, bool sense)
 Конструктор по циклам, поверхности и ориентации нормали грани относительно нормали поверхности.
 
 MbFace (RPArray< MbLoop > &bnds, const MbSurface &surf, bool sense)
 Конструктор по циклам, поверхности и ориентации нормали грани относительно нормали поверхности.
 
 MbFace (const MbFace &other, const MbSurface &newSurface, bool surfaceSense)
 Конструктор по другой грани, новой поверхности и ориентации нормали грани относительно нормали этой поверхности.
 
virtual ~MbFace ()
 Деструктор.
 
virtual MbeTopologyType IsA () const
 Тип элемента.
 
virtual MbFaceDataDuplicate (MbRegDuplicate *=NULL) const
 Создать новую грань копированием всех данных исходной грани.
 
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 const MbSurfaceGetSurface () const
 Выдать поверхность грани.
 
virtual MbSurfaceSetSurface ()
 Выдать поверхность грани для модификации.
 
virtual bool IsPlanar () const
 Является ли грань плоской?
 
virtual bool GetPlacement (MbPlacement3D *) const
 Дать плоскость (или только возможность ее выдачи).
 
bool IsSameSense () const
 Выдать направление нормали грани по отношению к нормали поверхности.
 
void SetSameSense (bool s)
 Установить направление нормали грани по отношению к нормали поверхности.
 
bool GetCylinderAxis (MbAxis3D &axis) const
 Дать ось вращения для поверхности, если это возможно.
 
bool GetPlanePlacement (MbPlacement3D &) const
 Дать локальную систему координат плоскости грани, если это возможно.
 
bool GetSurfacePlacement (MbPlacement3D &) const
 Дать локальную систему координат плоскости поверхности, если это возможно.
 
bool GetControlPlacement (MbPlacement3D &) const
 Дать локальную систему координат грани в средней точке, если это возможно.
 
bool OrientPlacement (MbPlacement3D &) const
 Соирентировать ось Х плейсмента вдоль линии его пересечения с поверхностью грани, ось Y - с нормалью.
 
void Normal (double u, double v, MbVector3D &p) const
 Дать нормаль грани.
 
bool IsColinear (const MbCurveEdge &edge) const
 Параллельно ли ребро грани?
 
size_t GetLoopsCount () const
 Выдать количество циклов (границ) грани .
 
void SetLabelThrough (MbeLabelState l, void *key=NULL) const
 Установить метку грани, циклам, рёбрам и вершинам.
 
void RemovePrivateLabelThrough (void *key) const
 Удалить частную метку грани, циклам, рёбрам и вершинам.
 
bool IsOwnChangedItem (bool checkVertices=false) const
 Модифицирована ли грань или ее ребро?
 
void GetVertices (RPArray< MbVertex > &) const
 Выдать множество вершин грани.
 
void GetVertices (RPArray< const MbVertex > &) const
 Выдать множество вершин грани.
 
void GetEdges (RPArray< MbCurveEdge > &) const
 Выдать множество ребер грани.
 
void GetEdges (RPArray< const MbCurveEdge > &) const
 Выдать множество ребер грани.
 
void GetNeighborFaces (RPArray< const MbFace > &) const
 Выдать множество смежных граней.
 
void GetNeighborFaces (RPArray< MbFace > &) const
 Выдать множество смежных граней.
 
bool HasNeighborFace () const
 Есть ли смежные грани?
 
MbLoopGetLoop (size_t index) const
 Выдать границу (цикл) с проверкой корректности индекса.
 
MbLoop_GetLoop (size_t index) const
 Выдать границу (цикл) без проверки корректности индекса.
 
void SetNullLoop (size_t index)
 Обнулить количество ребер в цикле с указанным индексом.
 
void ExchangeLoops (size_t i1, size_t i2)
 Поменять местами циклы.
 
void AddLoop (MbLoop &l)
 Добавить новый цикл грани.
 
void InsertLoop (size_t index, MbLoop &l)
 Вставить цикл по индексу.
 
void ChangeLoop (MbLoop &oldLoop, MbLoop &newLoop)
 Заменить цикл другим.
 
MbLoopDetachLoop (size_t index)
 Отцепить цикл с указанным индексом.
 
void DeleteLoop (size_t index)
 Удалить цикл с указанным индексом.
 
void DeleteLoops ()
 Удалить все циклы грани.
 
void AdjustContours ()
 Скопировать границы поверхности с циклов грани.
 
void SetFaceToLoopEdges (MbLoop &loop)
 Установить указатели ребер цикла на грань.
 
void SetNullToLoopEdges (MbLoop &loop)
 Установить указатели на грань слева или грань справа в ребрах цикла на NULL.
 
void SetNullToLoopsEdges ()
 Установить указатели на грань слева или грань справа в ребрах циклов на NULL.
 
void SetNullToFace (const MbFace *delFace)
 Обнулить указатели на грань слева или грань справа, указывающие на смежную грань delFace, в ребрах циклов.
 
void MakeRight (bool setBounds=false)
 Установить указатели на грань слева или грань справа в ребрах циклов на данную грань и параметры поверхности по данным циклов грани (setBounds = true).
 
bool IsVertexOn (const MbVertex *vertex, size_t *indLoop=NULL, size_t *indEdge=NULL) const
 Принадлежит ли вершина грани?
 
void PartialReverse ()
 Изменить ориентацию грани. Подробнее...
 
void TotalReverse ()
 Изменить ориентацию грани. Подробнее...
 
void PartialReverseLoopWithNeighbours (size_t index)
 Изменить ориентацию цикла с указанным индексом. Подробнее...
 
virtual bool IsSame (const MbTopologyItem &other, double accuracy) const
 Являются ли объекты равными?
 
virtual void CalculateMesh (const MbStepData &stepData, const MbFormNote &note, MbMesh &mesh) const
 Построить полигональную копию объекта mesh.
 
bool IsConnectedWith (const MbFace *face, RPArray< const MbCurveEdge > *commonEdges=NULL) const
 Связаны ли грани?
 
bool IsSimilarToFace (const MbFace &face, bool &normal, bool &planeType, double precision=METRIC_PRECISION) const
 Подобны ли поверхности для объединения трансформацией по матрице (первичная проверка)?
 
bool IsSpecialSimilarToFace (const MbFace &face, bool &normal, bool &swap, VERSION version, double precision=METRIC_PRECISION) const
 Подобны ли поверхности для объединения путем замены (первичная проверка)?
 
bool ChangeCarrier (const MbSurface &item, MbSurface &init)
 Заменить поверхность item на подобную поверхность init в грани и во всех её рёбрах.
 
bool ChangeCarrierBorne (const MbSurface &item, MbSurface &init, const MbMatrix &matr)
 Заменить поверхность item на подобную поверхность init в грани и во всех её рёбрах и преобразовать по матрице все двумерные кривые из области определения item.
 
bool ChangeCarrierBorneSpecial (const MbFace &face)
 Заменить поверхность грани поверхностью присланной грани.
 
bool IsSimilarExactly (const MbFace &face, MbMatrix &matr, double precision=METRIC_PRECISION) const
 Подобны ли поверхности для замены с преобразованием по матрице двумерных кривых?
 
bool IsSpecialSimilarExactly (const MbFace &face, bool doSwap) const
 Подобны ли поверхности граней для замены с преобразованием двумерных кривых?
 
bool FindNeighbourEdge (const MbCurveEdge &edge, bool orient, bool next, MbCurveEdge *&findEdge, bool &findOrient) const
 Найти следующее ребро за данным (next == true) или перед данным (next == false).
 
bool FindEdgeIndex (const MbCurveEdge &edge, bool orient, size_t &loopIndex, size_t &edgeIndex) const
 Найти индекс цикла в грани и индекс ребра в найденном цикле.
 
bool FindEdgeIndex (const MbCurveEdge &edge, ThreeStates orient, size_t &loopIndex, size_t &edgeIndex) const
 Найти индекс цикла в грани и индекс ребра в найденном цикле.
 
MbCurveEdgeGetEdgeByIndex (size_t loopIndex, size_t edgeIndex) const
 Дать ребро по индексам цикла грани и ребра в цикле.
 
MbOrientedEdgeGetOrientedEdge (const MbCurveEdge &curveEdge) const
 Найти ориентированное ребро по ребру грани.
 
bool FindIndexByEdges (const RPArray< MbCurveEdge > &initEdges, SArray< MbItemIndex > &indexes) const
 Найти номера для рёбер.
 
bool FindEdgesByIndex (SArray< MbItemIndex > &indexes, RPArray< MbCurveEdge > &initEdges) const
 Найти рёбра по номерам.
 
const MbVertexFindVertexByName (const MbName &) const
 Найти вершину по имени.
 
const MbCurveEdgeFindEdgeByName (const MbName &) const
 Найти ребро по имени.
 
void SetOrientedLabel (const MbCurveEdge &edge, MbeLabelState n, void *key=NULL)
 Установить метку ориентированного ребра.
 
double DistanceToEdge (const MbCurveEdge &edge, MbCartPoint3D &p, MbCartPoint3D &edgeP) const
 Вычислить ближайшее расстояние до ребра и ближайшие точки грани и ребра.
 
double DistanceToFace (const MbFace &face, MbCartPoint3D &p, MbCartPoint3D &faceP) const
 Вычислить ближайшее расстояние до грани и ближайшие точки граней.
 
bool AngleWithEdge (const MbEdge &, double &angle) const
 Найти угол между прямым ребром и плоской гранью.
 
bool AngleWithFace (const MbFace &, double &angle) const
 Найти угол между плоскими гранями.
 
bool GetNearestEdge (const MbCartPoint &pOnFace, c3d::IndicesPair &edgeLoc, double &tEdgeCurve, bool &orientation, double &distance) const
 Найти проекцию точки на ближайшее ребро грани.
 
bool GetRectIntersectingEdges (const MbRect &rect, std::vector< c3d::IndicesPair > &edgeLocs, double eps) const
 Найти ребра, пересекающиеся с габаритом своим габаритами.
 
double DistanceToBorder (const MbCartPoint &point, double &precision) const
 Найти параметрическое расстояние до ближайшей границы. Подробнее...
 
double DistanceToBorder (const MbCartPoint &point, MbVector &normal, double &precision) const
 Найти параметрическое расстояние до ближайшей границы.
 
double DistanceToBorder (const MbCartPoint &point, size_t &loopNumber, size_t &edgeNumber, double &precision) const
 Найти параметрическое расстояние до ближайшей границы.
 
double DistanceToBorder (const MbCartPoint &point, MbVector &normal, size_t &loopNumber, size_t &edgeNumber, ptrdiff_t &corner, double &tEdgeCurve, double &precision) const
 Найти параметрическое расстояние до ближайшей границы. Подробнее...
 
MbeItemLocation NearPointProjection (const MbCartPoint3D &point, double &u, double &v, MbVector3D &normal, c3d::IndicesPair &edgeLoc, ptrdiff_t &corner) const
 Найти ближайшую проекцию точки на грань. Подробнее...
 
bool CuttingEdges (const MbCartPoint &p, double xEpsilon, double yEpsilon, double paramPrecision)
 Разбить рёбра грани точкой на поверхности.
 
bool LoopSelfIntersection (std::vector< LoopCrossParam > &siParams1, std::vector< LoopCrossParam > &siParams2, std::vector< bool > *crossCrossings, bool checkInsideEdges, double metricNear, VERSION version) const
 Найти самопересечения циклов.
 
bool CreateNormalPlacements (const MbVector3D &axisZ, double angle, SArray< MbPlacement3D > &places) const
 Построить нормальные ЛСК конструктивных плоскостей.
 
bool CreateTangentPlacements (const MbVector3D &axisZ, SArray< MbPlacement3D > &places) const
 Построить касательные ЛСК конструктивных плоскостей.
 
bool GetAnyPointOn (MbCartPoint3D &pnt, MbVector3D &nor) const
 Дать некоторую точку и нормаль на грани.
 
void GetProperties (MbProperties &)
 Выдать свойства объекта.
 
void SetProperties (const MbProperties &)
 Установить свойства объекта.
 
void ChangeSurface (const MbSurface &newSurf)
 Заменить поверхность на заданную.
 
void GetFaceParam (const double surfaceU, const double surfaceV, double &faceU, double &faceV) const
 Дать параметры грани (0 <= faceU <= 1, 0 <= faceV <= 1) для параметров поверхности surfaceU и surfaceV.
 
void GetSurfaceParam (const double faceU, const double faceV, double &surfaceU, double &surfaceV) const
 Дать параметры поверхности surfaceU и surfaceV по параметрам грани (0 <= faceU <= 1, 0 <= faceV <= 1).
 
void Point (double faceU, double faceV, MbCartPoint3D &point) const
 Дать точку point грани по абстрактным параметрам (0 <= faceU <= 1, 0 <= faceV <= 1).
 
void PointOn (double surfaceU, double surfaceV, MbCartPoint3D &point) const
 Дать точку point грани по параметрам её поверхности.
 
bool IsBoundaryFace (double mEps=Math::metricEpsilon) const
 Является ли грань граничной (имеет ли ребра, которые не стыкуются с другими гранями)?
 
template<class ConstEdges >
void GetBoundaryEdges (ConstEdges &) const
 Выдать множество граничных ребер грани.
 
bool GetTopologyState (ptrdiff_t &cntAdjacentFaces, RPArray< const MbFace > *&adjacentFaces, bool &boundaryFace, ptrdiff_t &cntLoops) const
 Дать топологическое состояние.
 
void LoopsReserve (size_t additionalSpace)
 Зарезервировать место под циклы.
 
void LoopsAdjust ()
 Удалить лишнюю память.
 
void SurfaceSection (const MbPlacement3D &place, PArray< MbCurve > &pCurve)
 Пересечение поверхности грани с плоскостью, результат - множество кривых на поверхности и двумерных кривых на плоскости .
 
MbSurfaceGetSurfaceCurvesData (RPArray< MbContour > &contours) const
 Построить копию поверхности и двумерные контуры по циклам для операций выдавливания и вращения кривых.
 
MbSurfaceGetSurfaceCurvesData (std::vector< SPtr< MbContour > > &contours) const
 Построить копию поверхности и двумерные контуры по циклам для операций выдавливания и вращения кривых.
 
bool UpdateSurfaceBounds ()
 Обновить границы поверхности, ограниченной кривыми, по циклам грани.
 
MbCube GetCube () const
 Выдать габарит грани.
 
MbRect GetRect () const
 Выдать габарит области параметров.
 
bool UpdateLoopRect (size_t loopIndex)
 Обновить габарит цикла с указанным индексом.
 
bool IsTemporal () const
 Создан ли временный объект сопровождения грани?
 
void RemoveTemporal () const
 Удалить временный объект сопровождения.
 
const MbFaceTemp * CreateTemporal (bool keepExisting) const
 Создать новый временный объект сопровождения.
 
bool UpdateTemporal () const
 Обновить временный объект сопровождения, если он уже создан.
 
- Открытые члены унаследованные от 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 ()
 Выполнить действия при удалении атрибутов.
 

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

MbSurfacesurface
 Поверхность грани (всегда не NULL).
 
bool sameSense
 Признак совпадения направления нормали грани с нормалью поверхности.
 
RPArray< MbLooploops
 Границы грани (первая граница должна быть внешней).
 
- Защищенные данные унаследованные от MbTopologyItem
MbLabel label
 Временная метка для выполнения операций.
 

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

- Открытые статические члены унаследованные от MbAttributeContainer
static MbUserAttributeReduceUserAttrib (const MbExternalAttribute &source)
 Преобразовать из пользовательского в "системный".
 
static MbExternalAttributeAdvanceUserAttrib (const MbUserAttribute &source)
 Преобразовать из "системного" в пользовательский
 
- Защищенные члены унаследованные от MbTopologyItem
 MbTopologyItem ()
 Конструктор без параметров.
 
 MbTopologyItem (const MbTopologyItem &init, MbRegDuplicate *iReg)
 Конструктор дублирования.
 
- Защищенные члены унаследованные от MbTopItem
 MbTopItem ()
 Конструктор.
 
- Защищенные члены унаследованные от MbAttributeContainer
 MbAttributeContainer (const MbAttributeContainer &, MbRegDuplicate *)
 Конструктор копирования с регистратором.
 

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

Грань.

Грань представляет собой связный конечный кусок поверхности, которому приписано направление нормали.
Сторону грани, при взгляде на которую мы смотрим навстречу нормали, будем называть внешней, другую сторону грани будем называть внутренней.
Стороны поверхности MbSurface не обладают равноправием относительно нормали, так как у поверхности одна сторона всегда внешняя, а другая сторона всегда внутренняя. В отличие от поверхности для грани мы имеем возможность назначить направление нормали и тем самым назначить внешнюю и внутреннюю стороны.
Границы грани описываются циклами MbLoop. Количество циклов грани равно количеству границ грани. Один из циклов грани будем называть внешним, а остальные - внутренними. Внутренние циклы целиком лежат внутри внешнего цикла. Внешний цикл грани ориентирован против часовой стрелки, а внутренние циклы ориентированы по часовой стрелке, если смотреть навстречу выбранной нормали грани.
Циклы грани не могут пересекать друг друга и сами себя.

Если два цикла грани имеют общую точку, то эта точка в обоих циклах должна быть вершиной ребра.

Методы

◆ Transform()

virtual void MbFace::Transform ( const MbMatrix3D matr,
MbRegTransform iReg = NULL 
)
virtual

Преобразовать согласно матрице.

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

Аргументы
[in]matr- Матрица преобразования.
[in]iReg- Регистратор.

Замещает MbTopologyItem.

◆ Move()

virtual void MbFace::Move ( const MbVector3D to,
MbRegTransform iReg = NULL 
)
virtual

Сдвинуть вдоль вектора.

Сдвинуть объект вдоль вектора. При преобразовании объекта с использованием регистратора проверяется наличие объекта в регистраторе. Если такой объект отсутствует, то он заносится в регистратор и выполняется его преобразование, в противном случае преобразование данного объекта не выполняется.

Аргументы
[in]to- Вектор сдвига.
[in]iReg- Регистратор.

Замещает MbTopologyItem.

◆ Rotate()

virtual void MbFace::Rotate ( const MbAxis3D axis,
double  angle,
MbRegTransform iReg = NULL 
)
virtual

Повернуть вокруг оси.

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

Аргументы
[in]axis- Ось вращения.
[in]angle- Угол поворота.
[in]iReg- Регистратор.

Замещает MbTopologyItem.

◆ PartialReverse()

void MbFace::PartialReverse ( )

Изменить ориентацию грани.

Инвертировать ориентацию ребер в цикле и инвертировать флаг ориентации грани.

◆ TotalReverse()

void MbFace::TotalReverse ( )

Изменить ориентацию грани.

Инвертировать ориентацию ребер в цикле, поменять местами указатели на грани справа и слева в ребрах циклов, инвертировать флаг ориентации грани.

◆ PartialReverseLoopWithNeighbours()

void MbFace::PartialReverseLoopWithNeighbours ( size_t  index)

Изменить ориентацию цикла с указанным индексом.

Инвертировать ориентацию ребер в цикле с указанным индексом, инвертировать ориентацию соответствующих ребер в циклах соседних граней, установить указатели ребер цикла на нужные грани.


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