UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
BezierSurface.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
6
7namespace UE::CADKernel
8{
9
11{
12 friend FEntity;
13
14protected:
15
18
21
23
26 , UDegre(InUDegre)
27 , VDegre(InVDegre)
28 , UPoleNum(InUDegre + 1)
29 , VPoleNum(InVDegre + 1)
30 , Poles(InPoles)
31 {
32 ensureCADKernel((UDegre + 1) * (VDegre + 1) == Poles.Num());
33 ComputeDefaultMinToleranceIso();
34 }
35
36 FBezierSurface() = default;
37
38public:
39
40 virtual void Serialize(FCADKernelArchive& Ar) override
41 {
42 FSurface::Serialize(Ar);
43 Ar << UDegre;
44 Ar << VDegre;
45 Ar << UPoleNum;
46 Ar << VPoleNum;
47 Ar.Serialize(Poles);
48 }
49
51 {
52 return ESurface::Bezier;
53 }
54
56 {
57 return UDegre;
58 }
59
61 {
62 return VDegre;
63 }
64
65 virtual const TArray<FVector>& GetPoles() const
66 {
67 return Poles;
68 }
69
70 virtual TSharedPtr<FEntityGeom> ApplyMatrix(const FMatrixH& InMatrix) const override;
71
72 virtual void EvaluatePoint(const FVector2d& InSurfacicCoordinate, FSurfacicPoint& OutPoint3D, int32 InDerivativeOrder = 0) const override;
73
74 virtual void Presample(const FSurfacicBoundary& InBoundaries, FCoordinateGrid& OutCoordinates) override;
75
76#ifdef CADKERNEL_DEV
77 virtual FInfoEntity& GetInfo(FInfoEntity&) const override;
78#endif
79};
80
81} // namespace UE::CADKernel
82
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
#define ensureCADKernel(InExpression)
Definition Types.h:115
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition SharedPointer.h:692
Definition BezierSurface.h:11
int32 VDegre
Definition BezierSurface.h:17
virtual void Serialize(FCADKernelArchive &Ar) override
Definition BezierSurface.h:40
ESurface GetSurfaceType() const
Definition BezierSurface.h:50
int32 UDegre
Definition BezierSurface.h:16
int32 GetVDegree() const
Definition BezierSurface.h:60
TArray< FVector > Poles
Definition BezierSurface.h:22
virtual const TArray< FVector > & GetPoles() const
Definition BezierSurface.h:65
FBezierSurface(const double InToleranceGeometric, int32 InUDegre, int32 InVDegre, const TArray< FVector > &InPoles)
Definition BezierSurface.h:24
int32 VPoleNum
Definition BezierSurface.h:20
int32 GetUDegree() const
Definition BezierSurface.h:55
int32 UPoleNum
Definition BezierSurface.h:19
Definition CADKernelArchive.h:19
void Serialize(void *Value, int64 Length)
Definition CADKernelArchive.h:118
Definition CADEntity.h:56
Definition MatrixH.h:14
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