Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;----------------------------------------------------------------
- ;----------------------------------------------------------------
- ;----------------------------------------------------------------
- cubeNrEdges equ 36
- ;cubeNrCullVertices equ cubeNrEdges*2
- cubeNrVertices equ 24
- cubeNrFaces equ 14 ;14
- morphopt equ 1
- ;a equ 54/2
- ;b equ 62/2
- ax equ 24*2
- b equ 24*2 ; 48
- ;-------------[ settings ]------------------
- vertexSize equ 4
- setCubeObject
- ; then we set some pointers
- move.w #cubeNrVertices,number_of_vertices ; set number of vertices, deprecated
- move.w #cubeNrFaces,number_of_faces ; set number of faces, could be deprecated, wins 4 cycles per face
- move.w #cubeNrEdges,number_of_edges ; required for cleaning the edge coloring
- ; move.w #cubeNrCullVertices,number_of_cullvertices ;
- move.w #ax,_morphSize
- move.w #b,_morphSize_max
- move.l #setCubeMorphSize,currentMorphRout
- move.l #cubeVertices,sourceVerticesPointer ; set source vertices
- move.l #cubeEorFaces,currentEorFacesPointer
- move.l #cubeFaceNormals,currentFaceNormalsPointer ; set face normals
- move.l #cubeEorEdges,currentEorLinesPointer
- ; move.l #cubeCullVertices,currentCullVerticesPointer
- ; this is generic
- ; jsr copyCullVerticesToLower
- jsr copyCurrentEorEdgesToLower ; copy edges to lower
- jsr fixFaceNormals
- rts
- setCubeMorphSize
- move.l explog_logpointer,d6
- move.l d6,d7
- move.w _morphSize,d6
- add.w d6,d6
- move.w d6,d7
- neg.w d7
- move.l d6,a0
- move.w (a0),d0
- add.w #pivotexp,d0
- move.l d7,a0
- move.w (a0),d1
- add.w #pivotexp,d1
- lea currentVertices,a0
- move.w d0,6*0(a0)
- move.w d0,6*1+4(a0)
- move.w d0,6*2+2(a0)
- move.w d0,6*3+2(a0)
- move.w d0,6*4+4(a0)
- move.w d1,6*5(a0)
- move.w d1,6*6(a0)
- move.w d0,6*7+4(a0)
- move.w d1,6*8+2(a0)
- move.w d1,6*9+2(a0)
- move.w d0,6*10+4(a0)
- move.w d0,6*11(a0)
- move.w d0,6*12(a0)
- move.w d0,6*13+2(a0)
- move.w d1,6*14+4(a0)
- move.w d1,6*15+4(a0)
- move.w d0,6*16+2(a0)
- move.w d1,6*17(a0)
- move.w d1,6*18+4(a0)
- move.w d1,6*19(a0)
- move.w d1,6*20+2(a0)
- move.w d1,6*21+2(a0)
- move.w d0,6*22(a0)
- move.w d1,6*23+4(a0)
- rts
- cubeEorEdges:
- dc.w 0
- dc.w pps+0*vertexSize
- dc.w pps+1*vertexSize
- dc.w 0
- dc.w pps+1*vertexSize
- dc.w pps+2*vertexSize
- dc.w 0
- dc.w pps+2*vertexSize
- dc.w pps+0*vertexSize
- dc.w 0
- dc.w pps+3*vertexSize
- dc.w pps+4*vertexSize
- dc.w 0
- dc.w pps+4*vertexSize
- dc.w pps+5*vertexSize
- dc.w 0
- dc.w pps+5*vertexSize
- dc.w pps+3*vertexSize
- dc.w 0
- dc.w pps+6*vertexSize
- dc.w pps+7*vertexSize
- dc.w 0
- dc.w pps+7*vertexSize
- dc.w pps+8*vertexSize
- dc.w 0
- dc.w pps+8*vertexSize
- dc.w pps+6*vertexSize
- dc.w 0
- dc.w pps+9*vertexSize
- dc.w pps+10*vertexSize
- dc.w 0
- dc.w pps+10*vertexSize
- dc.w pps+11*vertexSize
- dc.w 0
- dc.w pps+11*vertexSize
- dc.w pps+9*vertexSize
- dc.w 0
- dc.w pps+12*vertexSize
- dc.w pps+13*vertexSize
- dc.w 0
- dc.w pps+13*vertexSize
- dc.w pps+14*vertexSize
- dc.w 0
- dc.w pps+14*vertexSize
- dc.w pps+12*vertexSize
- dc.w 0
- dc.w pps+15*vertexSize
- dc.w pps+16*vertexSize
- dc.w 0
- dc.w pps+16*vertexSize
- dc.w pps+17*vertexSize
- dc.w 0
- dc.w pps+17*vertexSize
- dc.w pps+15*vertexSize
- dc.w 0
- dc.w pps+18*vertexSize
- dc.w pps+19*vertexSize
- dc.w 0
- dc.w pps+19*vertexSize
- dc.w pps+20*vertexSize
- dc.w 0
- dc.w pps+20*vertexSize
- dc.w pps+18*vertexSize
- dc.w 0
- dc.w pps+21*vertexSize
- dc.w pps+22*vertexSize
- dc.w 0
- dc.w pps+22*vertexSize
- dc.w pps+23*vertexSize
- dc.w 0
- dc.w pps+23*vertexSize
- dc.w pps+21*vertexSize
- dc.w 0
- dc.w pps+11*vertexSize
- dc.w pps+6*vertexSize
- dc.w 0
- dc.w pps+8*vertexSize
- dc.w pps+3*vertexSize
- dc.w 0
- dc.w pps+5*vertexSize
- dc.w pps+0*vertexSize
- dc.w 0
- dc.w pps+2*vertexSize
- dc.w pps+9*vertexSize
- dc.w 0
- dc.w pps+20*vertexSize
- dc.w pps+16*vertexSize
- dc.w 0
- dc.w pps+15*vertexSize
- dc.w pps+4*vertexSize
- dc.w 0
- dc.w pps+7*vertexSize
- dc.w pps+18*vertexSize
- dc.w 0
- dc.w pps+13*vertexSize
- dc.w pps+21*vertexSize
- dc.w 0
- dc.w pps+23*vertexSize
- dc.w pps+10*vertexSize
- dc.w 0
- dc.w pps+1*vertexSize
- dc.w pps+14*vertexSize
- dc.w 0
- dc.w pps+22*vertexSize
- dc.w pps+19*vertexSize
- dc.w 0
- dc.w pps+12*vertexSize
- dc.w pps+17*vertexSize
- cubeEorFaces: ;
- IFNE old
- ;0
- dc.w -6,eorEdgesLower+0,eorEdgesLower+6,eorEdgesLower+12
- ;6
- dc.w -6,eorEdgesLower+108,eorEdgesLower+114,eorEdgesLower+120
- ;1
- dc.w -6,eorEdgesLower+18,eorEdgesLower+24,eorEdgesLower+30
- ;7
- dc.w -6,eorEdgesLower+126,eorEdgesLower+132,eorEdgesLower+138
- ;2
- dc.w -6,eorEdgesLower+36,eorEdgesLower+42,eorEdgesLower+48
- ;4
- dc.w -6,eorEdgesLower+72,eorEdgesLower+78,eorEdgesLower+84
- ;3
- dc.w -6,eorEdgesLower+54,eorEdgesLower+60,eorEdgesLower+66
- ;5
- dc.w -6,eorEdgesLower+90,eorEdgesLower+96,eorEdgesLower+102
- ;8 ;66,144,48,150,30,156,12,162
- dc.w -16,eorEdgesLower+66,eorEdgesLower+144,eorEdgesLower+48,eorEdgesLower+150,eorEdgesLower+30,eorEdgesLower+156,eorEdgesLower+12,eorEdgesLower+162
- ;12 ;204,126,186,72,210,96,168,114
- dc.w -16,eorEdgesLower+204,eorEdgesLower+126,eorEdgesLower+186,eorEdgesLower+72,eorEdgesLower+210,eorEdgesLower+96,eorEdgesLower+168,eorEdgesLower+114
- ;9
- dc.w -16,eorEdgesLower+168,eorEdgesLower+90,eorEdgesLower+174,eorEdgesLower+18,eorEdgesLower+150,eorEdgesLower+42,eorEdgesLower+180,eorEdgesLower+120
- ;10
- dc.w -16,eorEdgesLower+78,eorEdgesLower+186,eorEdgesLower+138,eorEdgesLower+192,eorEdgesLower+54,eorEdgesLower+162,eorEdgesLower+6,eorEdgesLower+198
- ;11
- dc.w -16,eorEdgesLower+180,eorEdgesLower+36,eorEdgesLower+144,eorEdgesLower+60,eorEdgesLower+192,eorEdgesLower+132,eorEdgesLower+204,eorEdgesLower+108
- ;13
- dc.w -16,eorEdgesLower+156,eorEdgesLower+24,eorEdgesLower+174,eorEdgesLower+102,eorEdgesLower+210,eorEdgesLower+84,eorEdgesLower+198,eorEdgesLower+0
- ELSE
- ; assumption is that if I use everything with cullVerticesLower, that we can then save stuff in the coloring of stuff
- ;0
- dc.w -6,cullVerticesLower+0,cullVerticesLower+4,cullVerticesLower+8
- ;6
- dc.w -6,cullVerticesLower+72,cullVerticesLower+76,cullVerticesLower+80
- ;1
- dc.w -6,cullVerticesLower+12,cullVerticesLower+16,cullVerticesLower+20
- ;7
- dc.w -6,cullVerticesLower+84,cullVerticesLower+88,cullVerticesLower+92
- ;2
- dc.w -6,cullVerticesLower+24,cullVerticesLower+28,cullVerticesLower+32
- ;4
- dc.w -6,cullVerticesLower+48,cullVerticesLower+52,cullVerticesLower+56
- ;3
- dc.w -6,cullVerticesLower+36,cullVerticesLower+40,cullVerticesLower+44
- ;5
- dc.w -6,cullVerticesLower+60,cullVerticesLower+64,cullVerticesLower+68
- ;8
- dc.w -16,cullVerticesLower+44,cullVerticesLower+96,cullVerticesLower+32,cullVerticesLower+100,cullVerticesLower+20,cullVerticesLower+104,cullVerticesLower+8,cullVerticesLower+108
- ;12
- dc.w -16,cullVerticesLower+136,cullVerticesLower+84,cullVerticesLower+124,cullVerticesLower+48,cullVerticesLower+140,cullVerticesLower+64,cullVerticesLower+112,cullVerticesLower+76
- ;9
- dc.w -16,cullVerticesLower+128,cullVerticesLower+132,cullVerticesLower+136,cullVerticesLower+12,cullVerticesLower+100,cullVerticesLower+28,cullVerticesLower+120,cullVerticesLower+80
- ;10
- dc.w -16,cullVerticesLower+160,cullVerticesLower+164,cullVerticesLower+168,cullVerticesLower+128,cullVerticesLower+36,cullVerticesLower+108,cullVerticesLower+4,cullVerticesLower+132
- ;11
- dc.w -16,cullVerticesLower+192,cullVerticesLower+196,cullVerticesLower+200,cullVerticesLower+40,cullVerticesLower+128,cullVerticesLower+88,cullVerticesLower+136,cullVerticesLower+72
- ;13
- dc.w -16,cullVerticesLower+256,cullVerticesLower+260,cullVerticesLower+264,cullVerticesLower+68,cullVerticesLower+140,cullVerticesLower+56,cullVerticesLower+132,cullVerticesLower+0
- ENDC
- cubeVertices
- dc.w ax,b,b ;0
- dc.w b,b,ax ;1
- dc.w b,ax,b ;2
- dc.w -b,ax,b ;3
- dc.w -b,b,ax ;4
- dc.w -ax,b,b ;5
- dc.w -ax,-b,b ;6
- dc.w -b,-b,ax ;7
- dc.w -b,-ax,b ;8
- dc.w b,-ax,b ;9
- dc.w b,-b,ax ;10
- dc.w ax,-b,b ;11
- dc.w ax,b,-b ;12
- dc.w b,ax,-b ;13
- dc.w b,b,-ax ;14
- dc.w -b,b,-ax ;15
- dc.w -b,ax,-b ;16
- dc.w -ax,b,-b ;17
- dc.w -b,-b,-ax ;18
- dc.w -ax,-b,-b ;19
- dc.w -b,-ax,-b ;20
- dc.w b,-ax,-b ;21
- dc.w ax,-b,-b ;22 +,-,-
- dc.w b,-b,-ax ;23 +,-,-
- ;9 0, 3, 20, 6, 9, 14, 12, 15, 18, 18, 21, 19, 0
- cubeFaceNormals:
- ;0
- dc.l cubeVertices+0
- dc.w 0
- dc.w -18918,-18918,-18918
- ;6
- dc.l cubeVertices+108
- dc.w 0
- dc.w 18918,18918,18918
- ;1
- dc.l cubeVertices+18
- dc.w 0
- dc.w 18918,-18918,-18918
- ;7
- dc.l cubeVertices+126
- dc.w 0
- dc.w -18918,18918,18918
- ;2
- dc.l cubeVertices+36
- dc.w 0
- dc.w 18918,18918,-18918
- ;4
- dc.l cubeVertices+72
- dc.w 0
- dc.w -18918,-18918,18918
- ;3
- dc.l cubeVertices+54
- dc.w 0
- dc.w -18918,18918,-18918
- ;5
- dc.l cubeVertices+90
- dc.w 0
- dc.w 18918,-18918,18918
- ;8
- dc.l cubeVertices+54
- dc.w 0
- dc.w 0,0,-32767
- ;12
- dc.l cubeVertices+114
- dc.w 0
- dc.w 0,0,32767
- ;9
- dc.l cubeVertices+120
- dc.w 0
- dc.w 32767,0,0
- ;10
- dc.l cubeVertices+84
- dc.w 0
- dc.w -32767,0,0
- ;11
- dc.l cubeVertices+108
- dc.w 0
- dc.w 0,32767,0
- ;13
- dc.l cubeVertices+0
- dc.w 0
- dc.w 0,-32767,0
- dc.l -1
- ;cubeFaceNormals:
- ; 0
- dc.w ax,b,b
- dc.w -18918,-18918,-18918
- ; 6
- dc.w -b,-b,-ax
- dc.w 18918,18918,18918
- ; 1
- dc.w -b,ax,b
- dc.w 18918,-18918,-18918
- ; 7
- dc.w b,-ax,-b
- dc.w -18918,18918,18918
- ; 2
- dc.w -ax,-b,b
- dc.w 18918,18918,-18918
- ; 4
- dc.w ax,b,-b
- dc.w -18918,-18918,18918
- ; 3
- dc.w b,-ax,b
- dc.w -18918,18918,-18918
- ; 5
- dc.w -b,b,-ax
- dc.w 18918,-18918,18918
- ; 8
- dc.w b,-ax,b
- dc.w 0,0,-32767
- ; 12
- dc.w -ax,-b,-b
- dc.w 0,0,32767
- ; 9
- dc.w -b,-ax,-b
- dc.w 32767,0,0
- ; 10
- dc.w b,b,-ax
- dc.w -32767,0,0
- ; 11
- dc.w -b,-b,-ax
- dc.w 0,32767,0
- ; 13
- dc.w ax,b,b
- dc.w 0,-32767,0
- dc.l -1
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement