2Bbear's knowledge workshop

Caution!!

This document is made in unreal 4.14


---------------------------------------------------------------------------------------------------


본 정리는 

https://docs.unrealengine.com/latest/INT/API/Runtime/Core/Math/FVector/index.html


위 주소의 원문에서 정리한 내용입니다.


알면 바로 사용할 수 있는 함수들만 따로 정리했습니다.



---------------------------------------------------------------------------------------------------



FVector는 앞에 F가 붙어 있는 걸 보았을때 구조체라는 것을 알 수 있습니다.

막상 선언부를 가서 보아도 구조체라는 것을 알 수 있습니다.


FVector 는 3D 공간상에서 xyz의 컴포넌트를 가지는 구조체입니다.


-변수-

X : float

Y : float

Z : float


-Constructor- 

=> FVector 생성시 실행되는 함수들이 Override 되어 있습니다.


FVector()    초기화를 시키지 않는 생성입니다.  ex > Fvector().X=30.f;


FVector(float Inf)    모든 컴포넌트(x,y,z)를 Inf값으로 초기화 시킵니다.


FVector(const FVector4 & V)    FVector4를 이용해 xyz값을 초기화 시킵니다.


..... 중간 Constructor는 생략


FVector(const FVector2D V , float InZ)    FVector2를 이용해 x,y를 초기화 시키고 InZ를 이용

해 Z를 초기화 시킵니다.


FVector(float x, float y, float z)    x,y,z,로 xyz 컴포넌트를 각각 초기화 시킵니다.


-Function-


bool AllComponentsEqual (float Tolerance)

해당 벡터의 모든 컴포넌트(x,y,z)가 Tolerance 이상인지 판별하는 함수

=범위를 넘었는지 판별용



FVector BoundToCube(float Radius)

해당 벡터의 모든 컴포넌트를 Radius값 이하로 조절하는 함수 

=오브젝트의 최대 움직임 반경 설정


FVector ClampMaxSize(float MaxSize)

해당 벡터의 모든 컴포넌트를 Maxsize 이하로 조절한다.

사용 방법은 BoundToCube와 동일.


FVector ClampSize(float Min ,float Max)

해당벡터의 모든 컴포넌트를 Min이상 Max이하로 조절한다.


bool Coincident(const FVector & Nomal1, const FVector & Nomal2 , float ParallelCosineThreshold)

두 벡터의 방향성이 거의 ParallelCosineThreshold(오차범위) 내외로 비슷한지 판별하는 함수



bool ConstainsNaN()

해당 벡터에 x,y,z로 들어갈 수 없는 값이 들어가 있는지 확인하는 함수 

(무한대 숫자들이 걸러진다. 또는 들어가면 안되는게 들어 갔을때 걸러진다.)


float Dist(cibst FVector & V1, const FVector & V2)

두 벡터 사이의 거리를 구하는 함수


bool Equals(const FVector & V , float Tolerance)

해당 벡터가 V 벡터와 같은지 오차범위 Tolerance 안에서 반별하는 함수


bool Orthogonal(정규화 벡터 1 , 정규화 벡터 2, 오차범위)

두 정규화 벡터라고 하지만 그냥 벡터를 넣어도 무방하다. 

이 두 벡터가 직각인지 오차 범위 내에서 확인 해준다.


bool PointsAreNear(벡터 1 , 벡터 2 , 오차범위)

두 벡터가 오차범위 내로 근접해 있는지 확인해주는 함수



그 밖에


Set

ToString

ToText

가 있지만 사용하는 방법이 쉬워 생략합니다.




-Operators-

연산자들


-    마이너스 연산 가능

+    플러스 연산 가능

/    연산 가능

*    연산 가능


!=    조건 연산가능 

==    조건 연산가능

!        조건 연산가능


*=

-=

+=

/=    2항연산 가능



-Constants-


ForwardVector = (1,0,0)

RightVector = (0,1,0)

UpVector = (0,0,1)

ZeroVector = (0,0,0)


각각 FVector T.ForwardVector; 처럼 사용할 수 있다.