17class FTopologicalFace;
18class FTopologicalVertex;
40 return Direction == EOrientation::Front ?
Entity->GetStartVertex() :
Entity->GetEndVertex();
45 return Direction == EOrientation::Front ?
Entity->GetEndVertex() :
Entity->GetStartVertex();
50 return Direction == EOrientation::Front ?
Entity->GetBoundary().GetMin() :
Entity->GetBoundary().GetMax();
55 return Direction == EOrientation::Front ?
Entity->GetBoundary().GetMax() :
Entity->GetBoundary().GetMin();
95 FTopologicalLoop::Empty();
102 Edge.Entity->Empty();
105 FTopologicalEntity::Empty();
110 void DeleteLoopEdges();
114 FTopologicalEntity::Serialize(Ar);
116 SerializeIdent(Ar, &
Face);
142 return EEntity::TopologicalLoop;
235 return Edges[
Index].Direction;
240 return Edges[
Index].Entity;
273 void CheckEdgesOrientation();
274 void CheckLoopWithTwoEdgesOrientation();
275 void RemoveDegeneratedEdges();
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE_REWRITE SizeType Num() const
Definition Array.h:1144
void Empty(SizeType Slack=0)
Definition Array.h:2273
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition CADKernelArchive.h:19
Definition CADEntity.h:56
Definition TopologicalLoop.h:21
FOrientedEdge()
Definition TopologicalLoop.h:28
bool operator==(const FOrientedEdge &Edge) const
Definition TopologicalLoop.h:33
FOrientedEdge(TSharedPtr< FTopologicalEdge > &InEntity, EOrientation InDirection)
Definition TopologicalLoop.h:23
TSharedRef< FTopologicalVertex > GetStartVertex()
Definition TopologicalLoop.h:38
double GetStartCoordinate()
Definition TopologicalLoop.h:48
double GetEndCoordinate()
Definition TopologicalLoop.h:53
TSharedRef< FTopologicalVertex > GetEndVertex()
Definition TopologicalLoop.h:43
Definition Boundary.h:248
Definition TopologicalEdge.h:63
Definition TopologicalEntity.h:16
Definition TopologicalFace.h:56
Definition TopologicalLoop.h:60
virtual EEntity GetEntityType() const override
Definition TopologicalLoop.h:140
TArray< FOrientedEdge > Edges
Definition TopologicalLoop.h:70
int32 GetEdgeIndex(const FTopologicalEdge &Edge) const
Definition TopologicalLoop.h:243
TArray< FOrientedEdge > & GetEdges()
Definition TopologicalLoop.h:157
void SetInternal()
Definition TopologicalLoop.h:206
FTopologicalFace * Face
Definition TopologicalLoop.h:72
const TArray< FOrientedEdge > & GetEdges() const
Definition TopologicalLoop.h:152
virtual void Serialize(FCADKernelArchive &Ar) override
Definition TopologicalLoop.h:112
void GetActiveEdges(TArray< TSharedPtr< FTopologicalEdge > > &OutEdges) const
Definition TopologicalLoop.h:178
virtual void SpawnIdent(FDatabase &Database) override
Definition TopologicalLoop.h:120
const TSharedPtr< FTopologicalEdge > & GetEdge(int32 Index) const
Definition TopologicalLoop.h:238
const FOrientedEdge * GetOrientedEdge(const FTopologicalEdge *InEdge) const
Definition TopologicalLoop.h:162
virtual void Empty() override
Definition TopologicalLoop.h:98
virtual void ResetMarkersRecursively() const override
Definition TopologicalLoop.h:130
void SetExternal()
Definition TopologicalLoop.h:201
FTopologicalLoop()=default
const int32 EdgeCount() const
Definition TopologicalLoop.h:147
FTopologicalFace * GetFace() const
Definition TopologicalLoop.h:191
EOrientation GetDirection(int32 Index) const
Definition TopologicalLoop.h:233
bool IsExternal() const
Definition TopologicalLoop.h:196
bool bIsExternal
Definition TopologicalLoop.h:73
virtual ~FTopologicalLoop() override
Definition TopologicalLoop.h:93
FSurfacicBoundary Boundary
Definition TopologicalLoop.h:67
Definition OrientedEntity.h:11
Definition CADEntity.cpp:23
EOrientation
Definition GeoEnum.h:82
void SwapOrientation(EOrientation &Orientation)
Definition GeoEnum.h:128
EEntity
Definition CADEntity.h:18
U16 Index
Definition radfft.cpp:71