폴리라인을 원하는 정밀도를 만족하는 범위 내에서 단순화할 목적으로 흔히 사용되는 Douglas-Peucker 알고리즘을 소개한다. 분할 정복 전략을 사용하는 대표적인 기하 알고리즘이라는 점에서 배워둘만한 가치가 있다.
임의의 다각형으로 구성된 폴리곤 메시에서 edge 목록을 생성, 검색, 순회하는 방법을 정리해본다.
다양한 형식의 2차원 백터에 대해 덧셈 연산을 하기 위한 함수들을 vectormath::add()라는 함수 하나로 통합하려 마음먹은 적이 있었는데, 이 과정에서 있었던 동료와의 논의가 재미있어서 여기에 옮겨 적어본다.
비지터 패턴은 책에 나온 그대로 구현하면 실제로 써먹을 데가 없는 계륵 같은 놈인데... 구현 방식을 살짝 변경하고, 함수형 프로그래밍 향을 첨가해서 그럭저럭 쓸만한 수준으로 만들어 보았다.
std::shared_ptr이 제공하는 가장 중요한 가치는 "null이 아닌 shared_ptr을 사용하는 것은 언제나 안전" 함을 '보증'한다는 것이다. 객체 포인터의 null 체크만 잘 하면 access violation에서 해방될 수 있는 기반을 얘기해 보련다.