private void DrawGravityVectorIndicator(Vector2 centerPos, Vector3 worldGravity, MyHudTexturesEnum texture, Color color) { float hudSizeX = MyGuiManager.GetSafeFullscreenRectangle().Width / MyGuiManager.GetHudSize().X; float hudSizeY = MyGuiManager.GetSafeFullscreenRectangle().Height / MyGuiManager.GetHudSize().Y; var textureCoord = GetTextureCoord(texture); var viewGravity = Vector3.TransformNormal(worldGravity, MySector.MainCamera.ViewMatrix); var viewGravityLen = viewGravity.Length(); if (!MyUtils.IsZero(viewGravityLen)) { viewGravity /= viewGravityLen; } var right = new Vector2(viewGravity.Y, viewGravity.X); var rightLen = right.Length(); if (!MyUtils.IsZero(rightLen)) { right /= rightLen; } var scale = Vector2.One * new Vector2(0.003f, 0.013f); scale.Y *= rightLen; VRageRender.MyRenderProxy.DrawSpriteAtlas( m_atlas, centerPos + new Vector2(viewGravity.X, -viewGravity.Y) * 0.02f, textureCoord.Offset, textureCoord.Size, right, new Vector2(hudSizeX, hudSizeY), color, scale); }
private void DrawGravityVectorIndicator(Vector2 centerPos, Vector3 worldGravity, MyHudTexturesEnum texture, Color color) { float hudSizeX = MyGuiManager.GetSafeFullscreenRectangle().Width / MyGuiManager.GetHudSize().X; float hudSizeY = MyGuiManager.GetSafeFullscreenRectangle().Height / MyGuiManager.GetHudSize().Y; var textureCoord = GetTextureCoord(texture); var viewGravity = Vector3.TransformNormal(worldGravity, MySector.MainCamera.ViewMatrix); var viewGravityLen = viewGravity.Length(); if (!MyUtils.IsZero(viewGravityLen)) viewGravity /= viewGravityLen; var right = new Vector2(viewGravity.Y, viewGravity.X); var rightLen = right.Length(); if (!MyUtils.IsZero(rightLen)) right /= rightLen; var scale = Vector2.One * new Vector2(0.003f, 0.013f); scale.Y *= rightLen; VRageRender.MyRenderProxy.DrawSpriteAtlas( m_atlas, centerPos + new Vector2(viewGravity.X, -viewGravity.Y) * 0.02f, textureCoord.Offset, textureCoord.Size, right, new Vector2(hudSizeX, hudSizeY), color, scale); }