&sgf[ThreeDDemoImpl] Render Modes and Viewports ChangeRenderMode[$Dithered] ChangeRenderMode[$PseudoClr] ChangeRenderMode[$Grey] Reset[] SetDepthBuffer[] NoDepthBuffer[] SetAntiAliased[] SetAliased[] ThreeDMisc.StartLog[context3d] SetViewPort[ [0.0, 0.0, 640.0, 453.0] ] -- defaults ThreeDScenes.SetWindow[ context3d, [-1.0, -.7078125, 2.0, 1.415625] ] SetViewPort[ [120.0, 90.0, 400.0, 300.0] ] -- 400 x 300 for 640 x 480 SetViewPort[ [220.0, 165.0, 200.0, 150.0] ] -- 200 x 150 for 640 x 480 SetViewPort[ [311.0, 228.0, 400.0, 300.0] ] -- 400 x 300 for 1024 x 768 ThreeDScenes.SetView[context3d, [2.0, -10.0, 3.0], [0.0, 0.0, 0.0] ] -- default ThreeDScenes.SetView[context3d, [0.0, 0.2, 0.93], [0.0, 0.0, 0.0] ] -- scene1 closeup ThreeDScenes.SetView[context3d, [4.733, -1.93, -0.6], [0.0, 0.5, 0.0] ] -- scene2 view closeup ThreeDScenes.SetView[context3d, [10.0, -2.0, 1.0], [0.0, 0.0, 0.0] ] -- scene2, glass in front ThreeDScenes.FillViewPort[context3d, [0.1, 0.1, 0.6] ] -- clear viewport to dark blue ThreeDScenes.FillInBackGround[context3d] -- clear viewport to background GetOffScreenCtx[context3d, 2000, 1500] -- get large context to work in GetOnScreenCtx[context3d, 200, 150] -- get additional on-screen context to work in MakeFrame[] ThreeDMisc.MakeHiResFrame[context3d, 1024, 768, "HiResTest.ais" ] ShowShapes[] Scene Storage and Retrieval ThreeDMisc.SaveOnFile[context3d, "Temp.scene"] ThreeDMisc.RestoreFromFile[context3d, "Temp.scene"] ThreeDMisc.MakeFrameFromFile[context3d, "Test1.scene"] Lighting and Background ThreeDMisc.SetBackground[ context3d, "Light Blue" ] context3d.props _ Atom.PutPropOnList[context3d.props, $BackGround, NIL] -- kill background ThreeDMisc.SetAmbientLight[ context3d, "Dark Grey" ] ThreeDScenes.SetLight[context3d, "Initial", [500.0, -200.0, 10.0], [1.0, 1.0, 0.7] ] ThreeDScenes.SetLight[context: context3d, name: "Initial", position: [500.0, -200.0, 10.0], color: [1.0, 1.0, 0.7] ] ColorMap Fiddling -- set color display to 8-bits ThreeDMisc.Show8BitClrMap[context3d] ThreeDMisc.Rotate8BitClrMap[Terminal.Current[], 0, 255, 10] ThreeDMisc.LoadStd8BitMap[Terminal.Current[]] ThreeDMisc.LoadColorRamp[Terminal.Current[], [0.0, 0.0, 0.0], [1.0, 1.0, 1.0], [.43, .43, .43]] ThreeDMisc.AdjustValueRamp[context3d, [.43, .43, .43]] -- apply TRC ThreeDMisc.LoadMultiRamps[Terminal.Current[], LIST[ [.0, .0, .0], [.1, .1, .8], [.8, .4, .2], [.9, .6, .6], [.8, .9, .9], [1.0, 1.0, 1.0] ] ] -- blue, brown, red, blue-white ThreeDMisc.LoadMultiRamps[Terminal.Current[], LIST[ [.0, .0, .0], [.3, .1, .1], [.2, .1, .0], [.3, .2, .2], [.4, .3, .3], [.4, .2, .1], [.6, .4, .2], [.7, .5, .4], [.8, .6, .5], [.5, .8, .6], [.5, .8, .6], [.3, .1, .1], [.2, .1, .0], [.3, .2, .2], [.3, .1, .1], [.2, .1, .0], [.3, .2, .2], [.4, .3, .3], [.4, .2, .1], [.8, .5, .3], [.0, .0, .0], [.4, .2, .1], [.0, .0, .0], [.1, .1, .8], [1.0, 1.0, 1.0], [.8, .5, .3], [.5, .8, .6], [.8, .9, .9], [.3, .1, .1], [.2, .1, .0], [1.0, 1.0, 1.0] ] ] ThreeDMisc.LoadMultiRamps[Terminal.Current[], LIST[ [1.0, .0, .0], [0.0, 1.0, 0.0], [0.0, 0.0, 1.0], [1.0, .0, .0] ] ] -- red, green, blue, red ThreeDScenes.FillViewPort[context3d, [1.0,0.0,1.0] ] Image Enhancement and Scaling ThreeDMisc.AdjustValueRamp[context3d, [.7, .5, .7]] -- gamma curves for each separation ThreeDMisc.AdjustSaturation[context3d, 0.5 ] -- makes more saturated (0 -1) SetViewPort[ [0.0, 0.0, 640.0, 453.0] ] GetOnScreenCtx[context3d, 228, 171] SetViewPort[ [230.0, 150.0, 400.0, 300.0] ] AISAnimation.GetAIS[context3d, "///Users/Crow.pa/AIS/SphereWithIACRAdj.ais" ] AISAnimation.GetAIS[onScreenCtx, "///Users/Crow.pa/AIS/SphereWithIACRAdj.ais" ] ThreeDMisc.ScaleDownImage[onScreenCtx, context3d] ThreeDMisc.ScaleDownImage[context3d, offScreenCtx] AISAnimation.PutAIS[context3d, "///Users/Crow.pa/AIS/ViolinScene.ais" ] Text ThreeDMisc.SetNamedColor[context3d, "vivid green"] ThreeDMisc.ShowRope[context3d, 60.0, 160.0, "Look at the pretty picture!!.", "Xerox/Pressfonts/TimesRoman-MRR", 20.0] Reset[] ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "YourShape", fileName: "/User/You/Shapes/YourShape.shape", position: [0.0, 0.0, 0.0], type: $ConvexPolygon] ThreeDMisc.SetFacetedColor[ context3d, "YourShape", [.4, .8, .4] ] -- pea green MakeFrame[] Reset[] ThreeDMisc.AddShapeAt[ context3d, "Tree", "Tree.shape", [0.0, 0.0, 0.0]] ThreeDMisc.SetSmoothColor[ context3d, "Tree", [.8, .8, .0] ] ThreeDMisc.GetNormals[ context3d, "Tree", "Tree.normals" ] MakeFrame[] TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "Tree" ], TextureMaps.TextureFromAIS[context3d, "Texture.ais", NIL] ] ThreeDMisc.GetTextureCoords[ context3d, "Tree", "Tree.texture" ] MakeFrame[] AIS Files: Writing and Reading AISAnimation.GetAIS[context: context3d, fileRoot: "Temp.ais", xOffset: 20, yOffset: 100, center: FALSE ] AISAnimation.PutAIS[context3d, "Temp.ais" ] AISAnimation.GetAIS[context3d, "Temp.ais" ] For Comparisons SetViewPort[ [0.0, 0.0, 320.0, 453.0] ] -- for 640 x 480 AISAnimation.GetAIS[context3d, "ZebraBurlTeaPot.ais" ] SetViewPort[ [320.0, 0.0, 320.0, 453.0] ] AISAnimation.GetAIS[context3d, "ZebraBurlTeaPotHiRes.ais" ] SetViewPort[ [0.0, 0.0, 640.0, 453.0] ] Gallery - Interesting images 24-bit AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/Eggs.ais" ] AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/Glasses.ais" ] AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/TwistedEgg.ais" ] AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/WurlitzerEgg.ais" ] AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/ComparisonEggs.ais" ] AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/Spoon.ais" ] AISAnimation.GetAIS[context3d, "/Pixel/Crow/PlasticWare.ais" ] AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/ZebraBurlTeaPot.ais" ] AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/TestScene2.ais" ] AISAnimation.GetAIS[context3d, "/Pixel/Lamming/breakfast.ais" ] AISAnimation.GetAIS[context3d, "breakfast.ais" ] AISAnimation.GetAIS[context3d, "violin.ais" ] Gallery - Interesting images 8-bit AISAnimation.GetAIS[context3d, "/cyan/AIS/Crow/MarbleTeaPot.ais" ] ThreeDMisc.SetUpTerrainColors[Terminal.Current[]] AISAnimation.GetAIS[context3d, "/Cyan/AIS/Crow/LakeScene-HiRes.ais" ] AISAnimation.GetAIS[context3d, "/Pixel/Crow/LakeScene-BigRocks.ais" ] AISAnimation.GetAIS[context3d, "Temp.ais" ] Animations -- set color display to 8-bits Reset[] SetUpMovie[ fileRoot: "/Cyan/AIS/Animation/LakeSceneTest.ais", viewPort: [196.0, 144.0, 256.0, 192.0], numFiles: 64, start: 0]; ThreeDMisc.SetUpTerrainColors[Terminal.Current[]] Reset[] SetUpMovie[ fileRoot: "Cyan/AIS/Animation/StillLife.ais", viewPort: [120.0, 90.0, 400.0, 300.0], numFiles: 30, start: 1] ChangeRenderMode[$PseudoClr] SetViewPort[ [311.0, 228.0, 400.0, 300.0] ] -- for 1024 x 768 Reset[] ThreeDMisc.AddShapeAt[ context3d, "Sphere", "Sphere.bezier", [0.0, 0.0, 0.0], $Bezier] ThreeDMisc.AddShapeAt[ context3d, "Sphere2", "Sphere.bezier", [0.3, 0.0, 0.0], $Bezier] ThreeDMisc.SetSmoothColor[ context3d, "Sphere", [.3, 1.0, .3] ] ThreeDMisc.SetSmoothColor[ context3d, "Sphere2", [1.0, .3, .3] ] context3d.shapes _ ThreeDScenes.AddShape[ context3d.shapes, CopyShape[ "PolySphere", "Sphere"] ] ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "PolySphere" ], NIL, 16.0 ] DeleteShape[ "Sphere" ] AddShape[ "PolySphere" ] CleanUp[ name: "PolySphere", deSeam: TRUE, tolerance: 0.00001 ] ThreeDSurfaces.GetVtxNormals[ ThreeDScenes.FindShape[context3d.shapes, "PolySphere"] ] WriteOutShape["PolySphere"] ExpungeShape["PolySphere"] ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "DoughNut", fileName: "DoughNut.bezier", position: [0.0, 0.0, 0.0], type: $Bezier] ThreeDMisc.SetSmoothColor[ context3d, "DoughNut", [.5, .5, .8] ] ThreeDScenes.OrientShape[ ThreeDScenes.FindShape[ context3d.shapes, "DoughNut" ], [0.0, -1.0, 0.0] ] ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "DoughNut" ], NIL, 5.0 ] ThreeDSurfaces.ShapeSubdivide[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "DoughNut" ], NIL, 0.0 ] ThreeDMisc.AddShapeAt[ context3d, "TeaPot", "TeaPot.bezier", [0.0, 0.0, 0.0], $Bezier] ThreeDScenes.OrientShape[ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], [0.0, -1.0, 0.0]] ThreeDMisc.AddShapeAt[ context3d, "TeaPotBot", "TeaPotBot.bezier", position: [0.0, 0.0, 0.0], type: $Bezier] ThreeDScenes.AddShape[ context3d.shapes, ShapeTwiddle.Combine[ context3d, "TeaPotWithBot", "TeaPot", "TeaPotBot"] ] ShapeTwiddle.Bounds[context3d, "TeaPotWithBot" ] ThreeDScenes.PlaceShape[ThreeDScenes.FindShape[ context3d.shapes, "TeaPotWithBot"], [0.0, 0.0, 0.15 ] ] ShapeTwiddle.WriteOutShape[context3d, "TeaPotWithBot", "bezier"] context3d.shapes _ ThreeDScenes.AddShape[ context3d.shapes, ShapeTwiddle.DeletePatches[context3d, "TeaPotLid", "TeaPot", LIST[ [0, 19], [28, 31] ] ] ] ShapeTwiddle.ScaleShape[ context3d, "TeaPotLid", 1.0, 1.07, 1.07, .9 ] ShapeTwiddle.CleanUp[ context3d, "TeaPotLid" ] ShapeTwiddle.WriteOutShape[context3d, "TeaPotLid", "bezier"] context3d.shapes _ ThreeDScenes.AddShape[ context3d.shapes, ShapeTwiddle.DeletePatches[context3d, "TeaPotNoLid", "TeaPot", LIST[ [20, 27] ] ] ] ShapeTwiddle.CleanUp[ context3d, "TeaPotNoLid" ] ShapeTwiddle.WriteOutShape[context3d, "TeaPotNoLid", "bezier"] context3d.shapes _ ThreeDScenes.AddShape[ context3d.shapes, ShapeTwiddle.DeletePatches[context3d, "SugarBowl", "TeaPot", LIST[ [8, 27] ] ] ] ShapeTwiddle.CleanUp[ context: context3d, name: "SugarBowl", deSeam: TRUE, tolerance: 0.00001 ] ShapeTwiddle.WriteOutShape[context3d, "SugarBowl", "bezier"] ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "TeaPot", fileName: "TeaPotWithBot.bezier", position: [0.0, 0.0, -1.25], type: $Bezier] ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "TeaPot", fileName: "TeaPotNoLid.bezier", position: [0.0, 0.0, -1.25], type: $Bezier] ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "Lid", fileName: "TeaPotLid.bezier", position: [0.0, 0.0, -1.025], type: $Bezier] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Lid"], [0.0, 0.0, 0.0], [0.0, 0.0, 1.0], 15.0 ] ThreeDMisc.SetSmoothColor[ context3d, "TeaPot", [0.8, 0.8, 0.8] ] ThreeDScenes.SetView[context3d, [-0.5, -10.0, 3.0], [0.0, 0.0, 0.0] ] -- hides joins ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "TeaPotBot", fileName: "TeaPotBot.bezier", position: [0.0, 0.0, -1.25], type: $Bezier] ThreeDMisc.SetSmoothColor[ context3d, "TeaPotBot", [.5, .5, .8] ] ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "TeaPotBot" ], NIL, 5.0 ] ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], NIL, 5.0 ] ThreeDSurfaces.ShapeSubdivide[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], NIL, 0.0 ] ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], NIL, 16.0 ] ShapeTwiddle.CleanUp[ context3d, "TeaPot", TRUE, .0025 ] ThreeDMisc.SetSmoothColor[ context3d, "TeaPot", [0.8, 0.8, 0.8] ] TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], TextureMaps.TextureFromAIS[context3d, "Page.ais", $Color] ] TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], [0.0, 0.0], [0.0, 2.0], [6.0, 2.0], [6.0, 0.0] ] TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ] ] ThreeDMisc.SetShininess[ context3d, "TeaPot", 60.0 ] MakeFrame[] -- this will take a while AISAnimation.PutAIS[context3d, "PagedTeaPot3.ais" ] ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "TeaPot" ], NIL, 16.0 ] ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "Lid" ], NIL, 16.0 ] ShapeTwiddle.CleanUp[ context3d, "TeaPot", TRUE, .0025 ] ShapeTwiddle.CleanUp[ context3d, "Lid", TRUE, .0025 ] ThreeDMisc.SetSmoothColor[ context3d, "TeaPot", [1.0, 1.0, 1.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Lid", [1.0, 1.0, 1.0] ] context3d.props _ Atom.PutPropOnList[context3d.props, $BackGround, NIL] -- kill background ThreeDMisc.GetShadingProcs[context3d, "TeaPot", ShadingProcs.GetLerpedVals, ShadingProcs.ZebraBurl ] -- for marble teapot ThreeDMisc.GetShadingProcs[context3d, "Lid", ShadingProcs.GetLerpedVals, ShadingProcs.ZebraBurl ] -- for marble teapot ThreeDMisc.SetShininess[ context3d, "TeaPot", 50.0 ] ThreeDMisc.SetShininess[ context3d, "Lid", 50.0 ] ThreeDScenes.SetLight[context3d, "Initial", [-200.0, -200.0, 400.0], [1.0, 1.0, 1.0] ] ThreeDMisc.StartLog[context3d] context3d.lineDrawing _ FALSE MakeFrame[] AISAnimation.PutAIS[context3d, "ZebraBurlTeaPot.ais" ] ThreeDMisc.MakeHiResFrame[context3d, 1024, 768, "ZebraBurlTeaPotHiRes.ais" ] AISAnimation.GetAIS[context3d, "StillLife2.ais" ] ThreeDMisc.AdjustValueRamp[context3d, [.7, .5, .7]] ThreeDMisc.AdjustSaturation[context3d, 0.5 ] AISAnimation.PutAIS[context3d, "StillLife2Prep.ais" ] ColorAISToInterpress StillLife2Prep InterpressToPD StillLife2Prep.interpress Color400 1.25 scale PeachPrint MtFuji StillLife2Prep.pd ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "Jug", fileName: "Jug.bezier", position: [0.0, 0.0, -1.25], type: $Bezier] ThreeDMisc.SetSmoothColor[ context3d, "Jug", [.5, .5, .8] ] ThreeDScenes.OrientShape[ThreeDScenes.FindShape[ context3d.shapes, "Jug" ], [0.0, -1.0, 0.0]] ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "Saucer", fileName: "Saucer.bezier", position: [0.0, 0.0, -1.25], type: $Bezier] ThreeDMisc.SetSmoothColor[ context3d, "Saucer", [.5, .5, .8] ] ThreeDScenes.OrientShape[ThreeDScenes.FindShape[ context3d.shapes, "Saucer" ], [0.0, -1.0, 0.0]] ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "Teacup", fileName: "Teacup.bezier", position: [0.0, 0.0, -1.25], type: $Bezier] ThreeDMisc.SetSmoothColor[ context3d, "Teacup", [.5, .5, .8] ] ThreeDScenes.OrientShape[ThreeDScenes.FindShape[ context3d.shapes, "Teacup" ], [0.0, -1.0, 0.0]] ThreeDMisc.AddShapeAt[ context: context3d, shapeName: "Teaspoon", fileName: "Teaspoon.bezier", position: [0.0, 0.0, 0.0], type: $Bezier] ThreeDMisc.SetSmoothColor[ context3d, "Teaspoon", [.5, .5, .8] ] ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "Teaspoon" ], NIL, 12.0 ] ThreeDMisc.SetFacetedColor[ context3d, "Teaspoon", [.5, .5, .8] ] ThreeDScenes.SetView[context3d, [1.47, 2.6, 1.933], [ 0.1, -0.5, 0.0] ] -- view over big end Reset[] ChangeRenderMode[$Grey] SetViewPort[ [220.0, 140.0, 200.0, 200.0] ] ThreeDMisc.MakeStripes[context: context3d, numStripes: 12, min: 0.2, max: 0.8, power: 1.0] AISAnimation.PutAIS[context3d, "Texture.ais" ] ThreeDMisc.MakeStretchedSpots[context: context3d, spotsAcross: 16, min: 0.0, max: 1.0, power: 1.0, stretched: FALSE] AISAnimation.PutAIS[context3d, "Texture.ais" ] Texture Mapped Sphere -- set color display to 24-bits Reset[] ThreeDMisc.AddShapeAt[ context3d, "Sphere", "PolySphere.shape"] ThreeDMisc.SetSmoothColor[ context3d, "Sphere", [0.9, 0.9, 0.9] ] SetAntiAliased[] -- same as pushing the "NoJaggy" button TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "Sphere" ], TextureMaps.TextureFromAIS[context3d, "IACR.ais", $Color] ] TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "Sphere" ], [0.0, 0.0], [0.0, 0.6], [1.0, 0.6], [1.0, 0.0], -150.0, -30.0, -35.0, 90.0 ] TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "Sphere" ] ] ThreeDScenes.SetView[context3d, [0.0, -4.0, 2.0], [0.0, 0.0, 0.0] ] MakeFrame[] -- this will take a while AISAnimation.PutAIS[context3d, "SphereWithIACR.ais" ] SetViewPort[ [220.0, 165.0, 200.0, 150.0] ] -- missing triangle case ThreeDScenes.SetWindow[ context3d, [-.3, 0.5, 0.6, 0.375] ] TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "Sphere" ], [0.0, 0.0], [0.0, 3.0], [6.0, 3.0], [6.0, 0.0] ] MakeFrame[] -- this will take a while AISAnimation.PutAIS[context3d, "SphereWithPages.ais" ] Textured SugarBowl -- set color display to 24-bits Reset[] ThreeDMisc.AddShapeAt[ context3d, "SugarBowl", "SugarBowl.bezier", [0.0, 0.0, 0.0], $Bezier] ThreeDMisc.AddShapeAt[ context3d, "Lid", "TeaPotLid.bezier", [0.0, 0.0, 0.0], $Bezier] ThreeDMisc.AddShapeAt[ context3d, "Spoon", "TeaSpoon.bezier", [0.0, 0.0, 0.0], $Bezier] ThreeDScenes.PlaceShape[ThreeDScenes.FindShape[ context3d.shapes, "Spoon" ], [-1.0, 0.9, 2.5]] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Spoon" ], [-1.0, 0.0, 2.5], [-1.5, 0.0, 2.5], -10] ThreeDScenes.PlaceShape[ThreeDScenes.FindShape[ context3d.shapes, "Lid" ], [0.1, 0.0, 0.0]] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Lid" ], [0.0, 0.0, 2.5], [0.0, 1.0, 2.5], 20] context3d.ptOfInterest _ [0.0, 0.0, 1.4] context3d.eyePoint _ [-8.133, 1.733, 4.8] ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "Spoon" ], NIL, 10.0 ] ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "Lid" ], NIL, 10.0 ] ThreeDSurfaces.ShapeExpand[ context3d, ThreeDScenes.FindShape[ context3d.shapes, "SugarBowl" ], NIL, 10.0 ] ThreeDMisc.GetShadingProcs[context3d, "Lid", ShadingProcs.GetLerpedVals, ShadingProcs.AddColoredMarble ] ThreeDMisc.GetShadingProcs[context3d, "SugarBowl", ShadingProcs.GetLerpedVals, ShadingProcs.AddColoredMarble ] MakeFrame[] -- this will take a while AISAnimation.PutAIS[context3d, "BowlAndSpoon.ais" ] Texture Mapped Glasses -- set color display to 24-bits Reset[] SetAntiAliased[] -- same as pushing the "NoJaggy" button ThreeDMisc.AddShapeAt[ context3d, "ChampagneGlass", "ChampagneGlass.shape", [-2.0, .0, .0], $ConvexPolygon, TRUE ] -- TRUE means inside is visible TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", NIL] ] ThreeDMisc.SetSmoothColor[ context3d, "ChampagneGlass", [0.0, 1.0, 0.2] ] TextureMaps.MakeTxtrCoordsFromVtxNos[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ], 19, 20, [0.0, 0.0], [1.0, 3.0], [3.0, 3.0], [2.0, 0.0] ] ThreeDScenes.SetLight[context3d, "Initial", [100.0, 0.0, 100.0], [1.0, 1.0, 0.7] ] TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ] ] ThreeDMisc.AddShapeAt[ context3d, "ChampagneGlass2", "ChampagneGlass.shape", [2.0, .0, .0], $ConvexPolygon, TRUE ] TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass2" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", $Bump] ] ThreeDMisc.SetSmoothColor[ context3d, "ChampagneGlass2", [0.0, 0.2, 1.0] ] ThreeDMisc.SetShininess[ context3d, "ChampagneGlass2", 50.0 ] TextureMaps.MakeTxtrCoordsFromVtxNos[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass2" ], 19, 20, [0.0, 0.0], [1.0, 3.0], [3.0, 3.0], [2.0, 0.0] ] TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass2" ] ] ThreeDScenes.SetView[context3d, [0.0, -12.0, 3.0], [0.0, 0.0, 0.0] ] MakeFrame[] -- this will take a while Reset[] SetAntiAliased[] ThreeDMisc.AddShapeAt[ context3d, "Egg", "UtahEgg.shape", [0.0, 0.0, 0.0]] ThreeDMisc.SetSmoothColor[ context3d, "Egg", [0.8, 0.8, 0.8] ] ThreeDMisc.SetShininess[ context3d, "Egg", 100.0 ] ThreeDScenes.SetView[context3d, [0.0, -6.0, 0.0], [0.0, 0.0, 0.0] ] SetViewPort[ [25.0, 140.0, 150.0, 200.0] ] ThreeDMisc.ShadingProcName[context3d, "Egg", "TwistedStripes" ] MakeFrame[] AISAnimation.PutAIS[context3d, "TwistedEgg.ais" ] ThreeDMisc.SetSmoothColor[ context3d, "Egg", [1.0, 1.0, 1.0] ] ThreeDScenes.SetView[context: context3d, eyePoint: [6.0, -6.0, 3.0], ptOfInterest: [0.0, 0.0, 0.0], rollAngle: 90.0 ] ThreeDMisc.GetShadingProcs[context3d, "Egg", ShadingProcs.GetLerpedVals, ShadingProcs.Wurlitzer ] MakeFrame[] AISAnimation.PutAIS[context3d, "WurlitzerEgg.ais" ] ThreeDScenes.SetView[context: context3d, eyePoint: [4.0, -4.0, 2.0], ptOfInterest: [0.0, 0.0, 0.0] ] SetViewPort[ [25.0, 140.0, 150.0, 200.0] ] ThreeDMisc.GetShadingProcs[context3d, "Egg", ShadingProcs.GetLerpedVals, ShadingProcs.AddSwirl ] MakeFrame[] AISAnimation.PutAIS[context3d, "SwirlEgg.ais" ] SetViewPort[ [175.0, 140.0, 150.0, 200.0] ] ThreeDMisc.GetShadingProcs[context3d, "Egg", ShadingProcs.GetLerpedVals, ShadingProcs.AddSegue ] MakeFrame[] AISAnimation.PutAIS[context3d, "SegueEgg.ais" ] SetViewPort[ [325.0, 140.0, 150.0, 200.0] ] ThreeDMisc.GetShadingProcs[context3d, "Egg", ShadingProcs.GetLerpedVals, ShadingProcs.AddCrack ] MakeFrame[] AISAnimation.PutAIS[context3d, "CrackEgg.ais" ] SetViewPort[ [475.0, 140.0, 150.0, 200.0] ] ThreeDMisc.ShadingProcName[context3d, "Egg", "Marble" ] MakeFrame[] AISAnimation.PutAIS[context3d, "MarbleEgg.ais" ] SetViewPort[ [475.0, 140.0, 150.0, 200.0] ] ThreeDMisc.ShadingProcName[context3d, "Egg", "BurlWood" ] MakeFrame[] AISAnimation.PutAIS[context3d, "BurlWoodEgg.ais" ] SetViewPort[ [175.0, 140.0, 150.0, 200.0] ] ThreeDMisc.ShadingProcName[context3d, "Egg", "ZebraBurl" ] MakeFrame[] AISAnimation.PutAIS[context3d, "ZebraBurlEgg.ais" ] Texture Mapped Eggs Reset[] ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [0.0, .0, .0] ] TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], TextureMaps.TextureFromAIS[context3d, "/User/Crow/AIS/CheckerBoard.ais", NIL] ] ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [1.0, 0.8, 0.5] ] TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ] ThreeDScenes.SetLight[context3d, "Initial", [100.0, 0.0, 100.0], [1.0, 1.0, 0.7] ] ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].orientation _ [-.2, -.2, 1.0] ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].rotation _ -20.0 MakeFrame[] TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ] ] MakeFrame[] ThreeDMisc.StartLog[context3d] Reset[] ThreeDScenes.SetView[context3d, [0.0, -4.0, 0.0], [0.0, 0.0, 0.0] ] ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [0.0, .0, .0] ] ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [0.8, 0.8, 0.5] ] SetViewPort[ [0.0, 225.0, 160.0, 225.0] ] MakeFrame[] SetAntiAliased[] SetViewPort[ [160.0, 225.0, 160.0, 225.0] ] MakeFrame[] ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ] SetViewPort[ [320.0, 225.0, 160.0, 225.0] ] MakeFrame[] Reset[] ThreeDScenes.SetView[context3d, [0.0, -4.0, 0.0], [0.0, 0.0, 0.0] ] ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [0.0, .0, .0], $ConvexPolygon, TRUE ] ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [0.8, 0.8, 0.5] ] ThreeDMisc.SetTransmittance[context3d, "UtahEgg", .8 ] ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ] SetViewPort[ [480.0, 225.0, 160.0, 225.0] ] MakeFrame[] Reset[] ThreeDScenes.SetView[context3d, [0.0, -4.0, 0.0], [0.0, 0.0, 0.0] ] ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [0.0, .0, .0] ] ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [0.8, 0.8, 0.5] ] ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ] TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", $Intensity] ] TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ] ] TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ] SetViewPort[ [0.0, 3.0, 160.0, 225.0] ] MakeFrame[] TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", $Bump] ] TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ] ] SetViewPort[ [160.0, 3.0, 160.0, 225.0] ] MakeFrame[] Reset[] ThreeDScenes.SetView[context3d, [0.0, -4.0, 0.0], [0.0, 0.0, 0.0] ] ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [0.0, .0, .0] ] ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [0.8, 0.8, 0.5] ] ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ] ThreeDMisc.ShadingProcName[context3d, "UtahEgg", "TwistedStripes" ] SetViewPort[ [320.0, 0.0, 160.0, 225.0] ] MakeFrame[] ThreeDMisc.ShadingProcName[context3d, "UtahEgg", "BurlWood" ] SetViewPort[ [480.0, 0.0, 160.0, 225.0] ] MakeFrame[] SetViewPort[ [0.0, 0.0, 640.0, 450.0] ] AISAnimation.PutAIS[ context3d, "ComparisonEggs.ais"] ThreeDMisc.SetNamedColor[context3d, "vivid yellow"] ThreeDMisc.ShowRope[context3d, 50.0, 230.0, "3 sec."] ThreeDMisc.ShowRope[context3d, 210.0, 230.0, "70 sec."] ThreeDMisc.ShowRope[context3d, 370.0, 230.0, "95 sec."] ThreeDMisc.ShowRope[context3d, 530.0, 230.0, "190 sec."] ThreeDMisc.ShowRope[context3d, 50.0, 8.0, "150 sec."] ThreeDMisc.ShowRope[context3d, 210.0, 8.0, "300 sec."] ThreeDMisc.ShowRope[context3d, 370.0, 8.0, "160 sec."] ThreeDMisc.ShowRope[context3d, 530.0, 8.0, "540 sec."] Reset[] SetAntiAliased[] ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ] ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard", [1.0, 1.0, 0.0] ] ThreeDMisc.SetAmbientLight[ context3d, [.7, .7, .7] ] ThreeDScenes.SetLight[ context3d, "Initial", [0.0, 0.0, 100.0], [1.0, 1.0, 1.0] ] ThreeDScenes.SetView[ context3d, [10, -30.0, 100.0], [0.0,-20.0, 0.0] ] MakeFrame[] ThreeDScenes.SetView[ context3d, [10, -30.0, 500.0], [0.0,-50.0, 0.0] ] ShowShapes[] ThreeDScenes.SetView[ context3d, [10, -30.0, 1000.0], [0.0, 100.0, 0.0] ] ShowShapes[] ThreeDScenes.SetView[ context3d, [10, -30.0, 1400.0], [0.0, 200.0, 0.0] ] ShowShapes[] ThreeDScenes.SetView[ context3d, [10, -30.0, 3000.0], [0.0, 500.0, 0.0] ] ShowShapes[] ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ] ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard", [.8, .4, .2] ] ThreeDMisc.AddShapeAt[ context3d, "Icosahedron", "Icosahedron.shape", [2.0, 0.0, 0.0] ] ThreeDMisc.GetPolygonColors[ context3d, "Icosahedron", "IcosahedronPolyColors.vtces" ] ThreeDMisc.AddShapeAt[ context3d, "SoccerBall", "SoccerBall.shape", [-2.0, 0.0, 0.0] ] ThreeDMisc.GetPolygonColors[context3d, "SoccerBall", "SoccerBallPolyColors.vtces" ] ThreeDMisc.Hide[context3d, "CheckerBoard"] ThreeDMisc.Hide[context3d, "SoccerBall"] ThreeDMisc.Hide[context3d, "CutCube"] ThreeDMisc.Hide[context3d, "Icosahedron"] ThreeDMisc.Reveal[context3d, "CheckerBoard"] ThreeDMisc.Reveal[context3d, "Icosahedron"] ThreeDMisc.Reveal[context3d, "CutCube"] context3d.shapes _ ThreeDScenes.DeleteShape[context3d.shapes, "CheckerBoard"] context3d.shapes _ ThreeDScenes.DeleteShape[context3d.shapes, "CutCube"] context3d.shapes _ ThreeDScenes.DeleteShape[context3d.shapes, "SoccerBall"] context3d.shapes _ ThreeDScenes.DeleteShape[context3d.shapes, "Icosahedron"] Reset[] ThreeDMisc.AddShapeAt[ context3d, "ChampagneGlass", "ChampagneGlass.shape", [1.0, 0.0, 0.0], $ConvexPolygon, TRUE ] ThreeDMisc.SetSmoothColor[ context3d, "ChampagneGlass", [1.0, .0, 1.0] ] ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [-1.5, .0, .0] ] ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [1.0, .8, .5] ] ThreeDMisc.AddShapeAt[ context3d, "Banana", "Banana.shape", [0.0, .0, .0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana", [1.0, .9, .1] ] ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].orientation _ [-1.0, 1.0, 0.0] ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].rotation _ 90.0 ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ].orientation _ [0.0, 0.0, 1.0] ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ].rotation _ 45.0 ThreeDScenes.SetView[ context3d, [2.0, -10.0, 3.0], [0.0, 0.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [1.0, .8, .5] ] TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", $Intensity] ] TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ] ] TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ] ThreeDMisc.SetTransmittance[context3d, "ChampagneGlass", .8 ] ThreeDMisc.ShadingProcName[context3d, "ChampagneGlass", "TwistedStripes" ] SetAntiAliased[] SetViewPort[ [120.0, 90.0, 400.0, 300.0] ] ThreeDScenes.SetView[ context3d, [6.066667, -2.2, 3.266667], [0.0, 0.0, 0.0] ] ThreeDMisc.SetShininess[ context3d, "ChampagneGlass", 50.0 ] ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ] ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ] ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard", [.8, .4, .2] ] ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard" ].centroid.z _ -5.0 ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard2", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard2" ], [8.0, 8.0, 0.0], [8.0, 8.0, 1.0], 90] ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard2", [.1, .1, .1] ] ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard2" ].centroid.z _ -5.0 ThreeDMisc.RemoteMakeFrame[context3d] SummonerClientRequests SummonerInfo ThreeDMisc.GetShadingProcs[context3d, "ChampagneGlass", NIL, NIL ] ThreeDMisc.OrbitEye[context3d, [0.0, -7.0, 2.0], [0.0, 0.0, 0.0], [-0.1, 0.0, 1.0], 40, "///Users/Crow.pa/AIS/StillCloser.ais", 40] context3d.shapes _ ThreeDScenes.DeleteShape[context3d.shapes, "ChampagneGlass"] context3d.shapes _ ThreeDScenes.DeleteShape[context3d.shapes, "UtahEgg"] context3d.shapes _ ThreeDScenes.DeleteShape[context3d.shapes, "Banana"] context3d.shapes _ ThreeDScenes.DeleteShape[context3d.shapes, "UtahEgg"] context3d.shapes _ ThreeDScenes.DeleteShape[context3d.shapes, "Banana"] ThreeDScenes.PlaceShape[ ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ], [0.0, 0.0, 0.0] ]; ThreeDMisc.SetSmoothColor[ context3d, "ChampagneGlass", [0.0, .9, .5] ] context3d.props _ Atom.PutPropOnList[context3d.props, $BackGround, NIL] -- kill background MakeFrame[] ThreeDMisc.Hide[context3d, "ChampagneGlass"] ThreeDMisc.Hide[context3d, "UtahEgg"] ThreeDMisc.Hide[context3d, "Banana"] ThreeDMisc.Reveal[context3d, "Banana"] ThreeDMisc.Reveal[context3d, "ChampagneGlass"] ThreeDMisc.AddShapeAt[ context3d, "Square.obj", "/User/Crow/Shapes/Square.obj"] ThreeDMisc.GetVertexColors[ context3d, "Square.obj", "/User/Crow/Shapes/SquareVtxColors.obj"] ThreeDScenes.SetLight[context3d, "Initial", [0.0, 0.0, 100.0], [1.0, 1.0, 1.0] ] ThreeDMisc.SetAmbientLight[ context3d, "light grey" ] SetView[ [2, -3.0, 2], [0.0, 0.0, 0.0] ] MakeFrame[] A Single Anti-Aliased Colored Icosahedron -- set color display to 24-bits Reset[] SetAntiAliased[] ThreeDMisc.AddShapeAt[ context3d, "Icosahedron", "Icosahedron.shape", [0.0, 0.0, 0.0] ] ThreeDMisc.GetPolygonColors[ context3d, "Icosahedron", "IcosahedronPolyColors.vtces" ] SetView[ [7.0, 7.0, 4.0], [0.0, 0.0, 0.0] ] MakeFrame[] Tiler Test Pattern AddObject["/Cyan/Imaging/6.0/Imager3D/Shapes/TilerTest.obj", [0.0, 0.0, 0.0] ] ColorSmoothObject["/Cyan/Imaging/6.0/Imager3D/Shapes/TilerTest.obj", [0.8, 0.8, 0.8] ] SetView[ [0.0, -10.0, 0.0], [0.0, 0.0, 0.0] ] MakeFrame[] DeleteObject["/Cyan/Imaging/6.0/Imager3D/Shapes/TilerTest.obj"] MultiProcess Rendering Reset[] ThreeDMisc.AddShapeAt[ context3d, "Banana00", "Banana.shape", [-4.0, -4.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana00", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana00" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana00" ], [.0, .0, .0], [.0, 1.0, .0], 0.0] ThreeDMisc.AddShapeAt[ context3d, "Banana01", "Banana.shape", [-2.0, -4.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana01", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana01" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana01" ], [.0, .0, .0], [.0, 1.0, .0], 50.0] ThreeDMisc.AddShapeAt[ context3d, "Banana02", "Banana.shape", [0.0, -4.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana02", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana02" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana02" ], [.0, .0, .0], [.0, 1.0, .0], 100.0] ThreeDMisc.AddShapeAt[ context3d, "Banana03", "Banana.shape", [2.0, -4.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana03", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana03" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana03" ], [.0, .0, .0], [.0, 1.0, .0], 150.0] ThreeDMisc.AddShapeAt[ context3d, "Banana04", "Banana.shape", [4.0, -4.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana04", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana04" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana04" ], [.0, .0, .0], [.0, 1.0, .0], 200.0] ThreeDMisc.AddShapeAt[ context3d, "Banana10", "Banana.shape", [-4.0, -2.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana10", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana10" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana10" ], [.0, .0, .0], [.0, 1.0, .0], 250.0] ThreeDMisc.AddShapeAt[ context3d, "Banana11", "Banana.shape", [-2.0, -2.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana11", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana11" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana11" ], [.0, .0, .0], [.0, 1.0, .0], 300.0] ThreeDMisc.AddShapeAt[ context3d, "Banana12", "Banana.shape", [0.0, -2.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana12", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana12" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana12" ], [.0, .0, .0], [.0, 1.0, .0], 350.0] ThreeDMisc.AddShapeAt[ context3d, "Banana13", "Banana.shape", [2.0, -2.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana13", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana13" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana13" ], [.0, .0, .0], [.0, 1.0, .0], 20.0] ThreeDMisc.AddShapeAt[ context3d, "Banana14", "Banana.shape", [4.0, -2.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana14", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana14" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana14" ], [.0, .0, .0], [.0, 1.0, .0], 37.0] ThreeDMisc.AddShapeAt[ context3d, "Banana20", "Banana.shape", [-4.0, 0.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana20", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana20" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana20" ], [.0, .0, .0], [.0, 1.0, .0], 140.0] ThreeDMisc.AddShapeAt[ context3d, "Banana21", "Banana.shape", [-2.0, 0.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana21", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana21" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana21" ], [.0, .0, .0], [.0, 1.0, .0], 120.0] ThreeDMisc.AddShapeAt[ context3d, "Banana22", "Banana.shape", [0.0, 0.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana22", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana22" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana22" ], [.0, .0, .0], [.0, 1.0, .0], 260.0] ThreeDMisc.AddShapeAt[ context3d, "Banana23", "Banana.shape", [2.0, 0.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana23", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana23" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana23" ], [.0, .0, .0], [.0, 1.0, .0], 340.0] ThreeDMisc.AddShapeAt[ context3d, "Banana24", "Banana.shape", [4.0, 0.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana24", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana24" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana24" ], [.0, .0, .0], [.0, 1.0, .0], 270.0] ThreeDMisc.AddShapeAt[ context3d, "Banana30", "Banana.shape", [-4.0, 2.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana30", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana30" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana30" ], [.0, .0, .0], [.0, 1.0, .0], 130.0] ThreeDMisc.AddShapeAt[ context3d, "Banana31", "Banana.shape", [-2.0, 2.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana31", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana31" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana31" ], [.0, .0, .0], [.0, 1.0, .0], 110.0] ThreeDMisc.AddShapeAt[ context3d, "Banana32", "Banana.shape", [0.0, 2.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana32", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana32" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana32" ], [.0, .0, .0], [.0, 1.0, .0], 25.0] ThreeDMisc.AddShapeAt[ context3d, "Banana33", "Banana.shape", [2.0, 2.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana33", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana33" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana33" ], [.0, .0, .0], [.0, 1.0, .0], 70.0] ThreeDMisc.AddShapeAt[ context3d, "Banana34", "Banana.shape", [4.0, 2.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana34", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana34" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana34" ], [.0, .0, .0], [.0, 1.0, .0], 60.0] ThreeDMisc.AddShapeAt[ context3d, "Banana40", "Banana.shape", [-4.0, 4.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana40", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana40" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana40" ], [.0, .0, .0], [.0, 1.0, .0], 20.0] ThreeDMisc.AddShapeAt[ context3d, "Banana41", "Banana.shape", [-2.0, 4.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana41", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana41" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana41" ], [.0, .0, .0], [.0, 1.0, .0], 180.0] ThreeDMisc.AddShapeAt[ context3d, "Banana42", "Banana.shape", [0.0, 4.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana42", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana42" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana42" ], [.0, .0, .0], [.0, 1.0, .0], 210.0] ThreeDMisc.AddShapeAt[ context3d, "Banana43", "Banana.shape", [2.0, 4.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana43", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana43" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana43" ], [.0, .0, .0], [.0, 1.0, .0], 37.0] ThreeDMisc.AddShapeAt[ context3d, "Banana44", "Banana.shape", [4.0, 4.0, 0.0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana44", [1.0, 1.0, 0.1] ] ThreeDScenes.FindShape[ context3d.shapes, "Banana44" ].orientation _ [0.0, 1.0, 0.0] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "Banana44" ], [.0, .0, .0], [.0, 1.0, .0], 45.0] ThreeDScenes.SetView[context3d, [-6.5, -13.8, 6.1], [0.6, 0.0, -1.0] ] SetAntiAliased[] ThreeDMisc.RemoteMakeFrame[context3d] Reset[] ThreeDMisc.AddShapeAt[ context3d, "ChampagneGlass", "ChampagneGlass.shape", [1.0, 0.0, 0.0], $ConvexPolygon, TRUE ] ThreeDMisc.SetSmoothColor[ context3d, "ChampagneGlass", [1.0, .0, 1.0] ] ThreeDMisc.SetShininess[ context3d, "ChampagneGlass", 50.0 ] ThreeDMisc.SetTransmittance[context3d, "ChampagneGlass", .8 ] ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ].orientation _ [0.0, 0.0, 1.0] ThreeDScenes.FindShape[ context3d.shapes, "ChampagneGlass" ].rotation _ 45.0 ThreeDMisc.ShadingProcName[context3d, "ChampagneGlass", "TwistedStripes" ] ThreeDMisc.AddShapeAt[ context3d, "UtahEgg", "UtahEgg.shape", [-1.5, .0, .0] ] ThreeDMisc.SetSmoothColor[ context3d, "UtahEgg", [1.0, .8, .5] ] ThreeDMisc.SetShininess[ context3d, "UtahEgg", 50.0 ] TextureMaps.SetTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], TextureMaps.TextureFromAIS[context3d, "/Cedar/CedarChest6.0/ThreeDWorld/Texture.ais", $Intensity] ] TextureMaps.SumTexture[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ] ] TextureMaps.MakeTxtrCoordsFromNormals[ ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ], [0.0, 0.0], [2.0, 3.0], [5.0, 3.0], [3.0, 0.0] ] ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].orientation _ [-1.0, 1.0, 0.0] ThreeDScenes.FindShape[ context3d.shapes, "UtahEgg" ].rotation _ 90.0 ThreeDMisc.AddShapeAt[ context3d, "Banana", "Banana.shape", [0.0, .0, .0] ] ThreeDMisc.SetSmoothColor[ context3d, "Banana", [1.0, .9, .1] ] ThreeDMisc.AddShapeAt[ context3d, "Doughnut", "Doughnut.bezier", [0.0, 2.0, .0], $Bezier ] ThreeDMisc.SetSmoothColor[ context3d, "Doughnut", [0.7, .4, .2] ] ThreeDMisc.AddShapeAt[ context3d, "Teaspoon", "Teaspoon.bezier", [0.0, -2.0, .0], $Bezier ] ThreeDScenes.FindShape[ context3d.shapes, "Teaspoon" ].orientation _ [0.0, 0.0, -1.0] ThreeDMisc.SetSmoothColor[ context3d, "Teaspoon", [0.8, 0.8, 0.8] ] ThreeDMisc.SetShininess[ context3d, "Teaspoon", 50.0 ] ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ] ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard", [.8, .4, .2] ] ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard" ].centroid.z _ -5.0 ThreeDMisc.AddShapeAt[ context3d, "CheckerBoard2", "CheckerBoard.shape", [-8.0, -8.0, -2.0] ] ThreeDScenes.RotateShape[ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard2" ], [8.0, 8.0, 0.0], [8.0, 8.0, 1.0], 90] ThreeDMisc.SetFacetedColor[ context3d, "CheckerBoard2", [.1, .1, .1] ] ThreeDScenes.FindShape[ context3d.shapes, "CheckerBoard2" ].centroid.z _ -5.0 ThreeDScenes.SetView[ context3d, [6.066667, -2.2, 3.266667], [0.0, 0.0, 0.0] ] SetAntiAliased[] MakeFrame[] AISAnimation.PutAIS[ context3d, "TestScene2.ais" ] ThreeDMisc.RemoteMakeFrame[context3d] AISAnimation.PutAIS[ context3d, "TestScene2Dist.ais" ] SummonerClientRequests SummonerInfo ThreeDMisc.GetShadingProcs[context3d, "ChampagneGlass", NIL, NIL ] &sgf[RenderOneShapeImpl] " Shape: ///Users/crow.pa/threedworld/CheckerBoard.shape ConvexPolygon FALSE FacetedColor: 0.8 0.4 0.2 Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 -8.0 -8.0 -2.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: -1.0 -0.75 1.005 1.235 ViewPort: -1.0 0.0 202.0 247.0 ResultFile: ///Users/crow.pa/threedworld/CheckerBoard0.ais" " Shape: ///Users/crow.pa/threedworld/CheckerBoard.shape ConvexPolygon FALSE FacetedColor: 0.8 0.4 0.2 Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 1.0 0.0 0.0 0.0 0.0 1.0 0.0 0.0 0.0 0.0 1.0 0.0 -8.0 -8.0 -2.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: 0.0 -0.75 1.005 1.235 ViewPort: 199.0 0.0 202.0 247.0 ResultFile: ///Users/crow.pa/threedworld/CheckerBoard1.ais" " Shape: ///Users/crow.pa/threedworld/ChampagneGlass.shape ConvexPolygon TRUE SmoothColor: 1.0 0.0 1.0 Transmittance: 0.8 Shininess: 50.0 SolidTexture: TwistedStripes Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 0.7071069 -0.7071069 0.0 0.0 0.7071069 0.7071069 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: -0.33 -0.74 0.25375 1.095 ViewPort: 133.0 2.0 51.75 219.0 ResultFile: ///Users/crow.pa/threedworld/ChampagneGlass0.ais" " Shape: ///Users/crow.pa/threedworld/ChampagneGlass.shape ConvexPolygon TRUE SmoothColor: 1.0 0.0 1.0 Transmittance: 0.8 Shininess: 50.0 SolidTexture: TwistedStripes Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 0.7071069 -0.7071069 0.0 0.0 0.7071069 0.7071069 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: -8.125001e-2 -0.74 0.25375 1.095 ViewPort: 182.75 2.0 51.75 219.0 ResultFile: ///Users/crow.pa/threedworld/ChampagneGlass1.ais" " Shape: ///Users/crow.pa/threedworld/ChampagneGlass.shape ConvexPolygon TRUE SmoothColor: 1.0 0.0 1.0 Transmittance: 0.8 Shininess: 50.0 SolidTexture: TwistedStripes Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 0.7071069 -0.7071069 0.0 0.0 0.7071069 0.7071069 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: 0.1675 -0.74 0.25375 1.095 ViewPort: 232.5 2.0 51.75 219.0 ResultFile: ///Users/crow.pa/threedworld/ChampagneGlass2.ais" " Shape: ///Users/crow.pa/threedworld/ChampagneGlass.shape ConvexPolygon TRUE SmoothColor: 1.0 0.0 1.0 Transmittance: 0.8 Shininess: 50.0 SolidTexture: TwistedStripes Light: Initial -100.0 -200.0 50.0 1.0 1.0 1.0 ShapeXfm: 0.7071069 -0.7071069 0.0 0.0 0.7071069 0.7071069 0.0 0.0 0.0 0.0 1.0 0.0 1.0 0.0 0.0 1.0 View: 6.066667 -2.2 3.266667 0.0 0.0 0.0 0.0 0.0 1.0 0.0 40.0 0.01 1000.0 Window: 0.41625 -0.74 0.25375 1.095 ViewPort: 282.25 2.0 51.75 219.0 ResultFile: ///Users/crow.pa/threedworld/ChampagneGlass3.ais" ThreeDScenes.SetWindow[ context3d, [x: -1.0, y: -0.75, w: 1.0, h: 1.235] ] SetViewPort[ [x: 0.0, y: 0.0, w: 200.0, h: 247.0] ] MakeFrame[] ThreeDScenes.SetWindow[ context3d, [x: 0.0, y: -0.75, w: 1.0, h: 1.235] ] SetViewPort[ [x: 200.0, y: 0.0, w: 200.0, h: 247.0] ] MakeFrame[] ThreeDScenes.SetWindow[ context3d, [x: -0.33, y: -0.74, w: 0.24875, h: 1.095] ] SetViewPort[ [x: 134.0, y: 2.0, w: 49.75, h: 219.0] ] MakeFrame[] ThreeDScenes.SetViewPort[ context3d, [0.0, 0.0, 640.0, 453.0], TRUE ] -- clears to black ThreeDScenes.SetWindow[ context3d, [-0.5, -0.7, .5, .75] ] SetViewPort[ [220.0, 90.0, 100.0, 150.0] ] ShowShapes[] ThreeDScenes.SetWindow[ context3d, [0.0, -0.45, .75, .5] ] SetViewPort[ [320.0, 140.0, 150.0, 100.0] ] ShowShapes[] ThreeDScenes.SetWindow[ context3d, [-0.75, 0.05, .75, .5] ] SetViewPort[ [170.0, 240.0, 150.0, 100.0] ] ShowShapes[] ThreeDScenes.SetWindow[ context3d, [0.0, 0.05, .5, .75] ] SetViewPort[ [320.0, 240.0, 100.0, 150.0] ] ShowShapes[] SetViewPort[ [0.0, 0.0, 640.0, 453.0] ] context3d.extentCovered _ [170, 471, 90, 391] ThreeDScenes.FillInBackGround[context3d] SetViewPort[ [0.0, 0.0, 640.0, 453.0] ] -- defaults ThreeDScenes.SetWindow[ context3d, [-1.0, -.7078125, 2.0, 1.415625] ] EtherVoice Examples Rock-a-by baby, in the tree top. When the wind blows, the cradle will rock. When the bough breaks, the cradle will fall. and down will come baby, cradle and all. Go in and out the window. Go in and out the window. Go in and out the window. As we have done before. Hello, Ailey. How many daynosaurs do you have? Different voices: P;z:nb\ Beautiful Betty. P;z:nd\ Doctor Dennis. P;z:nf\ Frail Frank. P;z:nh\ Huge Harry. P;z:nk\ Kit the Kid. P;z:np\ Perfect Paul. (default) P;z:nr\ Rough Rita. P;z:nu\ Uppity Ursula. P;z:nw\ Whispery Wendy. Speech rate: P;z:ra 280\ speaks fast. rate in [120..350] words per minute; default 180 wpm. P;z:ra 130\ speaks slowly. P;z:ra 180\ normal. ŒNewThreeDTest.cm Last Edited by: Crow, June 3, 1986 7:21:05 pm PDT Use Your Own Objects Bezier Patch Objects Sphere DoughNut TeaPot modifications TeaPot displays Jug Saucer Teacup Teaspoon Texture Generation -- set color display to 8-bits Eggs with Space-Filling texture -- set color display to 24-bits Comparitive egg shading Anti-aliased checkerboards Three object animation Performance: 8-bit - 0.35s Glass, Banana, and Egg Performance: 24-bit - 8.4s, 8-bit - 1.0s, 4-bit - 1.0s Performance: 24-bit - 8.4s, 8-bit - 3.3s, 8-bit dithered- 7.6s, 4-bit dithered - 7.0s Glass alone Single Square Field of Bananas Five Object Image and CheckerBoard Ê4˜Jšœ™Jšœ1™1J˜J˜šÐbi˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ˜Jšœ ˜ J˜J˜Jšœ0Ïc ˜;J˜EJšœ2ž˜LJšœ3ž˜MJšœ3ž˜OJšœFž ˜PJšœEž˜VJšœHž˜^JšœFž˜`Jšœ9ž˜WJšœ.ž˜MJ˜Jšœ)ž˜HJšœ'ž/˜VJ˜ J˜AJ˜ —š˜Jšœ.˜.Jšœ3˜3Jšœ7˜7—š˜Jšœ3˜3JšœCÏkœž˜ZJšœ5˜5JšœT˜TJšœu˜u—š0˜0Jšœ$˜$Jšœ;˜;Jšœ-˜-Jšœ_˜_Jšœ8ž ˜DJšœ.Ÿœ]ž˜®Jšœ.Ÿœ¼˜îJšœ.ŸœFž˜J˜Jšœ5˜5—š˜Jšœ5ž#˜XJšœ0ž˜OJšœ'˜'Jšœ#˜#Jšœ+˜+JšœM˜MJšœO˜OJšœ2˜2Jšœ2˜2JšœG˜GJ˜—š˜Jšœ2˜2Jšœu˜uJ˜—šÏb™J˜Jšœ¡˜¡JšœEž ˜QJšœ ˜ J˜JšœH˜HJšœ<˜˜>JšœE˜EJšœ@˜@Jšœ?˜?Jšœ0˜0Jšœ-˜-J˜J˜—š"˜"JšœC˜CJšœ1˜1JšœE˜EJšœF˜FJšœ ¡œ˜+J˜—š)˜)Jšœ˜Jšœ+¡ œG˜Jšœ2˜2Jšœ˜Jšœx˜xJšœ˜Jšœ/ž˜A—š ™J˜š ™JšœV˜VJšœW˜WJšœ?˜?Jšœ@˜@Jšœ`˜`JšœaŸœ˜lJšœ˜Jšœ˜Jšœ%Ÿœ˜?JšœV˜VJšœ˜Jšœ˜—š ™J˜ˆJšœ@˜@Jšœe˜eJšœ_Ÿœ˜jJšœbŸœ˜m—š ™JšœV˜VJšœ`˜`Jšœl˜lJšœs˜sJšœ0˜0Jšœg˜gJšœA˜AJšœyŸœ˜–JšœF˜FJšœ.˜.Jšœ=˜=Jšœ{Ÿœ˜Jšœ0˜0Jšœ?˜?JšœŒ˜ŒJšœEŸœ˜_Jšœ=˜=J˜—š ™JšœŽ˜ŽJšœ‹˜‹Jšœ‡˜‡Jšœs˜sJšœA˜AJšœGžœ˜VJšœŒ˜ŒJšœB˜BJšœ`Ÿœ˜jJšœ]Ÿœ˜hJšœ`Ÿœ˜kJšœ]Ÿœ˜hJšœ+Ÿœ ˜8JšœA˜AJšœ‰˜‰Jšœ˜JšœN˜NJšœ4˜4Jšœž˜,Jšœ ¡ œ˜4Jšœ]Ÿœ˜hJšœZŸœ˜eJšœ+Ÿœ ˜8Jšœ(Ÿœ ˜5JšœA˜AJšœ>˜>JšœCŸœž˜ZJšœgž˜{Jšœdž˜xJšœ4˜4Jšœ1˜1JšœV˜VJšœ˜JšœŸ˜Jšœ ˜ Jšœ ¡œ˜7Jšœ1¡œ˜MJšœ ¡ œ˜1Jšœ3˜3Jšœ,˜,Jšœ ¡œ˜6Jšœ¡˜#Jšœ¡œ˜˜>Jšœa˜a—š ™Jšœ†˜†Jšœ>˜>Jšœa˜a—š ™Jšœˆ˜ˆJšœ@˜@Jšœ_Ÿœ˜jJšœA˜AJšœIž˜]—J˜—š ™1Jšœ˜Jšœ˜Jšœ+˜+JšœZ˜ZJšœ ¡œ˜/JšœnŸœ˜tJšœ ¡œ˜/—š5˜5Jšœ˜Jšœ?˜?JšœA˜AJšœž'˜˜>Jšœ2˜2JšœD˜DJšœ*˜*Jšœ?˜?Jšœ ˜ Jšœ ¡ œ˜2Jšœ>˜>Jšœu˜uJšœa˜aJšœ ˜ Jšœ ¡ œ˜4Jšœd˜dJšœ*˜*Jšœ`˜`Jšœ ˜ Jšœ0˜0Jšœ+˜+Jšœ`˜`Jšœ ˜ Jšœ0˜0Jšœ+˜+Jšœ`˜`Jšœ ˜ Jšœ0˜0Jšœ+˜+Jšœ7˜7Jšœ ˜ Jšœ1˜1Jšœ+˜+Jšœ9˜9Jšœ ˜ Jšœ3˜3Jšœ+˜+Jšœ:˜:Jšœ ˜ Jšœ3˜3J˜—š˜Jšœ˜JšœM˜MJšœ˜Ÿœ˜žJšœB˜BJšœŽ˜ŽJšœR˜RJšœS˜SJšœF˜FJ˜J˜ J˜JšœO˜OJ˜ —š ™J˜Jšœ˜JšœC˜CJšœM˜MJšœB˜BJšœ)˜)J˜ J˜Jšœ˜Jšœ+˜+J˜ J˜Jšœ5˜5Jšœ+˜+J˜ Jšœ˜JšœC˜CJšœ^Ÿœ˜eJšœB˜BJšœ6˜6Jšœ5˜5Jšœ+˜+J˜ J˜Jšœ˜JšœC˜CJšœM˜MJšœB˜BJšœ5˜5Jšœv¡(œ˜²JšœO˜OJšœŽ˜ŽJšœ'˜'J˜ J˜Jšœv¡(œ˜­JšœO˜OJšœ)˜)J˜ J˜Jšœ˜JšœC˜CJšœM˜MJšœB˜BJšœ5˜5JšœC˜CJšœ)˜)J˜ Jšœ=˜=Jšœ)˜)J˜ Jšœ'˜'J˜5J˜J˜3J˜5J˜7J˜7J˜8J˜5J˜6J˜6J˜6J˜—š ™Jšœ˜Jšœ˜Jšœ\˜\JšœH˜HJšœ5˜5JšœR˜RJšœG˜GJšœ ˜ JšœG˜GJšœ ˜ JšœI˜IJšœ ˜ JšœI˜IJšœ ˜ JšœI˜IJšœ ˜ J˜—š ™Jšœ\˜\JšœE˜EJšœX˜XJšœV˜VJšœV˜VšœT˜TJ™—J˜Jšœ*˜*Jšœ(˜(Jšœ%˜%Jšœ*˜*Jšœ,˜,Jšœ+˜+Jšœ(˜(JšœM˜MJšœH˜HJšœK˜KJšœM˜M—š ™Jšœ˜JšœmŸœ˜sJšœH˜HJšœN˜NJšœ@˜@JšœK˜KJšœ?˜?JšœT˜TJšœE˜EJšœZ˜ZJšœL˜LJšœF˜FJšœ@˜@Jšœv¡(œ˜²JšœO˜OJšœŽ˜ŽJšœ=˜=J˜JšœJ˜JJšœ˜Jšœ*˜*JšœN˜NJšœ<˜