16class FTopologicalEdge;
18class FTopologicalVertex;
159 if (
GetLink()->GetTwinEntityNum() > 1)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ensureCADKernel(InExpression)
Definition Types.h:115
Definition SharedPointer.h:692
UE_FORCEINLINE_HINT void Reset()
Definition SharedPointer.h:1120
UE_FORCEINLINE_HINT const bool IsValid() const
Definition SharedPointer.h:1085
Definition SharedPointer.h:153
Definition CADKernelArchive.h:19
void Serialize(void *Value, int64 Length)
Definition CADKernelArchive.h:118
bool IsSaving() const
Definition CADKernelArchive.h:113
Definition CADEntity.h:56
static void SerializeIdents(FCADKernelArchive &Ar, TArray< FEntity * > &Array, bool bSaveSelection=true)
Definition CADEntity.cpp:186
Definition ModelMesh.h:21
Definition TopologicalEdge.h:63
Definition TopologicalFace.h:56
Definition TopologicalVertex.h:83
virtual void Empty() override
Definition TopologicalVertex.h:241
CADKERNEL_API FVertexMesh & GetOrCreateMesh(FModelMesh &MeshModel)
Definition TopologicalVertex.cpp:176
double SquareDistance(const FVector &Point) const
Definition TopologicalVertex.h:190
const FVertexMesh * GetMesh() const
Definition TopologicalVertex.h:197
FTopologicalVertex(const FVector &InCoordinates)
Definition TopologicalVertex.h:93
double SquareDistanceBetweenBarycenters(const FTopologicalVertex &OtherVertex) const
Definition TopologicalVertex.h:185
CADKERNEL_API void RemoveConnectedEdge(FTopologicalEdge &Edge)
Definition TopologicalVertex.cpp:17
virtual ~FTopologicalVertex() override
Definition TopologicalVertex.h:102
virtual void Serialize(FCADKernelArchive &Ar) override
Definition TopologicalVertex.h:114
CADKERNEL_API bool IsBorderVertex() const
Definition TopologicalVertex.cpp:34
TSharedPtr< FVertexMesh > Mesh
Definition TopologicalVertex.h:91
TArray< FTopologicalEdge * > ConnectedEdges
Definition TopologicalVertex.h:89
CADKERNEL_API const FTopologicalFace * GetFace() const
Definition TopologicalVertex.cpp:55
const TArray< FTopologicalEdge * > & GetDirectConnectedEdges() const
Definition TopologicalVertex.h:263
virtual CADKERNEL_API void SpawnIdent(FDatabase &Database) override
Definition TopologicalVertex.cpp:195
const FVector & GetBarycenter() const
Definition TopologicalVertex.h:140
const int32 ConnectedEdgeCount()
Definition TopologicalVertex.h:286
static TSharedRef< FTopologicalVertex > Make(const FVector &InCoordinate)
Definition TopologicalVertex.h:107
FVector Coordinates
Definition TopologicalVertex.h:90
void SetCoordinates(const FVector &NewCoordinates)
Definition TopologicalVertex.h:157
virtual void RemoveFromLink() override
Definition TopologicalVertex.h:214
CADKERNEL_API void UnlinkTo(FTopologicalVertex &Entity)
Definition TopologicalVertex.cpp:111
CADKERNEL_API void AddConnectedEdge(FTopologicalEdge &Edge)
Definition TopologicalVertex.cpp:12
void GetConnectedEdges(TArray< FTopologicalEdge * > &OutConnectedEdges) const
Definition TopologicalVertex.h:270
virtual EEntity GetEntityType() const override
Definition TopologicalVertex.h:132
const FVector & GetCoordinates() const
Definition TopologicalVertex.h:152
double Distance(const FTopologicalVertex &OtherVertex) const
Definition TopologicalVertex.h:175
FTopologicalVertex()=default
double SquareDistance(const FTopologicalVertex &OtherVertex) const
Definition TopologicalVertex.h:180
void DeleteIfIsolated()
Definition TopologicalVertex.h:224
Definition TopologicalVertex.h:24
virtual void Serialize(FCADKernelArchive &Ar) override
Definition TopologicalVertex.h:47
CADKERNEL_API void DefineActiveEntity()
Definition TopologicalVertex.cpp:148
void SetBarycenter(const FVector &Point)
Definition TopologicalVertex.h:30
const FVector & GetBarycenter() const
Definition TopologicalVertex.h:57
FVector Barycenter
Definition TopologicalVertex.h:28
virtual EEntity GetEntityType() const override
Definition TopologicalVertex.h:73
CADKERNEL_API void ComputeBarycenter()
Definition TopologicalVertex.cpp:138
FVertexLink()
Definition TopologicalVertex.h:36
FVertexLink(FTopologicalVertex &Entity)
Definition TopologicalVertex.h:41
virtual bool CleanLink() override
Definition TopologicalVertex.h:62
Definition VertexMesh.h:11
int32 GetMesh() const
Definition VertexMesh.h:20
bool IsActiveEntity() const
Definition Linkable.h:58
void ResetTopologicalLink()
Definition Linkable.h:88
TSharedPtr< FVertexLink > TopologicalLink
Definition Linkable.h:17
virtual void Serialize(FCADKernelArchive &Ar) override
Definition Linkable.h:33
virtual TSharedPtr< FVertexLink > GetLink() const
Definition Linkable.h:76
virtual void Empty() override
Definition Linkable.h:39
const TSharedRef< const FTopologicalVertex > GetLinkActiveEntity() const
Definition Linkable.h:44
Definition TopologicalLink.h:17
virtual void Serialize(FCADKernelArchive &Ar) override
Definition TopologicalLink.h:44
virtual bool CleanLink()
Definition TopologicalLink.h:168
Definition CADEntity.cpp:23
@ Point
Definition Visu.h:17
EEntity
Definition CADEntity.h:18
static UE_FORCEINLINE_HINT double Distance(const TVector< double > &V1, const TVector< double > &V2)
Definition Vector.h:1018
static UE_FORCEINLINE_HINT double DistSquared(const TVector< double > &V1, const TVector< double > &V2)
Definition Vector.h:2478