언리얼 엔진/C++

[언리얼엔진/C++] FVector::Parallel (두 벡터가 평행한지 여부 확인)

mane 2024. 6. 25. 00:46
728x90
반응형

FVector::Parallel 함수 사용법

언리얼 엔진(UE4)의 FVector 클래스는 3D 벡터를 다루기 위한 다양한 기능을 제공합니다. 그 중 FVector::Parallel 함수는 두 벡터가 평행한지 여부를 확인하는 데 사용됩니다.

함수 정의

static bool Parallel(const FVector& Normal1, const FVector& Normal2, float ParallelCosineThreshold = THRESH_NORMALS_ARE_PARALLEL);
// #define UE_THRESH_NORMALS_ARE_PARALLEL            (0.999845f)    /* Two unit vectors are parallel if abs(A dot B) is greater than or equal to this. This is roughly cosine(1.0 degrees). */

매개변수

  • Normal1: 비교할 첫 번째 벡터.
  • Normal2: 비교할 두 번째 벡터.
  • ParallelCosineThreshold: (옵션) 두 벡터가 평행하다고 간주될 수 있는 코사인 값의 임계값. 기본값은 THRESH_NORMALS_ARE_PARALLEL로 정의되어 있습니다.

반환 값

  • 두 벡터가 평행하다 true, 그렇지 않다면 false를 반환합니다.

예제 코드

두 벡터가 평행한지 확인하는 간단한 예제를 살펴보겠습니다.

#include "CoreMinimal.h"
#include "Engine/Engine.h"

void CheckParallelVectors()
{
    FVector Vector1(1.0f, 0.0f, 0.0f);
    FVector Vector2(2.0f, 0.0f, 0.0f);

    bool bAreParallel = FVector::Parallel(Vector1, Vector2);

    if (bAreParallel)
    {
        UE_LOG(LogTemp, Log, TEXT("Vector1과 Vector2는 평행합니다."));
    }
    else
    {
        UE_LOG(LogTemp, Log, TEXT("Vector1과 Vector2는 평행하지 않습니다."));
    }
}

이 예제에서 Vector1과 Vector2는 같은 방향을 가지므로 FVector::Parallel 함수는 true를 반환합니다.

활용 팁

  • 평행 벡터는 물리 시뮬레이션이나 방향을 비교할 때 유용하게 사용할 수 있습니다.
  • 임계값인 ParallelCosineThreshold를 조정하여 평행 여부의 민감도를 설정할 수 있습니다.
728x90
반응형