C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2

Face loop. More...

#include <topology.h>

+ Inheritance diagram for MbLoop:
+ Collaboration diagram for MbLoop:

Public Member Functions

 MbLoop ()
 Empty constructor.
 
template<class OrientEdges >
 MbLoop (const OrientEdges &initList)
 Constructor by oriented edge or array of oriented edges.
 
virtual ~MbLoop ()
 Destructor.
 
MbeTopologyType IsA () const override
 A type of element.
 
void CheckVertices ()
 Check and reconcile vertices of the loop.
 
size_t GetEdgesCount () const
 Get the number of edges of the loop.
 
MbeLabelState GetLabel (void *key=nullptr) const
 Get a label of the loop.
 
void SetOwnLabel (MbeLabelState l, void *key=nullptr) const
 Set a label of the loop.
 
void SetLabelThrough (MbeLabelState l, void *key=nullptr) const
 Set a label for self and loop vertices.
 
void SetLabelThrough (MbeLabelState l, void *key, bool setLock) const
 Set a label for self and loop vertices.
 
void RemovePrivateLabelThrough (void *key) const
 Remove private label for self and loop edges.
 
void SetCurveEdgesLabel (MbeLabelState, void *key=nullptr) const
 Set a label for edges.
 
void CheckEdgesLabel (void *key=nullptr) const
 Check edges labels and set own label.
 
void RemovePrivateLabel (void *key=nullptr) const
 Remove private label.
 
template<class VerticesVector >
void GetVertices (VerticesVector &vertices) const
 Get a set of loop vertices.
 
template<class VerticesSet >
void GetVerticesSet (VerticesSet &vertices) const
 Get a set of loop vertices.
 
template<class EdgesVector >
void GetEdges (EdgesVector &edges, bool findSame=true) const
 Get a set of face edges.
 
template<class EdgesSet >
void GetEdgesSet (EdgesSet &edges) const
 Get a set of face edges.
 
template<class EdgesVector , class EdgesSet >
void GetEdges (EdgesVector &edges, EdgesSet &edgesCache) const
 Get a set of face unique edges.
 
template<class OrientedEdgesVector >
void GetOrientedEdges (OrientedEdgesVector &edges, bool findSame=true) const
 Get a set of oriented edges.
 
void InitOrientedEdge (size_t edgeIndex, MbCurveEdge &initEdge, bool initOrientation, bool replaceVertices)
 Replacement of the basis edge.
 
MbOrientedEdgeGetOrientedEdge (size_t index) const
 Get an oriented edge by the number.
 
MbOrientedEdgeSetOrientedEdge (size_t index)
 Get an oriented edge by the number.
 
MbOrientedEdge_GetOrientedEdge (size_t index) const
 Get an oriented edge by the number without check of correctness of the index.
 
MbOrientedEdge_SetOrientedEdge (size_t index)
 Get an oriented edge by the number without check of correctness of the index.
 
void _AddEdge (const MbOrientedEdge &)
 Add an edge without check.
 
void _InsertEdge (size_t k, const MbOrientedEdge &)
 Insert an edge at the given index without check of index correctness.
 
void _AddEdgeAfter (const MbOrientedEdge &, size_t k)
 Add an edge after an edge at the given index without check of index correctness.
 
void AddEdge (const MbOrientedEdge &)
 Add an edge.
 
void InsertEdge (size_t k, MbOrientedEdge &)
 Insert an edge before an edge at the given index.
 
void AddEdgeAfter (MbOrientedEdge &, size_t k)
 Add an edge after an edge at the given index.
 
MbOrientedEdgeDetachEdge (size_t index)
 Detach an edge at the given index.
 
void DeleteEdge (size_t index)
 Delete an edge at the given index.
 
void DetachEdges (bool setNullToFace=false)
 Detach all edges from the loop.
 
void DeleteEdges (bool setNullToFace=false)
 Delete all edges of the loop.
 
size_t GetEdgeIndex (const MbCurveEdge &edge, bool orient) const
 Get the number of a face edge in the loop.
 
bool FindNeighbourEdge (const MbCurveEdge &edge, bool orient, bool next, MbCurveEdge *&findEdge, bool &findOrient) const
 Find the next edge after the given one (next==true) or before the given one (next==false).
 
void PartialReverse ()
 Change orientation of the loop (the order of oriented edges and their orientation).
 
void Inverse ()
 Change the order of oriented edges without changing of their orientation.
 
bool IsVertexOn (const MbVertex *vertex, size_t *index=nullptr) const
 Does a vertex belong a path?
 
void ChangeSurface (MbSurface &oldSurf, MbSurface &newSurf, bool orient)
 Replacement of the pointers to a surface.
 
const MbVertexFindVertexByName (const MbName &) const
 Find loop vertex by name.
 
const MbCurveEdgeFindEdgeByName (const MbName &) const
 Find loop edge by name.
 
const MbVertexFindVertexByHash (const SimpleName h) const
 Find loop vertex by hash of a name.
 
const MbCurveEdgeFindEdgeByHash (const SimpleName h) const
 Find loop edge by hash of a name.
 
MbContourMakeContour (const MbSurface &surf, bool faceSense, bool doExact, MbRegDuplicate *iReg, bool calculateMetricLength=true) const
 Create two-dimensional contour by loop.
 
MbContourMakeContour (const MbSurface &surf, bool faceSense, bool calculateMetricLength=true) const
 Create two-dimensional contour by loop.
 
MbContourOnSurfaceMakeContourOnSurface (const MbSurface &surf, bool faceSense, bool doExact=false) const
 Create contour on surface by loop.
 
MbContour3DMakeContour3D (bool doExact=false) const
 Create spatial contour by loop.
 
bool CalculateGabarit (const MbSurface &, bool faceSense) const
 Calculate bounding box of loop.
 
bool GetGabarit (const MbSurface &, bool faceSense, MbRect &r) const
 Calculate bounding rectangle of loop.
 
const MbRectGetGabarit (const MbSurface &surf, bool faceSense) const
 Direct access to the variable of bounding box with a call of calculation.
 
const MbRectGetGabarit () const
 Direct access to the variable of bounding box without a call of calculation.
 
void CopyGabarit (const MbContour &c)
 Copy bounding box from contour.
 
void CopyGabarit (const MbLoop &c) const
 Copy bounding box of loop.
 
void SetEmptyGabarit () const
 Reset bounding box - make it undefined.
 
void GetProperties (MbProperties &)
 Get properties of the object.
 
void SetProperties (const MbProperties &)
 Set properties of the object.
 
void Transform (const MbMatrix3D &, MbRegTransform *=nullptr)
 Transform an object according to the matrix.
 
void Move (const MbVector3D &, MbRegTransform *=nullptr)
 Move an object along a vector.
 
void Rotate (const MbAxis3D &, double angle, MbRegTransform *=nullptr)
 Rotate an object at a given angle around an axis.

 
void Move (MbVector &, const MbSurface &, bool)
 Move two-dimensional curves along the vector in the surface parameter region (all at once).
 
bool IsBoundaryFace (double mEps=Math::metricEpsilon) const
 Is a contour boundary?
 
void EdgesReserve (size_t additionalSpace)
 Reserve space for a given number of elements.
 
void EdgesAdjust ()
 Free the unnecessary memory.
 
- Public Member Functions inherited from MbTopItem
MbeRefType RefType () const override
 Registration type (for copying, duplication).
 
void PrepareWrite () const
 Prepare an object for writing.
 
bool IsAVertex () const
 Is it a vertex?
 
bool IsAWireEdge () const
 Is it an edge of wireframe?
 
bool IsAnEdge () const
 Is it an edge?
 
bool IsAFace () const
 Is it a face?
 
bool IsAShell () const
 Is it a shell?
 
bool IsAProxy () const
 Is it a proxy?
 
- Public Member Functions inherited from MbRefItem
refcount_t GetUseCount () const
 Get count of references (get count of owners of an object).
 
refcount_t AddRef () const
 Increase count of references by one.
 
refcount_t DecRef () const
 Decrease count of references by one.
 
refcount_t Release () const
 Decrease count of references by one and if count of references became zero, then remove itself.
 
- Public Member Functions inherited from TapeBase
 TapeBase (RegistrableRec regs=noRegistrable)
 Constructor.
 
 TapeBase (const TapeBase &)
 Copy-constructor.
 
virtual ~TapeBase ()
 Destructor.
 
RegistrableRec GetRegistrable () const
 Whether the stream class is registrable.
 
void SetRegistrable (RegistrableRec regs=registrable) const
 Set the state of registration of the stream class.
 
virtual const char * GetPureName (const VersionContainer &) const
 Get the class name.
 
virtual bool IsFamilyRegistrable () const
 Whether the object belongs to a registrable family.
 
- Public Member Functions inherited from MbSyncItem
void Lock () const
 Switch lock on (locking happens only in parallel region).
 
void Unlock () const
 Switch lock off if locking has been set.
 

Protected Attributes

RPArray< MbOrientedEdgeedgeList
 An array of edges forming a loop.
 
MbRect rect
 A bounding box in a surface parameter space.
 
MbLabel label
 Temporary label for performing of operations.
 

Additional Inherited Members

- Protected Member Functions inherited from MbTopItem
 MbTopItem ()
 Constructor.
 
- Protected Member Functions inherited from MbRefItem
 MbRefItem ()
 Constructor without parameters.
 

Detailed Description

Face loop.

A face loop represents a closed composite curve passing along the face boundary.
A loop is formed by a sequence of oriented edges MbOrientedEdge. A loop is always closed.
A loop is directed in such way that the face is always located on the left side, if the moving along the loop is performed on the face external side.


The documentation for this class was generated from the following file: