public void FixRelativePathsInRunSettingsShouldExpandEnvironmentVariable() { try { Environment.SetEnvironmentVariable("TEST_TEMP", Path.GetTempPath()); // using TEST_TEMP because TMP or TEMP, or HOME are not defined across all tested OSes // Using \\ instead of platform specifc path separator does not matter, because the paths are not interpreted by the OS. var runSettingsXML = "<RunSettings><RunConfiguration><ResultsDirectory>%TEST_TEMP%\\results</ResultsDirectory></RunConfiguration></RunSettings>"; var doc = new XmlDocument(); doc.LoadXml(runSettingsXML); var currentAssemblyLocation = typeof(ClientUtilitiesTests).GetTypeInfo().Assembly.Location; ClientUtilities.FixRelativePathsInRunSettings(doc, currentAssemblyLocation); var finalSettingsXml = doc.OuterXml; var expectedPath = $"{Environment.GetEnvironmentVariable("TEST_TEMP")}\\results"; var expectedSettingsXml = string.Concat( "<RunSettings><RunConfiguration><ResultsDirectory>", expectedPath, "</ResultsDirectory></RunConfiguration><RunSettingsDirectory>", Path.GetDirectoryName(currentAssemblyLocation), "</RunSettingsDirectory></RunSettings>"); Assert.AreEqual(expectedSettingsXml, finalSettingsXml); } finally { Environment.SetEnvironmentVariable("TEST_TEMP", null); } }
public override void Render() { if (!Visible) { return; } TheClient.SetEnts(); BEPUutilities.RigidTransform rt = new BEPUutilities.RigidTransform(GetPosition().ToBVector(), GetOrientation()); BEPUutilities.Vector3 bmin; BEPUutilities.Vector3 bmax; BEPUutilities.RigidTransform.Transform(ref ModelMin, ref rt, out bmin); BEPUutilities.RigidTransform.Transform(ref ModelMax, ref rt, out bmax); if (TheClient.MainWorldView.CFrust != null && !TheClient.MainWorldView.CFrust.ContainsBox(bmin, bmax)) { return; } Matrix4d orient = GetOrientationMatrix(); Matrix4d mat = (Matrix4d.Scale(ClientUtilities.ConvertD(scale)) * orient * Matrix4d.CreateTranslation(ClientUtilities.ConvertD(GetPosition()))); TheClient.MainWorldView.SetMatrix(2, mat); TheClient.Rendering.SetMinimumLight(0.0f); if (model.Meshes[0].vbo.Tex == null) { TheClient.Textures.White.Bind(); } model.Draw(); // TODO: Animation? }
public void Create() { if (!Exists) { Src = AL.GenSource(); AL.Source(Src, ALSourcei.Buffer, Effect.Internal); AL.Source(Src, ALSourceb.Looping, Loop); if (Pitch != 1f) { UpdatePitch(); } if (Gain != 1f) { UpdateGain(); } if (!Position.IsNaN()) { Vector3 zero = Vector3.Zero; Vector3 vec = ClientUtilities.Convert(Position); AL.Source(Src, ALSource3f.Direction, ref zero); AL.Source(Src, ALSource3f.Velocity, ref zero); AL.Source(Src, ALSource3f.Position, ref vec); AL.Source(Src, ALSourceb.SourceRelative, false); AL.Source(Src, ALSourcef.EfxAirAbsorptionFactor, 1f); } else { AL.Source(Src, ALSourceb.SourceRelative, true); } Exists = true; } }
public void SquishGrassSwing(Vector4 swinger) { if (!TheClient.CVars.r_compute.ValueB) { return; } Location spos = new Location(swinger.X, swinger.Y, swinger.Z); double maxdist = (swinger.W + Chunk.CHUNK_SIZE) * (swinger.W + Chunk.CHUNK_SIZE) * 4; GL.UseProgram(Shader_Compute_Grass_Swing); foreach (Chunk chk in LoadedChunks.Values) { Location cwor = chk.WorldPosition.ToLocation() * Chunk.CHUNK_SIZE; Location wpos = cwor + new Location(Chunk.CHUNK_SIZE * 0.5); if (chk.Plant_C > 0 && chk.Plant_VAO > 0 && wpos.DistanceSquared(spos) < maxdist) { Location relp = spos - cwor; GL.Uniform1(11, (uint)chk.Plant_C); GL.Uniform4(12, new Vector4(ClientUtilities.Convert(relp), swinger.W)); GL.Uniform1(13, (float)GlobalTickTimeLocal); GL.Uniform1(14, (float)Delta); GL.BindBufferBase(BufferRangeTarget.ShaderStorageBuffer, 1, chk.Plant_VBO_Pos); GL.BindBufferBase(BufferRangeTarget.ShaderStorageBuffer, 2, chk.Plant_VBO_Tcs); GL.DispatchCompute(chk.Plant_C / 90 + 1, 1, 1); } } GL.BindBufferBase(BufferRangeTarget.ShaderStorageBuffer, 1, 0); GL.BindBufferBase(BufferRangeTarget.ShaderStorageBuffer, 2, 0); GraphicsUtil.CheckError("Squishing Grass"); }
public override void Render() { if (!Visible || model.Meshes.Count == 0) { return; } TheClient.SetEnts(); RigidTransform rt = new RigidTransform(Body.Position, Body.Orientation); BEPUutilities.Vector3 bmin; BEPUutilities.Vector3 bmax; RigidTransform.Transform(ref ModelMin, ref rt, out bmin); RigidTransform.Transform(ref ModelMax, ref rt, out bmax); if (TheClient.MainWorldView.CFrust != null && !TheClient.MainWorldView.CFrust.ContainsBox(bmin, bmax)) { return; } Matrix4d orient = GetOrientationMatrix(); Matrix4d mat = transform * (Matrix4d.Scale(ClientUtilities.ConvertD(scale)) * orient * Matrix4d.CreateTranslation(ClientUtilities.ConvertD(GetPosition()))); TheClient.MainWorldView.SetMatrix(2, mat); TheClient.Rendering.SetMinimumLight(0.0f); if (model.Meshes[0].vbo.Tex == null) { TheClient.Textures.White.Bind(); } if (TheClient.CVars.r_fast.ValueB || !TheClient.CVars.r_lighting.ValueB) { OpenTK.Vector4 sadj = TheRegion.GetSunAdjust(); float skyl = TheRegion.GetSkyLightBase(GetPosition() + new Location(0, 0, ModelMax.Z)); TheClient.Rendering.SetColor(new OpenTK.Vector4(sadj.X * skyl, sadj.Y * skyl, sadj.Z * skyl, 1.0f)); } model.Draw(); // TODO: Animation(s)? }
public async Task GivenUserIdIsNotAuthorizedUser_ReturnUnauthorizedStatusCode() { var client = await _factory.GetAuthenticatedClientAsync("Moderator"); var command = new UpdatePetCommand { Name = "Wau", Age = 5, Gender = Domain.Enums.Gender.Male, Weight = 0.2, Height = 0.3, IsSterilized = true, Description = "Something about", PhotoCode = "", CategoryId = 1, UserId = 4 }; var content = ClientUtilities.GetRequestContent(command); var validPetId = 1; var response = await client.PutAsync($"/api/pets/{validPetId}", content); Assert.Equal(HttpStatusCode.Unauthorized, response.StatusCode); }
private IXPathNavigable GetRunSettingsDocument(string runSettingsFile) { IXPathNavigable runSettingsDocument; if (!MSTestSettingsUtilities.IsLegacyTestSettingsFile(runSettingsFile)) { using (XmlReader reader = this.GetReaderForFile(runSettingsFile)) { var settingsDocument = new XmlDocument(); settingsDocument.Load(reader); ClientUtilities.FixRelativePathsInRunSettings(settingsDocument, runSettingsFile); #if NET451 runSettingsDocument = settingsDocument; #else runSettingsDocument = settingsDocument.ToXPathNavigable(); #endif } } else { runSettingsDocument = XmlRunSettingsUtilities.CreateDefaultRunSettings(); runSettingsDocument = MSTestSettingsUtilities.Import(runSettingsFile, runSettingsDocument, Architecture.X86, FrameworkVersion.Framework45); } return(runSettingsDocument); }
public void PublishDealbreakerEvent(Player thief, Player victim, List <Card> monopoly) { PropertyType monopolyColor = ClientUtilities.GetCardListColor(monopoly); string eventLine = $"{thief.Name} would like to steal the {monopolyColor.ToString()} monopoly from {victim.Name}"; this.PublishEvent(eventLine); }
public void FixRelativePathsInRunSettingsShouldExpandEnvironmentVariable() { var runSettingsXML = "<RunSettings><RunConfiguration><ResultsDirectory>%temp%\\results</ResultsDirectory></RunConfiguration></RunSettings>"; var doc = new XmlDocument(); doc.LoadXml(runSettingsXML); var currentAssemblyLocation = typeof(ClientUtilitiesTests).GetTypeInfo().Assembly.Location; ClientUtilities.FixRelativePathsInRunSettings(doc, currentAssemblyLocation); var finalSettingsXml = doc.OuterXml; var expectedPath = Environment.ExpandEnvironmentVariables("%temp%\\results"); var expectedSettingsXml = string.Concat( "<RunSettings><RunConfiguration><ResultsDirectory>", expectedPath, "</ResultsDirectory></RunConfiguration><RunSettingsDirectory>", Path.GetDirectoryName(currentAssemblyLocation), "</RunSettingsDirectory></RunSettings>"); Assert.AreEqual(expectedSettingsXml, finalSettingsXml); }
public void FixRelativePathsInRunSettingsShouldModifyRelativeTestSettingsFilePath() { var runSettingsXML = "<RunSettings><MSTest><SettingsFile>..\\remote.testsettings</SettingsFile></MSTest></RunSettings>"; var doc = new XmlDocument(); doc.LoadXml(runSettingsXML); var currentAssemblyLocation = typeof(ClientUtilitiesTests).GetTypeInfo().Assembly.Location; ClientUtilities.FixRelativePathsInRunSettings(doc, currentAssemblyLocation); var finalSettingsXml = doc.OuterXml; var expectedPath = Path.GetFullPath(Path.Combine( Path.GetDirectoryName(currentAssemblyLocation), "..\\remote.testsettings")); var expectedSettingsXml = string.Concat( "<RunSettings><MSTest><SettingsFile>", expectedPath, "</SettingsFile></MSTest><RunSettingsDirectory>", Path.GetDirectoryName(currentAssemblyLocation), "</RunSettingsDirectory></RunSettings>"); Assert.AreEqual(expectedSettingsXml, finalSettingsXml); }
public void DrawLOD(Location pos) { if (LODHelper == null) { return; } Vector3 vpos = ClientUtilities.Convert(pos - Engine.TheClient.MainWorldView.RenderRelative); GL.BindTexture(TextureTarget.Texture2D, LODHelper[0]); Vector3 wid = ClientUtilities.Convert(LODBox.Max - LODBox.Min); Vector3 offs = new Vector3(-0.5f, -0.5f, 0f); Matrix4 off1 = Matrix4.CreateTranslation(offs); //Matrix4 off2 = Matrix4.CreateTranslation(-offs); Engine.TheClient.Rendering.RenderRectangle3D(off1 * Matrix4.CreateScale(wid.X, wid.Z, 1f) * Matrix4.CreateRotationX((float)Math.PI * 0.5f) * Matrix4.CreateRotationZ((float)Math.PI * 0.25f) * Matrix4.CreateTranslation(vpos)); GL.BindTexture(TextureTarget.Texture2D, LODHelper[1]); Engine.TheClient.Rendering.RenderRectangle3D(off1 * Matrix4.CreateScale(wid.X, wid.Z, 1f) * Matrix4.CreateRotationX((float)Math.PI * 0.5f) * Matrix4.CreateRotationZ((float)Math.PI * 0.75f) * Matrix4.CreateTranslation(vpos)); GL.BindTexture(TextureTarget.Texture2D, LODHelper[2]); Engine.TheClient.Rendering.RenderRectangle3D(off1 * Matrix4.CreateScale(wid.Y, wid.Z, 1f) * Matrix4.CreateRotationX((float)Math.PI * 0.5f) * Matrix4.CreateRotationZ((float)Math.PI * -0.25f) * Matrix4.CreateTranslation(vpos)); GL.BindTexture(TextureTarget.Texture2D, LODHelper[3]); Engine.TheClient.Rendering.RenderRectangle3D(off1 * Matrix4.CreateScale(wid.Y, wid.Z, 1f) * Matrix4.CreateRotationX((float)Math.PI * 0.5f) * Matrix4.CreateRotationZ((float)Math.PI * -0.75f) * Matrix4.CreateTranslation(vpos)); GL.BindTexture(TextureTarget.Texture2D, LODHelper[4]); Engine.TheClient.Rendering.RenderRectangle3D(off1 * Matrix4.CreateScale(wid.Z, wid.X, 1f) * Matrix4.CreateTranslation(vpos + new Vector3(0, 0, (float)LODBox.Max.Z))); GL.BindTexture(TextureTarget.Texture2D, LODHelper[5]); Engine.TheClient.Rendering.RenderRectangle3D(off1 * Matrix4.CreateScale(wid.Z, wid.X, 1f) * Matrix4.CreateRotationX((float)Math.PI) * Matrix4.CreateTranslation(vpos + new Vector3(0, 0, (float)LODBox.Max.Z))); GL.BindTexture(TextureTarget.Texture2D, 0); }
public override void Reposition(Location pos) { EyePos = pos; InternalLights[0].NeedsUpdate = true; InternalLights[0].eye = ClientUtilities.ConvertD(EyePos); InternalLights[0].target = ClientUtilities.ConvertD(EyePos + Direction); }
public void RenderGrass() { if (TheClient.MainWorldView.FBOid == FBOID.FORWARD_SOLID) { TheClient.s_forw_grass = TheClient.s_forw_grass.Bind(); } else if (TheClient.MainWorldView.FBOid == FBOID.MAIN) { TheClient.s_fbo_grass = TheClient.s_fbo_grass.Bind(); } else { return; } TheClient.Textures.GetTexture("blocks/transparent/tallgrass").Bind(); // TODO: Cache! GL.UniformMatrix4(1, false, ref TheClient.MainWorldView.PrimaryMatrix); GL.Uniform1(6, (float)GlobalTickTimeLocal); GL.Uniform3(7, ClientUtilities.Convert(ActualWind)); TheClient.Rendering.SetColor(GetSunAdjust()); foreach (Chunk chunk in chToRender) { if (chunk.Plant_VAO != -1) { Matrix4d mat = Matrix4d.CreateTranslation(ClientUtilities.ConvertD(chunk.WorldPosition.ToLocation() * Chunk.CHUNK_SIZE)); TheClient.MainWorldView.SetMatrix(2, mat); GL.BindVertexArray(chunk.Plant_VAO); GL.DrawElements(PrimitiveType.Points, chunk.Plant_C, DrawElementsType.UnsignedInt, IntPtr.Zero); } } TheClient.isVox = true; TheClient.SetEnts(); }
public int RenderSide(int side, Model model, AABB box, int fbo, Vector3 forw, Vector3 up, Matrix4d ortho) { int tex = GL.GenTexture(); GL.ActiveTexture(TextureUnit.Texture0); GL.BindTexture(TextureTarget.Texture2D, tex); GL.TexImage2D(TextureTarget.Texture2D, 0, PixelInternalFormat.Rgba, TWIDTH, TWIDTH, 0, PixelFormat.Rgba, PixelType.UnsignedByte, IntPtr.Zero); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMinFilter, (int)TextureMinFilter.Linear); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureMagFilter, (int)TextureMagFilter.Linear); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapS, (int)TextureWrapMode.ClampToEdge); GL.TexParameter(TextureTarget.Texture2D, TextureParameterName.TextureWrapT, (int)TextureWrapMode.ClampToEdge); GL.BindTexture(TextureTarget.Texture2D, 0); GL.BindFramebuffer(FramebufferTarget.Framebuffer, fbo); GL.FramebufferTexture2D(FramebufferTarget.Framebuffer, FramebufferAttachment.ColorAttachment0, TextureTarget.Texture2D, tex, 0); GL.FramebufferTexture2D(FramebufferTarget.Framebuffer, FramebufferAttachment.DepthAttachment, TextureTarget.Texture2D, DepthTex, 0); GL.ClearBuffer(ClearBuffer.Color, 0, new float[] { 0f, 0f, 0f, 1f }); // TODO: Swap 1f to 0f when the model is placed more correctly GL.ClearBuffer(ClearBuffer.Depth, 0, new float[] { 1f }); Matrix4 view = Matrix4.LookAt(Vector3.Zero, forw, up); Matrix4 mat = view * ClientUtilities.Convert(ortho); TheClient.s_forw.Bind(); GL.UniformMatrix4(1, false, ref mat); GL.UniformMatrix4(2, false, ref View3D.IdentityMatrix); GL.Uniform4(3, Vector4.One); GL.Uniform4(12, Vector4.Zero); model.Draw(); TheClient.s_forw_trans.Bind(); GL.UniformMatrix4(1, false, ref mat); GL.UniformMatrix4(2, false, ref View3D.IdentityMatrix); GL.Uniform4(3, Vector4.One); GL.Uniform4(12, Vector4.Zero); model.Draw(); GL.BindFramebuffer(FramebufferTarget.Framebuffer, 0); return(tex); }
public static void CallQuoteService(string ticker, string quoteType, DateTime?date) { SqlDataRecord record = new SqlDataRecord( new SqlMetaData("Ticker", SqlDbType.VarChar, 20), new SqlMetaData("Date", SqlDbType.DateTime, -1), new SqlMetaData("Open", SqlDbType.Decimal, -1), new SqlMetaData("Close", SqlDbType.Decimal, -1), new SqlMetaData("High", SqlDbType.Decimal, -1), new SqlMetaData("Low", SqlDbType.Decimal, -1), new SqlMetaData("Wap", SqlDbType.Decimal, -1), new SqlMetaData("Volume", SqlDbType.BigInt, -1), new SqlMetaData("ErrorMessage", SqlDbType.VarChar, -1) ); try { SqlPipe sqlPip = SqlContext.Pipe; var result = ClientUtilities.GetQuote(ticker, quoteType, date.Value); record.SetString(0, result.Ticker); record.SetDateTime(1, result.Date); record.SetDecimal(2, (decimal)result.Open); record.SetDecimal(3, (decimal)result.Close); record.SetDecimal(4, (decimal)result.High); record.SetDecimal(5, (decimal)result.Low); record.SetDecimal(6, (decimal)result.Wap); record.SetInt64(7, result.Volume); record.SetString(8, result.ErrorMessage); SqlContext.Pipe.Send(record); } catch (Exception ex) { record.SetString(8, ex.Message); SqlContext.Pipe.Send(record); } }
public void Create() { if (!Exists) { if (Engine.AudioInternal != null) { AudioInternal = new LiveAudioInstance() { Clip = Effect.Clip, Gain = Gain, Loop = Loop, Pitch = Pitch, Position = Position, Velocity = Location.Zero, // TODO: Velocity! // TODO: Direction? UsePosition = !Position.IsNaN() }; } else { Engine.CheckError("PRECREATE:" + Effect.Name); Src = AL.GenSource(); if (Src < 0 || AL.GetError() != ALError.NoError) { Src = -1; return; } AL.Source(Src, ALSourcei.Buffer, Effect.Internal); AL.Source(Src, ALSourceb.Looping, Loop); Engine.CheckError("Preconfig:" + Effect.Name); if (Pitch != 1f) { UpdatePitch(); } if (Gain != 1f) { UpdateGain(); } Engine.CheckError("GP:" + Effect.Name); if (!Position.IsNaN()) { Vector3 zero = Vector3.Zero; Vector3 vec = ClientUtilities.Convert(Position); AL.Source(Src, ALSource3f.Direction, ref zero); AL.Source(Src, ALSource3f.Velocity, ref zero); AL.Source(Src, ALSource3f.Position, ref vec); AL.Source(Src, ALSourceb.SourceRelative, false); AL.Source(Src, ALSourcef.EfxAirAbsorptionFactor, 1f); Engine.CheckError("Positioning:" + Effect.Name); } else { AL.Source(Src, ALSourceb.SourceRelative, true); Engine.CheckError("Relative:" + Effect.Name); } } Exists = true; } }
public override OpenTK.Matrix4 GetMatrix() { Vector3d c = ClientUtilities.ConvertD(Client.Central.MainWorldView.RenderRelative); Vector3d e = eye - c; Vector3d d = target - c; return(Matrix4.LookAt(new Vector3((float)e.X, (float)e.Y, (float)e.Z), new Vector3((float)d.X, (float)d.Y, (float)d.Z), up) * Matrix4.CreateOrthographicOffCenter(-FOV * 0.5f, FOV * 0.5f, -FOV * 0.5f, FOV * 0.5f, 1, maxrange)); }
public OpenTK.Matrix4d GetOrientationMatrix() { if (Body == null) { return(OpenTK.Matrix4d.Identity); } return(ClientUtilities.ConvertD(Matrix3x3.ToMatrix4X4(Body.OrientationMatrix))); }
public override void Render() { TheClient.SetVox(); Matrix4d mat = Matrix4d.CreateTranslation(-ClientUtilities.ConvertD(Offset)) * GetTransformationMatrix(); TheClient.MainWorldView.SetMatrix(2, mat); vbo.Render(false); }
/// <summary> /// Gets the transformation matrix of this entity as an OpenTK matrix. /// </summary> /// <returns>.</returns> public OpenTK.Matrix4d GetTransformationMatrix() { if (Body == null) { return(ClientUtilities.ConvertD(WorldTransform)); } return(ClientUtilities.ConvertD(Body.WorldTransform)); }
public virtual Matrix4 GetMatrix() { Vector3d c = ClientUtilities.ConvertD(Client.Central.MainWorldView.RenderRelative); Vector3d e = eye - c; Vector3d d = target - c; return(Matrix4.LookAt(new Vector3((float)e.X, (float)e.Y, (float)e.Z), new Vector3((float)d.X, (float)d.Y, (float)d.Z), up) * Matrix4.CreatePerspectiveFieldOfView(FOV * (float)Math.PI / 180f, 1, 0.1f, maxrange)); }
public OpenTK.Vector4 GetLightAmountAdjusted(Location pos, Location norm) { OpenTK.Vector4 vec = new OpenTK.Vector4(ClientUtilities.Convert(GetLightAmount(pos, norm, null)), 1.0f) * GetSunAdjust(); if (TheClient.CVars.r_fast.ValueB) { return(Regularize(vec)); } return(RegularizeBig(vec, 5f)); }
public void Render() { if (_VBO != null && _VBO.generated) { Matrix4d mat = Matrix4d.CreateTranslation(ClientUtilities.ConvertD(WorldPosition.ToLocation() * CHUNK_SIZE)); OwningRegion.TheClient.MainWorldView.SetMatrix(2, mat); _VBO.Render(OwningRegion.TheClient.RenderTextures); } }
public async Task GivenUserIsAdmin_ReturnNotEmptyList() { var client = await _factory.GetAuthenticatedClientAsync(); var response = await client.GetAsync("/api/comments"); var result = await ClientUtilities.GetResponseContent <List <GetAllCommentsQueryResponse> >(response); Assert.IsType <List <GetAllCommentsQueryResponse> >(result); Assert.NotEmpty(result); }
/// <summary> /// Map overview render. /// </summary> public override void RenderForMap() { if (GenBlockShadows) { if (!Visible || model.Meshes.Count == 0) { return; } model.DrawLOD(GetPosition() + ClientUtilities.ConvertD(transform.ExtractTranslation())); } }
/// <summary> /// Renders a line box. /// </summary> public void RenderLineBox(Location min, Location max, Matrix4d?rot = null) { Engine.White.Bind(); Location halfsize = (max - min) / 2; Matrix4d mat = Matrix4d.Scale(ClientUtilities.ConvertD(halfsize)) * (rot != null && rot.HasValue ? rot.Value : Matrix4d.Identity) * Matrix4d.CreateTranslation(ClientUtilities.ConvertD(min + halfsize)); Client.Central.MainWorldView.SetMatrix(2, mat); // TODO: Client reference! GL.BindVertexArray(Box._VAO); GL.DrawElements(PrimitiveType.Lines, 24, DrawElementsType.UnsignedInt, IntPtr.Zero); }
public override void Render() { TheClient.SetEnts(); if (TheClient.RenderTextures) { TheClient.Textures.White.Bind(); } if (model != null) { TheClient.Rendering.SetMinimumLight(0f); BEPUutilities.Matrix matang = BEPUutilities.Matrix.CreateFromQuaternion(Angles); //matang.Transpose(); Matrix4d matang4 = new Matrix4d(matang.M11, matang.M12, matang.M13, matang.M14, matang.M21, matang.M22, matang.M23, matang.M24, matang.M31, matang.M32, matang.M33, matang.M34, matang.M41, matang.M42, matang.M43, matang.M44); Matrix4d mat = matang4 * Matrix4d.CreateTranslation(ClientUtilities.ConvertD(GetPosition())); TheClient.MainWorldView.SetMatrix(2, mat); model.Draw(); // TODO: Animation? if (model.Name == "projectiles/arrow.dae") { float offs = 0.1f; BEPUutilities.Vector3 offz; BEPUutilities.Quaternion.TransformZ(offs, ref Angles, out offz); BEPUutilities.Vector3 offx; BEPUutilities.Quaternion.TransformX(offs, ref Angles, out offx); TheClient.Particles.Engine.AddEffect(ParticleEffectType.LINE, (o) => ppos + new Location(offz), (o) => Position + new Location(offz), (o) => 1f, 1f, Location.One, Location.One, true, TheClient.Textures.GetTexture("common/smoke"), 0.5f); TheClient.Particles.Engine.AddEffect(ParticleEffectType.LINE, (o) => ppos - new Location(offz), (o) => Position - new Location(offz), (o) => 1f, 1f, Location.One, Location.One, true, TheClient.Textures.GetTexture("common/smoke"), 0.5f); TheClient.Particles.Engine.AddEffect(ParticleEffectType.LINE, (o) => ppos + new Location(offx), (o) => Position + new Location(offx), (o) => 1f, 1f, Location.One, Location.One, true, TheClient.Textures.GetTexture("common/smoke"), 0.5f); TheClient.Particles.Engine.AddEffect(ParticleEffectType.LINE, (o) => ppos - new Location(offx), (o) => Position - new Location(offx), (o) => 1f, 1f, Location.One, Location.One, true, TheClient.Textures.GetTexture("common/smoke"), 0.5f); ppos = Position; } } else { TheClient.Rendering.SetMinimumLight(1f); TheClient.Rendering.SetColor(Color4.DarkRed); TheClient.Rendering.RenderCylinder(GetPosition(), GetPosition() - Velocity / 20f, 0.01f); TheClient.Particles.Engine.AddEffect(ParticleEffectType.CYLINDER, (o) => ppos, (o) => Position, (o) => 0.01f, 2f, Location.One, Location.One, true, TheClient.Textures.GetTexture("white")); ppos = Position; TheClient.Rendering.SetColor(Color4.White); } }
public override void Render() { if (vbo == null) { return; } TheClient.SetVox(); OpenTK.Matrix4d mat = OpenTK.Matrix4d.Scale(ClientUtilities.ConvertD(scale)) * OpenTK.Matrix4d.CreateTranslation(ClientUtilities.ConvertD(shapeOffs)) * GetTransformationMatrix(); TheClient.MainWorldView.SetMatrix(2, mat); TheClient.Rendering.SetColor(Color, TheClient.MainWorldView); vbo.Render(); TheClient.Rendering.SetColor(Color4.White, TheClient.MainWorldView); }
/// <summary> /// Render a cylinder between two points. /// </summary> /// <param name="start">The initial point.</param> /// <param name="end">The ending point.</param> /// <param name="width">The width of the cylinder.</param> public void RenderCylinder(Location start, Location end, float width) { float len = (float)(end - start).Length(); Location vecang = Utilities.VectorToAngles(start - end); Matrix4d mat = Matrix4d.CreateRotationY((float)(90 * Utilities.PI180)) * Matrix4d.Scale(len, width, width) * Matrix4d.CreateRotationY((float)(vecang.Y * Utilities.PI180)) * Matrix4d.CreateRotationZ((float)(vecang.Z * Utilities.PI180)) * Matrix4d.CreateTranslation(ClientUtilities.ConvertD(start)); Client.Central.MainWorldView.SetMatrix(2, mat); Client.Central.Models.Cylinder.Draw(); // TODO: Models reference in constructor - or client reference? }
public async Task GivenUserIsAdminAndValidCommentId_ReturnOkStatusCode() { var client = await _factory.GetAuthenticatedClientAsync(); var validId = 1; var response = await client.GetAsync($"/api/comments/{validId}"); var result = await ClientUtilities.GetResponseContent <GetCommentByIdQueryResponse>(response); Assert.Equal(HttpStatusCode.OK, response.StatusCode); Assert.IsType <GetCommentByIdQueryResponse>(result); }