public Urho.VertexBuffer.PositionNormalColor[] GetVertextData() { var data = new Urho.VertexBuffer.PositionNormalColor[Vertices.Count]; for (int i = 0; i < Vertices.Count; i++) { var v = Vertices[i]; var n = Normals[i]; Urho.Color clr = Urho.Color.Green; if (Vertices.Count == Colors.Count) { var c = Colors[i]; clr = Urho.Color.FromByteFormat((byte)(c.R * 255), (byte)(c.G * 255), (byte)(c.B * 255), 255); } var d = new Urho.VertexBuffer.PositionNormalColor(); d.Position = new Urho.Vector3(v.X, v.Y, v.Z); d.Normal = new Urho.Vector3(n.X, n.Y, n.Z); d.Color = clr.ToUInt(); data[i] = d; } return(data); }
private static Urho.VertexBuffer.PositionNormalColor[] GetVertextData(List <Vector3> vertices, List <Vector3> normals, List <Color> colors) { var data = new Urho.VertexBuffer.PositionNormalColor[vertices.Count]; for (int i = 0; i < vertices.Count; i++) { var v = vertices[i]; var n = normals[i]; Urho.Color clr = Urho.Color.Green; if (vertices.Count == colors.Count) { clr = colors[i]; } var d = new Urho.VertexBuffer.PositionNormalColor(); d.Position = v; d.Normal = n; d.Color = clr.ToUInt(); data[i] = d; } return(data); }
Node AddMarker(Node parent, float lat, float lon, string id, Urho.Color color) { var markerNode = parent.CreateChild("MarkerRoot_" + id); var markerHeadNode = markerNode.CreateChild("MarkerHeadModel_" + id); var markerTailNode = markerNode.CreateChild("MarkerTailModel_" + id); var pinCone = markerTailNode.CreateComponent <Urho.Shapes.Cone>(); markerTailNode.Scale = new Vector3(0.045f, 0.09f, 0.045f); pinCone.Color = color; var pinHead = markerHeadNode.CreateComponent <Urho.Shapes.Sphere>(); markerHeadNode.SetScale(0.1f); //pinHead.SetMaterial(Material.FromImage(id + ".jpg")); pinHead.Color = color; GetPositionForHeight(lat, lon, 2.25f, out double x1, out double y1, out double z1); markerTailNode.Position = new Vector3((float)x1, (float)y1, (float)z1); markerTailNode.LookAt(new Vector3(0, 0, 0), new Vector3(0, 1, 0), TransformSpace.Parent); markerTailNode.Rotate(new Quaternion(90, 0, 0), TransformSpace.Local); GetPositionForHeight(lat, lon, 2.3f, out double x2, out double y2, out double z2); markerHeadNode.Position = new Vector3((float)x2, (float)y2, (float)z2); return(markerNode); }
private void btnColorPick_Click(object sender, EventArgs e) { var dialogResult = colorPicker.ShowDialog(btnColorPick); if (dialogResult == DialogResult.OK) { System.Drawing.Color color = colorPicker.Color; _colour = new Urho.Color(color.R, color.G, color.B, color.A); _eventArgs.Colour = _colour; lblColorView.BackColor = color; OnColorChanged(); } }
// Imitates QTM's 3D frame colors on grid view private void GetFrameColors(out Urho.Color leftColor, out Urho.Color topColor, out Urho.Color rightColor, out Urho.Color bottomColor) { // Colors follow QTM conventions Urho.Color litFrame = Urho.Color.FromByteFormat(131, 131, 131, 255); Urho.Color shadowFrame = Urho.Color.FromByteFormat(29, 29, 29, 255); // Handle camera rotation in QTM switch (orientation) { default: leftColor = shadowFrame; topColor = shadowFrame; rightColor = litFrame; bottomColor = litFrame; break; case 90: leftColor = shadowFrame; topColor = litFrame; rightColor = litFrame; bottomColor = shadowFrame; break; case 180: leftColor = litFrame; topColor = litFrame; rightColor = shadowFrame; bottomColor = shadowFrame; break; case 270: leftColor = litFrame; topColor = shadowFrame; rightColor = shadowFrame; bottomColor = litFrame; break; } }
public Button(string action, Urho.Color color) { this.color = color; this.actionString = action; ReceiveSceneUpdates = true; }
void CreateScene() { scene = new Scene(); octree = scene.CreateComponent<Octree>(); rootNode = scene.CreateChild(name: "Root"); var earthNode = rootNode.CreateChild(name: "Earth"); var earth = earthNode.CreateComponent<Sphere>(); earth.Color = Urho.Color.Blue; earthNode.SetScale(4.5f); earth.SetMaterial(Material.FromImage("earth3.jpg")); earthNode.Rotate(new Quaternion(x: 2f, y: -0.75f, z: 0), TransformSpace.Local); cameraNode = scene.CreateChild(); camera = cameraNode.CreateComponent<Camera>(); cameraNode.Position = new Vector3((float)9.5, (float)9.90, 10) / 1.75f; cameraNode.Rotation = new Quaternion(-0.121f, 0.878f, -0.305f, -0.35f); Node lightNode = cameraNode.CreateChild(); var light = lightNode.CreateComponent<Light>(); light.LightType = LightType.Point; light.Range = 100; light.Brightness = 1.3f; var markersNode = rootNode.CreateChild(name: "Markers"); var positions = new Dictionary<string, float[]> { { "hnd", new float[] { 35.549140f, 139.780053f }},//tokyo { "ams", new float[] { 52.309876f, 4.768231f } },//amsterdam { "del", new float[] { 28.639446f, 77.123433f } },//delhi { "dab", new float[] { 29.182539f, -81.053463f } },//daytona { "eyw", new float[] { 24.555340f, -81.757469f } },//keywest { "fll", new float[] { 26.072924f, -80.151160f } },//fort lautrade { "gcn", new float[] { 35.951838f, -112.144504f } },//grand canyon { "hnl", new float[] { 21.323464f, -157.925074f } },//honulu { "iad", new float[] { 38.952591f, -77.455981f } },//washington { "las", new float[] { 36.083722f, -115.153288f } },//las vegas { "lax", new float[] { 33.940965f, -118.408637f } },//los angeles { "myr", new float[] { 33.682854f, -78.928141f } },//myrtle { "nyc", new float[] { 40.729441f, -73.969534f } },//new york { "ord", new float[] { 41.973764f, -87.907429f } },//orlando { "san", new float[] { 32.733358f, -117.193808f } },//san diego { "sfo", new float[] { 37.620752f, -122.380050f } },//san fransico { "snu", new float[] { 22.491947f, -79.945303f } },//santa calra { "vps", new float[] { 30.494920f, -86.550364f } },//destin { "mes", new float[] { 37.215442f, -108.458600f } },//mesa verde { "den", new float[] { 39.855932f, -104.673233f } },//denver { "ase", new float[] { 39.219123f, -106.864559f } },//aspen }; var colors = new Urho.Color[] { Urho.Color.FromHex("#f3b50c"), Urho.Color.FromHex("#4ab075"), Urho.Color.FromHex("#f0399d") }; foreach (var row in positions.Keys) AddMarker(markersNode, lat: positions[row][0], lon: positions[row][1], id: row, color: colors.GetRandomElement()); AutoRotate(); }