C3D Toolkit
Kernel - 117958, Vision - 2.7.6.12
|
Face edge. More...
#include <topology.h>
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. | |
MbCurveEdge * | DataDuplicate (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 MbSurfaceIntersectionCurve & | GetIntersectionCurve () const |
Get surfaces intersection curve. | |
MbSurfaceIntersectionCurve & | SetIntersectionCurve () |
Get surfaces intersection curve for modification. | |
const MbCurve3D * | GetSpaceCurve () const |
Get a spatial copy of surfaces intersection curve. | |
MbCurve3D * | MakeCurve () const |
Construct a spatial copy of surfaces intersection curve. | |
MbFace * | GetFacePlus () const |
Get a face on the left. | |
MbFace * | GetFaceMinus () const |
Get a face on the right. | |
MbFace * | GetFace (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'. | |
MbCurve * | ChooseCurve (const MbSurface &surf, bool faceSense, bool orient) const |
Selection of two-dimensional curve on the surface 'surf' by direction of the loop. | |
MbCurve * | ChooseCurve (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. | |
MbCurveEdge * | CuttingEdge (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 > ¶ms, 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 > ¶ms, 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... | |
MbCurveEdge * | MergeEdges (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. | |
![]() | |
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 ¬e, MbMesh &mesh) const override |
Construct a polygonal copy of an object mesh). | |
const MbCurve3D & | GetCurve () const |
Get a curve where an edge passes. | |
MbCurve3D & | SetCurve () |
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 MbVertex * | GetBegVertexPointer () const |
Get the start vertex. | |
const MbVertex * | GetEndVertexPointer () const |
Get the end vertex. | |
MbVertex * | SetBegVertexPointer () |
Get the start vertex. | |
MbVertex * | SetEndVertexPointer () |
Get the end vertex. | |
const MbVertex & | GetBegVertex () const |
Get the start vertex. | |
const MbVertex & | GetEndVertex () const |
Get the end vertex. | |
const MbVertex & | GetVertex (size_t i) const |
Get vertex by number (0 - start vertex, 1 - end vertex). | |
MbVertex & | SetBegVertex () |
Get the start vertex. | |
MbVertex & | SetEndVertex () |
Get the end vertex. | |
MbVertex & | SetVertex (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 MbVertex & | GetTMinVertex () const |
Get a vertex corresponding to the start point of a curve. | |
const MbVertex & | GetTMaxVertex () const |
Get a vertex corresponding to the end point of a curve. | |
MbVertex & | SetTMinVertex () |
Get a vertex corresponding to the start point of a curve. | |
MbVertex & | SetTMaxVertex () |
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 MbVertex * | IsConnectedWith (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. | |
MbCurve * | GetProjection (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. | |
![]() | |
virtual | ~MbTopologyItem () |
Destructor. | |
MbeImplicationType | ImplicationType () const override |
A type of element. More... | |
const MbName & | GetName () const |
Get name of object. | |
MbName & | SetName () |
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 flag which indicates that an object has been only created, renamed, transformed or reoriented. | |
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. | |
![]() | |
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? | |
![]() | |
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. | |
![]() | |
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. | |
![]() | |
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. | |
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. | |
MbAttribute * | AddAttribute (MbAttribute *attr, bool checkSame=true) |
Add attribute in container. More... | |
MbAttribute * | AddAttribute (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... | |
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 MbAttribute * | GetSimpleAttribute (MbeAttributeType) const |
Get a simple attribute of a given subtype. | |
MbAttribute * | SetSimpleAttribute (MbeAttributeType) |
Get a simple attribute of a given subtype. | |
MbAttribute * | SetSimpleAttribute (MbAttribute *simpAttr) |
Set a simple attribute of a given subtype. | |
MbAttribute * | SetSimpleAttribute (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. | |
MbAttribute * | DetachSimpleAttribute (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. | |
![]() | |
MbEdge (const MbEdge &init, MbRegDuplicate *iReg) | |
Copy constructor. | |
![]() | |
MbTopologyItem () | |
Constructor without parameters. | |
MbTopologyItem (const MbTopologyItem &, MbRegDuplicate *) | |
Constructor of duplicating. | |
![]() | |
MbTopItem () | |
Constructor. | |
![]() | |
MbRefItem () | |
Constructor without parameters. | |
![]() | |
MbAttributeContainer (const MbAttributeContainer &, MbRegDuplicate *) | |
Copy-constructor with the registrator. | |
Protected Attributes | |
MbFace * | facePlus |
A face on the left, where the direction of edge coincides with the direction of loop. | |
MbFace * | faceMinus |
A face on the right, where the direction of edge does not coincide with the direction of loop. | |
![]() | |
MbCurve3D * | curve |
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. | |
MbVertex * | begVertex |
Start vertex (always not nullptr). | |
MbVertex * | endVertex |
End vertex (always not nullptr). | |
![]() | |
MbLabel | label |
Temporary label for performing of operations. | |
Additional Inherited Members | |
![]() | |
static MbUserAttribute * | ReduceUserAttrib (const MbExternalAttribute &) |
Convert user attribute to "system" one. | |
static MbExternalAttribute * | AdvanceUserAttrib (const MbUserAttribute &) |
Convert "system" attribute to user one. | |
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.
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::MbCurveEdge | ( | const MbSurfaceIntersectionCurve & | , |
bool | sense | ||
) |
Constructor by intersection curve.
Constructor of edge by intersection curve. Vertices are constructed by boundary points of curve.
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.
[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. |
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.
[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. |
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.
bool MbCurveEdge::CopyReadyMutable | ( | const MbCurveEdge & | e | ) |
Copy from the copy ready estimates which were not calculated in the original.
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.
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
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.
[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. |
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.
[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. |
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.
[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. |
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.
[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. |
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.
[out] | edges | - The container of cut parts. |
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.
[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. |
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.
[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. |