| 1 |
function d3d_draw_cylinder(arg0, arg1, arg2, arg3, arg4, arg5, arg6, arg7, arg8, arg9, arg10) |
| 2 |
{ |
| 3 |
var __x1 = arg0; |
| 4 |
var __y1 = arg1; |
| 5 |
var __z1 = arg2; |
| 6 |
var __x2 = arg3; |
| 7 |
var __y2 = arg4; |
| 8 |
var __z2 = arg5; |
| 9 |
var __tex = arg6; |
| 10 |
var __hrepeat = arg7; |
| 11 |
var __vrepeat = arg8; |
| 12 |
var __closed = arg9; |
| 13 |
var __steps = arg10; |
| 14 |
if (__steps < 3) |
| 15 |
__steps = 3; |
| 16 |
if (__steps > 128) |
| 17 |
__steps = 128; |
| 18 |
var __cc; |
| 19 |
__cc[__steps] = 0; |
| 20 |
var __ss; |
| 21 |
__ss[__steps] = 0; |
| 22 |
for (var __i = 0; __i <= __steps; __i++) |
| 23 |
{ |
| 24 |
var __rad = (__i * 2 * pi) / __steps; |
| 25 |
__cc[__i] = cos(__rad); |
| 26 |
__ss[__i] = sin(__rad); |
| 27 |
} |
| 28 |
var __mx = (__x2 + __x1) / 2; |
| 29 |
var __my = (__y2 + __y1) / 2; |
| 30 |
var __rx = (__x2 - __x1) / 2; |
| 31 |
var __ry = (__y2 - __y1) / 2; |
| 32 |
var __oldrep = gpu_get_texrepeat(); |
| 33 |
gpu_set_texrepeat(true); |
| 34 |
if (__closed == true) |
| 35 |
{ |
| 36 |
d3d_primitive_begin_texture(6, __tex); |
| 37 |
d3d_vertex_normal_texture(__mx, __my, __z2, 0, 0, 1, 0, __vrepeat); |
| 38 |
for (var __i = 0; __i <= __steps; __i++) |
| 39 |
d3d_vertex_normal_texture(__mx + (__cc[__i] * __rx), __my + (__ss[__i] * __ry), __z2, 0, 0, 1, 0, __vrepeat); |
| 40 |
d3d_primitive_end(); |
| 41 |
} |
| 42 |
d3d_primitive_begin_texture(5, __tex); |
| 43 |
for (var __i = 0; __i <= __steps; __i++) |
| 44 |
{ |
| 45 |
d3d_vertex_normal_texture(__mx + (__cc[__i] * __rx), __my + (__ss[__i] * __ry), __z2, __cc[__i], __ss[__i], 0, (__hrepeat * __i) / __steps, __vrepeat); |
| 46 |
d3d_vertex_normal_texture(__mx + (__cc[__i] * __rx), __my + (__ss[__i] * __ry), __z1, __cc[__i], __ss[__i], 0, (__hrepeat * __i) / __steps, 0); |
| 47 |
} |
| 48 |
d3d_primitive_end(); |
| 49 |
if (__closed == true) |
| 50 |
{ |
| 51 |
d3d_primitive_begin_texture(6, __tex); |
| 52 |
d3d_vertex_normal_texture(__mx, __my, __z1, 0, 0, -1, 0, 0); |
| 53 |
for (var __i = __steps; __i >= 0; __i--) |
| 54 |
d3d_vertex_normal_texture(__mx + (__cc[__i] * __rx), __my + (__ss[__i] * __ry), __z1, 0, 0, -1, 0, 0); |
| 55 |
d3d_primitive_end(); |
| 56 |
} |
| 57 |
gpu_set_texrepeat(__oldrep); |
| 58 |
} |