VERSION 5.00 Object = "{34F681D0-3640-11CF-9294-00AA00B8A733}#1.0#0"; "danim.dll" Begin VB.Form mscubes BorderStyle = 1 'Fixed Single Caption = "Mscubes" ClientHeight = 4080 ClientLeft = 45 ClientTop = 330 ClientWidth = 8505 LinkTopic = "Form1" MaxButton = 0 'False MinButton = 0 'False ScaleHeight = 4080 ScaleWidth = 8505 StartUpPosition = 3 'Windows Default Begin DirectAnimationCtl.DAViewerControlWindowed DAViewerControlWindowed Height = 3855 Left = 120 OleObjectBlob = "mscubes.frx":0000 TabIndex = 0 Top = 120 Width = 8295 End End Attribute VB_Name = "mscubes" Attribute VB_GlobalNameSpace = False Attribute VB_Creatable = False Attribute VB_PredeclaredId = True Attribute VB_Exposed = False ' Visual Basic verion of Mscubes Private Sub Form_Load() Set changingRate = CreateObject("DirectAnimation.DANumber") changingRate.Init DAStatics.Until(DANumber(0.2), LeftButtonDown, _ DAStatics.Until(DANumber(0), LeftButtonDown, changingRate)) ' Set up relative paths for media imports. Does not work in VB ' debug. Create executable. Dim mediaBase, geoBase, imgBase, midiBase As String mediaBase = CurDir + "\..\..\..\..\..\Media\" geoBase = mediaBase + "geometry\" imgBase = mediaBase + "image\" midiBase = mediaBase + "midi\" 'Import the needed geometry & images & sound. Set geo = ImportGeometry(geoBase + "cube.x") Set importSnd = ImportSound(midiBase + "circus.mid") Set backgroundSnd = importSnd.Sound.RepeatForever() Dim IELogos(8) Set IELogos(0) = ImportImage(imgBase + "clogo1.gif") Set IELogos(1) = ImportImage(imgBase + "clogo2.gif") Set IELogos(2) = ImportImage(imgBase + "clogo3.gif") Set IELogos(3) = ImportImage(imgBase + "clogo4.gif") Set IELogos(4) = ImportImage(imgBase + "clogo5.gif") Set IELogos(5) = ImportImage(imgBase + "clogo6.gif") Set IELogos(6) = ImportImage(imgBase + "clogo7.gif") Set IELogos(7) = ImportImage(imgBase + "clogo8.gif") Set IELogos(8) = ImportImage(imgBase + "clogo9.gif") 'Call the Movie(), which cycles through the IELogos images every second. Set imageCube = Movie(IELogos) 'Set lights. Set pLight = PointLight.Transform(Translate3(0, 0, 4)) Set dLight = DirectionalLight.Transform(Rotate3(YVector3, 0.5)) 'Manipulate the geometry. Set geo = geo.Transform(Scale3Uniform(0.5)).Texture(imageCube.MapToUnitSquare()) 'Create the four cubes and set them to rotate. Set srate = Mul(LocalTime, DANumber(9)) Set cube1 = geo.Transform(Compose3(Translate3(0, 0, 2), _ Rotate3Anim(Vector3(0, 1, 0), Mul(DANumber(0.04), srate)))) Set cube2 = geo.Transform(Compose3(Translate3(0, 0, -2), _ Rotate3Anim(Vector3(0, 1, 1), Mul(DANumber(0.03), srate)))) Set cube3 = geo.Transform(Compose3(Translate3(2, 0, 0), _ Rotate3Anim(Vector3(0, 0, 1), Mul(DANumber(0.02), srate)))) Set cube4 = geo.Transform(Compose3(Translate3(-2, 0, 0), _ Rotate3Anim(Vector3(1, 1, 1), Mul(DANumber(0.03), srate)))) 'Do the final prep work on the model. Set finalgeo = UnionGeometry(cube1, UnionGeometry(cube2, UnionGeometry(cube3, cube4))) Set Camera = PerspectiveCamera(5.5, 4.5).Transform(Scale3(45, 45, 1)) 'Make the complete image rotate. Set finalgeo = finalgeo.Transform(Rotate3Anim(YVector3, Integral(changingRate))) Set finalgeo = UnionGeometry(finalgeo, pLight) 'Render and display the image. Set rendered_geo = finalgeo.Render(Camera) DAViewerControlWindowed.UpdateInterval = 0.2 'Set the image. DAViewerControlWindowed.Image = Overlay(rendered_geo, DAStatics.SolidColorImage(White)) 'Set the sound. DAViewerControlWindowed.Sound = backgroundSnd 'Start the animation. DAViewerControlWindowed.Start End Sub Function Movie(IELogos) Set movieArray = DAStatics.DAArray(IELogos) Set Movie = movieArray.NthAnim(DAStatics.Mod(LocalTime, DANumber(9))) End Function