private static GameObject DrawLongitude(float azimuth) { var azimuths = DrawingUtilities.AnglesInRange(0, Mathf.PI, NumberOfPointsPerLongitude); var vertices = azimuths.Select( colatitude => DrawingUtilities.CreateVectorAt(colatitude, azimuth)) .ToArray(); var longitudeObject = DrawingUtilities.CreateLineObject( "Longitude " + Mathf.Rad2Deg * azimuth, vertices, "Boundaries"); return(longitudeObject); }
private static GameObject DrawLabel(float colatitude, float azimuth) { var text = String.Format("{0,3:N0} {1,3:N0}", Mathf.Rad2Deg * colatitude, Mathf.Rad2Deg * azimuth); var labelObject = new GameObject("Label " + text); var normal = DrawingUtilities.CreateVectorAt(colatitude, azimuth); var localEast = Vector3.Cross(normal, new Vector3(0, 0, 1)); var localNorth = Vector3.Cross(localEast, normal); labelObject.transform.position = normal; labelObject.transform.rotation = Quaternion.LookRotation(-normal, localNorth); var textMesh = labelObject.AddComponent <TextMesh>(); textMesh.text = text; textMesh.font = Resources.Load("ARIAL", typeof(Font)) as Font; textMesh.renderer.material = Resources.Load("OneSidedMaterial", typeof(Material)) as Material; textMesh.characterSize = 0.005f; textMesh.anchor = TextAnchor.UpperCenter; return(labelObject); }