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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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 */