Advertisement
Guest User

Untitled

a guest
Jun 19th, 2017
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.80 KB | None | 0 0
  1. ;----------------------------------------------------------------
  2. ;----------------------------------------------------------------
  3. ;----------------------------------------------------------------
  4. cubeNrEdges equ 36
  5. ;cubeNrCullVertices equ cubeNrEdges*2
  6. cubeNrVertices equ 24
  7. cubeNrFaces equ 14 ;14
  8.  
  9. morphopt equ 1
  10.  
  11. ;a equ 54/2
  12. ;b equ 62/2
  13.  
  14. ax equ 24*2
  15. b equ 24*2 ; 48
  16.  
  17. ;-------------[ settings ]------------------
  18. vertexSize equ 4
  19.  
  20. setCubeObject
  21. ; then we set some pointers
  22. move.w #cubeNrVertices,number_of_vertices ; set number of vertices, deprecated
  23. move.w #cubeNrFaces,number_of_faces ; set number of faces, could be deprecated, wins 4 cycles per face
  24. move.w #cubeNrEdges,number_of_edges ; required for cleaning the edge coloring
  25. ; move.w #cubeNrCullVertices,number_of_cullvertices ;
  26.  
  27. move.w #ax,_morphSize
  28. move.w #b,_morphSize_max
  29. move.l #setCubeMorphSize,currentMorphRout
  30.  
  31. move.l #cubeVertices,sourceVerticesPointer ; set source vertices
  32. move.l #cubeEorFaces,currentEorFacesPointer
  33. move.l #cubeFaceNormals,currentFaceNormalsPointer ; set face normals
  34. move.l #cubeEorEdges,currentEorLinesPointer
  35. ; move.l #cubeCullVertices,currentCullVerticesPointer
  36.  
  37. ; this is generic
  38. ; jsr copyCullVerticesToLower
  39. jsr copyCurrentEorEdgesToLower ; copy edges to lower
  40. jsr fixFaceNormals
  41. rts
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49. setCubeMorphSize
  50. move.l explog_logpointer,d6
  51. move.l d6,d7
  52.  
  53. move.w _morphSize,d6
  54. add.w d6,d6
  55. move.w d6,d7
  56. neg.w d7
  57.  
  58. move.l d6,a0
  59. move.w (a0),d0
  60. add.w #pivotexp,d0
  61. move.l d7,a0
  62. move.w (a0),d1
  63. add.w #pivotexp,d1
  64.  
  65. lea currentVertices,a0
  66.  
  67. move.w d0,6*0(a0)
  68. move.w d0,6*1+4(a0)
  69. move.w d0,6*2+2(a0)
  70. move.w d0,6*3+2(a0)
  71. move.w d0,6*4+4(a0)
  72. move.w d1,6*5(a0)
  73. move.w d1,6*6(a0)
  74. move.w d0,6*7+4(a0)
  75. move.w d1,6*8+2(a0)
  76. move.w d1,6*9+2(a0)
  77. move.w d0,6*10+4(a0)
  78. move.w d0,6*11(a0)
  79. move.w d0,6*12(a0)
  80. move.w d0,6*13+2(a0)
  81. move.w d1,6*14+4(a0)
  82. move.w d1,6*15+4(a0)
  83. move.w d0,6*16+2(a0)
  84. move.w d1,6*17(a0)
  85. move.w d1,6*18+4(a0)
  86. move.w d1,6*19(a0)
  87. move.w d1,6*20+2(a0)
  88. move.w d1,6*21+2(a0)
  89. move.w d0,6*22(a0)
  90. move.w d1,6*23+4(a0)
  91.  
  92. rts
  93.  
  94.  
  95.  
  96. cubeEorEdges:
  97. dc.w 0
  98. dc.w pps+0*vertexSize
  99. dc.w pps+1*vertexSize
  100.  
  101. dc.w 0
  102. dc.w pps+1*vertexSize
  103. dc.w pps+2*vertexSize
  104.  
  105. dc.w 0
  106. dc.w pps+2*vertexSize
  107. dc.w pps+0*vertexSize
  108.  
  109. dc.w 0
  110. dc.w pps+3*vertexSize
  111. dc.w pps+4*vertexSize
  112.  
  113. dc.w 0
  114. dc.w pps+4*vertexSize
  115. dc.w pps+5*vertexSize
  116.  
  117. dc.w 0
  118. dc.w pps+5*vertexSize
  119. dc.w pps+3*vertexSize
  120.  
  121. dc.w 0
  122. dc.w pps+6*vertexSize
  123. dc.w pps+7*vertexSize
  124.  
  125. dc.w 0
  126. dc.w pps+7*vertexSize
  127. dc.w pps+8*vertexSize
  128.  
  129. dc.w 0
  130. dc.w pps+8*vertexSize
  131. dc.w pps+6*vertexSize
  132.  
  133. dc.w 0
  134. dc.w pps+9*vertexSize
  135. dc.w pps+10*vertexSize
  136.  
  137. dc.w 0
  138. dc.w pps+10*vertexSize
  139. dc.w pps+11*vertexSize
  140.  
  141. dc.w 0
  142. dc.w pps+11*vertexSize
  143. dc.w pps+9*vertexSize
  144.  
  145. dc.w 0
  146. dc.w pps+12*vertexSize
  147. dc.w pps+13*vertexSize
  148.  
  149. dc.w 0
  150. dc.w pps+13*vertexSize
  151. dc.w pps+14*vertexSize
  152.  
  153. dc.w 0
  154. dc.w pps+14*vertexSize
  155. dc.w pps+12*vertexSize
  156.  
  157. dc.w 0
  158. dc.w pps+15*vertexSize
  159. dc.w pps+16*vertexSize
  160.  
  161. dc.w 0
  162. dc.w pps+16*vertexSize
  163. dc.w pps+17*vertexSize
  164.  
  165. dc.w 0
  166. dc.w pps+17*vertexSize
  167. dc.w pps+15*vertexSize
  168.  
  169. dc.w 0
  170. dc.w pps+18*vertexSize
  171. dc.w pps+19*vertexSize
  172.  
  173. dc.w 0
  174. dc.w pps+19*vertexSize
  175. dc.w pps+20*vertexSize
  176.  
  177. dc.w 0
  178. dc.w pps+20*vertexSize
  179. dc.w pps+18*vertexSize
  180.  
  181. dc.w 0
  182. dc.w pps+21*vertexSize
  183. dc.w pps+22*vertexSize
  184.  
  185. dc.w 0
  186. dc.w pps+22*vertexSize
  187. dc.w pps+23*vertexSize
  188.  
  189. dc.w 0
  190. dc.w pps+23*vertexSize
  191. dc.w pps+21*vertexSize
  192.  
  193. dc.w 0
  194. dc.w pps+11*vertexSize
  195. dc.w pps+6*vertexSize
  196.  
  197. dc.w 0
  198. dc.w pps+8*vertexSize
  199. dc.w pps+3*vertexSize
  200.  
  201. dc.w 0
  202. dc.w pps+5*vertexSize
  203. dc.w pps+0*vertexSize
  204.  
  205. dc.w 0
  206. dc.w pps+2*vertexSize
  207. dc.w pps+9*vertexSize
  208.  
  209. dc.w 0
  210. dc.w pps+20*vertexSize
  211. dc.w pps+16*vertexSize
  212.  
  213. dc.w 0
  214. dc.w pps+15*vertexSize
  215. dc.w pps+4*vertexSize
  216.  
  217. dc.w 0
  218. dc.w pps+7*vertexSize
  219. dc.w pps+18*vertexSize
  220.  
  221. dc.w 0
  222. dc.w pps+13*vertexSize
  223. dc.w pps+21*vertexSize
  224.  
  225. dc.w 0
  226. dc.w pps+23*vertexSize
  227. dc.w pps+10*vertexSize
  228.  
  229. dc.w 0
  230. dc.w pps+1*vertexSize
  231. dc.w pps+14*vertexSize
  232.  
  233. dc.w 0
  234. dc.w pps+22*vertexSize
  235. dc.w pps+19*vertexSize
  236.  
  237. dc.w 0
  238. dc.w pps+12*vertexSize
  239. dc.w pps+17*vertexSize
  240.  
  241. cubeEorFaces: ;
  242. IFNE old
  243. ;0
  244. dc.w -6,eorEdgesLower+0,eorEdgesLower+6,eorEdgesLower+12
  245. ;6
  246. dc.w -6,eorEdgesLower+108,eorEdgesLower+114,eorEdgesLower+120
  247. ;1
  248. dc.w -6,eorEdgesLower+18,eorEdgesLower+24,eorEdgesLower+30
  249. ;7
  250. dc.w -6,eorEdgesLower+126,eorEdgesLower+132,eorEdgesLower+138
  251. ;2
  252. dc.w -6,eorEdgesLower+36,eorEdgesLower+42,eorEdgesLower+48
  253. ;4
  254. dc.w -6,eorEdgesLower+72,eorEdgesLower+78,eorEdgesLower+84
  255. ;3
  256. dc.w -6,eorEdgesLower+54,eorEdgesLower+60,eorEdgesLower+66
  257. ;5
  258. dc.w -6,eorEdgesLower+90,eorEdgesLower+96,eorEdgesLower+102
  259. ;8 ;66,144,48,150,30,156,12,162
  260. dc.w -16,eorEdgesLower+66,eorEdgesLower+144,eorEdgesLower+48,eorEdgesLower+150,eorEdgesLower+30,eorEdgesLower+156,eorEdgesLower+12,eorEdgesLower+162
  261. ;12 ;204,126,186,72,210,96,168,114
  262. dc.w -16,eorEdgesLower+204,eorEdgesLower+126,eorEdgesLower+186,eorEdgesLower+72,eorEdgesLower+210,eorEdgesLower+96,eorEdgesLower+168,eorEdgesLower+114
  263. ;9
  264. dc.w -16,eorEdgesLower+168,eorEdgesLower+90,eorEdgesLower+174,eorEdgesLower+18,eorEdgesLower+150,eorEdgesLower+42,eorEdgesLower+180,eorEdgesLower+120
  265. ;10
  266. dc.w -16,eorEdgesLower+78,eorEdgesLower+186,eorEdgesLower+138,eorEdgesLower+192,eorEdgesLower+54,eorEdgesLower+162,eorEdgesLower+6,eorEdgesLower+198
  267. ;11
  268. dc.w -16,eorEdgesLower+180,eorEdgesLower+36,eorEdgesLower+144,eorEdgesLower+60,eorEdgesLower+192,eorEdgesLower+132,eorEdgesLower+204,eorEdgesLower+108
  269. ;13
  270. dc.w -16,eorEdgesLower+156,eorEdgesLower+24,eorEdgesLower+174,eorEdgesLower+102,eorEdgesLower+210,eorEdgesLower+84,eorEdgesLower+198,eorEdgesLower+0
  271.  
  272. ELSE
  273. ; assumption is that if I use everything with cullVerticesLower, that we can then save stuff in the coloring of stuff
  274. ;0
  275. dc.w -6,cullVerticesLower+0,cullVerticesLower+4,cullVerticesLower+8
  276. ;6
  277. dc.w -6,cullVerticesLower+72,cullVerticesLower+76,cullVerticesLower+80
  278. ;1
  279. dc.w -6,cullVerticesLower+12,cullVerticesLower+16,cullVerticesLower+20
  280. ;7
  281. dc.w -6,cullVerticesLower+84,cullVerticesLower+88,cullVerticesLower+92
  282. ;2
  283. dc.w -6,cullVerticesLower+24,cullVerticesLower+28,cullVerticesLower+32
  284. ;4
  285. dc.w -6,cullVerticesLower+48,cullVerticesLower+52,cullVerticesLower+56
  286. ;3
  287. dc.w -6,cullVerticesLower+36,cullVerticesLower+40,cullVerticesLower+44
  288. ;5
  289. dc.w -6,cullVerticesLower+60,cullVerticesLower+64,cullVerticesLower+68
  290. ;8
  291. dc.w -16,cullVerticesLower+44,cullVerticesLower+96,cullVerticesLower+32,cullVerticesLower+100,cullVerticesLower+20,cullVerticesLower+104,cullVerticesLower+8,cullVerticesLower+108
  292. ;12
  293. dc.w -16,cullVerticesLower+136,cullVerticesLower+84,cullVerticesLower+124,cullVerticesLower+48,cullVerticesLower+140,cullVerticesLower+64,cullVerticesLower+112,cullVerticesLower+76
  294. ;9
  295. dc.w -16,cullVerticesLower+128,cullVerticesLower+132,cullVerticesLower+136,cullVerticesLower+12,cullVerticesLower+100,cullVerticesLower+28,cullVerticesLower+120,cullVerticesLower+80
  296. ;10
  297. dc.w -16,cullVerticesLower+160,cullVerticesLower+164,cullVerticesLower+168,cullVerticesLower+128,cullVerticesLower+36,cullVerticesLower+108,cullVerticesLower+4,cullVerticesLower+132
  298. ;11
  299. dc.w -16,cullVerticesLower+192,cullVerticesLower+196,cullVerticesLower+200,cullVerticesLower+40,cullVerticesLower+128,cullVerticesLower+88,cullVerticesLower+136,cullVerticesLower+72
  300. ;13
  301. dc.w -16,cullVerticesLower+256,cullVerticesLower+260,cullVerticesLower+264,cullVerticesLower+68,cullVerticesLower+140,cullVerticesLower+56,cullVerticesLower+132,cullVerticesLower+0
  302. ENDC
  303.  
  304.  
  305.  
  306.  
  307.  
  308. cubeVertices
  309. dc.w ax,b,b ;0
  310. dc.w b,b,ax ;1
  311. dc.w b,ax,b ;2
  312. dc.w -b,ax,b ;3
  313. dc.w -b,b,ax ;4
  314. dc.w -ax,b,b ;5
  315. dc.w -ax,-b,b ;6
  316. dc.w -b,-b,ax ;7
  317. dc.w -b,-ax,b ;8
  318. dc.w b,-ax,b ;9
  319. dc.w b,-b,ax ;10
  320. dc.w ax,-b,b ;11
  321. dc.w ax,b,-b ;12
  322. dc.w b,ax,-b ;13
  323. dc.w b,b,-ax ;14
  324. dc.w -b,b,-ax ;15
  325. dc.w -b,ax,-b ;16
  326. dc.w -ax,b,-b ;17
  327. dc.w -b,-b,-ax ;18
  328. dc.w -ax,-b,-b ;19
  329. dc.w -b,-ax,-b ;20
  330. dc.w b,-ax,-b ;21
  331. dc.w ax,-b,-b ;22 +,-,-
  332. dc.w b,-b,-ax ;23 +,-,-
  333. ;9 0, 3, 20, 6, 9, 14, 12, 15, 18, 18, 21, 19, 0
  334.  
  335.  
  336. cubeFaceNormals:
  337. ;0
  338. dc.l cubeVertices+0
  339. dc.w 0
  340. dc.w -18918,-18918,-18918
  341. ;6
  342. dc.l cubeVertices+108
  343. dc.w 0
  344. dc.w 18918,18918,18918
  345. ;1
  346. dc.l cubeVertices+18
  347. dc.w 0
  348. dc.w 18918,-18918,-18918
  349. ;7
  350. dc.l cubeVertices+126
  351. dc.w 0
  352. dc.w -18918,18918,18918
  353. ;2
  354. dc.l cubeVertices+36
  355. dc.w 0
  356. dc.w 18918,18918,-18918
  357. ;4
  358. dc.l cubeVertices+72
  359. dc.w 0
  360. dc.w -18918,-18918,18918
  361. ;3
  362. dc.l cubeVertices+54
  363. dc.w 0
  364. dc.w -18918,18918,-18918
  365. ;5
  366. dc.l cubeVertices+90
  367. dc.w 0
  368. dc.w 18918,-18918,18918
  369. ;8
  370. dc.l cubeVertices+54
  371. dc.w 0
  372. dc.w 0,0,-32767
  373. ;12
  374. dc.l cubeVertices+114
  375. dc.w 0
  376. dc.w 0,0,32767
  377. ;9
  378. dc.l cubeVertices+120
  379. dc.w 0
  380. dc.w 32767,0,0
  381. ;10
  382. dc.l cubeVertices+84
  383. dc.w 0
  384. dc.w -32767,0,0
  385. ;11
  386. dc.l cubeVertices+108
  387. dc.w 0
  388. dc.w 0,32767,0
  389. ;13
  390. dc.l cubeVertices+0
  391. dc.w 0
  392. dc.w 0,-32767,0
  393.  
  394. dc.l -1
  395.  
  396.  
  397. ;cubeFaceNormals:
  398. ; 0
  399. dc.w ax,b,b
  400. dc.w -18918,-18918,-18918
  401. ; 6
  402. dc.w -b,-b,-ax
  403. dc.w 18918,18918,18918
  404. ; 1
  405. dc.w -b,ax,b
  406. dc.w 18918,-18918,-18918
  407. ; 7
  408. dc.w b,-ax,-b
  409. dc.w -18918,18918,18918
  410. ; 2
  411. dc.w -ax,-b,b
  412. dc.w 18918,18918,-18918
  413. ; 4
  414. dc.w ax,b,-b
  415. dc.w -18918,-18918,18918
  416. ; 3
  417. dc.w b,-ax,b
  418. dc.w -18918,18918,-18918
  419. ; 5
  420. dc.w -b,b,-ax
  421. dc.w 18918,-18918,18918
  422. ; 8
  423. dc.w b,-ax,b
  424. dc.w 0,0,-32767
  425. ; 12
  426. dc.w -ax,-b,-b
  427. dc.w 0,0,32767
  428. ; 9
  429. dc.w -b,-ax,-b
  430. dc.w 32767,0,0
  431. ; 10
  432. dc.w b,b,-ax
  433. dc.w -32767,0,0
  434. ; 11
  435. dc.w -b,-b,-ax
  436. dc.w 0,32767,0
  437. ; 13
  438. dc.w ax,b,b
  439. dc.w 0,-32767,0
  440. dc.l -1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement