펑션 내부의 펑션 구현

Implement function inside funcion
2010/01/05 마고자

가끔 프로그래밍을 하다보면 펑션안에 가볍게 펑션을 정의하고 싶어지는 경우가 있다.
폴리건에 버택스를 추가한다던지 같은 작업을 긴 라인동안 반복하게되면 나도 모르게 좀 깔끔하게 만들고 싶어진다.

// Sample , Ogre에서 ManualObject 설정하는 경우..
position( 0 , 0 );
textureCoord( 0 , 1 );
colour( 1 , 1 , 1 , 1 );
position( 1 , 0 );
textureCoord( 0 , 1 );
colour( 1 , 1 , 1 , 1 );
position( 0 , 1 );
textureCoord( 0 , 1 );
colour( 1 , 1 , 1 , 1 );
....

이럴때 같은 인자들을 묶고 다른것들만 넣어서

AddVertex( 0 , 0 , 0 , 1 );
AddVertex( 1 , 0 , 0 , 1 );
....
이런식으로 정리하고싶어진다. 
정리하는 방법이 여러가지가 있는데 , 아에 AddVertex함수를  원래 클래스에 추가하는 방법이 있지만 , 엔진단에서 건드리는 경우가 될수도 있고 , 보통 로컬로 간단히 작업하는 부분이기때문에 요 파일 내에서 해결하는게 좋다.

일반적인 해결 방안은 전처리기( define )을 이용하는 방법이다.

#define AddVertex( x , y , u , v ) { \
    position( x , y );\
    textureCoord( u , v );\
    colour( 1 , 1 , 1 , 1 );\
}

이걸로 정리가 가능하다.

만세

라고 생각하면 오산..

Posted by 마고자