19class FSurfacicPolyline;
22struct FSurfacicSampling;
23struct FNurbsSurfaceData;
24struct FNurbsSurfaceHomogeneousData;
46 virtual void InitBoundary()
79 MinToleranceIso.
Set(Boundary[EIso::IsoU].ComputeMinimalTolerance(), Boundary[EIso::IsoV].ComputeMinimalTolerance());
100 ESurface SurfaceType = GetSurfaceType();
103 FEntityGeom::Serialize(Ar);
106 Ar << MinToleranceIso;
123 return EEntity::Surface;
156 return *MinToleranceIso;
167 return (*MinToleranceIso)[
Iso];
205 int32 DerivativeOrder = 1;
217 int32 DerivativeOrder = 1;
268 Delta /= SampleCount;
270 Coordinates[
Iso].Empty(SampleCount + 1);
274 Coordinates[
Iso].Add(Sample);
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define ensureCADKernel(InExpression)
Definition Types.h:115
UE::Math::TVector< float > FVector3f
Definition MathFwd.h:73
#define DOUBLE_PI
Definition UnrealMathUtility.h:71
Definition SharedPointer.h:692
Definition CADKernelArchive.h:19
bool IsSaving() const
Definition CADKernelArchive.h:113
Definition EntityGeom.h:15
Definition CADEntity.h:56
const FSurfacicBoundary & GetBoundary() const
Definition Surface.h:128
virtual void EvaluatePointAndNormal(const FVector2d &InPoint2D, FVector &Point, FVector3f &Normal) const
Definition Surface.h:203
FSurfacicBoundary Boundary
Definition Surface.h:32
static double ComputeScaleAlongAxis(const FVector &InAxis, const FMatrixH &InMatrix, const FVector &InOrigin)
Definition Surface.h:286
FSurface(double InToleranceGeometric, double UMin, double UMax, double VMin, double VMax)
Definition Surface.h:70
void TrimBoundaryTo(const FSurfacicBoundary NewLimit)
Definition Surface.h:134
FSurface(double InToleranceGeometric)
Definition Surface.h:55
virtual void ValidateUVPoints(TArray< FVector2d > &UVPoints) const
Definition Surface.h:93
void ComputeDefaultMinToleranceIso()
Definition Surface.h:77
virtual void EvaluatePoint(const FVector2d &InSurfacicCoordinate, FSurfacicPoint &OutPoint3D, int32 InDerivativeOrder=0) const =0
virtual FVector EvaluateNormal(const FVector2d &InPoint2D) const
Definition Surface.h:215
virtual void EvaluatePointGridInCylindricalSpace(const FCoordinateGrid &Coordinates, TArray< FVector2d > &) const
Definition Surface.h:196
const FSurfacicTolerance & GetIsoTolerances() const
Definition Surface.h:153
virtual ESurface GetSurfaceType() const =0
virtual void LinesNotDerivables(const FSurfacicBoundary &Bounds, int32 InDerivativeOrder, FCoordinateGrid &OutNotDerivableCoordinates) const
Definition Surface.h:242
virtual void IsSurfaceClosed(bool &bOutClosedAlongU, bool &bOutClosedAlongV) const
Definition Surface.h:257
void LinesNotDerivables(int32 InDerivativeOrder, FCoordinateGrid &OutNotDerivableCoordinates) const
Definition Surface.h:247
double Get3DTolerance() const
Definition Surface.h:170
virtual TSharedPtr< FEntityGeom > ApplyMatrix(const FMatrixH &InMatrix) const =0
double Tolerance3D
Definition Surface.h:33
double GetIsoTolerance(EIso Iso) const
Definition Surface.h:164
void PresampleIsoCircle(const FSurfacicBoundary &InBoundaries, FCoordinateGrid &Coordinates, EIso Iso)
Definition Surface.h:263
virtual EEntity GetEntityType() const override
Definition Surface.h:121
TCache< FSurfacicTolerance > MinToleranceIso
Definition Surface.h:42
void ExtendBoundaryTo(const FSurfacicBoundary MaxLimit)
Definition Surface.h:139
virtual void Serialize(FCADKernelArchive &Ar) override
Definition Surface.h:95
FSurface(double InToleranceGeometric, const FSurfacicBoundary &InBoundary)
Definition Surface.h:62
virtual FVector2d EvaluatePointInCylindricalSpace(const FVector2d &InSurfacicCoordinate) const
Definition Surface.h:195
virtual ~FSurface()=default
Definition Boundary.h:248
bool IsValid() const
Definition Boundary.h:330
void ExtendTo(const FSurfacicBoundary &MaxLimit)
Definition Boundary.h:390
void Set(const FVector2d &Point1, const FVector2d &Point2)
Definition Boundary.h:282
void TrimAt(const FSurfacicBoundary &MaxLimit)
Definition Boundary.h:384
Definition SurfacicPolyline.h:30
bool IsValid() const
Definition Cache.h:83
void Set(const ObjectType &NewValue)
Definition Cache.h:38
Definition CADEntity.cpp:23
ESurface
Definition GeoEnum.h:34
EIso
Definition GeoEnum.h:66
@ Iso
Definition Visu.h:20
EEntity
Definition CADEntity.h:18
U16 Index
Definition radfft.cpp:71
Definition GeoPoint.h:103
Definition NurbsSurfaceData.h:27
Definition NurbsSurfaceData.h:11
Definition SurfacicSampling.h:14
static CORE_API const TVector2< double > ZeroVector
Definition Vector2D.h:63
bool Normalize(T Tolerance=UE_SMALL_NUMBER)
Definition Vector.h:1767
static UE_FORCEINLINE_HINT double Distance(const TVector< double > &V1, const TVector< double > &V2)
Definition Vector.h:1018
TVector< T > GetSafeNormal(T Tolerance=UE_SMALL_NUMBER, const TVector< T > &ResultIfZero=ZeroVector) const
Definition Vector.h:2060