UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CompositeCurve.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
5#include "Geo/Curves/Curve.h"
6
7namespace UE::CADKernel
8{
9struct FCurvePoint;
10
24
26{
27 friend class FEntity;
28
29protected:
32
33 FCompositeCurve(const TArray<TSharedPtr<FCurve>>& Curves, bool bDoInversions = false);
34
35 FCompositeCurve() = default;
36
37public:
38
39 virtual void Serialize(FCADKernelArchive& Ar) override
40 {
41 FCurve::Serialize(Ar);
42 SerializeIdents(Ar, (TArray<TOrientedEntity<FEntity>>&) Curves);
43 Ar.Serialize(Coordinates);
44 }
45
46 virtual void SpawnIdent(FDatabase& Database) override
47 {
48 if (!FEntity::SetId(Database))
49 {
50 return;
51 }
52
53 SpawnIdentOnEntities((TArray<TOrientedEntity<FEntity>>&) Curves, Database);
54 }
55
56 virtual void ResetMarkersRecursively() const override
57 {
58 ResetMarkers();
59 ResetMarkersRecursivelyOnEntities((TArray<TOrientedEntity<FEntity>>&) Curves);
60 }
61
62#ifdef CADKERNEL_DEV
63 virtual FInfoEntity& GetInfo(FInfoEntity&) const override;
64#endif
65
66 virtual ECurve GetCurveType() const override
67 {
68 return ECurve::Composite;
69 }
70
71 virtual TSharedPtr<FEntityGeom> ApplyMatrix(const FMatrixH& InMatrix) const override;
72 virtual void Offset(const FVector& OffsetDirection) override;
73
75 {
76 return Curves[Index].Entity;
77 }
78
79 virtual void EvaluatePoint(double Coordinate, FCurvePoint& OutPoint, int32 DerivativeOrder = 0) const override;
80 virtual void Evaluate2DPoint(double Coordinate, FCurvePoint2D& OutPoint, int32 DerivativeOrder = 0) const override;
81
82 virtual void FindNotDerivableCoordinates(const FLinearBoundary& InBoundary, int32 DerivativeOrder, TArray<double>& OutNotDerivableCoordinates) const override;
83
84 double LocalToGlobalCoordinate(int32 CurveIndex, double LocalCoordinate) const;
85 double GlobalToLocalCoordinate(int32 CurveIndex, double GlobalCoordinate) const;
86};
87
88} // namespace UE::CADKernel
89
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
uint32 Offset
Definition VulkanMemory.cpp:4033
Definition Array.h:670
Definition SharedPointer.h:692
Definition CADKernelArchive.h:19
void Serialize(void *Value, int64 Length)
Definition CADKernelArchive.h:118
Definition CompositeCurve.h:26
virtual TSharedPtr< FCurve > GetCurve(int32 Index) const
Definition CompositeCurve.h:74
virtual void ResetMarkersRecursively() const override
Definition CompositeCurve.h:56
virtual ECurve GetCurveType() const override
Definition CompositeCurve.h:66
virtual void SpawnIdent(FDatabase &Database) override
Definition CompositeCurve.h:46
virtual void Serialize(FCADKernelArchive &Ar) override
Definition CompositeCurve.h:39
TArray< FOrientedCurve > Curves
Definition CompositeCurve.h:30
TArray< double > Coordinates
Definition CompositeCurve.h:31
Definition Curve.h:21
Definition Database.h:17
Definition CADEntity.h:56
Definition MatrixH.h:14
Definition CompositeCurve.h:12
FOrientedCurve()
Definition CompositeCurve.h:19
FOrientedCurve(TSharedPtr< FCurve > &InEntity, EOrientation InDirection)
Definition CompositeCurve.h:14
Definition OrientedEntity.h:11
Definition CADEntity.cpp:23
EOrientation
Definition GeoEnum.h:82
ECurve
Definition GeoEnum.h:10
U16 Index
Definition radfft.cpp:71
Definition GeoPoint.h:11
Definition GeoPoint.h:50
Definition Boundary.h:18