Mercurial > hg > Game > Cerium
comparison TaskManager/Test/test_render/Camera.cpp @ 226:fe6a440c5ff3 draft
fix Makefile
author | gongo@gendarme.cr.ie.u-ryukyu.ac.jp |
---|---|
date | Wed, 11 Feb 2009 11:02:45 +0900 |
parents | 0351818cf0fe |
children | e7faaf516be1 |
comparison
equal
deleted
inserted
replaced
225:81cbc8fc3ade | 226:fe6a440c5ff3 |
---|---|
62 */ | 62 */ |
63 Camera::Camera(float w, float h) | 63 Camera::Camera(float w, float h) |
64 { | 64 { |
65 name = (const char*)"Camera"; | 65 name = (const char*)"Camera"; |
66 | 66 |
67 | |
68 fov = 60.0f; | |
69 near = 0.0f; | |
70 far = 1000.0f; | |
71 | |
67 zd[0] = 0.0f; | 72 zd[0] = 0.0f; |
68 zd[1] = 0.0f; | 73 zd[1] = 0.0f; |
69 zd[2] = 1.0f; | 74 zd[2] = 1.0f; |
70 zd[3] = 1.0f; | 75 zd[3] = 1.0f; |
71 | 76 |
72 yd[0] = 0.0f; | 77 yd[0] = 0.0f; |
73 yd[1] = 1.0f; | 78 yd[1] = 1.0f; |
74 yd[2] = 0.0f; | 79 yd[2] = 0.0f; |
75 yd[3] = 1.0f; | 80 yd[3] = 1.0f; |
76 | 81 |
77 fov = 60.0f; | |
78 near = 0.0f; | |
79 far = 1000.0f; | |
80 | |
81 m_view = new float[16]; | |
82 m_pers = new float[16]; | |
83 m_screen = new float[16]; | |
84 | |
85 // Screen の真ん中を初期値とする | 82 // Screen の真ん中を初期値とする |
86 xyz[0] = w/2.0f; | 83 xyz[0] = w/2.0f; |
87 xyz[1] = h/2.0f; | 84 xyz[1] = h/2.0f; |
88 | 85 |
89 // min(w, h) がちょうど一杯見えるような z の位置の計算 | 86 // min(w, h) がちょうど一杯見えるような z の位置の計算 |
90 xyz[2] = -(((xyz[1] < xyz[0]) ? xyz[1] : xyz[0])/tanf((fov/2.0f)*M_PI/180.0f)); | 87 xyz[2] = -(((xyz[1] < xyz[0]) ? xyz[1] : xyz[0])/tanf((fov/2.0f)*M_PI/180.0f)); |
91 //xyz[2] = -200.0f; | 88 //xyz[2] = -200.0f; |
92 xyz[3] = 1.0f; | 89 xyz[3] = 1.0f; |
90 | |
91 m_view = new float[16]; | |
92 m_pers = new float[16]; | |
93 m_screen = new float[16]; | |
93 | 94 |
94 this->set_move_collision(camera_move, camera_collision); | 95 this->set_move_collision(camera_move, camera_collision); |
95 } | 96 } |
96 | 97 |
97 Camera::~Camera(void) | 98 Camera::~Camera(void) |