chsop()

nearpoint()

point()





point sop에다가 my source를 만든이유는 변경시 더 효율적인 작업을하기 위함이다. 

자세히 말하면 my source를 참조하는 곳이 많다. 그래서 참조 노드 변경 시 my source만 바꿔주면 일일이 찾아다니며 노드경로를 변경하는 일이 없어진다.


이때, 필요한 익스프레션이 chsop()이다. chsop은 절대경로를 리턴해준다.

'Houdini > SOP' 카테고리의 다른 글

높은 지역에서만 파티클 날리기  (0) 2012.07.04
ramp를 활용한 애니메이션  (0) 2012.05.18
RGB나누기  (0) 2012.05.02
sin과 if를 이용해 사방으로 흩어지게 연출  (0) 2012.05.01
peak 노드 활용  (0) 2012.05.01
Posted by scii
:

참고 수식

Houdini/Houdini etc 2012. 5. 3. 15:10 |
http://www.sidefx.com/docs/houdini11.0/ref/expression_cookbook


자세히 잘 나와있다. 참고하면서 공부하면 좋을 듯.

'Houdini > Houdini etc' 카테고리의 다른 글

12.08.20 MON  (0) 2012.08.23
짝수 공식  (0) 2012.05.16
$F, $FF 의 차이점  (0) 2012.05.04
connectivity, partition, transform, stamps(), chsop(), chs()  (0) 2012.05.02
Houdini Variable  (0) 2012.05.01
Posted by scii
:

후디니는 기본적으로 키 줄 때 alt+마우스클릭으로 편하게 줄 수 있게 셋팅이 되어있다.


하지만 기본셋팅으로 우분투에도 alt+마우스클릭 단축키가 있다. 그러다보니 서로 중복되어서 후디니에서 alt+클릭이 안먹힌다.


이 문제점 해결은 Compiz Config Settings Manager에서 마우스 설정을 변경하여 해결할 수 있다. 

설치가 안되있다면 "sudo apt-get install compizconfig-settings-manager"를 실행하여 설치한다.


컴피즈 설정 마법사에서 window managment의 Move window에서 해제하면 불편하니 alt키를 super키로 변경한다. 리눅스에서 super키는 윈도우키이다.








Posted by scii
:

클래스는 객체의 생성을 목적으로 디자인한다.


좋은 클래스가 되기 위한 최소한의 조건은 무엇일까?


ⓐ 정보은닉

ⓑ 캡슐화


이 두가지는 꼭 생각하며 클래스를 디자인해야 한다.


정보은닉을 하는 이유? 

제한된 방법으로의 접근만 허용을 해서 잘못된 값이 저장되지 않도록 하는데 있다. 또 실수를 했을 때, 실수가 쉽게 발견되도록 하는데 있다.


만약, 멤버변수가 직접적으로 접근이 가능하다면, 그리고 그곳에 음수가 들어가면 안되는 곳이라면.. 직접접근을 했을 때 위험에 노출된다. 

하지만 멤버변수를 private으로 설정하고 함수로만 멤버변수에 접근이 가능하도록 디자인한다면!!! 그 함수만 잘 만들면 잘못된 값의 저장을 막을 수 있다. 

이렇듯, 정보은닉은 꼭 생각하며 클래스를 디자인해야 한다.




코드에 있는 int GetX() const,   bool GetX(int xpos) 함수들을 가리켜 "엑세스 함수(access function)"이라고 한다. 이들은 멤버변수를 private으로 선언하면서 클래스 외부에서의 멤버변수 접근을 목적으로 정의되는 함수들이다.


보통 Get함수이름, Set함수이름을 쓴다. Get은 값을 리턴하는 목적이고, Set값을 대입하는 목적이다.


※ 지금 당장은 필요치 않지만 필요할 수 있다고 판단되는 함수들도 더불어 멤버에 포함시키는 경우도 많다. 대표적인 예가 '엑세스 함수'들이다.


'Programming > C++' 카테고리의 다른 글

생성자(Constructor)  (0) 2012.05.12
캡슐화  (0) 2012.05.12
const 함수  (2) 2012.05.08
Message Passing  (0) 2012.05.02
클래스 기반의 두 가지 객체생성 방법  (0) 2012.05.02
Posted by scii
:

Message Passing

Programming/C++ 2012. 5. 2. 22:30 |

관계를 형성하는 둘 이상의 클래스


하나의 독립된 클래스를 정의하는 것은 쉽다. 그러나 둘 이상의 클래스를 정의하되, 아래처럼 관계를 형성해서 정의하는 것은 쉽지 않다. 

하지만 이는 매우 중요하다. 단순히 함수호출로 이해하면 별 것 아니지만, 메시지 전달의 관점에서 보면 이는 매우 중요하다.


#include <iostream>

using namespace std;


class FruitSeller

{

private:

int numOfApple;

int totalMoney;

int APPLE_PRICE;

public:

void InitMember(int price, int num)

{

numOfApple = num;

APPLE_PRICE = price;

totalMoney = 0;

}

int SellFuit(int money)

{

int n = money/APPLE_PRICE;

numOfApple-=n;

totalMoney += money;

return n;

}

void ShowSeller(void)

{

cout<<"판매자의 남은 사과: "<<numOfApple<<endl;

cout<<"판매자의 현재 돈 : "<<totalMoney<<endl<<endl;

}

int gg;

};


class FruitBuyer

{

private:

int numOfApple;

int totalMoney;

public:

void InitMember(int money)

{

numOfApple = 0;

totalMoney = money;

}

void BuyFuit(FruitSeller &seller, int money) // 메시지 패싱. &를 이용하여 seller에게 접근(call-by-reference).

{

totalMoney -= money;

numOfApple += seller.SellFuit(money); //이 문장은 seller야 나에게 사과 2000원어치 줘라라는 뜻이된다.

}

void ShowBuyer(void)

{

cout<<"구매자의 소유한 사과: "<<numOfApple<<endl;

cout<<"구매자의 현재 돈 : "<<totalMoney<<endl<<endl;

}

};


int main(void)

{

FruitSeller seller;

seller.InitMember(1000, 20);

seller.ShowSeller();


FruitBuyer buyer;

buyer.InitMember(5000);

buyer.ShowBuyer();

buyer.BuyFuit(seller, 2000);  //seller에게 2000을 건내주고 있다.


seller.ShowSeller();

buyer.ShowBuyer();


return 0;

}



'Programming > C++' 카테고리의 다른 글

생성자(Constructor)  (0) 2012.05.12
캡슐화  (0) 2012.05.12
const 함수  (2) 2012.05.08
정보은닉(Information Hiding)  (0) 2012.05.03
클래스 기반의 두 가지 객체생성 방법  (0) 2012.05.02
Posted by scii
:

connectivity 노드


connectivity는 오브젝트별로 나눠준걸 어트리뷰트로 만들어주는 역할을 한다.

 

parition 노드


parition은 connectivity에서 나눈것을 가지고 룰을 정해 직접적으로 그룹을로 만들어주는 역할을 한다.

 


방식은 조금  틀리지만 두개기능을 합친 노드로 assemble 이라는 노드가 있다.

 


stamps() 익스프레션


문자열을 스템프하는 것.

 


chsop() 익스프레션


chsop() 은 절대경로를 리턴한다.


chs() 익스프레션


chs() 문자열을 가져온다.

'Houdini > Houdini etc' 카테고리의 다른 글

12.08.20 MON  (0) 2012.08.23
짝수 공식  (0) 2012.05.16
$F, $FF 의 차이점  (0) 2012.05.04
참고 수식  (0) 2012.05.03
Houdini Variable  (0) 2012.05.01
Posted by scii
:

RGB나누기

Houdini/SOP 2012. 5. 2. 17:31 |







connectivity SOP

connectivity 노드는 오브젝트별로 나누어  attribute를 만든다.

myclass라는 속성을 만들었고 myclass[0]에는 포인트넘버 0~5까지 들어가있다. 그래서 myclass[0]은 박스하나를 말한다.





partition SOP

partition 노드는 connectivity노드로 속성을 만든것을 가지고 사용자가 직접 룰을 정해 그룹으로 만들 수 있게 해준다.




'Houdini > SOP' 카테고리의 다른 글

ramp를 활용한 애니메이션  (0) 2012.05.18
point sop과 foreach sop  (0) 2012.05.03
sin과 if를 이용해 사방으로 흩어지게 연출  (0) 2012.05.01
peak 노드 활용  (0) 2012.05.01
fit()  (0) 2012.05.01
Posted by scii
:

ClassName objName;  // 일반적인 변수의 선언방식으로 객체생성.

ClassName * ptrObj = new ClassName;  // 동적 할당방식(힙 할당방식)으로 객체생성.


'Programming > C++' 카테고리의 다른 글

생성자(Constructor)  (0) 2012.05.12
캡슐화  (0) 2012.05.12
const 함수  (2) 2012.05.08
정보은닉(Information Hiding)  (0) 2012.05.03
Message Passing  (0) 2012.05.02
Posted by scii
: