UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
PlaneSurface.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
5
6namespace UE::CADKernel
7{
9{
10 friend FEntity;
11
12protected:
13
16
22
32
39
40 FPlaneSurface() = default;
41
43 {
44 FVector Origin = Matrix.Multiply(FVector::ZeroVector);
45
46 FVector Point2DU{ 1 , 0, 0 };
47 FVector Point2DV{ 0, 1, 0 };
48
49 double ToleranceU = Tolerance3D / ComputeScaleAlongAxis(Point2DU, Matrix, Origin);
50 double ToleranceV = Tolerance3D / ComputeScaleAlongAxis(Point2DV, Matrix, Origin);
51
52 MinToleranceIso.Set(ToleranceU, ToleranceV);
53 }
54
55public:
56
57 virtual void Serialize(FCADKernelArchive& Ar) override
58 {
59 FSurface::Serialize(Ar);
60 Ar << Matrix;
61 Ar << InverseMatrix;
62 }
63
65 {
66 return ESurface::Plane;
67 }
68
69 const FMatrixH& GetMatrix() const
70 {
71 return Matrix;
72 }
73
74 FPlane GetPlane() const;
75
76#ifdef CADKERNEL_DEV
77 virtual FInfoEntity& GetInfo(FInfoEntity&) const override;
78#endif
79
80 virtual TSharedPtr<FEntityGeom> ApplyMatrix(const FMatrixH& InMatrix) const override;
81
82 virtual void EvaluatePoint(const FVector2d& InSurfacicCoordinate, FSurfacicPoint& OutPoint3D, int32 InDerivativeOrder = 0) const override;
83 virtual void EvaluatePoints(const TArray<FVector2d>& InSurfacicCoordinates, TArray<FSurfacicPoint>& OutPoint3D, int32 InDerivativeOrder = 0) const override;
84 virtual void EvaluatePointGrid(const FCoordinateGrid& Coordinates, FSurfacicSampling& OutPoints, bool bComputeNormals = false) const override;
85
86 virtual FVector ProjectPoint(const FVector& InPoint, FVector* OutProjectedPoint = nullptr) const;// override;
87 virtual void ProjectPoints(const TArray<FVector>& InPoints, TArray<FVector>* OutProjectedPointCoordinates, TArray<FVector>* OutProjectedPoints = nullptr) const;// override;
88
90 {
91 OutCoordinates[EIso::IsoU].Empty(3);
92 OutCoordinates[EIso::IsoU].Add(InBoundaries[EIso::IsoU].Min);
93 OutCoordinates[EIso::IsoU].Add(InBoundaries[EIso::IsoU].GetMiddle());
94 OutCoordinates[EIso::IsoU].Add(InBoundaries[EIso::IsoU].Max);
95
96 OutCoordinates[EIso::IsoV].Empty(3);
97 OutCoordinates[EIso::IsoV].Add(InBoundaries[EIso::IsoV].Min);
98 OutCoordinates[EIso::IsoV].Add(InBoundaries[EIso::IsoV].GetMiddle());
99 OutCoordinates[EIso::IsoV].Add(InBoundaries[EIso::IsoV].Max);
100 }
101
102 virtual void IsSurfaceClosed(bool& bOutClosedAlongU, bool& bOutClosedAlongV) const override
103 {
104 bOutClosedAlongU = false;
105 bOutClosedAlongV = false;
106 }
107
108};
109
110} // namespace UE::CADKernel
@ Normal
Definition AndroidInputInterface.h:116
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition Array.h:670
Definition SharedPointer.h:692
Definition CADKernelArchive.h:19
Definition CADEntity.h:56
Definition MatrixH.h:14
Definition PlaneSurface.h:9
virtual void Serialize(FCADKernelArchive &Ar) override
Definition PlaneSurface.h:57
FMatrixH InverseMatrix
Definition PlaneSurface.h:15
FPlaneSurface(const double InToleranceGeometric, double InDistanceFromOrigin, FVector InNormal, const FSurfacicBoundary &InBoundary)
Definition PlaneSurface.h:28
virtual void Presample(const FSurfacicBoundary &InBoundaries, FCoordinateGrid &OutCoordinates) override
Definition PlaneSurface.h:89
virtual void IsSurfaceClosed(bool &bOutClosedAlongU, bool &bOutClosedAlongV) const override
Definition PlaneSurface.h:102
const FMatrixH & GetMatrix() const
Definition PlaneSurface.h:69
ESurface GetSurfaceType() const
Definition PlaneSurface.h:64
FMatrixH Matrix
Definition PlaneSurface.h:14
void ComputeMinToleranceIso()
Definition PlaneSurface.h:42
Definition Surface.h:27
Definition Boundary.h:248
Definition CADEntity.cpp:23
ESurface
Definition GeoEnum.h:34
Definition GeoPoint.h:103
Definition GeoPoint.h:19
Definition SurfacicSampling.h:14
static CORE_API const TVector< double > ZeroVector
Definition Vector.h:79