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

#include <TopologicalFace.h>

+ Inheritance diagram for UE::CADKernel::FTopologicalFace:

Public Member Functions

virtual ~FTopologicalFace () override
 
virtual void Serialize (FCADKernelArchive &Ar) override
 
virtual void SpawnIdent (FDatabase &Database) override
 
virtual void ResetMarkersRecursively () const override
 
virtual EEntity GetEntityType () const override
 
const FSurfacicToleranceGetIsoTolerances () const
 
double GetIsoTolerance (EIso Iso) const
 
const FSurfacicBoundaryGetBoundary () const
 
virtual int32 FaceCount () const override
 
virtual void GetFaces (TArray< FTopologicalFace * > &OutFaces) override
 
virtual void CompleteMetaData () override
 
virtual void PropagateBodyOrientation () override
 
void RemoveLoop (const TSharedPtr< FTopologicalLoop > &Loop)
 
void AddLoop (const TSharedPtr< FTopologicalLoop > &Loop)
 
void AddLoops (const TArray< TSharedPtr< FTopologicalLoop > > &Loops, int32 &DoubtfulLoopOrientationCount)
 
void AddLoops (const TArray< TSharedPtr< FCurve > > &Restrictions)
 
void ApplyNaturalLoops ()
 
void ApplyNaturalLoops (const FSurfacicBoundary &Boundaries)
 
int32 LoopCount () const
 
const TArray< TSharedPtr< FTopologicalLoop > > & GetLoops () const
 
const TSharedPtr< FTopologicalLoopGetExternalLoop () const
 
const void Get2DLoopSampling (TArray< TArray< FVector2d > > &OutLoopSamplings) const
 
const FTopologicalEdgeGetLinkedEdge (const FTopologicalEdge &LinkedEdge) const
 
void GetEdgeIndex (const FTopologicalEdge &Edge, int32 &OutBoundaryIndex, int32 &OutEdgeIndex) const
 
void EdgeCount (int32 &EdgeCount) const
 
void GetActiveEdges (TArray< TSharedPtr< FTopologicalEdge > > &OutEdges) const
 
int32 EdgeCount () const
 
TSharedRef< FSurfaceGetCarrierSurface () const
 
void EvaluatePointGrid (const FCoordinateGrid &Coordinates, FSurfacicSampling &OutPoints, bool bComputeNormals=false) const
 
void EvaluateGrid (FGrid &Grid) const
 
void UpdateBBox (int32 IsoCount, const double ApproximationFactor, FBBoxWithNormal &BBox)
 
void Remove (TArray< FTopologicalEdge * > *NewBorderEdges=nullptr)
 
virtual void Empty () override
 
bool IsANonManifoldFace () const
 
bool IsABorderFace () const
 
bool IsAFullyNonManifoldFace () const
 
bool IsADuplicatedFace () const
 
bool HasSameBoundariesAs (const FTopologicalFace *OtherFace) const
 
void Disjoin (TArray< FTopologicalEdge * > *NewBorderEdges=nullptr)
 
void DeleteNonmanifoldLink ()
 
FFaceMeshGetOrCreateMesh (FModelMesh &ModelMesh)
 
const bool HasTesselation () const
 
FFaceMeshGetMesh () const
 
void InitDeltaUs ()
 
const TArray< double > & GetCuttingCoordinatesAlongIso (EIso Iso) const
 
TArray< double > & GetCuttingCoordinatesAlongIso (EIso Iso)
 
const FCoordinateGridGetCuttingPointCoordinates () const
 
FCoordinateGridGetCuttingPointCoordinates ()
 
const FCoordinateGridGetCrossingPointCoordinates () const
 
const TArray< double > & GetCrossingPointCoordinates (EIso Iso) const
 
TArray< double > & GetCrossingPointCoordinates (EIso Iso)
 
bool ComputeCriteriaGridSampling ()
 
void ApplyCriteria (const TArray< TSharedPtr< FCriterion > > &Criteria, const FCriteriaGrid &Grid)
 
const TArray< double > & GetCrossingPointDeltaMins (EIso Iso) const
 
const TArray< double > & GetCrossingPointDeltaMaxs (EIso Iso) const
 
const EQuadType GetQuadType () const
 
const bool HasThinZone () const
 
void SetHasThinZoneMarker ()
 
void ResetHasThinSurface ()
 
bool IsBackOriented () const
 
void SwapOrientation () const
 
void SetBackOriented () const
 
void ResetBackOriented () const
 
virtual void Remove (const FTopologicalShapeEntity *) override
 
void MoveThinZones (TArray< FThinZone2D > &InThinZones)
 
const TArray< FThinZone2D > & GetThinZones () const
 
TArray< FThinZone2D > & GetThinZones ()
 
void ComputeQuadCriteria ()
 
double GetQuadCriteria ()
 
const FSurfaceCurvatureGetCurvatures () const
 
FSurfaceCurvatureGetCurvatures ()
 
const FIsoCurvatureGetCurvature (EIso Iso) const
 
void ComputeSurfaceSideProperties ()
 
void DefineSurfaceType ()
 
const TArray< FEdge2DProperties > & GetSideProperties () const
 
FEdge2DPropertiesGetSideProperty (int32 Index)
 
const FEdge2DPropertiesGetSideProperty (int32 Index) const
 
int32MeshedSideNum ()
 
const int32MeshedSideNum () const
 
void AddMeshedLength (double Length)
 
double MeshedSideRatio () const
 
int32 GetStartEdgeIndexOfSide (int32 Index) const
 
const TArray< int32 > & GetStartSideIndices () const
 
int32 GetSideIndex (FTopologicalEdge &Edge) const
 
int32 GetSideIndex (int32 EdgeIndex) const
 
void SetEstimatedMinimalElementLength (double Value)
 
double GetEstimatedMinimalElementLength () const
 
- Public Member Functions inherited from UE::CADKernel::FTopologicalShapeEntity
virtual ~FTopologicalShapeEntity () override
 
const FMetadataDictionaryGetMetaDataDictionary () const
 
void ExtractMetaData (TMap< FString, FString > &OutMetaData) const
 
void CompleteMetaDataWithHostMetaData ()
 
FTopologicalShapeEntityGetHost ()
 
const FTopologicalShapeEntityGetHost () const
 
void SetHost (FTopologicalShapeEntity *Body)
 
void SetHostId (const int32 InHostId)
 
int32 GetHostId () const
 
void SetLayer (const int32 InLayerId)
 
void SetName (const FString &InName)
 
bool HasName () const
 
const TCHARGetName () const
 
void SetColorId (const uint32 &InColorId)
 
uint32 GetColorId () const
 
void SetMaterialId (const uint32 &InMaterialId)
 
uint32 GetMaterialId () const
 
void SetDisplayData (const uint32 &InColorId, const uint32 &InMaterialId)
 
void SetDisplayData (const FTopologicalShapeEntity &DisplayData)
 
void SetPatchId (int32 InPatchId)
 
int32 GetPatchId () const
 
- 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 bool IsDegenerated () 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
 

Protected Member Functions

 FTopologicalFace (const TSharedPtr< FSurface > &InCarrierSurface)
 
 FTopologicalFace ()=default
 
void ComputeBoundary () const
 
- Protected Member Functions inherited from UE::CADKernel::FTopologicalShapeEntity
void ResetHost ()
 
- 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 ()
 

Protected Attributes

TSharedPtr< FSurfaceCarrierSurface
 
TArray< TSharedPtr< FTopologicalLoop > > Loops
 
TCache< FSurfacicBoundaryBoundary
 
TSharedPtr< FFaceMeshMesh
 
FCoordinateGrid MeshCuttingCoordinates
 
FCoordinateGrid CrossingCoordinates
 
FCoordinateGrid CrossingPointDeltaMins
 
FCoordinateGrid CrossingPointDeltaMaxs
 
double EstimatedMinimalElementLength = DOUBLE_BIG_NUMBER
 
- 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
 

Additional Inherited Members

- 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)
 
- 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

◆ FTopologicalFace() [1/2]

UE::CADKernel::FTopologicalFace::FTopologicalFace ( const TSharedPtr< FSurface > &  InCarrierSurface)
inlineprotected

Build a non-trimmed trimmed surface This constructor has to be completed with one of the three "AddBoundaries" methods to be finalized.

◆ FTopologicalFace() [2/2]

UE::CADKernel::FTopologicalFace::FTopologicalFace ( )
protecteddefault

◆ ~FTopologicalFace()

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

Member Function Documentation

◆ AddLoop()

void UE::CADKernel::FTopologicalFace::AddLoop ( const TSharedPtr< FTopologicalLoop > &  Loop)
inline

◆ AddLoops() [1/2]

void UE::CADKernel::FTopologicalFace::AddLoops ( const TArray< TSharedPtr< FCurve > > &  Restrictions)

Trimmed the face with curves i.e. Edges will be build from the cures to make boundaries.

◆ AddLoops() [2/2]

void UE::CADKernel::FTopologicalFace::AddLoops ( const TArray< TSharedPtr< FTopologicalLoop > > &  Loops,
int32 DoubtfulLoopOrientationCount 
)

Trimmed the face with an outer boundary (first boundary of the array) and inners boundaries

◆ AddMeshedLength()

void UE::CADKernel::FTopologicalFace::AddMeshedLength ( double  Length)
inline

◆ ApplyCriteria()

void UE::CADKernel::FTopologicalFace::ApplyCriteria ( const TArray< TSharedPtr< FCriterion > > &  Criteria,
const FCriteriaGrid Grid 
)

Compute CrossingPointDeltaMins and CrossingPointDeltaMaxs respecting the meshing criteria

◆ ApplyNaturalLoops() [1/2]

void UE::CADKernel::FTopologicalFace::ApplyNaturalLoops ( )

Trimmed the face with its natural limit curves (Iso UMin, ...). This function is called to trim untrimmed topological face. This function should not be called if the topological face already has a loop.

◆ ApplyNaturalLoops() [2/2]

void UE::CADKernel::FTopologicalFace::ApplyNaturalLoops ( const FSurfacicBoundary Boundaries)

Trimmed the face with the boundary limit curves (Iso UMin, ...). This function is called to trim untrimmed topological face. This function should not be called if the topological face already has a loop.

◆ CompleteMetaData()

virtual void UE::CADKernel::FTopologicalFace::CompleteMetaData ( )
inlineoverridevirtual

◆ ComputeBoundary()

void UE::CADKernel::FTopologicalFace::ComputeBoundary ( ) const
protected

Compute the bounds of the topological surface according to the Loops

◆ ComputeCriteriaGridSampling()

bool UE::CADKernel::FTopologicalFace::ComputeCriteriaGridSampling ( )

Generate a pre-sampling of the surface saved in CrossingCoordinate. This sampling is light enough to allow a fast computation of the grid, precise enough to compute accurately meshing criteria

Returns
false if the face is considered as degenerate and so removed

◆ ComputeQuadCriteria()

void UE::CADKernel::FTopologicalFace::ComputeQuadCriteria ( )

◆ ComputeSurfaceSideProperties()

void UE::CADKernel::FTopologicalFace::ComputeSurfaceSideProperties ( )

◆ DefineSurfaceType()

void UE::CADKernel::FTopologicalFace::DefineSurfaceType ( )

Defines if the surface is either EQuadType::QUAD, either EQuadType::TRIANGULAR or EQuadType::OTHER

◆ DeleteNonmanifoldLink()

void UE::CADKernel::FTopologicalFace::DeleteNonmanifoldLink ( )

Delete only nonmanifold edge link

◆ Disjoin()

void UE::CADKernel::FTopologicalFace::Disjoin ( TArray< FTopologicalEdge * > *  NewBorderEdges = nullptr)

Disconnects the face of its neighbors i.e. remove topological edge and vertex link with its neighbors

Parameters
OutNewBorderEdgesthe neighbors edges

◆ EdgeCount() [1/2]

int32 UE::CADKernel::FTopologicalFace::EdgeCount ( ) const
inline

◆ EdgeCount() [2/2]

void UE::CADKernel::FTopologicalFace::EdgeCount ( int32 EdgeCount) const
inline

Count the edges.

◆ Empty()

virtual void UE::CADKernel::FTopologicalFace::Empty ( )
inlineoverridevirtual

◆ EvaluateGrid()

void UE::CADKernel::FTopologicalFace::EvaluateGrid ( FGrid Grid) const

◆ EvaluatePointGrid()

void UE::CADKernel::FTopologicalFace::EvaluatePointGrid ( const FCoordinateGrid Coordinates,
FSurfacicSampling OutPoints,
bool  bComputeNormals = false 
) const
inline

◆ FaceCount()

virtual int32 UE::CADKernel::FTopologicalFace::FaceCount ( ) const
inlineoverridevirtual

◆ Get2DLoopSampling()

const void UE::CADKernel::FTopologicalFace::Get2DLoopSampling ( TArray< TArray< FVector2d > > &  OutLoopSamplings) const

Get a sampling of each loop of the face

Parameters
OutLoopSamplingsan array of 2d points

◆ GetActiveEdges()

void UE::CADKernel::FTopologicalFace::GetActiveEdges ( TArray< TSharedPtr< FTopologicalEdge > > &  OutEdges) const
inline

Add active Edge that has not marker 1 in the edge array. Marker 1 has to be reset at the end.

◆ GetBoundary()

const FSurfacicBoundary & UE::CADKernel::FTopologicalFace::GetBoundary ( ) const
inline

◆ GetCarrierSurface()

TSharedRef< FSurface > UE::CADKernel::FTopologicalFace::GetCarrierSurface ( ) const
inline

◆ GetCrossingPointCoordinates() [1/3]

const FCoordinateGrid & UE::CADKernel::FTopologicalFace::GetCrossingPointCoordinates ( ) const
inline

◆ GetCrossingPointCoordinates() [2/3]

TArray< double > & UE::CADKernel::FTopologicalFace::GetCrossingPointCoordinates ( EIso  Iso)
inline

◆ GetCrossingPointCoordinates() [3/3]

const TArray< double > & UE::CADKernel::FTopologicalFace::GetCrossingPointCoordinates ( EIso  Iso) const
inline

◆ GetCrossingPointDeltaMaxs()

const TArray< double > & UE::CADKernel::FTopologicalFace::GetCrossingPointDeltaMaxs ( EIso  Iso) const
inline

◆ GetCrossingPointDeltaMins()

const TArray< double > & UE::CADKernel::FTopologicalFace::GetCrossingPointDeltaMins ( EIso  Iso) const
inline

◆ GetCurvature()

const FIsoCurvature & UE::CADKernel::FTopologicalFace::GetCurvature ( EIso  Iso) const
inline

◆ GetCurvatures() [1/2]

FSurfaceCurvature & UE::CADKernel::FTopologicalFace::GetCurvatures ( )
inline

◆ GetCurvatures() [2/2]

const FSurfaceCurvature & UE::CADKernel::FTopologicalFace::GetCurvatures ( ) const
inline

◆ GetCuttingCoordinatesAlongIso() [1/2]

TArray< double > & UE::CADKernel::FTopologicalFace::GetCuttingCoordinatesAlongIso ( EIso  Iso)
inline

◆ GetCuttingCoordinatesAlongIso() [2/2]

const TArray< double > & UE::CADKernel::FTopologicalFace::GetCuttingCoordinatesAlongIso ( EIso  Iso) const
inline

◆ GetCuttingPointCoordinates() [1/2]

FCoordinateGrid & UE::CADKernel::FTopologicalFace::GetCuttingPointCoordinates ( )
inline

◆ GetCuttingPointCoordinates() [2/2]

const FCoordinateGrid & UE::CADKernel::FTopologicalFace::GetCuttingPointCoordinates ( ) const
inline

◆ GetEdgeIndex()

void UE::CADKernel::FTopologicalFace::GetEdgeIndex ( const FTopologicalEdge Edge,
int32 OutBoundaryIndex,
int32 OutEdgeIndex 
) const

Finds the boundary containing the twin edge of Edge

Parameters
Edge
OutBoundaryIndexthe index of the boundary containing the twin edge
OutEdgeIndexthe index in the boundary of the twin edge

◆ GetEntityType()

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

◆ GetEstimatedMinimalElementLength()

double UE::CADKernel::FTopologicalFace::GetEstimatedMinimalElementLength ( ) const
inline
Returns
the minimal size of the mesh elements according to meshing criteria

◆ GetExternalLoop()

const TSharedPtr< FTopologicalLoop > UE::CADKernel::FTopologicalFace::GetExternalLoop ( ) const

◆ GetFaces()

virtual void UE::CADKernel::FTopologicalFace::GetFaces ( TArray< FTopologicalFace * > &  OutFaces)
inlineoverridevirtual

◆ GetIsoTolerance()

double UE::CADKernel::FTopologicalFace::GetIsoTolerance ( EIso  Iso) const
inline

◆ GetIsoTolerances()

const FSurfacicTolerance & UE::CADKernel::FTopologicalFace::GetIsoTolerances ( ) const
inline

◆ GetLinkedEdge()

const FTopologicalEdge * UE::CADKernel::FTopologicalFace::GetLinkedEdge ( const FTopologicalEdge LinkedEdge) const
Returns
the twin edge of linked edge belonging this topological face

◆ GetLoops()

const TArray< TSharedPtr< FTopologicalLoop > > & UE::CADKernel::FTopologicalFace::GetLoops ( ) const
inline

◆ GetMesh()

FFaceMesh * UE::CADKernel::FTopologicalFace::GetMesh ( ) const
inline

◆ GetOrCreateMesh()

FFaceMesh & UE::CADKernel::FTopologicalFace::GetOrCreateMesh ( FModelMesh ModelMesh)

◆ GetQuadCriteria()

double UE::CADKernel::FTopologicalFace::GetQuadCriteria ( )

◆ GetQuadType()

const EQuadType UE::CADKernel::FTopologicalFace::GetQuadType ( ) const
inline

◆ GetSideIndex() [1/2]

int32 UE::CADKernel::FTopologicalFace::GetSideIndex ( FTopologicalEdge Edge) const
inline

◆ GetSideIndex() [2/2]

int32 UE::CADKernel::FTopologicalFace::GetSideIndex ( int32  EdgeIndex) const
inline

◆ GetSideProperties()

const TArray< FEdge2DProperties > & UE::CADKernel::FTopologicalFace::GetSideProperties ( ) const
inline

◆ GetSideProperty() [1/2]

FEdge2DProperties & UE::CADKernel::FTopologicalFace::GetSideProperty ( int32  Index)
inline

◆ GetSideProperty() [2/2]

const FEdge2DProperties & UE::CADKernel::FTopologicalFace::GetSideProperty ( int32  Index) const
inline

◆ GetStartEdgeIndexOfSide()

int32 UE::CADKernel::FTopologicalFace::GetStartEdgeIndexOfSide ( int32  Index) const
inline

◆ GetStartSideIndices()

const TArray< int32 > & UE::CADKernel::FTopologicalFace::GetStartSideIndices ( ) const
inline

◆ GetThinZones() [1/2]

TArray< FThinZone2D > & UE::CADKernel::FTopologicalFace::GetThinZones ( )
inline

◆ GetThinZones() [2/2]

const TArray< FThinZone2D > & UE::CADKernel::FTopologicalFace::GetThinZones ( ) const
inline

◆ HasSameBoundariesAs()

bool UE::CADKernel::FTopologicalFace::HasSameBoundariesAs ( const FTopologicalFace OtherFace) const

Checks if the face and the other face have the same boundaries i.e. each non degenerated edge is linked to an edge of the other face

◆ HasTesselation()

const bool UE::CADKernel::FTopologicalFace::HasTesselation ( ) const
inline

◆ HasThinZone()

const bool UE::CADKernel::FTopologicalFace::HasThinZone ( ) const
inline

◆ InitDeltaUs()

void UE::CADKernel::FTopologicalFace::InitDeltaUs ( )

◆ IsABorderFace()

bool UE::CADKernel::FTopologicalFace::IsABorderFace ( ) const

Has at least one border edge

◆ IsADuplicatedFace()

bool UE::CADKernel::FTopologicalFace::IsADuplicatedFace ( ) const

one adjacent face shares the same loops

◆ IsAFullyNonManifoldFace()

bool UE::CADKernel::FTopologicalFace::IsAFullyNonManifoldFace ( ) const

All its edges are non manifold

◆ IsANonManifoldFace()

bool UE::CADKernel::FTopologicalFace::IsANonManifoldFace ( ) const

Has at least one non manifold edge

◆ IsBackOriented()

bool UE::CADKernel::FTopologicalFace::IsBackOriented ( ) const
inline

◆ LoopCount()

int32 UE::CADKernel::FTopologicalFace::LoopCount ( ) const
inline

◆ MeshedSideNum() [1/2]

int32 & UE::CADKernel::FTopologicalFace::MeshedSideNum ( )
inline

◆ MeshedSideNum() [2/2]

const int32 & UE::CADKernel::FTopologicalFace::MeshedSideNum ( ) const
inline

◆ MeshedSideRatio()

double UE::CADKernel::FTopologicalFace::MeshedSideRatio ( ) const
inline

◆ MoveThinZones()

void UE::CADKernel::FTopologicalFace::MoveThinZones ( TArray< FThinZone2D > &  InThinZones)
inline

◆ PropagateBodyOrientation()

virtual void UE::CADKernel::FTopologicalFace::PropagateBodyOrientation ( )
inlineoverridevirtual

Each face of model is set by its orientation. This allow to make oriented mesh and to keep the face orientation in topological function. Marker2 of propagate face is set. It must be reset after the process

Implements UE::CADKernel::FTopologicalShapeEntity.

◆ Remove() [1/2]

virtual void UE::CADKernel::FTopologicalFace::Remove ( const FTopologicalShapeEntity )
inlineoverridevirtual

◆ Remove() [2/2]

void UE::CADKernel::FTopologicalFace::Remove ( TArray< FTopologicalEdge * > *  NewBorderEdges = nullptr)
inline

Delete a face i.e. disjoin the face to all its linked elements before setting it as deleted

◆ RemoveLoop()

void UE::CADKernel::FTopologicalFace::RemoveLoop ( const TSharedPtr< FTopologicalLoop > &  Loop)

◆ ResetBackOriented()

void UE::CADKernel::FTopologicalFace::ResetBackOriented ( ) const
inline

◆ ResetHasThinSurface()

void UE::CADKernel::FTopologicalFace::ResetHasThinSurface ( )
inline

◆ ResetMarkersRecursively()

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

Reimplemented from UE::CADKernel::FEntity.

◆ Serialize()

virtual void UE::CADKernel::FTopologicalFace::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::FTopologicalShapeEntity.

◆ SetBackOriented()

void UE::CADKernel::FTopologicalFace::SetBackOriented ( ) const
inline

◆ SetEstimatedMinimalElementLength()

void UE::CADKernel::FTopologicalFace::SetEstimatedMinimalElementLength ( double  Value)
inline

◆ SetHasThinZoneMarker()

void UE::CADKernel::FTopologicalFace::SetHasThinZoneMarker ( )
inline

◆ SpawnIdent()

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

Reimplemented from UE::CADKernel::FEntity.

◆ SwapOrientation()

void UE::CADKernel::FTopologicalFace::SwapOrientation ( ) const
inline

◆ UpdateBBox()

void UE::CADKernel::FTopologicalFace::UpdateBBox ( int32  IsoCount,
const double  ApproximationFactor,
FBBoxWithNormal BBox 
)

Update the bounding box with an approximation of the surface based of n iso curves

Parameters
ApproximationFactorthe factor apply to the geometric tolerance to defined the SAG error of the ISO

Friends And Related Symbol Documentation

◆ FEntity

friend class FEntity
friend

Member Data Documentation

◆ Boundary

TCache<FSurfacicBoundary> UE::CADKernel::FTopologicalFace::Boundary
mutableprotected

◆ CarrierSurface

TSharedPtr<FSurface> UE::CADKernel::FTopologicalFace::CarrierSurface
protected

◆ CrossingCoordinates

FCoordinateGrid UE::CADKernel::FTopologicalFace::CrossingCoordinates
protected

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

◆ CrossingPointDeltaMaxs

FCoordinateGrid UE::CADKernel::FTopologicalFace::CrossingPointDeltaMaxs
protected

Max delta U at the crossing u coordinate to respect meshing criteria

◆ CrossingPointDeltaMins

FCoordinateGrid UE::CADKernel::FTopologicalFace::CrossingPointDeltaMins
protected

Min delta U at the crossing u coordinate to respect meshing criteria

◆ EstimatedMinimalElementLength

double UE::CADKernel::FTopologicalFace::EstimatedMinimalElementLength = DOUBLE_BIG_NUMBER
protected

◆ Loops

TArray<TSharedPtr<FTopologicalLoop> > UE::CADKernel::FTopologicalFace::Loops
protected

◆ Mesh

TSharedPtr<FFaceMesh> UE::CADKernel::FTopologicalFace::Mesh
protected

◆ MeshCuttingCoordinates

FCoordinateGrid UE::CADKernel::FTopologicalFace::MeshCuttingCoordinates
protected

Final U&V coordinates of the surface's mesh grid


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