Navigation
API > API/Runtime > API/Runtime/CADKernel
| Name | FTopologicalEdge |
| Type | class |
| Header File | /Engine/Source/Runtime/Datasmith/CADKernel/Base/Public/Topo/TopologicalEdge.h |
| Include Path | #include "Topo/TopologicalEdge.h" |
Syntax
class FTopologicalEdge : public UE::CADKernel::TLinkable< FTopologicalEdge, FEdgeLink >
Inheritance Hierarchy
- FSharedFromThisBase → TSharedFromThis → FEntity → FTopologicalEntity → TLinkable → FTopologicalEdge
- FHaveStates → FEntity → FTopologicalEntity → TLinkable → FTopologicalEdge
Constructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
FTopologicalEdge
(
const TSharedRef< FSurface >& InSurface, |
Topo/TopologicalEdge.h | ||
FTopologicalEdge
(
const TSharedRef< FRestrictionCurve >& InCurve, |
Topo/TopologicalEdge.h | ||
FTopologicalEdge
(
const TSharedRef< FRestrictionCurve >& InCurve, |
Topo/TopologicalEdge.h | ||
| Topo/TopologicalEdge.h | |||
FTopologicalEdge
(
const TSharedRef< FRestrictionCurve >& InCurve, |
MANDATORY Constructors of FEdge cannot be used directly, use FEdge::Make to create an FEdge object. | Topo/TopologicalEdge.h |
Destructors
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual ~FTopologicalEdge() |
Topo/TopologicalEdge.h |
Variables
Protected
| Name | Type | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|---|
| FactorToComputeMaxTol | const double | Topo/TopologicalEdge.h |
Functions
Public
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
void AddImposedCuttingPointU
(
const double ImposedCuttingPointU, |
Topo/TopologicalEdge.h | ||
void AddThinZone
(
FThinZoneSide* InThinZoneSide, |
Topo/TopologicalEdge.h | ||
void AddTwinsCuttingPoint
(
const double Coord, |
Topo/TopologicalEdge.h | ||
FVector2d Approximate2DPoint
(
const double InCoordinate |
Approximation of 2D point defined by its coordinate compute with carrier surface 2D polyline | Topo/TopologicalEdge.h | |
| Approximation of 2D points defined by its coordinates compute with carrier surface 2D polyline | Topo/TopologicalEdge.h | ||
| Approximation of 3D points compute with carrier surface 3D polyline | Topo/TopologicalEdge.h | ||
void ApproximatePolyline
(
FSurfacicPolyline& Polyline |
Approximation of surfacic polyline (points 2d, 3d, normals, tangents) defined by its coordinates compute with carrier surface polyline | Topo/TopologicalEdge.h | |
bool CheckIfDegenerated() |
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 | Topo/TopologicalEdge.h | |
void ComputeCrossingPointCoordinates () |
Generate a sampling of the curve. | Topo/TopologicalEdge.h | |
void 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 | Topo/TopologicalEdge.h | |
| Topo/TopologicalEdge.h | |||
void ComputeLength() |
Topo/TopologicalEdge.h | ||
void Disjoin() |
Remove the edge and the extremity vertices of the linked entity vs UnlinkTwinEntities delete only the edge link | Topo/TopologicalEdge.h | |
int32 EvaluateCuttingPointNum() |
Topo/TopologicalEdge.h | ||
void EvaluatePoint
(
double InCoordinate, |
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 | Topo/TopologicalEdge.h | |
void EvaluatePoints
(
const TArray< double >& InCoordinates, |
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 | Topo/TopologicalEdge.h | |
bool ExtendTo
(
bool bStartExtremity, |
Extend the Edge to the NewVertex. | Topo/TopologicalEdge.h | |
void GenerateMeshElements
(
FModelMesh& MeshModel |
Topo/TopologicalEdge.h | ||
const FLinearBoundary & GetBoundary() |
Topo/TopologicalEdge.h | ||
const TArray< double > & GetCrossingPointUs () |
Topo/TopologicalEdge.h | ||
TArray< double > & GetCrossingPointUs () |
Topo/TopologicalEdge.h | ||
| Topo/TopologicalEdge.h | |||
| Topo/TopologicalEdge.h | |||
TArray< double > GetCuttingPointCoordinates() |
Topo/TopologicalEdge.h | ||
TArray< FCuttingPoint > & GetCuttingPoints () |
Topo/TopologicalEdge.h | ||
const TArray< FCuttingPoint > & GetCuttingPoints () |
Topo/TopologicalEdge.h | ||
double GetDeltaUFor
(
double Coordinate, |
Topo/TopologicalEdge.h | ||
TArray< double > & GetDeltaUMaxs () |
Topo/TopologicalEdge.h | ||
const TArray< double > & GetDeltaUMaxs () |
Topo/TopologicalEdge.h | ||
TArray< double > & GetDeltaUMins() |
Topo/TopologicalEdge.h | ||
void GetDiscretization2DPoints
(
EOrientation Orientation, |
Get the discretization points of the edge and add them to the outpoints TArray | Topo/TopologicalEdge.h | |
FVector GetEndBarycenter() |
Topo/TopologicalEdge.h | ||
FVector GetEndCoordinate() |
Topo/TopologicalEdge.h | ||
double GetEndCurvilinearCoordinates() |
Topo/TopologicalEdge.h | ||
| Topo/TopologicalEdge.h | |||
const TSharedRef< FTopologicalVertex > GetEndVertex
(
EOrientation Forward |
Topo/TopologicalEdge.h | ||
const TSharedRef< FTopologicalVertex > GetEndVertex () |
Topo/TopologicalEdge.h | ||
const TSharedRef< FTopologicalVertex > GetEndVertex
(
bool Forward |
Topo/TopologicalEdge.h | ||
void GetExtremities
(
FSurfacicCurveExtremities& Extremities |
Topo/TopologicalEdge.h | ||
FTopologicalFace * GetFace() |
Topo/TopologicalEdge.h | ||
FTopologicalEdge * GetFirstTwinEdge() |
Topo/TopologicalEdge.h | ||
const TArray< FImposedCuttingPoint > & GetImposedCuttingPoints() |
Topo/TopologicalEdge.h | ||
| Topo/TopologicalEdge.h | |||
TSharedRef< const FTopologicalEdge > GetLinkActiveEdge () |
Topo/TopologicalEdge.h | ||
TArray< FTopologicalFace * > GetLinkedFaces() |
Topo/TopologicalEdge.h | ||
FTopologicalLoop * GetLoop () |
Topo/TopologicalEdge.h | ||
const FTopologicalLoop * GetLoop () |
Topo/TopologicalEdge.h | ||
const FEdgeMesh * GetMesh() |
Topo/TopologicalEdge.h | ||
FEdgeMesh & GetOrCreateMesh
(
FModelMesh& MeshModel |
Topo/TopologicalEdge.h | ||
const TSharedPtr< FTopologicalVertex > GetOtherVertex
(
const TSharedRef< FTopologicalVertex >& Vertex |
Topo/TopologicalEdge.h | ||
const FTopologicalVertex * GetOtherVertex
(
const FTopologicalVertex& Vertex |
Topo/TopologicalEdge.h | ||
TSharedPtr< FTopologicalVertex > GetOtherVertex
(
const TSharedRef< FTopologicalVertex >& Vertex |
Topo/TopologicalEdge.h | ||
FTopologicalVertex * GetOtherVertex
(
FTopologicalVertex& Vertex |
Topo/TopologicalEdge.h | ||
TArray< double > GetPreElementLengths() |
Compute the lengths of each pre-elements of the edge i.e the elements based of the cutting points of the edges. | Topo/TopologicalEdge.h | |
const FTopologicalEdge * GetPreMeshedTwin () |
Topo/TopologicalEdge.h | ||
| Topo/TopologicalEdge.h | |||
FVector GetStartBarycenter() |
Topo/TopologicalEdge.h | ||
FVector GetStartCoordinate() |
Topo/TopologicalEdge.h | ||
double GetStartCurvilinearCoordinates() |
Topo/TopologicalEdge.h | ||
const TSharedRef< FTopologicalVertex > GetStartVertex () |
Topo/TopologicalEdge.h | ||
const TSharedRef< FTopologicalVertex > GetStartVertex
(
EOrientation Forward |
Topo/TopologicalEdge.h | ||
const TSharedRef< FTopologicalVertex > GetStartVertex
(
bool Forward |
Topo/TopologicalEdge.h | ||
| Topo/TopologicalEdge.h | |||
FVector2d GetTangent2DAt
(
const FTopologicalVertex& InVertex |
Topo/TopologicalEdge.h | ||
FVector2d GetTangent2DAt
(
const double InCoordinate |
Topo/TopologicalEdge.h | ||
FVector GetTangentAt
(
const FTopologicalVertex& InVertex |
Return the tangent at the input vertex | Topo/TopologicalEdge.h | |
FVector GetTangentAt
(
const double InCoordinate |
Topo/TopologicalEdge.h | ||
void GetTangentsAtExtremities
(
FVector& StartTangent, |
Topo/TopologicalEdge.h | ||
void GetTangentsAtExtremities
(
FVector& StartTangent, |
Topo/TopologicalEdge.h | ||
const TArray< FLinearBoundary > & GetThinZoneBounds() |
Topo/TopologicalEdge.h | ||
int32 GetThinZoneCount() |
Topo/TopologicalEdge.h | ||
const TArray< FThinZoneSide * > & GetThinZoneSides() |
Topo/TopologicalEdge.h | ||
double GetTolerance2DAt
(
double Coordinate |
Topo/TopologicalEdge.h | ||
double GetTolerance3D() |
Topo/TopologicalEdge.h | ||
FTopologicalEdge * GetTwinEdge() |
Topo/TopologicalEdge.h | ||
bool HasSameLengthAs
(
const FTopologicalEdge& Edge, |
Topo/TopologicalEdge.h | ||
void InitDeltaUs() |
Topo/TopologicalEdge.h | ||
bool IsBorder() |
Topo/TopologicalEdge.h | ||
bool IsClosed() |
Topo/TopologicalEdge.h | ||
bool IsConnectedTo
(
const FTopologicalFace* Face |
Topo/TopologicalEdge.h | ||
bool IsLinkableTo
(
const FTopologicalEdge& Edge, |
It can be linked to the edge if : | Topo/TopologicalEdge.h | |
bool IsSameDirection
(
const FTopologicalEdge& Edge |
Topo/TopologicalEdge.h | ||
bool IsSharpEdge() |
Topo/TopologicalEdge.h | ||
bool IsSurfacic() |
Topo/TopologicalEdge.h | ||
bool IsTangentAtExtremitiesWith
(
const FTopologicalEdge& Edge |
Topo/TopologicalEdge.h | ||
bool IsThinPeak () |
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 | Topo/TopologicalEdge.h | |
bool IsVirtuallyMeshed() |
Topo/TopologicalEdge.h | ||
double Length() |
Topo/TopologicalEdge.h | ||
void Link
(
FTopologicalEdge& OtherEdge |
Link with the other edge. | Topo/TopologicalEdge.h | |
void LinkIfCoincident
(
FTopologicalEdge& OtherEdge, |
Link two edges. | Topo/TopologicalEdge.h | |
void LinkVertex() |
Topo/TopologicalEdge.h | ||
void Offset2D
(
const FVector2d& OffsetDirection |
Topo/TopologicalEdge.h | ||
double ProjectPoint
(
const PointType& InPointToProject, |
Project Point (2D or 3D) on the polyline (2D or 3D) and return the coordinate of the projected point | Topo/TopologicalEdge.h | |
| Project a set of points on the 3D polyline and return the coordinate of the projected point | Topo/TopologicalEdge.h | ||
| Project a set of points of a twin edge on the 3D polyline and return the coordinate of the projected point | Topo/TopologicalEdge.h | ||
void ProjectTwinEdgePointsOn2DCurve
(
const TSharedRef< FTopologicalEdge >& InTwinEdge, |
Compute 2D points of the edge coincident the points of the twin edge defined by their coordinates | Topo/TopologicalEdge.h | |
void 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) | Topo/TopologicalEdge.h | |
void ReplaceEdgeVertex
(
bool bIsStartVertex, |
This function is used to : | Topo/TopologicalEdge.h | |
virtual void ResetThinPeakMarker() |
Topo/TopologicalEdge.h | ||
virtual void ResetVirtuallyMeshedMarker() |
Topo/TopologicalEdge.h | ||
void Sample
(
const double DesiredSegmentLength, |
Samples the curve with segments of a desired length | Topo/TopologicalEdge.h | |
void SetEndVertex
(
const double NewCoordinate, |
Topo/TopologicalEdge.h | ||
void SetEndVertex
(
const double NewCoordinate |
Topo/TopologicalEdge.h | ||
void SetStartVertex
(
const double NewCoordinate |
Topo/TopologicalEdge.h | ||
void SetStartVertex
(
const double NewCoordinate, |
Topo/TopologicalEdge.h | ||
virtual void SetThinPeakMarker() |
Topo/TopologicalEdge.h | ||
virtual void SetVirtuallyMeshedMarker() |
Topo/TopologicalEdge.h | ||
void SortImposedCuttingPoints() |
For thin zone purpose. | Topo/TopologicalEdge.h | |
FTopologicalVertex * SplitAt
(
double SplittingCoordinate, |
Split the edge at input coordinate. | Topo/TopologicalEdge.h | |
void TransferCuttingPointFromMeshedEdge
(
bool bOnlyWithOppositeNode, |
Topo/TopologicalEdge.h | ||
| Topo/TopologicalEdge.h | |||
double TransformActiveEdgeCoordinateToLocalCoordinate
(
const double ActiveEdgeCoordinate |
Topo/TopologicalEdge.h | ||
| Topo/TopologicalEdge.h | |||
double TransformLocalCoordinateToActiveEdgeCoordinate
(
const double LocalCoordinate |
Topo/TopologicalEdge.h | ||
void TransformTwinEdgeCoordinatesToLocalCoordinates
(
const FTopologicalEdge& TwinEdge, |
Topo/TopologicalEdge.h | ||
double TransformTwinEdgeCoordinateToLocalCoordinate
(
const FTopologicalEdge& TwinEdge, |
Topo/TopologicalEdge.h | ||
void Unlink() |
Remove the edge and the extremity vertices of the linked entity vs UnlinkTwinEntities delete only the edge link | Topo/TopologicalEdge.h |
Overridden from FEntity
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual void Empty() |
Topo/TopologicalEdge.h | ||
virtual EEntity GetEntityType() |
Topo/TopologicalEdge.h | ||
virtual void ResetMarkersRecursively() |
Topo/TopologicalEdge.h | ||
virtual void Serialize
(
FCADKernelArchive& Ar |
Serialization of a FEntity. | Topo/TopologicalEdge.h | |
virtual void SpawnIdent
(
FDatabase& Database |
Topo/TopologicalEdge.h |
Overridden from FHaveStates
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
virtual bool IsDegenerated() |
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 | Topo/TopologicalEdge.h |
Static
| Name | Remarks | Include Path | Unreal Specifiers |
|---|---|---|---|
static TSharedPtr< FTopologicalEdge > CreateEdgeByMergingEdges
(
const double SmallEdgeTolerance, |
Merge successive edges of a face in a single edge. | Topo/TopologicalEdge.h | |
static TSharedPtr< FTopologicalEdge > Make
(
const TSharedRef< FRestrictionCurve >& InCurve |
Topo/TopologicalEdge.h | ||
static TSharedPtr< FTopologicalEdge > Make
(
const TSharedRef< FSurface >& InSurface, |
Build an edge to connect two vertices carried by a 2d segment | Topo/TopologicalEdge.h | |
static TSharedPtr< FTopologicalEdge > Make
(
const TSharedRef< FRestrictionCurve >& InCurve, |
Topo/TopologicalEdge.h | ||
static TSharedPtr< FTopologicalEdge > Make
(
const TSharedRef< FRestrictionCurve >& InCurve, |
Topo/TopologicalEdge.h | ||
static TSharedPtr< FTopologicalEdge > Make
(
const TSharedRef< FRestrictionCurve >& InCurve, |
Topo/TopologicalEdge.h | ||
static TSharedPtr< FTopologicalEdge > ReturnIfValid
(
TSharedRef< FTopologicalEdge >& InEdge, |
To check the build edge before returning it or return TSharedPtr |
Topo/TopologicalEdge.h |