14#include "UI/DefineForDebug.h"
28class FThinZone2DFinder;
29class FTopologicalFace;
102#ifdef CADKERNEL_DEBUG
428 void PrintTimeElapse()
const;
431#ifdef CADKERNEL_DEBUG
443 F3DDebugSession
_(Message);
453 F3DDebugSession
_(Message);
455 for (
const FIsoNode* Node : Nodes)
473 F3DDebugSession
_(Message);
477 void DisplayTriangle(
EGridSpace Space,
const FIsoNode& NodeA,
const FIsoNode& NodeB,
const FIsoNode&
NodeC)
const;
490 F3DDebugSession
_(Message);
500 F3DDebugSession
_(Message);
511 template<
typename TPo
int>
519 F3DDebugSession
_(Message);
541 template<
typename TPo
int>
576 template<
typename TPo
int>
584 F3DDebugSession
_(*Message);
588 FString
LoopName = FString::Printf(
TEXT(
"Loop %d"), LoopIndex++);
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32 FIdent
Definition Types.h:27
#define ENUM_CLASS_FLAGS(Enum)
Definition EnumClassFlags.h:6
UE_REWRITE SizeType Num() const
Definition Array.h:1144
UE_NODEBUG UE_FORCEINLINE_HINT ElementType & Last(SizeType IndexFromTheEnd=0) UE_LIFETIMEBOUND
Definition Array.h:1263
int32 CuttingSize
Definition GridBase.h:84
int32 CuttingCount[2]
Definition GridBase.h:83
TArray< FVector3f > Normals
Definition GridBase.h:101
int32 GobalIndex(int32 IndexU, int32 IndexV) const
Definition GridBase.h:241
FGridChronos Chronos
Definition GridBase.h:104
TArray< FVector2d > Points2D[EGridSpace::EndGridSpace]
Definition GridBase.h:91
const bool IsNodeInsideAndMeshable(int32 Index) const
Definition Grid.h:226
bool GeneratePointCloud()
Definition Grid.cpp:192
int32 CountOfInnerNodes
Definition Grid.h:85
void SetInner2DPoint(EGridSpace Space, int32 Index, const FVector2d &NewCoordinate)
Definition Grid.h:311
const double MinimumElementSize
Definition Grid.h:60
const bool IsNodeInsideButTooCloseToLoop(int32 Index) const
Definition Grid.h:231
double MinOfMaxElementSize
Definition Grid.h:87
void GetMeshOfLoop(const FTopologicalLoop &Loop)
Definition Grid.cpp:717
void GetPreferredUVCuttingParametersFromLoops(FCuttingGrid &CuttingFromLoops)
Definition Grid.cpp:92
double GetMinElementSize() const
Definition Grid.h:419
const bool IsNodeCloseToLoop(int32 Index) const
Definition Grid.h:285
void ProcessPointCloud()
Definition Grid.cpp:27
TArray< FVector3f > & GetNormals()
Definition Grid.h:345
const bool IsNodeOutsideFace(int32 Index) const
Definition Grid.h:248
virtual const FCoordinateGrid & GetCoordinateGrid() const override
Definition Grid.h:54
const TArray< TArray< int32 > > & GetNodeIdsOfFaceLoops() const
Definition Grid.h:350
const TArray< TArray< FVector > > & GetLoops3D() const
Definition Grid.h:394
TArray< TArray< FVector > > FaceLoops3D
Definition Grid.h:73
void GetMeshOfThinZone(const FThinZone2D &ThinZone)
Definition Grid.cpp:930
void SetNodeInside(int32 Index)
Definition Grid.h:269
const FVector2d & GetLoop2DPoint(EGridSpace Space, int32 LoopIndex, int32 Index) const
Definition Grid.h:355
const FVector3f & GetPointNormal(int32 Index) const
Definition Grid.h:327
const int32 GetTotalCuttingCount() const
Definition Grid.h:213
const bool IsNodeInsideAndCloseToLoop(int32 Index) const
Definition Grid.h:254
TArray< TArray< int32 > > NodeIdsOfFaceLoops
Definition Grid.h:80
const int32 GetLoopCount() const
Definition Grid.h:370
FCoordinateGrid & CoordinateGrid
Definition Grid.h:52
const TArray< TArray< FVector3f > > & GetLoopNormals() const
Definition Grid.h:402
const bool IsNodeTooCloseToLoop(int32 Index) const
Definition Grid.h:290
void DefineCuttingParameters()
Definition Grid.cpp:47
TArray< TArray< FVector2d > > FaceLoops2D[EGridSpace::EndGridSpace]
Definition Grid.h:68
void ResetInsideLoop(int32 Index)
Definition Grid.h:306
constexpr const int32 GetCuttingCount(EIso Iso) const
Definition Grid.h:205
void FindPointsCloseToLoop()
Definition Grid.cpp:215
const TArray< TArray< FVector2d > > & GetLoops2D(EGridSpace Space) const
Definition Grid.h:378
void SetLoop2DPoint(EGridSpace Space, int32 LoopIndex, int32 Index, const FVector2d &NewCoordinate)
Definition Grid.h:360
const bool IsNodeOusideFaceButClose(int32 Index) const
Definition Grid.h:263
const FCoordinateGrid & GetCuttingCoordinates() const
Definition Grid.h:337
void ScaleLoops()
Definition Grid.cpp:1151
void RemovePointsCloseToLoop()
Definition Grid.cpp:446
const FVector & GetLoop3DPoint(int32 LoopIndex, int32 Index) const
Definition Grid.h:365
void UVIndexFromGlobalIndex(int32 GLobalIndex, int32 &OutIndexU, int32 &OutIndexV) const
Definition Grid.h:410
const TArray< double > & GetCuttingCoordinatesAlongIso(EIso Iso) const
Definition Grid.h:332
const double GetTolerance(EIso Iso) const
Definition Grid.h:218
TArray< ENodeMarker > NodeMarkers
Definition Grid.h:93
FModelMesh & MeshModel
Definition Grid.h:62
void SetTooCloseToLoop(int32 Index)
Definition Grid.h:300
bool GetMeshOfLoops()
Definition Grid.cpp:1081
TArray< TArray< FVector3f > > NormalsOfFaceLoops
Definition Grid.h:78
bool CheckIfExternalLoopIsDegenerate() const
Definition Grid.cpp:1527
bool CheckIf2DGridIsDegenerate() const
Definition Grid.cpp:1187
const bool IsNodeFarFromFace(int32 Index) const
Definition Grid.h:239
void FindInnerFacePoints()
Definition Grid.cpp:1211
const FSurfacicTolerance FaceTolerance
Definition Grid.h:59
void SetCloseToLoop(int32 Index)
Definition Grid.h:295
TArray< TArray< FVector > > & GetLoops3D()
Definition Grid.h:386
const int32 InnerNodesCount() const
Definition Grid.h:277
const FVector3f & GetPointNormal(int32 IndexU, int32 IndexV) const
Definition Grid.h:319
Definition ModelMesh.h:21
Definition ThinZone2D.h:157
Definition TopologicalFace.h:56
Definition TopologicalLoop.h:60
Definition CADEntity.cpp:23
ENodeMarker
Definition Grid.h:33
@ IsInsideButTooCloseToLoop
void DisplaySegment(const FVector &Point1, const FVector &Point2, FIdent Ident, EVisuProperty Property)
Definition Display.cpp:1268
EGridSpace
Definition MeshEnum.h:17
@ EndGridSpace
Definition MeshEnum.h:21
void DisplayPoint(const TPoint &Point, FIdent Ident)
Definition Display.h:145
void Close3DDebugSession(bool bIsDisplayed=true)
Definition Display.h:58
EIso
Definition GeoEnum.h:66
@ IsoU
Definition GeoEnum.h:67
EVisuProperty
Definition Visu.h:15
@ RedPoint
Definition Visu.h:32
@ BluePoint
Definition Visu.h:30
@ GreenPoint
Definition Visu.h:36
@ OrangePoint
Definition Visu.h:40
@ YellowPoint
Definition Visu.h:28
@ BlueCurve
Definition Visu.h:31
@ Iso
Definition Visu.h:20
U16 Index
Definition radfft.cpp:71
Definition GeoPoint.h:103
Definition TopologicalEdge.h:1007