SHARE
TWEET

Untitled

a guest Jun 19th, 2017 50 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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
RAW Paste Data
Top