소스 검색

globe_tile_layer: Combine transformation matrices

Johannes Hofmann 7 년 전
부모
커밋
d51ed6a905
1개의 변경된 파일7개의 추가작업 그리고 6개의 파일을 삭제
  1. 7
    6
      src/globe_tile_layer.rs

+ 7
- 6
src/globe_tile_layer.rs 파일 보기

@@ -88,7 +88,7 @@ impl GlobeTileLayer {
88 88
             (factor / viewport_size.0 as f32, factor / viewport_size.1 as f32)
89 89
         };
90 90
 
91
-        let screen_mat: Matrix3<f32> = Matrix3::from_cols(
91
+        let scale_mat: Matrix3<f32> = Matrix3::from_cols(
92 92
             vec3(scale_x, 0.0, 0.0),
93 93
             vec3(0.0, scale_y, 0.0),
94 94
             vec3(0.0, 0.0, 1.0),
@@ -118,7 +118,8 @@ impl GlobeTileLayer {
118 118
             )
119 119
         };
120 120
 
121
-        let rot_mat = Transform::<Point3<f32>>::concat(&rot_mat_y, &rot_mat_x);
121
+        let transform = Transform::<Point3<f32>>::concat(&rot_mat_y, &rot_mat_x);
122
+        let transform = Transform::<Point3<f32>>::concat(&scale_mat, &transform);
122 123
 
123 124
         let (inset_x, inset_y) = tile_atlas.texture_margins();
124 125
 
@@ -155,10 +156,10 @@ impl GlobeTileLayer {
155 156
                         let p3 = ll_se.to_sphere_point3(1.0);
156 157
                         let p4 = ll_sw.to_sphere_point3(1.0);
157 158
 
158
-                        let p1 = screen_mat.transform_point(rot_mat.transform_point(p1));
159
-                        let p2 = screen_mat.transform_point(rot_mat.transform_point(p2));
160
-                        let p3 = screen_mat.transform_point(rot_mat.transform_point(p3));
161
-                        let p4 = screen_mat.transform_point(rot_mat.transform_point(p4));
159
+                        let p1 = transform.transform_point(p1);
160
+                        let p2 = transform.transform_point(p2);
161
+                        let p3 = transform.transform_point(p3);
162
+                        let p4 = transform.transform_point(p4);
162 163
 
163 164
                         if p1.z > 0.0 || p2.z > 0.0 || p3.z > 0.0 || p4.z > 0.0 {
164 165
                             continue;