PyMOL에 주전자 띄우기

2011.04.06 15:36 | Posted by 준호씨

image

세상만사가 다 그러하듯 알고 나면 참 쉽죠잉 -_-; PyMOL안에서 PyOpenGL을 사용하려면 Callback 기능을 이용해서 사용해야 됩니다. 아래의 글을 참고 하세요.

Callback Objects and PyOpenGL
http://pymol.sourceforge.net/newman/user/S0550pyopengl.html

주전자는 glut를 사용하면 쉽게 띄울 수 있기 때문에 아래의 코드를 추가해 줍니다.

from pymol.opengl.glut import *

주전자만 띄우는 풀 소스는 다음과 같습니다.

from pymol.opengl.gl import *
from pymol.opengl.glut import *
from pymol.callback import Callback
from pymol import cmd

class myCallback(Callback):
   def __call__(self):
      glutSolidTeapot(5.0)
   def get_extent(self):
      return [[0.0,0.0,0.0],[1.0,2.0,3.0]]
cmd.load_callback(myCallback(),'gl01')

image

주전자만 띄우면 요렇게 나옵니다.

ps. 실행하려면 py 파일로 저장하고

run 경로\파일명.py

로 실행하면 됩니다.

OpenNI 설치

2011.03.24 22:39 | Posted by 준호씨

네이버 블로그들을 검삭 하며 OpenNI 설치를 따라 했는데도 잘 안되더라 -_-;

이것저것 설치 하다가 Brekel Kinect라는 프로그램을 설치 하면 뜨는 안내대로 OpenNI를 설치 했더니 된다. (안타까운 건 Brekel Kinect는 내 노트북 OpenGL 버전이 1.5 이상이 아니라 동작을 안 한다. -_-; 인텔945 인데 OpenGL 버전업 하는 방법 아시는 분?)

자 어쨌든 Brekel Kinect의 설치 안내를 요약 해 보자면 아래와 같다. (참고로 Win7 64bit 에서 했다.)

1) 키넥트 연결 할 때 어뎁터가 꼭 있어야 한다.

2) OpenNI에서 나온 드라이버 말고 다른 거 깔았으면 지워라. 예를 들어 OpenKinect, libfreenect, CL NUI 등등

3) OpenNI 받아서 설치. stable version v1.0.0.23 으로 깔아라. (전에 안 되었던 것이 unstable이라 그랬을지도)

http://www.openni.org/downloadfiles/openni-binaries/21-stable

4) Kinect driver 설치. SensorKinect-Win32-5.0.0 (이거도 전에는 5.0.0.23 인가 깔았었음 -_-;)

https://github.com/avin2/SensorKinect/tree/master 에서 Download 받고

image

(이 사이트 잘 안 사용해 봐서 그런지 Downloads 버튼 찾기가 힘들었다 -_-;)

bin 폴더에 있는 SensorKinect-Win32-5.0.0.exe 실행

5) NITE 받아서 설치

http://www.openni.org/downloadfiles/openni-compliant-middleware-binaries/34-stable

설치 중 키 입력 : 0KOIk2JeIBYClPWVnMoRKn5cdY4=

6) 장치관리자 가서 잡혔는지 확인

image Xbox NUI Audio 는 원래 저런가 보다.

7) NiSimpleViewer 돌아가는 지 확인

C:\Program Files (x86)\OpenNI\Samples\Bin\Release\NiSimpleViewer.exe

image굿굿 ㅠㅠ 드디어 된다.

8) Brekel Kinect 3D Scanner 돌려 봐라. (OpenGL 버전 때문에 안되다니;; ㅠㅠ)

http://groups.google.com/group/openni-dev 여기서 추가 정보를 얻어라

TAG openni, 설치

PyMOL 함수 만들어 보기

2011.03.23 18:25 | Posted by 준호씨

image

중간에 흰 선이 보이는가? 어렵사리 이까지 왔다 –_-; opengl 함수를 바로 이용 할 수 있는 방법은 없는지 모르겠다.

코드는 대략 이러하다

def mytest():
    print "hello"

    r=1.0
    g=1.0
    b=1.0
    linewidth=2.0
    boundingBox = [
        LINEWIDTH, float(linewidth),
        BEGIN, LINES,
        COLOR, float(r), float(g), float(b),
        VERTEX, 2.0, 2.0, 2.0,
        VERTEX, 4.0, 4.0, 4.0,
        END
    ]
    boxName = "box_" + str(randint(0,10000))
    print boxName
    cmd.load_cgo(boundingBox,boxName)
    return boxName

이거도 http://www.pymolwiki.org/index.php/DrawBoundingBox 참고해서 만든 것이다.

load_cgo 함수 주석을 보면

"load_cgo" is used to load a compiled graphics object, which is actually a list of floating point numbers built using the constants in the $PYMOL_PATH/modules/pymol/cgo.py file.

이렇게 적혀 있다.

아직 갈 길이 멀구나. 잘 아시는 분이나 유용한 정보 가지고 계신분은 좀 가르쳐 주시길…

이전 1 2 3 4 5 6 7 ··· 29 다음