Entity CreateLandmark() { var landmarkGo = this.SceneGraph.CreateSceneObject("landmark"); landmarkGo.Transform.LocalPosition = new Vector3(0f, 0f, 0f); landmarkGo.Transform.LocalScale = new Vector3(0.64f, 0.64f, 0.64f); var cowMesh = new TeapotPrimitive(this.Platform.Graphics); var mr = landmarkGo.AddTrait<MeshRendererTrait>(); mr.Mesh = cowMesh.Mesh; var mat = new Material("Default", CommonDemoResources.PixelLitShader); mat.SetColour("MaterialColour", Rgba32.CornflowerBlue); mr.Material = mat; return landmarkGo; }
public override void Start() { CommonDemoResources.Create (Platform, Engine); var lines = Engine.Assets.Load <TextAsset> ("assets/airports.bba") .Text .Split ('\n') .ToList (); foreach (var line in lines) { string[] items = line.Split(','); if (items.Length == 11) { airports.Add(new Airport(items)); } } airports.Shuffle (); airports = airports.GetRange (0, 250); Console.WriteLine("num airports: " + airports.Count); this.Configuration.BackgroundColour = Rgba32.Red; returnScene = this; float radius = 1.5f; // create a sprite var sphereMesh = new SpherePrimitive(this.Platform.Graphics); var mat = new Material("Default",CommonDemoResources.VertexLitShader); mat.SetColour("MaterialColour", Rgba32.LightGrey); earthGo = this.SceneGraph.CreateSceneObject("earth"); Entity camSo = SceneGraph.CreateSceneObject ("Scene 5 Camera"); camSo.AddTrait<CameraTrait>(); var lookatTrait = camSo.AddTrait<LookAtSubjectTrait>(); lookatTrait.Subject = Transform.Origin; var orbitTrait = camSo.AddTrait<OrbitAroundSubjectTrait>(); orbitTrait.CameraSubject = Transform.Origin; camSo.Transform.LocalPosition = new Vector3(10f,4f,10f); this.RuntimeConfiguration.SetRenderPassCameraTo("Debug", camSo); this.RuntimeConfiguration.SetRenderPassCameraTo("Default", camSo); earthGo.Transform.LocalScale = new Vector3(2 * radius, 2 * radius, 2 * radius); var mr = earthGo.AddTrait<MeshRendererTrait>(); mr.Mesh = sphereMesh.Mesh; mr.Material = mat; //var mat2 = new Material("Default", CommonDemoResources.UnlitShader); //mat2.SetColour("MaterialColour", Rgba32.Blue); foreach (var airport in airports) { var so = this.SceneGraph.CreateSceneObject(airport.Iata); so.Transform.Parent = earthGo.Transform; var sodr = so.AddTrait<DebugRendererTrait>(); //sodr.RenderPass = "******"; sodr.Colour = Rgba32.Blue; //var somr = so.AddTrait<MeshRenderer>(); //somr.Mesh = sphereMesh; //somr.Material = mat2; var lat = airport.Latitude; var lon = airport.Longitude; Vector3 pos = new Vector3( radius * Maths.Cos(Maths.ToRadians(lat)), radius * Maths.Sin(Maths.ToRadians(lat)), 0f); Single t = Maths.ToRadians (lon); Matrix44 rot; Matrix44.CreateRotationY(ref t, out rot); Vector3 r; Vector3.Transform(ref pos, ref rot, out r); so.Transform.Position = r; so.Transform.LocalScale = new Vector3(0.015f, 0.015f, 0.015f); } this.Engine.InputEventSystem.Tap += this.OnTap; }