private void TriangleDied(Vector3 position, Enums.EntityType triangleType) { for (int i = 0; i < 10; i++) { TriangleEntity triangle = new TriangleEntity(triangleType, position, Vector3.Zero, 0.3f, new BoomMovement()); triangle.TriangleDied += (p) => EntitiesToDelete.Add(triangle); Entities.Add(triangle); } }
/// <inheritdoc /> /// <summary> /// Gets Triangle type. /// </summary> /// <returns>Returns TriangleT type.</returns> public TriangleType GetTriangleType() { try { return(TriangleEntity.FindTriangle()); } catch (InvalidOperationException invalOperaEx) { throw invalOperaEx; } catch (Exception ex) { throw ex; } }
public MainModel() { Entities.Add(new Entity(Enums.EntityType.Nvidia, new Vector3(5, 15, 0), new Vector3((float)Math.PI, (float)Math.PI / 2, (float)Math.PI / 30), 1f)); _orbit1 = new Orbit(new Vector3(2, 0, 0), new Vector3(0, 0.5f, 0), new Vector3(0, 0, 0), Vector3.Zero); Entities.Add(new Entity(Enums.EntityType.Radeon, new Vector3(5, 15, 0), new Vector3((float)Math.PI, (float)Math.PI / 2, (float)Math.PI / 30), 1f)); _orbit2 = new Orbit(new Vector3(2, 0, 0), new Vector3(0, 0.5f, 0), new Vector3(0, 0, 0), new Vector3(0, (float)Math.PI, 0)); Entities.Add(new Entity(Enums.EntityType.Sphere, new Vector3(0f, 10f, 0f), new Vector3(2, 0, 0.5f), 3f)); for (int i = 0; i < 6; i++) { TriangleEntity triangle = new TriangleEntity(Enums.EntityType.NvidiaParticle, new Vector3(5, 15, 0), Vector3.Zero, 0.4f, new ArchMovement(i * 2)); triangle.TriangleDied += (position) => TriangleDied(position, triangle.Type); Entities.Add(triangle); _baseTriangleIndices.Add(Entities.Count - 1); } for (int i = 0; i < 6; i++) { TriangleEntity triangle = new TriangleEntity(Enums.EntityType.RadeonParticle, new Vector3(5, 15, 0), Vector3.Zero, 0.4f, new ArchMovement(i * 2)); triangle.TriangleDied += (position) => TriangleDied(position, triangle.Type); Entities.Add(triangle); _baseTriangleIndices.Add(Entities.Count - 1); } Entities.Add(new Entity(Enums.EntityType.Voronoi, Vector3.Zero, Vector3.Zero, 1)); }
/// <inheritdoc /> /// <summary> /// Checks if passed Triangle values are greater than Zero. /// </summary> /// <param name="entity">Triangle entity object.</param> /// <returns>Returns error string if values are invalid.</returns> /// <exception cref="ArgumentNullException"></exception> /// <exception cref="ArgumentException"></exception> /// <exception cref="Exception"></exception> public string GreaterThanZero(TriangleEntity entity) { try { if (entity.Length <= 0 || entity.Height <= 0 || entity.Base <= 0) { return("Some Triangle values are equal or less than zero."); } return(string.Empty); } catch (ArgumentNullException argNullEx) { throw argNullEx; } catch (ArgumentException argEx) { throw argEx; } catch (Exception ex) { throw ex; } }
/// <summary> /// Checks if two sides summation are greater than the third side. /// </summary> /// <param name="entity">Triangle entity object.</param> /// <returns>Returns error string if values are invalid.</returns> /// <exception cref="ArgumentNullException"></exception> /// <exception cref="ArgumentException"></exception> /// <exception cref="Exception"></exception> public string AxisesValidForTriangle(TriangleEntity entity) { try { if (!(entity.Length + entity.Height > entity.Base) || !(entity.Length + entity.Base > entity.Height) || !(entity.Height + entity.Base > entity.Length)) { return(TriangleType.Unknown + " triangle type. Triangle passed values are invalid."); } return(string.Empty); } catch (ArgumentNullException argNullEx) { throw argNullEx; } catch (ArgumentException argEx) { throw argEx; } catch (Exception ex) { throw ex; } }
public static IntersectTriangleResult?IntersectTriangle(this RayEntity rayEntity, TriangleEntity polygon) { return(rayEntity.IntersectTriangle(polygon.VertexA, polygon.VertexB, polygon.VertexC, polygon.Normal)); }