Mercurial > hg > Game > Cerium
annotate Renderer/Test/matrix_test.cc @ 1876:5e17ab506299 draft
change CPU_TYPE SPE_ANY to IO/0 ( cannot running )
author | Masataka Kohagura <e085726@ie.u-ryukyu.ac.jp> |
---|---|
date | Mon, 30 Dec 2013 20:52:21 +0900 |
parents | 4a33b2e340a9 |
children |
rev | line source |
---|---|
1295
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
1 #include <math.h> |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
2 #include <stdlib.h> |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
3 #include "SceneGraphRoot.h" |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
4 #include "matrix_calc.h" |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
5 #include "matrix_test.h" |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
6 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
7 /* |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
8 * ある頂点と、その法線を対象に、それぞれの座標系で光源計算をするテストコード |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
9 * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
10 */ |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
11 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
12 static void |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
13 print_vector4(const float *obj_re_v, const float *light_re_v, |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
14 const float *light_vector, const float *nor_re_v) |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
15 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
16 { |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
17 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
18 printf("obj_v"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
19 for (int i = 0; i < 4; i++) printf(" %f",obj_re_v[i]); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
20 printf("\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
21 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
22 printf("light_v"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
23 for (int i = 0; i < 4; i++) printf(" %f",light_re_v[i]); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
24 printf("\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
25 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
26 printf("light_vector"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
27 for (int i = 0; i < 4; i++) printf(" %f",light_vector[i]); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
28 printf("\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
29 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
30 printf("normal_vector"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
31 for (int i = 0; i < 4; i++) printf(" %f",nor_re_v[i]); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
32 printf("\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
33 printf("\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
34 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
35 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
36 } |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
37 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
38 static void |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
39 reject_translation(float *m_out, const float *m_in) |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
40 { |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
41 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
42 for (int i = 0; i < 16; i++) m_out[i] = m_in[i]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
43 m_out[4*0+3]=m_out[4*1+3]=m_out[4*2+3]=0; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
44 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
45 } |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
46 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
47 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
48 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
49 MainLoopPtr |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
50 matrix_test::init(Viewer *sgroot, int screen_w, int screen_h) |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
51 { |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
52 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
53 CameraPtr ca = sgroot->getCamera(); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
54 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
55 SceneGraphPtr light = sgroot->getLight(0); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
56 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
57 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
58 light->xyz[0] = screen_w/2; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
59 light->xyz[1] = screen_h/2; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
60 light->xyz[2] = 10; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
61 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
62 float light_v[4] = {0,0,0,1}; //ローカル座標 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
63 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
64 sgroot->createFromXMLfile("xml_file/panel_512.xml"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
65 SceneGraphPtr obj = sgroot->createSceneGraph("PANEL_512"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
66 obj->xyz[0] = screen_w/2; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
67 obj->xyz[1] = screen_h/2; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
68 obj->xyz[2] = 100; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
69 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
70 //obj->angle[0] = 0; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
71 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
72 PolygonPack *pp = obj->pp; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
73 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
74 int polygon_size = pp->info.size; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
75 printf("polygon size %d \n",polygon_size); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
76 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
77 VertexPack v = obj->pp->tri[0].ver1; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
78 float obj_v[4]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
79 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
80 obj_v[0] = v.x; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
81 obj_v[1] = v.y; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
82 obj_v[2] = v.z; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
83 obj_v[3] = 1.0f; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
84 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
85 printf("ver x %f\n",v.x); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
86 printf("ver y %f\n",v.y); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
87 printf("ver z %f\n",v.z); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
88 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
89 NormalPack n = obj->pp->tri[0].normal1; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
90 float normal[4]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
91 normal[0] = n.x; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
92 normal[1] = n.y; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
93 normal[2] = n.z; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
94 normal[3] = 0.0f; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
95 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
96 printf("nor x %f\n",n.x); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
97 printf("nor y %f\n",n.y); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
98 printf("nor z %f\n",n.z); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
99 printf("\n\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
100 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
101 float obj_re_v[4]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
102 float light_re_v[4]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
103 float nor_re_v[4]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
104 float light_vector[4]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
105 float normal_matrix[16]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
106 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
107 /* |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
108 * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
109 * --world-- |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
110 * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
111 */ |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
112 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
113 printf("--world--\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
114 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
115 float unit[16]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
116 unitMatrix(unit); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
117 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
118 // wrold matrix * unit matrix |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
119 get_matrix(obj->matrix, obj->angle, obj->xyz, unit); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
120 get_matrix(light->matrix, light->angle, light->xyz, unit); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
121 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
122 // vertex * matrix |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
123 applyMatrix(obj_re_v, obj->matrix, obj_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
124 applyMatrix(light_re_v, light->matrix, light_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
125 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
126 // make normal matrix |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
127 reject_translation(normal_matrix, obj->matrix); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
128 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
129 light_vector[0] = obj_re_v[0] - light_re_v[0]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
130 light_vector[1] = obj_re_v[1] - light_re_v[1]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
131 light_vector[2] = obj_re_v[2] - light_re_v[2]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
132 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
133 applyMatrix(nor_re_v, obj->matrix, normal); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
134 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
135 normalize(light_vector, light_vector); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
136 normalize(nor_re_v, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
137 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
138 float p = innerProduct(light_vector, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
139 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
140 printf("inner Product %f\n", p); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
141 printf("\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
142 printf("\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
143 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
144 print_vector4(obj_re_v, light_re_v, light_vector, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
145 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
146 /* |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
147 * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
148 * --world * view-- |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
149 * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
150 */ |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
151 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
152 printf("--world * view--\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
153 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
154 // world matrix * view matrix |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
155 get_matrix(obj->matrix, obj->angle, obj->xyz, ca->m_view); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
156 get_matrix(light->matrix, light->angle, light->xyz, ca->m_view); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
157 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
158 // vertex * matrix |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
159 applyMatrix(obj_re_v, obj->matrix, obj_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
160 applyMatrix(light_re_v, light->matrix, light_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
161 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
162 // make normal matrix |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
163 reject_translation(normal_matrix, obj->matrix); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
164 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
165 applyMatrix(nor_re_v, obj->matrix, normal); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
166 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
167 light_vector[0] = obj_re_v[0] - light_re_v[0]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
168 light_vector[1] = obj_re_v[1] - light_re_v[1]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
169 light_vector[2] = obj_re_v[2] - light_re_v[2]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
170 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
171 normalize(light_vector, light_vector); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
172 normalize(nor_re_v, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
173 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
174 p = innerProduct(light_vector, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
175 printf("inner Product %f\n", p); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
176 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
177 print_vector4(obj_re_v, light_re_v, light_vector, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
178 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
179 /* |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
180 * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
181 * --world * view * perspective-- |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
182 * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
183 */ |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
184 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
185 printf("--world * view * perspective--\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
186 mulMatrix4x4(obj->matrix, ca->m_pers); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
187 mulMatrix4x4(light->matrix, ca->m_pers); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
188 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
189 applyMatrix(obj_re_v, obj->matrix, obj_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
190 applyMatrix(light_re_v, light->matrix, light_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
191 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
192 // make normal matrix |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
193 reject_translation(normal_matrix, obj->matrix); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
194 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
195 applyMatrix(nor_re_v, obj->matrix, normal); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
196 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
197 obj_re_v[0] /= obj_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
198 obj_re_v[1] /= obj_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
199 obj_re_v[2] /= obj_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
200 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
201 light_re_v[0] /= light_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
202 light_re_v[1] /= light_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
203 light_re_v[2] /= light_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
204 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
205 light_vector[0] = obj_re_v[0] - light_re_v[0]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
206 light_vector[1] = obj_re_v[1] - light_re_v[1]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
207 light_vector[2] = obj_re_v[2] - light_re_v[2]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
208 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
209 normalize(light_vector, light_vector); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
210 normalize(nor_re_v, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
211 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
212 p = innerProduct(light_vector, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
213 printf("inner Product %f\n", p); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
214 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
215 print_vector4(obj_re_v, light_re_v, light_vector, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
216 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
217 /* |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
218 * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
219 * --world * view * perspective * screen-- |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
220 * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
221 */ |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
222 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
223 printf("--world * view * perspective * screen--\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
224 mulMatrix4x4(obj->matrix, ca->m_screen); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
225 mulMatrix4x4(light->matrix, ca->m_screen); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
226 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
227 applyMatrix(obj_re_v, obj->matrix, obj_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
228 applyMatrix(light_re_v, light->matrix, light_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
229 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
230 // make normal matrix |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
231 reject_translation(normal_matrix, obj->matrix); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
232 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
233 applyMatrix(nor_re_v, obj->matrix, normal); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
234 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
235 obj_re_v[0] /= obj_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
236 obj_re_v[1] /= obj_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
237 obj_re_v[2] /= obj_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
238 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
239 light_re_v[0] /= light_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
240 light_re_v[1] /= light_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
241 light_re_v[2] /= light_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
242 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
243 light_vector[0] = obj_re_v[0] - light_re_v[0]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
244 light_vector[1] = obj_re_v[1] - light_re_v[1]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
245 light_vector[2] = obj_re_v[2] - light_re_v[2]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
246 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
247 normalize(light_vector, light_vector); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
248 normalize(nor_re_v, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
249 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
250 p = innerProduct(light_vector, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
251 printf("inner Product %f\n", p); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
252 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
253 print_vector4(obj_re_v, light_re_v, light_vector, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
254 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
255 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
256 /* |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
257 * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
258 * --Cerium-- |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
259 * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
260 */ |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
261 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
262 printf("--Cerium--\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
263 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
264 get_matrix(obj->matrix, obj->angle, obj->xyz, ca->matrix); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
265 get_matrix(light->matrix, light->angle, light->xyz, ca->matrix); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
266 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
267 applyMatrix(obj_re_v, obj->matrix, obj_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
268 applyMatrix(light_re_v, light->matrix, light_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
269 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
270 // make normal matrix |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
271 reject_translation(normal_matrix, obj->matrix); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
272 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
273 applyMatrix(nor_re_v, obj->matrix, normal); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
274 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
275 obj_re_v[0] /= obj_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
276 obj_re_v[1] /= obj_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
277 obj_re_v[2] /= obj_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
278 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
279 light_re_v[0] /= light_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
280 light_re_v[1] /= light_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
281 light_re_v[2] /= light_re_v[3]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
282 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
283 light_vector[0] = obj_re_v[0] - light_re_v[0]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
284 light_vector[1] = obj_re_v[1] - light_re_v[1]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
285 light_vector[2] = obj_re_v[2] - light_re_v[2]; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
286 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
287 normalize(light_vector, light_vector); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
288 normalize(nor_re_v, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
289 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
290 p = innerProduct(light_vector, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
291 printf("inner Product %f\n", p); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
292 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
293 print_vector4(obj_re_v, light_re_v, light_vector, nor_re_v); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
294 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
295 sgroot->setSceneData(obj); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
296 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
297 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
298 return sgroot; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
299 } |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
300 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
301 extern Application * |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
302 application() { |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
303 return new matrix_test(); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
304 } |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
305 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
306 const char *usr_help_str = "Usage: ./test_nogl [OPTION]\n"; |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
307 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
308 extern int init(TaskManager *manager, int argc, char *argv[]); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
309 extern void task_initialize(); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
310 static void TMend(TaskManager *manager); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
311 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
312 int |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
313 TMmain(TaskManager *manager, int argc, char *argv[]) |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
314 { |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
315 task_initialize(); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
316 manager->set_TMend(TMend); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
317 return init(manager, argc, argv); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
318 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
319 } |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
320 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
321 void |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
322 TMend(TaskManager *manager) |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
323 { |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
324 printf("test_nogl end\n"); |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
325 } |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
326 |
5a67df5570e8
add matrix_test file
Yutaka_Kinjyo <yutaka@cr.ie.u-ryukyu.ac.jp>
parents:
diff
changeset
|
327 /* end */ |