C3D Toolkit  Kernel - 117982, Vision - 2.9.2.2

Face edge. More...

#include <topology.h>

+ Inheritance diagram for MbCurveEdge:
+ Collaboration diagram for MbCurveEdge:

Public Member Functions

 MbCurveEdge (const MbVertex &beg, const MbVertex &end, const MbSurfaceIntersectionCurve &initCurve, bool sense)
 Constructor by vertices, intersection curve and its orientation on edge.
 
 MbCurveEdge (const MbVertex *beg, const MbVertex *end, const MbSurfaceIntersectionCurve &initCurve, bool sense)
 Constructor by vertices, intersection curve and its orientation on edge. More...
 
 MbCurveEdge (const MbSurfaceIntersectionCurve &, bool sense)
 Constructor by intersection curve. More...
 
 MbCurveEdge (const MbCurveEdge &other, const MbSurfaceIntersectionCurve &newCurve)
 Copy constructor using other curve.
 
virtual ~MbCurveEdge ()
 Destructor.
 
MbeTopologyType IsA () const override
 A type of element.
 
MbCurveEdgeDataDuplicate (MbRegDuplicate *=nullptr) const override
 Create new edge by copying all data of the initial edge.
 
void SetOwnChangedThrough (MbeChangedType) override
 Set the flag that the object has been changed.
 
void Reverse () override
 Change direction of edge without changing a curve.
 
bool IsSame (const MbTopologyItem &, double accuracy) const override
 Determine whether objects are equal.
 
bool ChangeCurve (MbCurve3D &crv) override
 Replacement of a curve by the curve 'crv'.
 
void ChangeIntersectionCurve (MbSurfaceIntersectionCurve &crv, bool sense)
 Replacement of a curve by the curve 'crv'.
 
const MbSurfaceIntersectionCurveGetIntersectionCurve () const
 Get surfaces intersection curve.
 
MbSurfaceIntersectionCurveSetIntersectionCurve ()
 Get surfaces intersection curve for modification.
 
const MbCurve3DGetSpaceCurve () const
 Get a spatial copy of surfaces intersection curve.
 
MbCurve3DMakeCurve () const
 Construct a spatial copy of surfaces intersection curve.
 
MbFaceGetFacePlus () const
 Get a face on the left.
 
MbFaceGetFaceMinus () const
 Get a face on the right.
 
MbFaceGetFace (size_t i) const
 Get a face by index (0 - on the right from an edge, 1 - on the left from an edge).
 
void SetFacePlus (MbFace *f)
 Set a face on the left.
 
void SetFaceMinus (MbFace *f)
 Set a face on the right.
 
bool IsSmooth (double epsilon=Math::paramPrecision) const
 Is an edge smooth?
 
bool IsSeam () const
 Is an edge a seam?
 
bool IsSplit (bool strict=false) const
 Is an edge a face splitting?
 
bool IsPole () const
 Is an edge pole?
 
bool IsUsual (bool tolerantIsUsual) const
 Is an edge a usual edge of intersection (tolerant by the flag)?
 
void SetOrientedEdgesLabel (MbeLabelState, void *key=nullptr)
 Set labels of oriented edges.
 
bool FindOrientedEdge (bool orient, const MbFace *face, MbLoop *&findLoop, size_t &index) const
 Find an oriented edge.
 
bool FindOrientedEdgePlus (size_t &loopIndex, MbLoop *&findLoop, size_t &index) const
 Find an oriented edge.
 
bool FindOrientedEdgeMinus (size_t &loopIndex, MbLoop *&findLoop, size_t &index) const
 Find an oriented edge.
 
void DeleteOrientedEdges ()
 Delete oriented edges of the given edge.
 
void ChangeSurface (const MbSurface &oldSurf, MbSurface &newSurf, bool faceSense, bool orient)
 Replacement of a surface. More...
 
bool ChangeCarrierBorne (const MbSurface &item, MbSurface &init, const MbMatrix &matr)
 Replacement of a surface. More...
 
bool GetTraverses (const MbFace *face, const MbFace *other, bool plus, double t, double paramStep, double metricStep, MbCartPoint &p0, MbTwoTraverses &traverses, VERSION version=Math::DefaultMathVersion()) const
 Construction of normals of a face and vectors from an edge to both sides.
 
bool GetOutTraverse (const MbFace &face, bool plus, double t, double metricStep, MbCartPoint3D &q0, MbVector3D &outv, MbCartPoint &p0, MbVector &tv, bool &out) const
 Construct a vector from edge to the outside/inside of a face(out==true/false).
 
bool Transversal (double t, MbVector3D &f, bool plus) const
 Construct perpendicular to an edge (0 <= t <= 1) to the inside of a facePlus/faceMinus (plus==true/false).
 
bool Transversal (double t, MbVector &f, MbCartPoint &p, bool plus) const
 Construct perpendicular to an edge (0 <= t <= 1) to the inside of a facePlus/faceMinus (plus==true/false).

 
bool TransversalReper (double t, MbPlacement3D &pl, bool plus) const
 Construct perpendicular to an edge (0 <= t <= 1) to the inside of a facePlus/faceMinus (plus==true/false).

 
bool PointBy (const MbSurface &surf, bool faceSense, bool orient, double t, MbCartPoint &p) const
 Calculate on an edge (0 <= t <= 1) a two-dimensional point p in the region of parameters of the surface surf.
 
bool PointOn (const MbSurface &surf, bool faceSense, bool orient, double &t, MbCartPoint &p) const
 Calculate two-dimensional point p on the edge in the region of parameters of the surface surf by the value of parameter t on the edge curve.
 
bool PointOn (const MbFace *face, bool orient, double &t, MbCartPoint &p) const
 Calculate two-dimensional point p on the edge in the region of parameters of the ace 'face' by the value of parameter t on the edge curve.
 
bool FaceNormal (double t, MbVector3D &n, bool plus) const
 A normal to the face facePlus or faceMinus on the edge (0 <= t <= 1).
 
bool FaceNormal (const MbSurface &surf, bool faceSense, double t, MbVector3D &p) const
 A normal to the surface surf on the edge (0 <= t <= 1) of the surface surf.
 
bool EdgeNormal (double t, MbVector3D &p) const
 Calculate a normal on the edge (0 <= t <= 1) outside of the shell.
 
bool VertexNormal (bool begin, MbVector3D &normal) const
 Calculate the middle normal at the vertex 'begin' of the edge 'edge'.
 
MbCurveChooseCurve (const MbSurface &surf, bool faceSense, bool orient) const
 Selection of two-dimensional curve on the surface 'surf' by direction of the loop.
 
MbCurveChooseCurve (const MbFace *face, bool orient) const
 Selection of two-dimensional curve on the surface 'surf' by direction of the loop.
 
bool GetLimitParam (bool beg, MbCartPoint &pPlus, MbCartPoint &pMinus, double &t) const
 Get parameter t of edge boundary point and the corresponding points on surfaces of the intersection curve.
 
double FacesAngle (double t) const
 Calculate an angle of the edge (0 <= t <= 1). an angle is more than null for a convex edge and less than null for a concave edge.
 
ThreeStates IsConvex (double angleEps=EXTENT_EPSILON, const MbRect1D *tRange=nullptr) const
 Is an edge convex? More...
 
bool CopyReadyMutable (const MbCurveEdge &e)
 
bool GetMoveVector (const MbSurface &surf, bool faceSense, bool orient, MbVector &to) const
 Calculate two-dimensional vector of two-dimensional curve shift. More...
 
int IsCurveOneOnFacePlus () const
 
bool MoveBy (const MbSurface &surf, bool faceSense, bool orient, const MbVector &to)
 A shift of two-dimensional curve.
 
MbCurveEdgeCuttingEdge (double t, bool beginSafe, const MbSurface *surface)
 Split an edge by the parameter of its curve. More...
 
bool TruncateEdge (double &t, bool beginCutting, const MbSurface *surface)
 Truncate an edge by the parameter of its curve. More...
 
bool CuttingEdge (SArray< double > &params, bool beginSafe, double eps, const MbSurface *surface, RPArray< MbCurveEdge > &edges)
 Split the edge by the curve parameters into several pieces. More...
 
bool CuttingEdge (SArray< double > &params, bool beginSafe, double eps, const MbSurface *surface, c3d::EdgesSPtrVector &edges)
 Split the edge by the curve parameters into several pieces. More...
 
bool ConvexoConcaveCutting (RPArray< MbCurveEdge > &edges, VERSION version)
 Split the edge by points where the convexity changes. More...
 
bool ProlongEdge (double &t, bool begin, double deviateAngle, const VERSION version, double eps=Math::paramNear)
 Prolong an edge. More...
 
MbCurveEdgeMergeEdges (MbCurveEdge &edge2, bool begin1, bool begin2, const MbSNameMaker &snMaker, double tolerance=Math::paramNear)
 Merging of two connected edges. More...
 
void GetConnectedEdges (bool begin, RPArray< MbCurveEdge > &edges, SArray< bool > &orients) const
 Collect all edges which are connected with the given edge at its start vertex (begin==true) or at its end vertex (begin==false).
 
bool GetProlongEdges (RPArray< MbCurveEdge > &edges) const
 Collect all edges that are a continuation of this edge, and have the same faces on the left and right.

 
void GetProperties (MbProperties &)
 Get properties of the object.
 
void SetProperties (const MbProperties &)
 Set properties of the object.
 
bool IsBoundaryFace (double mEps=Math::metricEpsilon) const
 Is an edge a boundary edge where occurs a discontinuity of the shell?
 
MbeCurveBuildType GetBuildType () const
 Get a type of a curve by the construction.
 
double GetTolerance () const
 Calculate and get the tolerance of the edge curve.
 
void SetTolerance (double eps)
 Change the tolerance of construction of intersection curve.
 
bool IsTolerant () const
 Is a curve tolerant?
 
bool MakeBoundaryCurve ()
 Make the edge boundary (change its curve).
 
void CurveSection (const MbPlacement3D &place, SArray< MbCartPoint > &points, RPArray< MbCurve > &pCurve) const
 An intersection between an edge and a plane, in result a set of parameters on the placement or a set of two-dimensional curves on the placement.
 
bool CutPeriodicEdge (const MbVector3D &eye, SSArray< double > &trimParams, double &delT1, double &delT2) const
 Get the cutting parameters for a periodic edge.
 
void AgreeBuildType (double tCurve)
 Agree on the type of intersection curve.
 
- Public Member Functions inherited from MbEdge
 MbEdge (const MbCurve3D &initCurve, bool sense, const MbVertex &beg, const MbVertex &end)
 Constructor by curve, its orientation and vertices.
 
 MbEdge (const MbCurve3D &initCurve, bool sense, const MbVertex *beg, const MbVertex *end)
 Constructor by curve, its orientation and vertices. More...
 
 MbEdge (const MbCurve3D &initCurve, bool sense)
 Constructor by curve and its orientation. More...
 
 MbEdge (const MbEdge &other, const MbCurve3D &newCurve)
 Copy constructor using other curve.
 
virtual ~MbEdge ()
 Destructor.
 
void Transform (const MbMatrix3D &, MbRegTransform *=nullptr) override
 Transform according to the matrix. More...
 
void Move (const MbVector3D &, MbRegTransform *=nullptr) override
 Move along a vector. More...
 
void Rotate (const MbAxis3D &, double angle, MbRegTransform *=nullptr) override
 Rotate around an axis. More...
 
double DistanceToPoint (const MbCartPoint3D &) const override
 Calculate the distance to a point.
 
void AddYourGabaritTo (MbCube &) const override
 Add your own bounding box into the sent bounding box.
 
void CalculateLocalGabarit (const MbMatrix3D &into, MbCube &cube) const override
 Calculate bounding box in the local coordinate system which is given by the matrix of transformation to this system.
 
void CalculateMesh (const MbStepData &stepData, const MbFormNote &note, MbMesh &mesh) const override
 Construct a polygonal copy of an object mesh).
 
const MbCurve3DGetCurve () const
 Get a curve where an edge passes.
 
MbCurve3DSetCurve ()
 Get a curve where an edge passes.
 
bool IsSameSense () const
 Get the direction relative to the curve.
 
void SetSameSense (bool s)
 Set the direction relative to the curve.
 
const MbVertexGetBegVertexPointer () const
 Get the start vertex.
 
const MbVertexGetEndVertexPointer () const
 Get the end vertex.
 
MbVertexSetBegVertexPointer ()
 Get the start vertex.
 
MbVertexSetEndVertexPointer ()
 Get the end vertex.
 
const MbVertexGetBegVertex () const
 Get the start vertex.
 
const MbVertexGetEndVertex () const
 Get the end vertex.
 
const MbVertexGetVertex (size_t i) const
 Get vertex by number (0 - start vertex, 1 - end vertex).
 
MbVertexSetBegVertex ()
 Get the start vertex.
 
MbVertexSetEndVertex ()
 Get the end vertex.
 
MbVertexSetVertex (size_t i)
 Get vertex by number (0 - start vertex, 1 - end vertex).
 
void SetBegVertex (const MbVertex &ver)
 Set the start vertex.
 
void SetEndVertex (const MbVertex &ver)
 Set the end vertex.
 
const MbVertexGetTMinVertex () const
 Get a vertex corresponding to the start point of a curve.
 
const MbVertexGetTMaxVertex () const
 Get a vertex corresponding to the end point of a curve.
 
MbVertexSetTMinVertex ()
 Get a vertex corresponding to the start point of a curve.
 
MbVertexSetTMaxVertex ()
 Get a vertex corresponding to the end point of a curve.
 
void SetTMinVertex (const MbVertex &ver)
 Set a vertex corresponding to the start point of a curve.
 
void SetTMaxVertex (const MbVertex &ver)
 Set a vertex corresponding to the end point of a curve.
 
double GetTBegVertex () const
 Get curve parameter corresponding to the start vertex.
 
double GetTEndVertex () const
 Get curve parameter corresponding to the end vertex.
 
bool IsStraight (bool ignoreParams=false) const
 Is an edge rectilinear?
 
void GetBegVertexPoint (MbCartPoint3D &cp) const
 Get Cartesian point of start vertex.
 
void GetEndVertexPoint (MbCartPoint3D &cp) const
 Get Cartesian point of end vertex.
 
bool IsColinear (const MbPlacement3D &p, double epsilon=Math::angleRegion) const
 Is an edge parallel to the placement?
 
bool IsClosed () const
 Is an edge cyclic closed?
 
void SetLabelThrough (MbeLabelState l, void *key=nullptr) const
 Set a label for self and vertices.
 
void SetLabelThrough (MbeLabelState l, void *key, bool setLock) const
 Set a label for self and vertices.
 
void RemovePrivateLabelThrough (void *key) const
 Remove private label for self and vertices.
 
bool IsVertexOn (const MbVertex *vertex) const
 Check that vertices belong to an edge.
 
const MbVertexIsConnectedWith (const MbEdge &edge) const
 A search of common vertex between edges.
 
void GetVerticesArray (RPArray< MbVertex > &)
 Add vertices in a set of vertices (if they do not exist).
 
void GetVerticesArray (RPArray< const MbVertex > &) const
 Add vertices in a set of vertices (if they do not exist).
 
double GetCurveParam (double w) const
 Get parameter on a curve by the parameter on an edge (0 <= w <= 1).
 
double GetEdgeParam (double t) const
 Get parameter from 0 (start) to 1 (end) for an edge by the parameter of a curve.
 
void Point (double t, MbCartPoint3D &) const
 Calculate point on the edge (0 <= t <= 1).
 
void GetBegPoint (MbCartPoint3D &p) const
 Get point at start vertex.
 
void GetEndPoint (MbCartPoint3D &p) const
 Get point at end vertex.
 
void Tangent (double t, MbVector3D &) const
 Get tangent vector to the edge (0 <= t <= 1).
 
void GetBegTangent (MbVector3D &v) const
 Get tangent vector at start vertex.
 
void GetEndTangent (MbVector3D &v) const
 Get the tangent vector at the end vertex.
 
void GetMiddleDerive (MbVector3D &) const
 Calculate derivative in the middle of an edge.
 
double GetMetricLength () const
 Get the metric length of an edge.
 
double GetLengthEvaluation () const
 Get the estimate of metric length of an edge.
 
double DistanceToEdge (const MbEdge &edge, MbCartPoint3D &p0, MbCartPoint3D &p1) const
 Calculate the nearest distance to an edge.
 
double DistanceToFace (const MbFace &face, MbCartPoint3D &p0, MbCartPoint3D &p1) const
 Calculate the nearest distance to a face.
 
double DistanceToSurface (const MbSurface &surf, MbCartPoint3D &p0, MbCartPoint3D &p1) const
 Calculate the nearest distance to a surface.
 
double PointProjection (const MbCartPoint3D &) const
 Calculate the point projection on the edge.
 
bool PointProjection (const MbCartPoint3D &p0, MbCartPoint3D &pOnEdge, double &distance) const
 Calculate the point projection on extension of a straight edge.
 
bool AngleWithEdge (const MbEdge &, double &angle) const
 Calculate an angle between straight edges.
 
MbCurveGetProjection (const MbPlacement3D &, VERSION version) const
 Create projection of an edge to the plane.
 
void GetProperties (MbProperties &)
 Get properties of the object.
 
void SetProperties (const MbProperties &)
 Set properties of the object.
 
- Public Member Functions inherited from MbTopologyItem
virtual ~MbTopologyItem ()
 Destructor.
 
MbeImplicationType ImplicationType () const override
 A type of element. More...
 
const MbNameGetName () const
 Get name of object.
 
MbNameSetName ()
 Get name of object for modification.
 
SimpleName GetMainName () const
 Get main name.
 
void SetMainName (SimpleName n)
 Set main name.
 
SimpleName GetFirstName () const
 Get first name.
 
SimpleName GetNameHash () const
 Get hash of name.
 
void SetName (const MbName &n)
 Set name.
 
bool GetOwnChanged () const
 Get flag which indicates that an object has (not) been changed.
 
bool GetOwnChanged (MbeChangedType n) const
 Get flag which indicates that an object has (not) been changed.
 
void SetOwnChanged (MbeChangedType)
 Set flag which indicates that an object has (not) been changed.
 
void CopyOwnChanged (const MbTopologyItem &ti)
 Copy flag which indicates that an object has (not) been changed.
 
uint16 GetOwnChangedFlag () const
 Get flag which indicates that an object has (not) been changed.
 
template<class Uint >
void SetOwnChangedFlag (Uint n)
 Set flag which indicates that an object has (not) been changed.
 
bool IsOwnRenamedOnly () const
 Get flag which indicates that an object has been renamed only.
 
bool IsOwnTransformedOnly () const
 Get flag which indicates that an object has been transformed only.
 
bool IsOwnReorientedOnly () const
 Get flag which indicates that an object has been reoriented only.
 
bool IsOwnChangedWeakly () const
 Get a flag indicating that only “weak” changes were applied: creation, renaming, transformation, reorientation. More...
 
MbeLabelState GetLabel (void *key=nullptr) const
 Get label.
 
void SetOwnLabel (MbeLabelState l, void *key=nullptr) const
 Set a label of the loop.
 
void SetOwnLabel (MbeLabelState l, void *key, bool setLock) const
 Set a label of the loop.
 
bool ToDelete () const
 Is this object intended for deletion? This is defined by labels.
 
void RemovePrivateLabel (void *key=nullptr) const
 Remove private label.
 
void Assign (const MbTopologyItem &)
 Copying of the object data.
 
void RemoveParentNamesAttribute ()
 Delete an attribute of name type with parent names.
 
- 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 MbAttributeContainer
 MbAttributeContainer ()
 Constructor without parameters.
 
 MbAttributeContainer (MbAttribute &)
 Constructor by attribute.
 
virtual ~MbAttributeContainer ()
 Destructor.
 
void AttributesRead (reader &)
 Read attributes from stream.
 
void AttributesWrite (writer &) const
 Writing attributes to stream.
 
void GetProperties (MbProperties &)
 Get properties of attributes.
 
void SetProperties (const MbProperties &)
 Set properties of attributes.
 
void SetDensity (double)
 Set density of an object.
 
double GetDensity () const
 Get density of an object.
 
void SetVisual (float a, float d, float sp, float sh, float t, float e, uint rgb=0)
 Set visual properties of the object.
 
void SetVisual (const MbRGBA &ambient, const MbRGBA &diffuse, const MbRGBA &specular, const MbRGBA &emission, uint8 shininess, uint8 opacity, uint8 chrom)
 Set visual properties of the object.
 
bool GetVisual (float &a, float &d, float &sp, float &sh, float &t, float &e, uint rgb=0) const
 Get visual properties of the object. More...
 
bool IsColored () const
 
void SetColor (uint32)
 Change color of the object.

 
void SetColor (int R, int G, int B)
 Change color of the object (0-255).
 
uint32 GetColor () const
 Get color of an object.
 
void SetWidth (int)
 Set thickness of lines for object's representation.
 
int GetWidth () const
 Get thickness of lines for object's representation.
 
void SetStyle (int)
 Set style of lines for object's representation.
 
int GetStyle () const
 Get style of lines for object's representation.
 
void SetSelected (bool s=true)
 To allocate or not to allocate an object.
 
bool IsSelected () const
 Is the object selected.
 
bool ReverseSelected ()
 Invert object selection.
 
void SetChanged (bool c=true)
 Set: the object is changed or isn't changed.
 
bool IsChanged () const
 Is the object changed?
 
void SetVisible (bool)
 Set visibility.

 
bool IsVisible () const
 Is the object visible?
 
bool IsInvisible () const
 Is the object invisible?
 
void AttributesAssign (const MbAttributeContainer &)
 Duplicate attributes of a given object, release existing attributes.
 
size_t AttributesCount () const
 Get the number of objects.
 
bool RemoveAttributes (bool onDeleteOwner=false)
 Delete all attributes from container.
 
MbAttributeAddAttribute (MbAttribute *attr, bool checkSame=true)
 Add attribute in container. More...
 
MbAttributeAddAttribute (const MbAttribute &attr, bool checkSame=true)
 Add attribute in container (adds a copy of the attribute if it can be added). More...
 
void GetAttributes (c3d::AttrVector &attrs, MbeAttributeType aFamily, MbeAttributeType subType) const
 Get attributes of a given type or family. More...
 
void GetAttributes (c3d::AttrVector &attrs, MbeAttributeType aType) const
 Get attributes of a given type. More...
 
template<class AttrVector >
void GetAttributes (AttrVector &attrs) const
 Get attributes. More...
 
void GetCommonAttributes (c3d::AttrVector &, const c3d::string_t &samplePrompt, MbeAttributeType subType=at_Undefined, bool firstFound=false) const
 Get attributes using sample of description string.
 
void GetStringAttributes (c3d::AttrVector &, const c3d::string_t &sampleContent) const
 Get string attributes using sample of contents of the string.
 
bool RemoveAttribute (const MbAttribute *, bool checkAccuracySame=false, double accuracy=LENGTH_EPSILON)
 Get an attribute of a given type, the first one is returned if there are many. More...
 
bool RemoveAttributes (MbeAttributeType type, MbeAttributeType subType)
 Delete attributes of a given type.
 
const MbAttributeGetSimpleAttribute (MbeAttributeType) const
 Get a simple attribute of a given subtype.
 
MbAttributeSetSimpleAttribute (MbeAttributeType)
 Get a simple attribute of a given subtype.
 
MbAttributeSetSimpleAttribute (MbAttribute *simpAttr)
 Set a simple attribute of a given subtype.
 
MbAttributeSetSimpleAttribute (const MbAttribute &simpAttr)
 Set a simple attribute of a given subtype (always copies the attribute).
 
void RemoveSimpleAttribute (MbeAttributeType)
 Delete simple attributes (one or more) of a given subtype.
 
MbAttributeDetachSimpleAttribute (MbeAttributeType)
 Detach a simple attribute of a given subtype.
 
void GetUserAttributes (std::vector< MbUserAttribute * > &attrs, const MbUserAttribType &type) const
 Get a user attribute of a given subtype.
 
void RemoveUserAttributes (const MbUserAttribType &type)
 Delete user attributes (one or more) of a given subtype.
 
void DetachUserAttributes (std::vector< MbUserAttribute * > &attrs, const MbUserAttribType &type)
 Detach a user attribute of a given subtype.
 
void AttributesChange ()
 Perform actions when changing the attributes.

 
void AttributesConvert (MbAttributeContainer &other) const
 Perform actions when converting the attributes.

 
void AttributesTransform (const MbMatrix3D &, MbRegTransform *=nullptr)
 Perform actions when transforming the attributes.

 
void AttributesMove (const MbVector3D &, MbRegTransform *=nullptr)
 Perform actions when moving the attributes.

 
void AttributesRotate (const MbAxis3D &, double angle, MbRegTransform *=nullptr)
 Perform actions when rotating the attributes.

 
void AttributesCopy (MbAttributeContainer &other, MbRegDuplicate *=nullptr) const
 Perform actions when copying the attributes.

 
void AttributesMerge (MbAttributeContainer &other)
 Perform actions when merging the attributes.

 
void AttributesReplace (MbAttributeContainer &other)
 Perform actions when replacing the attributes.
 
void AttributesSplit (const std::vector< MbAttributeContainer * > &others)
 Perform actions when splitting the attributes.
 
void AttributesDelete ()
 Perform actions when deleting the attributes.
 

Protected Member Functions

 MbCurveEdge (const MbCurveEdge &, MbRegDuplicate *iReg)
 Copy constructor.
 
- Protected Member Functions inherited from MbEdge
 MbEdge (const MbEdge &init, MbRegDuplicate *iReg)
 Copy constructor.
 
- Protected Member Functions inherited from MbTopologyItem
 MbTopologyItem ()
 Constructor without parameters.
 
 MbTopologyItem (const MbTopologyItem &, MbRegDuplicate *)
 Constructor of duplicating.
 
- Protected Member Functions inherited from MbTopItem
 MbTopItem ()
 Constructor.
 
- Protected Member Functions inherited from MbRefItem
 MbRefItem ()
 Constructor without parameters.
 
- Protected Member Functions inherited from MbAttributeContainer
 MbAttributeContainer (const MbAttributeContainer &, MbRegDuplicate *)
 Copy-constructor with the registrator.
 

Protected Attributes

MbFacefacePlus
 A face on the left, where the direction of edge coincides with the direction of loop.
 
MbFacefaceMinus
 A face on the right, where the direction of edge does not coincide with the direction of loop.
 
- Protected Attributes inherited from MbEdge
MbCurve3Dcurve
 A curve, an edge passes by (it is always not nullptr).
 
bool sameSense
 An attribute of coincidence between direction of curve and direction of edge.
 
MbVertexbegVertex
 Start vertex (always not nullptr).
 
MbVertexendVertex
 End vertex (always not nullptr).
 
- Protected Attributes inherited from MbTopologyItem
MbLabel label
 Temporary label for performing of operations.
 

Additional Inherited Members

- Static Public Member Functions inherited from MbAttributeContainer
static MbUserAttributeReduceUserAttrib (const MbExternalAttribute &)
 Convert user attribute to "system" one.
 
static MbExternalAttributeAdvanceUserAttrib (const MbUserAttribute &)
 Convert "system" attribute to user one.
 

Detailed Description

Face edge.

A face edge is a curve of surfaces intersection MbSurfaceIntersectionCurve with direction. In contrast to an edge MbEdge an edge MbCurveEdge describes not just a curve, but a smooth piece of connection between two faces or a smooth piece of face boundary.
A face edge is used to describe a piece of connection between two faces or a piece of face boundary.
If an edge describes a piece of connection between two faces then the both pointers to faces are not null.
An edge describing a piece of connection of a cyclic closed faces with itself is called seam.
In the last case pointers to the left face and to the right face are the same.
If an edge describes a piece of face boundary then the pointer to the left face or the pointer to the right face equals null.
An edge describing a contracted to a point piece of face boundary is called a pole edge.
If an edge describes a piece of face boundary then a curve of surfaces intersection is boundary too, i.e. it consists of two equal curves on surface.
An edge starts and ends in vertices MbVertex. If a curve of an edge is cyclic closed, then an edge starts and ends at the same vertex.

Constructor & Destructor Documentation

◆ MbCurveEdge() [1/2]

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

Constructor by vertices, intersection curve and its orientation on edge.

Constructor of edge by vertices, intersection curve and its orientation on edge. There is performed a check of existence and correctness of location of edge vertices points.

◆ MbCurveEdge() [2/2]

MbCurveEdge::MbCurveEdge ( const MbSurfaceIntersectionCurve ,
bool  sense 
)

Constructor by intersection curve.

Constructor of edge by intersection curve. Vertices are constructed by boundary points of curve.

Member Function Documentation

◆ ChangeSurface()

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

Replacement of a surface.

Replacement of the surface oldSurf to the surface newSurf in a curve.

Parameters
[in]oldSurf- Replaced surface of a face.
[in]newSurf- Replacing (new) surface of a face.
[in]faceSense- Coincidence between the face normal direction and the surface normal direction.
[in]orient- Orientation of an edge in the face loop.

◆ ChangeCarrierBorne()

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

Replacement of a surface.

Replacement of the surface 'item' to the surface 'init' when combining the similar faces.

Parameters
[in]item- Replaced surface of a face.
[in]init- Replacing (new) surface of a face.
[in]matr- A transformation matrix of two-dimensional curves of intersection curve when replacing surfaces.
Returns
Are replacement and transformation performed?

◆ IsConvex()

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

Is an edge convex?

Is an edge convex by its middle parameter (or middle parameter of input range)? The calculation is correct for edges which do not change a convexity. Returns ts_neutral for smooth edges.

◆ CopyReadyMutable()

bool MbCurveEdge::CopyReadyMutable ( const MbCurveEdge e)

Copy from the copy ready estimates which were not calculated in the original.

Warning
Attention: a check of identity between a copy and an original is not performed for the time saving!

◆ GetMoveVector()

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

Calculate two-dimensional vector of two-dimensional curve shift.

Calculate two-dimensional vector of two-dimensional curve shift.

◆ IsCurveOneOnFacePlus()

int MbCurveEdge::IsCurveOneOnFacePlus ( ) const

Where surfaces (faces) intersection curves lie:
curveOne on facePlus, curveTwo on faceMinus => +1
curveOne on faceMinus, curveTwo on facePlus => -1
otherwise => 0

◆ CuttingEdge() [1/3]

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

Split an edge by the parameter of its curve.

If beginSafe == true then the edge saves its starting piece, the spit edge will save its start vertex and will end at the vertex breakVertex, the new edge newEdge will start at the vertex breakVertex and will end at the ex-end vertex of the spit edge If beginSafe == false then the edge saves its ending piece, the spit edge will save its end vertex and will start at the vertex breakVertex, the new edge newEdge will start at the start vertex of the spit edge and will end at the vertex breakVertex.
The parameter 'surface' plays a role only for tolerant edge. The new edge will be embedded in the loops of adjacent faces.

Parameters
[in]t- Parameter of intersection curve of edge to split,
[in]beginSafe- The edge will keep a beginning piece (true) or the edge will keep an end piece (false)
[in]surface- For tolerant curve it is required to specify a surface which contain a curve a parameter belongs to.
Returns
Returns a cut edge.

◆ TruncateEdge()

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

Truncate an edge by the parameter of its curve.

If beginCutting == true - then the starting part of an edge is cut. If beginCutting == false - then the ending part of an edge is cut.

Parameters
[in]t- Parameter of intersection curve of edge to truncate.
[in]beginCutting- The edge will keep a beginning piece (false) or the edge will keep an end piece (true).
[in]surface- For tolerant curve it is required to specify a surface which contain a curve a parameter belongs to.
Returns
Returns true if the edge was truncated, otherwise returns false.

◆ CuttingEdge() [2/3]

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

Split the edge by the curve parameters into several pieces.

. If beginSafe == true then the edge saves its starting piece, If beginSafe == false then the edge saves its ending piece. According to the parameter 'eps' drop out value in the container 'params', coinciding with each other and with the initial and final parameters of the intersection curve. The parameter 'surface' plays a role only for tolerant edge. The container 'edges' contains cut parts. The cut parts will be embedded in the loops of adjacent faces.

Parameters
[in]params- Parameters of intersection curve of edge to split,
[in]beginSafe- The edge will keep a beginning piece (true) or the edge will keep an end piece (false)
[in]eps- Precision matching options of parameters to split,
[in]surface- For tolerant curve it is required to specify a surface of face which contain a curve parameters belongs to.
[out]edges- The container of cut parts.
Returns
Returns true, if the edge was cut.

◆ CuttingEdge() [3/3]

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

Split the edge by the curve parameters into several pieces.

. If beginSafe == true then the edge saves its starting piece, If beginSafe == false then the edge saves its ending piece. According to the parameter 'eps' drop out value in the container 'params', coinciding with each other and with the initial and final parameters of the intersection curve. The parameter 'surface' plays a role only for tolerant edge. The container 'edges' contains cut parts. The cut parts will be embedded in the loops of adjacent faces.

Parameters
[in]params- Parameters of intersection curve of edge to split,
[in]beginSafe- The edge will keep a beginning piece (true) or the edge will keep an end piece (false)
[in]eps- Precision matching options of parameters to split,
[in]surface- For tolerant curve it is required to specify a surface of face which contain a curve parameters belongs to.
[out]edges- The container of cut parts.
Returns
Returns true, if the edge was cut.

◆ ConvexoConcaveCutting()

bool MbCurveEdge::ConvexoConcaveCutting ( RPArray< MbCurveEdge > &  edges,
VERSION  version 
)

Split the edge by points where the convexity changes.

Split the edge by points where the convexity changes. The container 'edges' contains cut parts of edge. The cut parts will be embedded in the loops of adjacent faces.

Parameters
[out]edges- The container of cut parts.
Returns
Returns true, if the edge was cut.

◆ ProlongEdge()

bool MbCurveEdge::ProlongEdge ( double &  t,
bool  begin,
double  deviateAngle,
const VERSION  version,
double  eps = Math::paramNear 
)

Prolong an edge.

Continue the intersection curve of edge by the parameter t, lying outside of the curve.

Parameters
[in,out]t- Parameter outside of the intersection curve.
[in]begin- The edge should be prolonged by the beginning (true) or by the ending (false).
[in]deviateAngle- The angular deviation step of the motion along the curve in the general case.
[in]version- Version of operation.
[in]eps- Build precision.
Returns
Returns true if the edge was prolonged, otherwise returns false.

◆ MergeEdges()

MbCurveEdge* MbCurveEdge::MergeEdges ( MbCurveEdge edge2,
bool  begin1,
bool  begin2,
const MbSNameMaker snMaker,
double  tolerance = Math::paramNear 
)

Merging of two connected edges.

Merging of two connected edges:
Before the call AddRef should be done on the edges, since one of the edges may be deleted, and after the call and using the edges Release should be done on them.

Parameters
[in,out]edge2- Merging edge.
[in]begin1- This edge is joined by the beginning (true) or by the ending (false).
[in]begin2- The edge2 is joined by the beginning (true) or by the ending (false).
[in]snMaker- Names maker with a version of operation.
Returns
Returns absorbed edge (edge2), which can be removed.

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