전체 글 (86)
-
2018.02.23 [펌] D3DXVec3TransformNormal 과 D3DXVec3TransformCoord 차이
D3DXVec3TransformNormal 과 D3DXVec3TransformCoord 의 차이에 대해서 간단히 말씀드리도록 하겠습니다. 단순하게 말하자면 D3DXVec3TransformNormal 은 벡터를 변환하는 것이고 D3DXVec3TransformCoord 는 위치를 변환하는 것입니다. 벡터와 행렬을 곱하기 위해서는 행과 열이 같은 차수여야 한다는 것을 알고 계실 것입니다. 예를 들어서 [x, y, z] 라는 3차원 벡터가 존재하는데 D3D 에서는 4x4 행렬을 곱하게 됩니다. 이러한 벡터를 행렬과 연산을 할 때는 차수를 맞춰줘야지 곱할 수 있게 됩니다. 즉 3차 벡터를 마치 1x4 행렬 혹은 4x1 행렬인 것처럼 만들어 주어야 4x4 행렬과 곱하는 것이 가능하다는 것이죠. D3DXVec3Tra..
-
2018.01.10 [C++] 중첩 클래스 사용 이유
중첩 클래스는 class 내부에 class를 선언하는 것이다 보통, 외부 class에 내부 class를 선언하는 경우에 / 내부 class를 private 으로 정의한다. 왜냐하면, 특정 클래스 안에서만 사용하는, 또다른 클래스 자료형이 필요할 경우에 이러한 방식을 사용하기 때문이다. https://m.blog.naver.com/PostView.nhn?blogId=kks227&logNo=220179773371&proxyReferer=https%3A%2F%2Fwww.google.co.kr%2F
-
2018.01.10 문자열 코딩 - [아스키코드, 멀티바이트, 유니코드]
VS 프로젝트 속성 -> 구성속성을 보면문자 집합으로 2가지를 사용할 수 있다.1. 멀티바이트 문자 집합2. 유니코드 문자 집합 아스키 코드(SBCS) - 모든 문자 하나가 1byte를 차지하며 영어를 표현한다. 하지만 아스키 문자 코드 만으로는 한글이나 일어 등의 다른 문자를 표시할 수 없다. 멀티바이트(MBCS) - 1. 아스키 문자 코드에다가 다른문자(2byte)들을 포함한 문자 집합이다.어떤 문자는 1byte고, 어떤 문자는 2byte이다.정확히는 모르겠지만, 한 문자가 2byte를 넘는 문자도 존재할 것이다. 2. 멀티바이트 문자 집합은 특정 문자 집합마다의 코드페이지가 존재한다.예를 들어, 같은 코드 번호 일지라도 한글 코드 페이지로 해석하면 한글이 나오지만,일어 코드 페이지로 해석하면 일어가..
-
2017.12.28 [C++] variadic template
variadic template 은... 템플릿의 인자를 가변적으로 받을 수 있도록 구현하는 방식이다 참고)variable argument (다양한 인수의 표현) 이것의 심볼로는 ... 을 사용합니다. variadic template을 함수 템플릿 / 클래스 템플릿 2가지로 나누어서 간략히 설명합니다. 12345678910111213 template // template parameter packvoid Function( const Arg1& arg1, const Args&... args ) // function parameter pack{ Test( arg1 ); Function( args... );} void main(){ Function( 1, "ezreal very handsome", 1.5f )..
-
2017.12.27 [C++] 템플릿 이것저것(정리중...)
템플릿 메타 프로그래밍 일반 함수를 써서 재귀호출을 해야하는 문제를, 템플릿 클래스를 이용하면 똑같이 구현할 수 있다. ▶ 템플릿의 원래 기능이 아니라, 템플릿을 이용해서 문제를 푸는 방법 cf. 재귀 호출 방식으로 템플릿을 계속 생성하는 것은, 잘 알려진 대표 템플릿 메타 프로그래밍의 예 템플릿 메서드 패턴 부모 클래스에서 virtual이 아닌 함수 내부에서, 자식의 virtual 함수를 호출한다 자식의 virtual 함수를 호출 : 객체 생성 타입에 따라 적절한 오버라이딩 호출 템플릿 트릭 템플릿 트릭 중 하나가 템플릿 메소드 패턴을 사용하면 virtual 함수를 런타임 때 테이블로 접근해서 호출하는데 이러한 테이블을 접근하는 시간을 단축하기 위해 해결하는 static polymorphism 방법임 ..