참고
http://istudyhard.tistory.com/233
http://cafe.naver.com/digitaldream/4674
http://kks227.blog.me/60197474189
---------------------------------------------------------------------------------------------------------------
전처리기( 컴파일되기 전 미리 처리하는 구문 )의 사용법
이렇게 해두고 컴파일러 옵션에서 PRO_VER를 참 거짓으로 지정을 해주면
MAX_SPEED값이 다른 두가지 버젼의 프로그램을 바로 컴파일 할 수 있다
#ifndef _GaussianNode
#define _GaussianNode
필요한 header 파일을 가져온다. 전처리기의 일부이며
미리 만들어 놓은 자료들을 필요에 의해 가져온다
아래의 경우엔
DG노드를 만들기 위한 MPxNode.h
float Attribute를 추가하기 위해 MFnNumericAttribute.h
그리고 exp함수 계산을 위한 math.h 를 불러왔다
#include <maya/MFnNumericAttribute.h>
#include <math.h>
class 생성
class GaussianNode : public MPxNode 이말은
class GaussianNode <-- public MPxNode 이렇게
부모 클래스인 MPxNode에서 상속받는다는 말이다
class GaussianNode : public MPxNode
{
public:
class 생성자, 소멸자
GaussianNode();
virtual ~GaussianNode();
static은 동적변수를 의미한다.
--------------------
ex)
#include <stdio.h>
int add( int a, int b ){
static int count = 0;
count++;
printf( count );
int main(){
add( 1, 1 )
add( 1, 1 )
add( 1, 1 )
}
-------------------
이런식으로 main함수에서 add를 3번 호출하면
프린트되는 count값은 계속 1씩 증가한다
static void* creator(); - 노드를 생성할 때 호출
virtual MStatus compute( const MPlug& plug, MDataBlock& data ); - 노드의 계산
static MStatus initialize(); - 플러그인을 로드할 때 실행
static void* creator();
virtual MStatus compute( const MPlug& plug, MDataBlock& data );
static MStatus initialize();
노드 id와 추가할 attribute를 선언
static MTypeId id;
static MObject aOutValue;
static MObject aInValue;
static MObject aMagnitude;
static MObject aMean;
static MObject aVariance;
};
#endif