상세 컨텐츠

본문 제목

gassianNode 강좌 정리 01 - header

Maya API/Maya_API 구문들

by hwano 2013. 12. 18. 06:03

본문

참고

 

http://istudyhard.tistory.com/233

http://cafe.naver.com/digitaldream/4674

http://cimple.tistory.com/382

http://kks227.blog.me/60197474189

 

---------------------------------------------------------------------------------------------------------------

 

전처리기( 컴파일되기 전 미리 처리하는 구문 )의 사용법

 

#ifdef PRO_VER
#define MAX_SPEED 100
#else
#define MAX_SPEED 10
#endif

 

이렇게 해두고 컴파일러 옵션에서 PRO_VER를 참 거짓으로 지정을 해주면

MAX_SPEED값이 다른 두가지 버젼의 프로그램을 바로 컴파일 할 수 있다

 

#ifndef _GaussianNode
#define _GaussianNode

 

필요한 header 파일을 가져온다. 전처리기의 일부이며

미리 만들어 놓은 자료들을 필요에 의해 가져온다 

 

아래의 경우엔

DG노드를 만들기 위한 MPxNode.h

float Attribute를 추가하기 위해 MFnNumericAttribute.h

그리고 exp함수 계산을 위한 math.h 를 불러왔다

 

 

#include <maya/MPxNode.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

 

관련글 더보기