UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CurvatureCriterion.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Math/Curvature.h"
6
7namespace UE::CADKernel
8{
9struct FCurvePoint;
10
12{
13 friend class FEntity;
14
15protected:
16
18
19public:
20
25
30 virtual void UpdateDelta(double InDeltaU, double InUSag, double InDiagonalSag, double InVSag, double ChordLength, double DiagonalLength, double& OutSagDeltaUMax, double& OutSagDeltaUMin, FIsoCurvature& IsoCurvature) const override
31 {
32 if (DiagonalLength > DOUBLE_SMALL_NUMBER)
33 {
34 double Curvature = 8 * InUSag / FMath::Square(DiagonalLength);
35 if (IsoCurvature.Max < Curvature)
36 {
38 }
39 if (IsoCurvature.Min > Curvature)
40 {
42 }
43 }
44 }
45
46 virtual double Value() const override
47 {
48 return 0.;
49 }
50
51 virtual void ApplyOnEdgeParameters(FTopologicalEdge& Edge, const TArray<double>& Coordinates, const TArray<FCurvePoint>& Points) const override
52 {
53 // Do nothing
54 }
55
56 virtual ECriterion GetCriterionType() const override
57 {
59 }
60
61
62protected:
63
68 virtual bool IsAppliedBetweenBreaks() const override
69 {
70 return true;
71 }
72
73 virtual double ComputeDeltaU(double ChordLength, double DeltaU, double Sag) const override
74 {
75 return 0.0;
76 };
77
78};
79
80} // namespace UE::CADKernel
81
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DOUBLE_SMALL_NUMBER
Definition UnrealMathUtility.h:72
Definition Array.h:670
Definition CADKernelArchive.h:19
Definition Criterion.h:24
virtual void Serialize(FCADKernelArchive &Ar) override
Definition Criterion.h:33
Definition CurvatureCriterion.h:12
virtual double Value() const override
Definition CurvatureCriterion.h:46
void Serialize(FCADKernelArchive &Ar)
Definition CurvatureCriterion.h:21
virtual void ApplyOnEdgeParameters(FTopologicalEdge &Edge, const TArray< double > &Coordinates, const TArray< FCurvePoint > &Points) const override
Definition CurvatureCriterion.h:51
virtual ECriterion GetCriterionType() const override
Definition CurvatureCriterion.h:56
virtual double ComputeDeltaU(double ChordLength, double DeltaU, double Sag) const override
Definition CurvatureCriterion.h:73
virtual bool IsAppliedBetweenBreaks() const override
Definition CurvatureCriterion.h:68
virtual void UpdateDelta(double InDeltaU, double InUSag, double InDiagonalSag, double InVSag, double ChordLength, double DiagonalLength, double &OutSagDeltaUMax, double &OutSagDeltaUMin, FIsoCurvature &IsoCurvature) const override
Definition CurvatureCriterion.h:30
Definition CADEntity.h:56
Definition TopologicalEdge.h:63
Definition CADEntity.cpp:23
ECriterion
Definition CriterionType.h:9
static constexpr UE_FORCEINLINE_HINT T Square(const T A)
Definition UnrealMathUtility.h:578
Definition Curvature.h:10