본문 바로가기
Minecraft Forge/기타 메모

Vanilla Minecraft Vec3 클래스에 관해

by 정우 :P 2016. 5. 18.

연속으로 글을 올리긴 처음인데.... 간단한 주제여서 이렇게 올린다.

Vector 클래스 정리 중에 바닐라 마인크래프트에 있는 Vec3 클래스에서 의아한 점이 하나 있었다.

 

바로 subtract 메소드에 관한 것이었는데, 간단하게 보면 아래와 같다

(마인크래프트 소스 코드는 올리면 안된다고 하기에 간단히 구조만 정리해서 올리도록 하겠습니다.)

 

(인수로 온 벡터) - this

 

 

메소드 위의 주석에는 명시된 벡터(인수) - this 를 리턴한다고 되어있는데, 이해가 안가는 부분은

기본적으로 메소드를 호출할때 (인스턴스명).(메소드명)((인수...)) 로 호출을 하는데

그렇다면 위 메소드도 마찬가지로 이렇게 호출을 하게 될 것이다.

vec.subtract(vec2)

 

그런데 기본적으로 벡터 연산에서 a - b (각각 위치벡터) 를 하게되면 a 의 성분 - b의 성분을 한다는 뜻인데

메소드 호출방식과 잘 맞지 않는다...

 

(누가 저걸 보고 뒤에서 앞에껄 뺴는거라 생각을 하겠는가..)

 

물론 벡터의 기본 연산에서 AB - CD = DB 이런식으로 뒤에꺼의 종점에서 앞에꺼의 종점으로 가긴 하지만

기본적으로 프로그래밍에서 표현을 할 때 위치벡터 형태로 표현을 하는데.....

 

정말 바닐라 소스는 보면 볼수록 가관이다.. 

댓글