- /*draw_mesh(&torus);*/
- draw_bsp(&torus_bsp, vdir[0], vdir[1], vdir[2]);
+ if(use_bsp) {
+ /* calc world-space view direction */
+ mat = g3d_get_matrix(G3D_MODELVIEW, 0);
+ /* transform (0, 0, -1) with transpose(mat3x3) */
+ vdir[0] = -mat[2];
+ vdir[1] = -mat[6];
+ vdir[2] = -mat[10];
+
+ draw_bsp(&torus_bsp, vdir[0], vdir[1], vdir[2]);
+ } else {
+ zsort_mesh(&torus);
+ draw_mesh(&torus);
+ }