void UBlendSpace::SnapToBorder(FBlendSample& Sample) const { FVector& SampleValue = Sample.SampleValue; FVector2D Threshold = CalculateThreshold(); FVector GridMin(BlendParameters[0].Min, BlendParameters[1].Min, 0.f); FVector GridMax(BlendParameters[0].Max, BlendParameters[1].Max, 0.f); if (SampleValue.X != GridMax.X && SampleValue.X+Threshold.X > GridMax.X) { SampleValue.X = GridMax.X; } if (SampleValue.X != GridMin.X && SampleValue.X-Threshold.X < GridMin.X) { SampleValue.X = GridMin.X; } if (SampleValue.Y != GridMax.Y && SampleValue.Y+Threshold.Y > GridMax.Y) { SampleValue.Y = GridMax.Y; } if (SampleValue.Y != GridMin.Y && SampleValue.Y-Threshold.Y < GridMin.Y) { SampleValue.Y = GridMin.Y; } }
void UBlendSpace1D::SnapToBorder(FBlendSample& Sample) const { FVector& SampleValue = Sample.SampleValue; const float Threshold = CalculateThreshold(); const float GridMin = BlendParameters[0].Min; const float GridMax = BlendParameters[0].Max; if (SampleValue.X != GridMax && SampleValue.X+Threshold > GridMax) { SampleValue.X = GridMax; } if (SampleValue.X != GridMin && SampleValue.X-Threshold < GridMin) { SampleValue.X = GridMin; } }
bool UBlendSpace::IsSameSamplePoint(const FVector& SamplePointA, const FVector& SamplePointB) const { FVector2D Threshold = CalculateThreshold(); FVector Diff = (SamplePointA-SamplePointB).GetAbs(); return (Diff.X < Threshold.X) && (Diff.Y < Threshold.Y); }
bool UBlendSpace1D::IsSameSamplePoint(const FVector& SamplePointA, const FVector& SamplePointB) const { const float Threshold = CalculateThreshold(); const FVector Diff = (SamplePointA-SamplePointB).GetAbs(); return (Diff.X < Threshold); }