UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
UE::CADKernel::FTopologicalEdge Class Reference

#include <TopologicalEdge.h>

+ Inheritance diagram for UE::CADKernel::FTopologicalEdge:

Public Member Functions

virtual ~FTopologicalEdge () override
 
virtual void Empty () override
 
virtual void Serialize (FCADKernelArchive &Ar) override
 
virtual void SpawnIdent (FDatabase &Database) override
 
virtual void ResetMarkersRecursively () const override
 
double GetTolerance3D () const
 
double GetTolerance2DAt (double Coordinate) const
 
virtual EEntity GetEntityType () const override
 
void LinkVertex ()
 
bool CheckIfDegenerated () const
 
bool IsLinkableTo (const FTopologicalEdge &Edge, double EdgeLengthTolerance) const
 
void LinkIfCoincident (FTopologicalEdge &OtherEdge, double EdgeLengthTolerance, double SquareJoiningTolerance)
 
void Link (FTopologicalEdge &OtherEdge)
 
void Disjoin ()
 
void Unlink ()
 
TSharedRef< const FTopologicalEdgeGetLinkActiveEdge () const
 
TSharedRef< FTopologicalEdgeGetLinkActiveEdge ()
 
FTopologicalEdgeGetFirstTwinEdge () const
 
FTopologicalEdgeGetTwinEdge () const
 
bool IsSameDirection (const FTopologicalEdge &Edge) const
 
bool IsTangentAtExtremitiesWith (const FTopologicalEdge &Edge) const
 
bool IsClosed () const
 
void ReplaceEdgeVertex (bool bIsStartVertex, TSharedRef< FTopologicalVertex > &NewVertex)
 
const FTopologicalLoopGetLoop () const
 
FTopologicalLoopGetLoop ()
 
FTopologicalFaceGetFace () const
 
const TSharedRef< FTopologicalVertexGetStartVertex (EOrientation Forward) const
 
const TSharedRef< FTopologicalVertexGetEndVertex (EOrientation Forward) const
 
const TSharedRef< FTopologicalVertexGetStartVertex (bool Forward) const
 
const TSharedRef< FTopologicalVertexGetEndVertex (bool Forward) const
 
const TSharedRef< FTopologicalVertexGetStartVertex () const
 
const TSharedRef< FTopologicalVertexGetEndVertex () const
 
TSharedRef< FTopologicalVertexGetStartVertex ()
 
TSharedRef< FTopologicalVertexGetEndVertex ()
 
TSharedPtr< FTopologicalVertexGetOtherVertex (const TSharedRef< FTopologicalVertex > &Vertex)
 
FTopologicalVertexGetOtherVertex (FTopologicalVertex &Vertex)
 
const FTopologicalVertexGetOtherVertex (const FTopologicalVertex &Vertex) const
 
const TSharedPtr< FTopologicalVertexGetOtherVertex (const TSharedRef< FTopologicalVertex > &Vertex) const
 
void SetStartVertex (const double NewCoordinate)
 
void SetEndVertex (const double NewCoordinate)
 
void SetStartVertex (const double NewCoordinate, const FVector &NewPoint3D)
 
void SetEndVertex (const double NewCoordinate, const FVector &NewPoint3D)
 
const FLinearBoundaryGetBoundary () const
 
double GetStartCurvilinearCoordinates () const
 
double GetEndCurvilinearCoordinates () const
 
FVector GetStartBarycenter ()
 
FVector GetEndBarycenter ()
 
FVector GetStartCoordinate ()
 
FVector GetEndCoordinate ()
 
void GetTangentsAtExtremities (FVector &StartTangent, FVector &EndTangent, bool bForward) const
 
void GetTangentsAtExtremities (FVector &StartTangent, FVector &EndTangent, EOrientation Orientation) const
 
const FEdgeMeshGetMesh () const
 
FEdgeMeshGetOrCreateMesh (FModelMesh &MeshModel)
 
void RemovePreMesh ()
 
const FTopologicalEdgeGetPreMeshedTwin () const
 
FTopologicalEdgeGetPreMeshedTwin ()
 
void ComputeCrossingPointCoordinates ()
 
int32 EvaluateCuttingPointNum ()
 
void InitDeltaUs ()
 
const TArray< double > & GetCrossingPointUs () const
 
TArray< double > & GetCrossingPointUs ()
 
TArray< double > & GetDeltaUMins ()
 
TArray< double > & GetDeltaUMaxs ()
 
const TArray< double > & GetDeltaUMaxs () const
 
double GetDeltaUFor (double Coordinate, int32 &Index) const
 
TArray< FCuttingPoint > & GetCuttingPoints ()
 
const TArray< FCuttingPoint > & GetCuttingPoints () const
 
TArray< doubleGetCuttingPointCoordinates () const
 
void TransferCuttingPointFromMeshedEdge (bool bOnlyWithOppositeNode, FAddCuttingPointFunc AddCuttingPoint)
 
TArray< doubleGetPreElementLengths () const
 
void SortImposedCuttingPoints ()
 
const TArray< FImposedCuttingPoint > & GetImposedCuttingPoints () const
 
void AddThinZone (FThinZoneSide *InThinZoneSide, const FLinearBoundary &InThinZoneBounds)
 
int32 GetThinZoneCount () const
 
const TArray< FThinZoneSide * > & GetThinZoneSides () const
 
const TArray< FLinearBoundary > & GetThinZoneBounds () const
 
void AddImposedCuttingPointU (const double ImposedCuttingPointU, const int32 OppositeNodeIndex, const double DeltaU)
 
void AddTwinsCuttingPoint (const double Coord, const double DeltaU)
 
void GenerateMeshElements (FModelMesh &MeshModel)
 
TSharedRef< FRestrictionCurveGetCurve () const
 
TSharedRef< FRestrictionCurveGetCurve ()
 
void ComputeLength ()
 
double Length () const
 
void Sample (const double DesiredSegmentLength, TArray< double > &OutCoordinates) const
 
void EvaluatePoint (double InCoordinate, int32 Derivative, FCurvePoint &Point) const
 
void EvaluatePoints (const TArray< double > &InCoordinates, int32 DerivativeOrder, TArray< FCurvePoint > &OutPoints) const
 
void ApproximatePoints (const TArray< double > &InCoordinates, TArray< FVector > &OutPoints) const
 
FVector2d Approximate2DPoint (const double InCoordinate) const
 
void Approximate2DPoints (const TArray< double > &InCoordinates, TArray< FVector2d > &OutPoints) const
 
void ApproximatePolyline (FSurfacicPolyline &Polyline) const
 
FVector GetTangentAt (const double InCoordinate) const
 
FVector2d GetTangent2DAt (const double InCoordinate) const
 
FVector GetTangentAt (const FTopologicalVertex &InVertex)
 
FVector2d GetTangent2DAt (const FTopologicalVertex &InVertex)
 
template<class PointType >
double ProjectPoint (const PointType &InPointToProject, PointType &OutProjectedPoint) const
 
void ProjectPoints (const TArray< FVector > &InPointsToProject, TArray< double > &OutProjectedPointCoords, TArray< FVector > &OutProjectedPoints) const
 
void ProjectTwinEdgePoints (const TArray< FVector > &InPointsToProject, bool bSameOrientation, TArray< double > &OutProjectedPointCoords) const
 
void ProjectTwinEdgePointsOn2DCurve (const TSharedRef< FTopologicalEdge > &InTwinEdge, const TArray< double > &InTwinEdgePointCoords, TArray< FVector2d > &OutPoints2D)
 
void ComputeIntersectionsWithIsos (const TArray< double > &InIsoCoordinates, const EIso InTypeIso, const FSurfacicTolerance &ToleranceIso, TArray< double > &OutIntersection) const
 
template<class PointType >
void GetDiscretization2DPoints (EOrientation Orientation, TArray< PointType > &OutPoints) const
 
double TransformLocalCoordinateToActiveEdgeCoordinate (const double LocalCoordinate) const
 
double TransformActiveEdgeCoordinateToLocalCoordinate (const double ActiveEdgeCoordinate) const
 
double TransformTwinEdgeCoordinateToLocalCoordinate (const FTopologicalEdge &TwinEdge, const double InTwinCoordinate) const
 
void TransformTwinEdgeCoordinatesToLocalCoordinates (const FTopologicalEdge &TwinEdge, const TArray< double > &InActiveEdgeCoordinate, TArray< double > &OutLocalCoordinate) const
 
void TransformActiveEdgeCoordinatesToLocalCoordinates (const TArray< double > &InActiveEdgeCoordinate, TArray< double > &OutLocalCoordinate) const
 
void TransformLocalCoordinatesToActiveEdgeCoordinates (const TArray< double > &InLocalCoordinate, TArray< double > &OutActiveEdgeCoordinate) const
 
void ComputeEdge2DProperties (FEdge2DProperties &SlopeCharacteristics)
 
void GetExtremities (FSurfacicCurveExtremities &Extremities) const
 
void Offset2D (const FVector2d &OffsetDirection)
 
FTopologicalVertexSplitAt (double SplittingCoordinate, const FVector &NewVertexCoordinate, bool bKeepStartVertexConnectivity, TSharedPtr< FTopologicalEdge > &OutNewEdge)
 
bool ExtendTo (bool bStartExtremity, const FVector2d &NewExtremityCoordinate, TSharedRef< FTopologicalVertex > &NewVertex)
 
bool IsSharpEdge () const
 
bool HasSameLengthAs (const FTopologicalEdge &Edge, double EdgeLengthTolerance) const
 
virtual bool IsDegenerated () const override
 
bool IsThinPeak () const
 
virtual void SetThinPeakMarker () const
 
virtual void ResetThinPeakMarker () const
 
bool IsVirtuallyMeshed () const
 
virtual void SetVirtuallyMeshedMarker () const
 
virtual void ResetVirtuallyMeshedMarker () const
 
bool IsBorder () const
 
bool IsSurfacic () const
 
bool IsConnectedTo (const FTopologicalFace *Face) const
 
TArray< FTopologicalFace * > GetLinkedFaces () const
 
- Public Member Functions inherited from UE::CADKernel::TLinkable< FTopologicalEdge, FEdgeLink >
 TLinkable ()=default
 
virtual ~TLinkable () override
 
void Finalize ()
 
const TSharedRef< const FTopologicalEdgeGetLinkActiveEntity () const
 
TSharedRef< FTopologicalEdgeGetLinkActiveEntity ()
 
bool IsActiveEntity () const
 
void Activate ()
 
virtual TSharedPtr< FEdgeLinkGetLink () const
 
virtual TSharedPtr< FEdgeLinkGetLink ()
 
void ResetTopologicalLink ()
 
bool IsLinkedTo (const TSharedRef< FTopologicalEdge > &Entity) const
 
bool IsLinkedTo (const FTopologicalEdge &Entity) const
 
int32 GetTwinEntityCount () const
 
bool HasTwin () const
 
const TArray< FTopologicalEdge * > & GetTwinEntities () const
 
virtual void RemoveFromLink ()
 
void UnlinkTwinEntities ()
 
const bool IsThinZone () const
 
virtual void SetThinZoneMarker ()
 
virtual void ResetThinZone ()
 
- Public Member Functions inherited from UE::CADKernel::FTopologicalEntity
FIdent GetKioId () const
 
const bool IsApplyCriteria () const
 
virtual void SetApplyCriteriaMarker () const
 
virtual void ResetApplyCriteria ()
 
bool IsNotMeshable () const
 
bool IsMeshable () const
 
bool IsPreMeshed () const
 
bool IsMeshed () const
 
virtual void SetPreMeshedMarker ()
 
virtual void SetMeshedMarker ()
 
virtual void ResetPreMeshed ()
 
- Public Member Functions inherited from UE::CADKernel::FEntity
virtual ~FEntity ()
 
virtual void Delete ()
 
bool IsTopologicalEntity () const
 
bool IsTopologicalShapeEntity () const
 
bool IsGeometricalEntity ()
 
const TCHARGetTypeName () const
 
const FIdentGetId () const
 
- Public Member Functions inherited from TSharedFromThis< FEntity >
TSharedRef< FEntity, Mode > AsShared ()
 
TSharedRef< FEntity const, Mode > AsShared () const
 
TSharedRef< SubobjectType, Mode > AsSharedSubobject (SubobjectType *SubobjectPtr) const
 
TWeakPtr< FEntity, Mode > AsWeak ()
 
TWeakPtr< FEntity const, Mode > AsWeak () const
 
TWeakPtr< SubobjectType, Mode > AsWeakSubobject (SubobjectType *SubobjectPtr) const
 
void UpdateWeakReferenceInternal (TSharedPtr< SharedPtrType, SharedPtrMode > const *InSharedPtr, OtherType *InObject) const
 
void UpdateWeakReferenceInternal (TSharedRef< SharedRefType, SharedPtrMode > const *InSharedRef, OtherType *InObject) const
 
UE_FORCEINLINE_HINT bool DoesSharedInstanceExist () const
 
- Public Member Functions inherited from UE::CADKernel::FHaveStates
 FHaveStates ()
 
void Serialize (FCADKernelArchive &Ar)
 
void ResetElementStatus ()
 
bool HasMarker1 () const
 
bool HasMarker2 () const
 
bool HasMarker1And2 () const
 
bool HasMarker1Or2 () const
 
void SetMarker1 () const
 
void SetMarker2 () const
 
void ResetMarker1 () const
 
void ResetMarker2 () const
 
void ResetMarkers () const
 
bool IsDeleted () const
 
void SetDeletedMarker () const
 
void ResetDeleted () const
 
virtual bool IsDeletedOrDegenerated () const
 
virtual void SetAsDegenerated () const
 
virtual void ResetDegenerated () const
 
void SetWaitingMarker () const
 
void ResetWaitingMarker () const
 
virtual bool IsWaiting () const
 
void SetProcessedMarker () const
 
void ResetProcessedMarker () const
 
virtual bool IsProcessed () const
 
virtual bool IsProcessedDeletedOrDegenerated () const
 
void SetToProcessMarker () const
 
void ResetToProcessMarker () const
 
virtual bool IsToProcess () const
 
virtual bool IsNotToProcess () const
 
virtual bool IsNotToOrAlreadyProcess () const
 

Static Public Member Functions

static TSharedPtr< FTopologicalEdgeMake (const TSharedRef< FRestrictionCurve > &InCurve, const TSharedRef< FTopologicalVertex > &InVertex1, const TSharedRef< FTopologicalVertex > &InVertex2, const FLinearBoundary &InBoundary)
 
static TSharedPtr< FTopologicalEdgeMake (const TSharedRef< FRestrictionCurve > &InCurve, const TSharedRef< FTopologicalVertex > &InVertex1, const TSharedRef< FTopologicalVertex > &InVertex2)
 
static TSharedPtr< FTopologicalEdgeMake (const TSharedRef< FRestrictionCurve > &InCurve, const FLinearBoundary &InBoundary)
 
static TSharedPtr< FTopologicalEdgeMake (const TSharedRef< FRestrictionCurve > &InCurve)
 
static TSharedPtr< FTopologicalEdgeMake (const TSharedRef< FSurface > &InSurface, const FVector2d &InCoordinateVertex1, const TSharedRef< FTopologicalVertex > &InVertex1, const FVector2d &InCoordinateVertex2, const TSharedRef< FTopologicalVertex > &InVertex2)
 
static TSharedPtr< FTopologicalEdgeReturnIfValid (TSharedRef< FTopologicalEdge > &InEdge, bool bCheckVertices)
 
static TSharedPtr< FTopologicalEdgeCreateEdgeByMergingEdges (const double SmallEdgeTolerance, TArray< FOrientedEdge > &Edges, const TSharedRef< FTopologicalVertex > &StartVertex, const TSharedRef< FTopologicalVertex > &EndVertex)
 
- Static Public Member Functions inherited from UE::CADKernel::FEntity
template<typename OtherEntity , typename... InArgTypes>
static TSharedRef< OtherEntity > MakeShared (InArgTypes &&... Args)
 
template<typename OtherEntity >
static TSharedRef< OtherEntity > MakeShared (FCADKernelArchive &Archive)
 
static void SerializeIdent (FCADKernelArchive &Ar, TSharedPtr< FEntity > &Entity, bool bSaveSelection=true)
 
static void SerializeIdent (FCADKernelArchive &Ar, TWeakPtr< FEntity > &Entity, bool bSaveSelection=true)
 
static void SerializeIdent (FCADKernelArchive &Ar, FEntity **Entity, bool bSaveSelection=true)
 
template<typename EntityType >
static void SerializeIdent (FCADKernelArchive &Ar, EntityType **Entity, bool bSaveSelection=true)
 
template<typename EntityType >
static void SerializeIdent (FCADKernelArchive &Ar, TSharedPtr< EntityType > &Entity, bool bSaveSelection=true)
 
template<typename EntityType >
static void SerializeIdent (FCADKernelArchive &Ar, TWeakPtr< EntityType > &Entity, bool bSaveSelection=true)
 
static void SerializeIdents (FCADKernelArchive &Ar, TArray< FEntity * > &Array, bool bSaveSelection=true)
 
static void SerializeIdents (FCADKernelArchive &Ar, TArray< TWeakPtr< FEntity > > &Array, bool bSaveSelection=true)
 
static void SerializeIdents (FCADKernelArchive &Ar, TArray< TSharedPtr< FEntity > > &Array, bool bSaveSelection=true)
 
static void SerializeIdents (FCADKernelArchive &Ar, TArray< TOrientedEntity< FEntity > > &Array)
 
template<typename EntityType >
static void SerializeIdents (FCADKernelArchive &Ar, TArray< EntityType * > &Array, bool bSaveSelection=true)
 
template<typename EntityType >
static void SerializeIdents (FCADKernelArchive &Ar, TArray< TWeakPtr< EntityType > > &Array, bool bSaveSelection=true)
 
template<typename EntityType >
static void SerializeIdents (FCADKernelArchive &Ar, TArray< TSharedPtr< EntityType > > &Array, bool bSaveSelection=true)
 
static void SpawnIdentOnEntities (TArray< FEntity * > &Array, FDatabase &Database)
 
static void SpawnIdentOnEntities (TArray< TSharedPtr< FEntity > > &Array, FDatabase &Database)
 
static void SpawnIdentOnEntities (TArray< TOrientedEntity< FEntity > > &Array, FDatabase &Database)
 
template<typename EntityType >
static void SpawnIdentOnEntities (TArray< TSharedPtr< EntityType > > &Array, FDatabase &Database)
 
static void ResetMarkersRecursivelyOnEntities (const TArray< FEntity * > &Array)
 
static void ResetMarkersRecursivelyOnEntities (const TArray< TWeakPtr< FEntity > > &Array)
 
static void ResetMarkersRecursivelyOnEntities (const TArray< TSharedPtr< FEntity > > &Array)
 
static void ResetMarkersRecursivelyOnEntities (const TArray< TOrientedEntity< FEntity > > &Array)
 
template<typename EntityType >
static void ResetMarkersRecursivelyOnEntities (const TArray< TSharedPtr< EntityType > > &Array)
 
static TSharedPtr< FEntityDeserialize (FCADKernelArchive &Ar)
 
static const TCHARGetTypeName (EEntity Type)
 

Protected Attributes

TSharedPtr< FTopologicalVertexStartVertex
 
TSharedPtr< FTopologicalVertexEndVertex
 
FLinearBoundary Boundary
 
TSharedPtr< FRestrictionCurveCurve
 
double Length3D = -1.
 
double Max2DTolerance = -1
 
FTopologicalLoopLoop = nullptr
 
TSharedPtr< FEdgeMeshMesh
 
TArray< FCuttingPointCuttingPointUs
 
TArray< FImposedCuttingPointImposedCuttingPointUs
 
TArray< FThinZoneSide * > ThinZoneSides
 
TArray< FLinearBoundaryThinZoneBounds
 
TArray< doubleCrossingPointUs
 
TArray< doubleCrossingPointDeltaUMins
 
TArray< doubleCrossingPointDeltaUMaxs
 
- Protected Attributes inherited from UE::CADKernel::TLinkable< FTopologicalEdge, FEdgeLink >
TSharedPtr< FEdgeLinkTopologicalLink
 
- Protected Attributes inherited from UE::CADKernel::FTopologicalEntity
FIdent CtKioId = 0
 
- Protected Attributes inherited from UE::CADKernel::FEntity
FIdent Id = 0
 
- Protected Attributes inherited from UE::CADKernel::FHaveStates
EHaveStates States
 

Friends

class FEntity
 
class FTopologicalLoop
 
class FTopologicalFace
 

Additional Inherited Members

- Protected Member Functions inherited from UE::CADKernel::TLinkable< FTopologicalEdge, FEdgeLink >
void MakeLink (FTopologicalEdge &Twin)
 
void SetTopologicalLink (TSharedPtr< FEdgeLink > Link)
 
- Protected Member Functions inherited from UE::CADKernel::FEntity
bool SetId (FDatabase &Database)
 
- Protected Member Functions inherited from TSharedFromThis< FEntity >
 TSharedFromThis ()
 
 TSharedFromThis (TSharedFromThis const &)
 
UE_FORCEINLINE_HINT TSharedFromThisoperator= (TSharedFromThis const &)
 
 ~TSharedFromThis ()
 
- Static Protected Member Functions inherited from TSharedFromThis< FEntity >
static UE_FORCEINLINE_HINT TSharedRef< OtherType, Mode > SharedThis (OtherType *ThisPtr)
 
static UE_FORCEINLINE_HINT TSharedRef< OtherType const, Mode > SharedThis (const OtherType *ThisPtr)
 
- Static Protected Attributes inherited from UE::CADKernel::FEntity
static const TCHARTypesNames []
 

Constructor & Destructor Documentation

◆ ~FTopologicalEdge()

virtual UE::CADKernel::FTopologicalEdge::~FTopologicalEdge ( )
inlineoverridevirtual

Member Function Documentation

◆ AddImposedCuttingPointU()

void UE::CADKernel::FTopologicalEdge::AddImposedCuttingPointU ( const double  ImposedCuttingPointU,
const int32  OppositeNodeIndex,
const double  DeltaU 
)

◆ AddThinZone()

void UE::CADKernel::FTopologicalEdge::AddThinZone ( FThinZoneSide InThinZoneSide,
const FLinearBoundary InThinZoneBounds 
)
inline

◆ AddTwinsCuttingPoint()

void UE::CADKernel::FTopologicalEdge::AddTwinsCuttingPoint ( const double  Coord,
const double  DeltaU 
)

◆ Approximate2DPoint()

FVector2d UE::CADKernel::FTopologicalEdge::Approximate2DPoint ( const double  InCoordinate) const
inline

Approximation of 2D point defined by its coordinate compute with carrier surface 2D polyline

◆ Approximate2DPoints()

void UE::CADKernel::FTopologicalEdge::Approximate2DPoints ( const TArray< double > &  InCoordinates,
TArray< FVector2d > &  OutPoints 
) const
inline

Approximation of 2D points defined by its coordinates compute with carrier surface 2D polyline

◆ ApproximatePoints()

void UE::CADKernel::FTopologicalEdge::ApproximatePoints ( const TArray< double > &  InCoordinates,
TArray< FVector > &  OutPoints 
) const
inline

Approximation of 3D points compute with carrier surface 3D polyline

◆ ApproximatePolyline()

void UE::CADKernel::FTopologicalEdge::ApproximatePolyline ( FSurfacicPolyline Polyline) const
inline

Approximation of surfacic polyline (points 2d, 3d, normals, tangents) defined by its coordinates compute with carrier surface polyline

◆ CheckIfDegenerated()

bool UE::CADKernel::FTopologicalEdge::CheckIfDegenerated ( ) const

Checks if the carrier curve is degenerated i.e. the 2d length of the curve is nearly zero If the 3d length is nearly zero, the edge is flag as degenerated

◆ ComputeCrossingPointCoordinates()

void UE::CADKernel::FTopologicalEdge::ComputeCrossingPointCoordinates ( )

Generate a sampling of the curve. This sampling is used by apply meshing criteria function to defined the optimal mesh of the edge. This sampling is saved in CrossingPointUs TArray.

◆ ComputeEdge2DProperties()

void UE::CADKernel::FTopologicalEdge::ComputeEdge2DProperties ( FEdge2DProperties SlopeCharacteristics)

Compute the edge 2D properties i.e. the mean and standard deviation of the slop of the edge in the parametric space of the carrier surface

◆ ComputeIntersectionsWithIsos()

void UE::CADKernel::FTopologicalEdge::ComputeIntersectionsWithIsos ( const TArray< double > &  InIsoCoordinates,
const EIso  InTypeIso,
const FSurfacicTolerance ToleranceIso,
TArray< double > &  OutIntersection 
) const
inline

◆ ComputeLength()

void UE::CADKernel::FTopologicalEdge::ComputeLength ( )

◆ CreateEdgeByMergingEdges()

TSharedPtr< FTopologicalEdge > UE::CADKernel::FTopologicalEdge::CreateEdgeByMergingEdges ( const double  SmallEdgeTolerance,
TArray< FOrientedEdge > &  Edges,
const TSharedRef< FTopologicalVertex > &  StartVertex,
const TSharedRef< FTopologicalVertex > &  EndVertex 
)
static

Merge successive edges of a face in a single edge. Edges must not be topological linked to other faces i.e. edges must be border edges The merged edges are deleted

Returns
TSharedPtr<FTopologicalEdge>() if failed

◆ Disjoin()

void UE::CADKernel::FTopologicalEdge::Disjoin ( )

Remove the edge and the extremity vertices of the linked entity vs UnlinkTwinEntities delete only the edge link

◆ Empty()

void UE::CADKernel::FTopologicalEdge::Empty ( )
overridevirtual

◆ EvaluateCuttingPointNum()

int32 UE::CADKernel::FTopologicalEdge::EvaluateCuttingPointNum ( )

◆ EvaluatePoint()

void UE::CADKernel::FTopologicalEdge::EvaluatePoint ( double  InCoordinate,
int32  Derivative,
FCurvePoint Point 
) const
inline

Exact evaluation of point on the 3D curve According to derivativeOrder Gradient of the point (DerivativeOrder = 1) and Laplacian (DerivativeOrder = 1) can also be return

◆ EvaluatePoints()

void UE::CADKernel::FTopologicalEdge::EvaluatePoints ( const TArray< double > &  InCoordinates,
int32  DerivativeOrder,
TArray< FCurvePoint > &  OutPoints 
) const
inline

Exact evaluation of points on the 3D curve According to derivativeOrder Gradient of the point (DerivativeOrder = 1) and Laplacian (DerivativeOrder = 1) can also be return

◆ ExtendTo()

bool UE::CADKernel::FTopologicalEdge::ExtendTo ( bool  bStartExtremity,
const FVector2d NewExtremityCoordinate,
TSharedRef< FTopologicalVertex > &  NewVertex 
)

Extend the Edge to the NewVertex. NewVertex become the new extremity of the edge. The old vertex is unconnected of the edge.

◆ GenerateMeshElements()

void UE::CADKernel::FTopologicalEdge::GenerateMeshElements ( FModelMesh MeshModel)

◆ GetBoundary()

const FLinearBoundary & UE::CADKernel::FTopologicalEdge::GetBoundary ( ) const
inline

◆ GetCrossingPointUs() [1/2]

TArray< double > & UE::CADKernel::FTopologicalEdge::GetCrossingPointUs ( )
inline

◆ GetCrossingPointUs() [2/2]

const TArray< double > & UE::CADKernel::FTopologicalEdge::GetCrossingPointUs ( ) const
inline

◆ GetCurve() [1/2]

TSharedRef< FRestrictionCurve > UE::CADKernel::FTopologicalEdge::GetCurve ( )
inline

◆ GetCurve() [2/2]

TSharedRef< FRestrictionCurve > UE::CADKernel::FTopologicalEdge::GetCurve ( ) const
inline

◆ GetCuttingPointCoordinates()

TArray< double > UE::CADKernel::FTopologicalEdge::GetCuttingPointCoordinates ( ) const

◆ GetCuttingPoints() [1/2]

TArray< FCuttingPoint > & UE::CADKernel::FTopologicalEdge::GetCuttingPoints ( )
inline

◆ GetCuttingPoints() [2/2]

const TArray< FCuttingPoint > & UE::CADKernel::FTopologicalEdge::GetCuttingPoints ( ) const
inline

◆ GetDeltaUFor()

double UE::CADKernel::FTopologicalEdge::GetDeltaUFor ( double  Coordinate,
int32 Index 
) const
inline

◆ GetDeltaUMaxs() [1/2]

TArray< double > & UE::CADKernel::FTopologicalEdge::GetDeltaUMaxs ( )
inline

◆ GetDeltaUMaxs() [2/2]

const TArray< double > & UE::CADKernel::FTopologicalEdge::GetDeltaUMaxs ( ) const
inline

◆ GetDeltaUMins()

TArray< double > & UE::CADKernel::FTopologicalEdge::GetDeltaUMins ( )
inline

◆ GetDiscretization2DPoints()

template<class PointType >
void UE::CADKernel::FTopologicalEdge::GetDiscretization2DPoints ( EOrientation  Orientation,
TArray< PointType > &  OutPoints 
) const
inline

Get the discretization points of the edge and add them to the outpoints TArray

◆ GetEndBarycenter()

FVector UE::CADKernel::FTopologicalEdge::GetEndBarycenter ( )
inline
Returns
the 3d coordinate of the end vertex (the barycenter of the twin vertices)

◆ GetEndCoordinate()

FVector UE::CADKernel::FTopologicalEdge::GetEndCoordinate ( )
inline
Returns
the 3d coordinate of the end vertex (prefer GetEndBarycenter)

◆ GetEndCurvilinearCoordinates()

double UE::CADKernel::FTopologicalEdge::GetEndCurvilinearCoordinates ( ) const
inline

◆ GetEndVertex() [1/4]

TSharedRef< FTopologicalVertex > UE::CADKernel::FTopologicalEdge::GetEndVertex ( )
inline

◆ GetEndVertex() [2/4]

const TSharedRef< FTopologicalVertex > UE::CADKernel::FTopologicalEdge::GetEndVertex ( ) const
inline

◆ GetEndVertex() [3/4]

const TSharedRef< FTopologicalVertex > UE::CADKernel::FTopologicalEdge::GetEndVertex ( bool  Forward) const
inline

◆ GetEndVertex() [4/4]

const TSharedRef< FTopologicalVertex > UE::CADKernel::FTopologicalEdge::GetEndVertex ( EOrientation  Forward) const
inline

◆ GetEntityType()

virtual EEntity UE::CADKernel::FTopologicalEdge::GetEntityType ( ) const
inlineoverridevirtual

◆ GetExtremities()

void UE::CADKernel::FTopologicalEdge::GetExtremities ( FSurfacicCurveExtremities Extremities) const
inline

◆ GetFace()

FTopologicalFace * UE::CADKernel::FTopologicalEdge::GetFace ( ) const
Returns
the carrier topological face

◆ GetFirstTwinEdge()

FTopologicalEdge * UE::CADKernel::FTopologicalEdge::GetFirstTwinEdge ( ) const
inline

◆ GetImposedCuttingPoints()

const TArray< FImposedCuttingPoint > & UE::CADKernel::FTopologicalEdge::GetImposedCuttingPoints ( ) const
inline

◆ GetLinkActiveEdge() [1/2]

TSharedRef< FTopologicalEdge > UE::CADKernel::FTopologicalEdge::GetLinkActiveEdge ( )
inline

◆ GetLinkActiveEdge() [2/2]

TSharedRef< const FTopologicalEdge > UE::CADKernel::FTopologicalEdge::GetLinkActiveEdge ( ) const
inline

◆ GetLinkedFaces()

TArray< FTopologicalFace * > UE::CADKernel::FTopologicalEdge::GetLinkedFaces ( ) const

◆ GetLoop() [1/2]

FTopologicalLoop * UE::CADKernel::FTopologicalEdge::GetLoop ( )
inline
Returns
the containing boundary

◆ GetLoop() [2/2]

const FTopologicalLoop * UE::CADKernel::FTopologicalEdge::GetLoop ( ) const
inline
Returns
the containing boundary

◆ GetMesh()

const FEdgeMesh * UE::CADKernel::FTopologicalEdge::GetMesh ( ) const
inline

◆ GetOrCreateMesh()

FEdgeMesh & UE::CADKernel::FTopologicalEdge::GetOrCreateMesh ( FModelMesh MeshModel)

◆ GetOtherVertex() [1/4]

const FTopologicalVertex * UE::CADKernel::FTopologicalEdge::GetOtherVertex ( const FTopologicalVertex Vertex) const
inline

◆ GetOtherVertex() [2/4]

TSharedPtr< FTopologicalVertex > UE::CADKernel::FTopologicalEdge::GetOtherVertex ( const TSharedRef< FTopologicalVertex > &  Vertex)
inline

◆ GetOtherVertex() [3/4]

const TSharedPtr< FTopologicalVertex > UE::CADKernel::FTopologicalEdge::GetOtherVertex ( const TSharedRef< FTopologicalVertex > &  Vertex) const
inline

◆ GetOtherVertex() [4/4]

FTopologicalVertex * UE::CADKernel::FTopologicalEdge::GetOtherVertex ( FTopologicalVertex Vertex)
inline

◆ GetPreElementLengths()

TArray< double > UE::CADKernel::FTopologicalEdge::GetPreElementLengths ( ) const

Compute the lengths of each pre-elements of the edge i.e the elements based of the cutting points of the edges.

◆ GetPreMeshedTwin() [1/2]

FTopologicalEdge * UE::CADKernel::FTopologicalEdge::GetPreMeshedTwin ( )
inline

◆ GetPreMeshedTwin() [2/2]

const FTopologicalEdge * UE::CADKernel::FTopologicalEdge::GetPreMeshedTwin ( ) const

◆ GetStartBarycenter()

FVector UE::CADKernel::FTopologicalEdge::GetStartBarycenter ( )
inline
Returns
the 3d coordinate of the start vertex (the barycenter of the twin vertices)

◆ GetStartCoordinate()

FVector UE::CADKernel::FTopologicalEdge::GetStartCoordinate ( )
inline
Returns
the 3d coordinate of the start vertex (prefer GetStartBarycenter)

◆ GetStartCurvilinearCoordinates()

double UE::CADKernel::FTopologicalEdge::GetStartCurvilinearCoordinates ( ) const
inline

◆ GetStartVertex() [1/4]

TSharedRef< FTopologicalVertex > UE::CADKernel::FTopologicalEdge::GetStartVertex ( )
inline

◆ GetStartVertex() [2/4]

const TSharedRef< FTopologicalVertex > UE::CADKernel::FTopologicalEdge::GetStartVertex ( ) const
inline

◆ GetStartVertex() [3/4]

const TSharedRef< FTopologicalVertex > UE::CADKernel::FTopologicalEdge::GetStartVertex ( bool  Forward) const
inline

◆ GetStartVertex() [4/4]

const TSharedRef< FTopologicalVertex > UE::CADKernel::FTopologicalEdge::GetStartVertex ( EOrientation  Forward) const
inline

◆ GetTangent2DAt() [1/2]

FVector2d UE::CADKernel::FTopologicalEdge::GetTangent2DAt ( const double  InCoordinate) const
inline

◆ GetTangent2DAt() [2/2]

FVector2d UE::CADKernel::FTopologicalEdge::GetTangent2DAt ( const FTopologicalVertex InVertex)

◆ GetTangentAt() [1/2]

FVector UE::CADKernel::FTopologicalEdge::GetTangentAt ( const double  InCoordinate) const
inline

◆ GetTangentAt() [2/2]

FVector UE::CADKernel::FTopologicalEdge::GetTangentAt ( const FTopologicalVertex InVertex)

Return the tangent at the input vertex

◆ GetTangentsAtExtremities() [1/2]

void UE::CADKernel::FTopologicalEdge::GetTangentsAtExtremities ( FVector StartTangent,
FVector EndTangent,
bool  bForward 
) const

◆ GetTangentsAtExtremities() [2/2]

void UE::CADKernel::FTopologicalEdge::GetTangentsAtExtremities ( FVector StartTangent,
FVector EndTangent,
EOrientation  Orientation 
) const
inline

◆ GetThinZoneBounds()

const TArray< FLinearBoundary > & UE::CADKernel::FTopologicalEdge::GetThinZoneBounds ( ) const
inline

◆ GetThinZoneCount()

int32 UE::CADKernel::FTopologicalEdge::GetThinZoneCount ( ) const
inline

◆ GetThinZoneSides()

const TArray< FThinZoneSide * > & UE::CADKernel::FTopologicalEdge::GetThinZoneSides ( ) const
inline

◆ GetTolerance2DAt()

double UE::CADKernel::FTopologicalEdge::GetTolerance2DAt ( double  Coordinate) const
inline

◆ GetTolerance3D()

double UE::CADKernel::FTopologicalEdge::GetTolerance3D ( ) const
inline

◆ GetTwinEdge()

FTopologicalEdge * UE::CADKernel::FTopologicalEdge::GetTwinEdge ( ) const
inline

◆ HasSameLengthAs()

bool UE::CADKernel::FTopologicalEdge::HasSameLengthAs ( const FTopologicalEdge Edge,
double  EdgeLengthTolerance 
) const
Returns
true if they have the same length +/- 5 % or +/- EdgeLengthTolerance

◆ InitDeltaUs()

void UE::CADKernel::FTopologicalEdge::InitDeltaUs ( )
inline

◆ IsBorder()

bool UE::CADKernel::FTopologicalEdge::IsBorder ( ) const
inline
Returns
true if the edge is adjacent to only one surface (its carrier surface)

◆ IsClosed()

bool UE::CADKernel::FTopologicalEdge::IsClosed ( ) const
inline
Returns
true if the edge is self connected at its extremities

◆ IsConnectedTo()

bool UE::CADKernel::FTopologicalEdge::IsConnectedTo ( const FTopologicalFace Face) const

◆ IsDegenerated()

virtual bool UE::CADKernel::FTopologicalEdge::IsDegenerated ( ) const
inlineoverridevirtual

Important note: A Degenerated Edge is used to close 2D boundary in case of degenerated surface to ensureCADKernel a closed boundary Specific process is done for the mesh of this kind of surface

Reimplemented from UE::CADKernel::FHaveStates.

◆ IsLinkableTo()

bool UE::CADKernel::FTopologicalEdge::IsLinkableTo ( const FTopologicalEdge Edge,
double  EdgeLengthTolerance 
) const

It can be linked to the edge if :

  • they have the same length (5% or +/- EdgeLengthTolerance)
  • they are ~tangent at their extremities i.e
    See also
    IsTangentAtExtremitiesWith

◆ IsSameDirection()

bool UE::CADKernel::FTopologicalEdge::IsSameDirection ( const FTopologicalEdge Edge) const
Returns
true if the twin edge is in the same direction as this

◆ IsSharpEdge()

bool UE::CADKernel::FTopologicalEdge::IsSharpEdge ( ) const

◆ IsSurfacic()

bool UE::CADKernel::FTopologicalEdge::IsSurfacic ( ) const
inline
Returns
true if the edge is adjacent to only two surfaces

◆ IsTangentAtExtremitiesWith()

bool UE::CADKernel::FTopologicalEdge::IsTangentAtExtremitiesWith ( const FTopologicalEdge Edge) const
Returns
true if it is ~tangent with the edge at their extremities i.e Cos(tangents) > cos(30 deg)

◆ IsThinPeak()

bool UE::CADKernel::FTopologicalEdge::IsThinPeak ( ) const
inline

An edge is a thin peak means that this edge is a small edge at the extremity of a peak thin zone So this edge must not be meshed (except at its extremities)

                    ThinSide 0
      #-------------------------------------#
     /
    /  <- Thin peak edge
   /
  #-----------------------------------------#
                    ThinSide 1

◆ IsVirtuallyMeshed()

bool UE::CADKernel::FTopologicalEdge::IsVirtuallyMeshed ( ) const
inline

◆ Length()

double UE::CADKernel::FTopologicalEdge::Length ( ) const

◆ Link()

void UE::CADKernel::FTopologicalEdge::Link ( FTopologicalEdge OtherEdge)

Link with the other edge. No check is performed except check if degenerated ot deleted. If checks are needed, use LinkIfCoincident

◆ LinkIfCoincident()

void UE::CADKernel::FTopologicalEdge::LinkIfCoincident ( FTopologicalEdge OtherEdge,
double  EdgeLengthTolerance,
double  SquareJoiningTolerance 
)

Link two edges. Two edges can be linked if :

  • Their extremities coincide following SquareJoiningTolerance's criteria,
  • They are linkable (
    See also
    IsLinkableTo)
    This step must be done when the loop is finalize because in some case edges can be delete, split, extend... to avoid problems

◆ LinkVertex()

void UE::CADKernel::FTopologicalEdge::LinkVertex ( )

◆ Make() [1/5]

TSharedPtr< FTopologicalEdge > UE::CADKernel::FTopologicalEdge::Make ( const TSharedRef< FRestrictionCurve > &  InCurve)
static

◆ Make() [2/5]

TSharedPtr< FTopologicalEdge > UE::CADKernel::FTopologicalEdge::Make ( const TSharedRef< FRestrictionCurve > &  InCurve,
const FLinearBoundary InBoundary 
)
static

◆ Make() [3/5]

TSharedPtr< FTopologicalEdge > UE::CADKernel::FTopologicalEdge::Make ( const TSharedRef< FRestrictionCurve > &  InCurve,
const TSharedRef< FTopologicalVertex > &  InVertex1,
const TSharedRef< FTopologicalVertex > &  InVertex2 
)
static

◆ Make() [4/5]

TSharedPtr< FTopologicalEdge > UE::CADKernel::FTopologicalEdge::Make ( const TSharedRef< FRestrictionCurve > &  InCurve,
const TSharedRef< FTopologicalVertex > &  InVertex1,
const TSharedRef< FTopologicalVertex > &  InVertex2,
const FLinearBoundary InBoundary 
)
static

◆ Make() [5/5]

TSharedPtr< FTopologicalEdge > UE::CADKernel::FTopologicalEdge::Make ( const TSharedRef< FSurface > &  InSurface,
const FVector2d InCoordinateVertex1,
const TSharedRef< FTopologicalVertex > &  InVertex1,
const FVector2d InCoordinateVertex2,
const TSharedRef< FTopologicalVertex > &  InVertex2 
)
static

Build an edge to connect two vertices carried by a 2d segment

◆ Offset2D()

void UE::CADKernel::FTopologicalEdge::Offset2D ( const FVector2d OffsetDirection)

◆ ProjectPoint()

template<class PointType >
double UE::CADKernel::FTopologicalEdge::ProjectPoint ( const PointType &  InPointToProject,
PointType &  OutProjectedPoint 
) const
inline

Project Point (2D or 3D) on the polyline (2D or 3D) and return the coordinate of the projected point

◆ ProjectPoints()

void UE::CADKernel::FTopologicalEdge::ProjectPoints ( const TArray< FVector > &  InPointsToProject,
TArray< double > &  OutProjectedPointCoords,
TArray< FVector > &  OutProjectedPoints 
) const
inline

Project a set of points on the 3D polyline and return the coordinate of the projected point

◆ ProjectTwinEdgePoints()

void UE::CADKernel::FTopologicalEdge::ProjectTwinEdgePoints ( const TArray< FVector > &  InPointsToProject,
bool  bSameOrientation,
TArray< double > &  OutProjectedPointCoords 
) const
inline

Project a set of points of a twin edge on the 3D polyline and return the coordinate of the projected point

◆ ProjectTwinEdgePointsOn2DCurve()

void UE::CADKernel::FTopologicalEdge::ProjectTwinEdgePointsOn2DCurve ( const TSharedRef< FTopologicalEdge > &  InTwinEdge,
const TArray< double > &  InTwinEdgePointCoords,
TArray< FVector2d > &  OutPoints2D 
)

Compute 2D points of the edge coincident the points of the twin edge defined by their coordinates

◆ RemovePreMesh()

void UE::CADKernel::FTopologicalEdge::RemovePreMesh ( )

If the mesh of the edge is not built, Empty the CuttingPoints This allows to recompute a new discretization of the mesh based among other things on a new imposed cutting points (mesh of thin zone process)

◆ ReplaceEdgeVertex()

void UE::CADKernel::FTopologicalEdge::ReplaceEdgeVertex ( bool  bIsStartVertex,
TSharedRef< FTopologicalVertex > &  NewVertex 
)

This function is used to :

  • sew exactly two edges of the same loop
  • prepare to disconnect two edges connected by the same vertex

OldVertex = bStartVertex ? StartVertex : EndVertex OldVertex can be an extremity of other edges OldVertex can be link to other vertices (TopologicalLink can be valid or not)

NewVertex can be an extremity of other edges NewVertex can be linked to other vertices (TopologicalLink can be valid or not) NewVertex can be not linked to OldVertex

After the process: OldVertex is no more connected to this edge but stay connected to its other linked edges If OldVertex is isolated (not connected to any edge), OldVertex is deleted otherwise OldVertex is linked to NewVertex

◆ ResetMarkersRecursively()

virtual void UE::CADKernel::FTopologicalEdge::ResetMarkersRecursively ( ) const
inlineoverridevirtual

◆ ResetThinPeakMarker()

virtual void UE::CADKernel::FTopologicalEdge::ResetThinPeakMarker ( ) const
inlinevirtual

◆ ResetVirtuallyMeshedMarker()

virtual void UE::CADKernel::FTopologicalEdge::ResetVirtuallyMeshedMarker ( ) const
inlinevirtual

◆ ReturnIfValid()

TSharedPtr< FTopologicalEdge > UE::CADKernel::FTopologicalEdge::ReturnIfValid ( TSharedRef< FTopologicalEdge > &  InEdge,
bool  bCheckVertices 
)
static

To check the build edge before returning it or return TSharedPtr<FTopologicalEdge>() if the edge is not valid

◆ Sample()

void UE::CADKernel::FTopologicalEdge::Sample ( const double  DesiredSegmentLength,
TArray< double > &  OutCoordinates 
) const

Samples the curve with segments of a desired length

◆ Serialize()

virtual void UE::CADKernel::FTopologicalEdge::Serialize ( FCADKernelArchive Ar)
inlineoverridevirtual

Serialization of a FEntity. Each class derived from FEntity has to override this method (and call the direct base class override method first) E.g. class FEntityXXX : public FEntityXX { virtual void Serialize(FCADKernelArchive& Ar) override { FEntityXX::Serialize(Ar); ... } }

Reimplemented from UE::CADKernel::TLinkable< FTopologicalEdge, FEdgeLink >.

◆ SetEndVertex() [1/2]

void UE::CADKernel::FTopologicalEdge::SetEndVertex ( const double  NewCoordinate)

◆ SetEndVertex() [2/2]

void UE::CADKernel::FTopologicalEdge::SetEndVertex ( const double  NewCoordinate,
const FVector NewPoint3D 
)

◆ SetStartVertex() [1/2]

void UE::CADKernel::FTopologicalEdge::SetStartVertex ( const double  NewCoordinate)

◆ SetStartVertex() [2/2]

void UE::CADKernel::FTopologicalEdge::SetStartVertex ( const double  NewCoordinate,
const FVector NewPoint3D 
)

◆ SetThinPeakMarker()

virtual void UE::CADKernel::FTopologicalEdge::SetThinPeakMarker ( ) const
inlinevirtual

◆ SetVirtuallyMeshedMarker()

virtual void UE::CADKernel::FTopologicalEdge::SetVirtuallyMeshedMarker ( ) const
inlinevirtual

◆ SortImposedCuttingPoints()

void UE::CADKernel::FTopologicalEdge::SortImposedCuttingPoints ( )

◆ SpawnIdent()

void UE::CADKernel::FTopologicalEdge::SpawnIdent ( FDatabase Database)
overridevirtual

Reimplemented from UE::CADKernel::FEntity.

◆ SplitAt()

FTopologicalVertex * UE::CADKernel::FTopologicalEdge::SplitAt ( double  SplittingCoordinate,
const FVector NewVertexCoordinate,
bool  bKeepStartVertexConnectivity,
TSharedPtr< FTopologicalEdge > &  OutNewEdge 
)

Split the edge at input coordinate. The initial edge will be used for the first edge, the second edge will be return.

Parameters
SplittingCoordinate
NewVertexCoordinate
bKeepStartVertexConnectivityif true the new edge is connected to endVertex, otherwise the new edge is connected to start vertex
OutNewEdge,thesecond edge

◆ TransferCuttingPointFromMeshedEdge()

void UE::CADKernel::FTopologicalEdge::TransferCuttingPointFromMeshedEdge ( bool  bOnlyWithOppositeNode,
FAddCuttingPointFunc  AddCuttingPoint 
)

◆ TransformActiveEdgeCoordinatesToLocalCoordinates()

void UE::CADKernel::FTopologicalEdge::TransformActiveEdgeCoordinatesToLocalCoordinates ( const TArray< double > &  InActiveEdgeCoordinate,
TArray< double > &  OutLocalCoordinate 
) const

◆ TransformActiveEdgeCoordinateToLocalCoordinate()

double UE::CADKernel::FTopologicalEdge::TransformActiveEdgeCoordinateToLocalCoordinate ( const double  ActiveEdgeCoordinate) const

◆ TransformLocalCoordinatesToActiveEdgeCoordinates()

void UE::CADKernel::FTopologicalEdge::TransformLocalCoordinatesToActiveEdgeCoordinates ( const TArray< double > &  InLocalCoordinate,
TArray< double > &  OutActiveEdgeCoordinate 
) const

◆ TransformLocalCoordinateToActiveEdgeCoordinate()

double UE::CADKernel::FTopologicalEdge::TransformLocalCoordinateToActiveEdgeCoordinate ( const double  LocalCoordinate) const

◆ TransformTwinEdgeCoordinatesToLocalCoordinates()

void UE::CADKernel::FTopologicalEdge::TransformTwinEdgeCoordinatesToLocalCoordinates ( const FTopologicalEdge TwinEdge,
const TArray< double > &  InActiveEdgeCoordinate,
TArray< double > &  OutLocalCoordinate 
) const

◆ TransformTwinEdgeCoordinateToLocalCoordinate()

double UE::CADKernel::FTopologicalEdge::TransformTwinEdgeCoordinateToLocalCoordinate ( const FTopologicalEdge TwinEdge,
const double  InTwinCoordinate 
) const

◆ Unlink()

void UE::CADKernel::FTopologicalEdge::Unlink ( )
inline

Remove the edge and the extremity vertices of the linked entity vs UnlinkTwinEntities delete only the edge link

Friends And Related Symbol Documentation

◆ FEntity

friend class FEntity
friend

◆ FTopologicalFace

friend class FTopologicalFace
friend

◆ FTopologicalLoop

friend class FTopologicalLoop
friend

Member Data Documentation

◆ Boundary

FLinearBoundary UE::CADKernel::FTopologicalEdge::Boundary
protected

The edge is oriented in the curve orientation i.e. StartCoordinate < EndCoordinate

◆ CrossingPointDeltaUMaxs

TArray<double> UE::CADKernel::FTopologicalEdge::CrossingPointDeltaUMaxs
protected

Max delta U at the crossing points to respect meshing criteria

◆ CrossingPointDeltaUMins

TArray<double> UE::CADKernel::FTopologicalEdge::CrossingPointDeltaUMins
protected

Min delta U at the crossing points to respect meshing criteria

◆ CrossingPointUs

TArray<double> UE::CADKernel::FTopologicalEdge::CrossingPointUs
protected

Temporary discretization of the edge used to compute the mesh of the edge

◆ Curve

TSharedPtr<FRestrictionCurve> UE::CADKernel::FTopologicalEdge::Curve
protected

◆ CuttingPointUs

TArray<FCuttingPoint> UE::CADKernel::FTopologicalEdge::CuttingPointUs
protected

Final U coordinates of the edge's mesh nodes

◆ EndVertex

TSharedPtr<FTopologicalVertex> UE::CADKernel::FTopologicalEdge::EndVertex
protected

◆ ImposedCuttingPointUs

TArray<FImposedCuttingPoint> UE::CADKernel::FTopologicalEdge::ImposedCuttingPointUs
protected

U coordinates of the edge's mesh nodes for thin zone purpose

◆ Length3D

double UE::CADKernel::FTopologicalEdge::Length3D = -1.
mutableprotected

◆ Loop

FTopologicalLoop* UE::CADKernel::FTopologicalEdge::Loop = nullptr
protected

◆ Max2DTolerance

double UE::CADKernel::FTopologicalEdge::Max2DTolerance = -1
mutableprotected

◆ Mesh

TSharedPtr<FEdgeMesh> UE::CADKernel::FTopologicalEdge::Mesh
protected

◆ StartVertex

TSharedPtr<FTopologicalVertex> UE::CADKernel::FTopologicalEdge::StartVertex
protected

◆ ThinZoneBounds

TArray<FLinearBoundary> UE::CADKernel::FTopologicalEdge::ThinZoneBounds
protected

◆ ThinZoneSides

TArray<FThinZoneSide*> UE::CADKernel::FTopologicalEdge::ThinZoneSides
protected

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