private void SendToAll(string csv, Reflective data) { if (!__debugInitialized) SetupSimple(); if (string.IsNullOrWhiteSpace(csv)) return; Action<string, Reflective> sendAction; if (__sendActions.TryGetValue(csv, out sendAction)) { sendAction(csv, data); return; } // Simple case. if (!csv.Contains(">>")) { __sendActions[csv] = SendToAllInternal; SendToAllInternal(csv, data); return; } // Chaining System.Collections.Generic.List<string> chainedCommands = new System.Collections.Generic.List<string>(csv.Split(new string[] { ">>" }, StringSplitOptions.RemoveEmptyEntries)); __sendActions[csv] = (_csv, _data) => { string first = chainedCommands[0]; chainedCommands.RemoveAt(0); chainedCommands.Add(first); Log.Write(LogLevel.Info, "CHAIN Sending to " + first); SendToAllInternal(first, _data); }; __sendActions[csv](csv, data); }
private void SendToAllInternal(string csv, Reflective data) { if (string.IsNullOrWhiteSpace(csv)) return; string[] events = csv.Trim().Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries); if (__SimpleDebugging) Log.Write(LogLevel.Info, __SimpleTag, "Sending " + events.Length + " events: " + string.Join(", ", events) + (Group != "" ? (" to group " + Group) : "")); foreach (string eventName in events) { PostScriptEvent(GenerateEventName(eventName), data); } }
internal void SendToAll(Reflective data) { Next(); ThisScript.SimpleLog(LogLevel.Info, "Sending " + Current.Events.Length + " events: " + string.Join(", ", Current.Events)); foreach (string eventName in Current.Events) { ThisScript.PostSimpleEvent(eventName, data); } }
public override int GetHashCode() { unchecked { var hashCode = (Pattern != null ? Pattern.GetHashCode() : 0); hashCode = (hashCode * 397) ^ Ambient.GetHashCode(); hashCode = (hashCode * 397) ^ Diffuse.GetHashCode(); hashCode = (hashCode * 397) ^ Specular.GetHashCode(); hashCode = (hashCode * 397) ^ Reflective.GetHashCode(); hashCode = (hashCode * 397) ^ Shininess; return(hashCode); } }
public override int GetHashCode() { return (Color.GetHashCode() ^ Ambient.GetHashCode() ^ Diffuse.GetHashCode() ^ Specular.GetHashCode() ^ Shininess.GetHashCode() ^ Pattern.GetHashCode() ^ Reflective.GetHashCode() ^ Transparency.GetHashCode() ^ RefractiveIndex.GetHashCode()); }
public override bool Equals(object obj) { var other = obj as Material; return((other != null) && (Color.Equals(other.Color)) && (Ambient.IsEqual(other.Ambient)) && (Diffuse.IsEqual(other.Diffuse)) && (Specular.IsEqual(other.Specular)) && (Shininess.IsEqual(other.Shininess)) && (Reflective.IsEqual(other.Reflective)) && (Transparency.IsEqual(other.Transparency)) && (RefractiveIndex.IsEqual(other.RefractiveIndex))); }
private void EnsureUpdateIsGranted <T>(object newVal, T existingObj, string existingPropertyName, bool isReadonly) { var oldValue = Reflective.GetValue <object>(existingObj, existingPropertyName); // if it's an enum, cast it to ints int representation if (oldValue?.GetType().IsEnum ?? false) { oldValue = (int)Enum.Parse(oldValue.GetType(), oldValue.ToString()); } if (!Equals(newVal, oldValue) && isReadonly) { throw new ForbiddenException($"Update on field {existingPropertyName} is not allowed, but server received updated values"); } }
private void SendToAll(string csv, Reflective data) { if (!__debugInitialized) { SetupSimple(); } if (string.IsNullOrWhiteSpace(csv)) { return; } string[] events = csv.Trim().Split(','); if (__SimpleDebugging) { Log.Write(LogLevel.Info, __SimpleTag, "Sending " + events.Length + " events: " + string.Join(", ", events)); } foreach (string eventName in events) { PostScriptEvent(eventName.Trim(), data); } }
private void InitModelData() { modelData = new JObject(); // inject data var accessRoles = Reflective.GetConstants <string>(typeof(AccessRoles)); var fieldTypes = Reflective.GetConstants <string>(typeof(ElasticFieldTypes)); JsonHelper.AddOrSet(modelData, "accessRoles", JObject.FromObject(accessRoles)); JsonHelper.AddOrSet(modelData, "fieldTypes", JObject.FromObject(fieldTypes)); // types var types = JsonHelper.GetTokenValue <JObject>(modelData, TypesKey, true); if (types != null) { foreach (JProperty property in types.Children()) { var t = ModelType.CreateFrom(property); typesByNameCamelCased[t.Name.ToLowerCamelCase()] = t; } } // templates foreach (var template in TemplateDefinitions.Templates) { var t = ModelType.CreateFrom(template); typesByNameCamelCased[t.Name.ToLowerCamelCase()] = t; } // setup Super foreach (var type in typesByNameCamelCased.Values) { var superName = (type.SuperName ?? string.Empty).ToLowerCamelCase(); if (!string.IsNullOrEmpty(superName) && typesByNameCamelCased.ContainsKey(superName)) { type.Super = typesByNameCamelCased[superName]; } } }
public override int GetHashCode() { var hashCode = 412502415; hashCode = hashCode * -1521134295 + EqualityComparer <Pattern> .Default.GetHashCode(pattern); hashCode = hashCode * -1521134295 + EqualityComparer <Color> .Default.GetHashCode(color); hashCode = hashCode * -1521134295 + ambient.GetHashCode(); hashCode = hashCode * -1521134295 + diffuse.GetHashCode(); hashCode = hashCode * -1521134295 + specular.GetHashCode(); hashCode = hashCode * -1521134295 + shinniness.GetHashCode(); hashCode = hashCode * -1521134295 + reflective.GetHashCode(); hashCode = hashCode * -1521134295 + refractiveIndex.GetHashCode(); hashCode = hashCode * -1521134295 + transparency.GetHashCode(); hashCode = hashCode * -1521134295 + Ambient.GetHashCode(); hashCode = hashCode * -1521134295 + Diffuse.GetHashCode(); hashCode = hashCode * -1521134295 + Specular.GetHashCode(); hashCode = hashCode * -1521134295 + Shinniness.GetHashCode(); hashCode = hashCode * -1521134295 + Reflective.GetHashCode(); hashCode = hashCode * -1521134295 + RefracIndex.GetHashCode(); hashCode = hashCode * -1521134295 + Transparency.GetHashCode(); return(hashCode); }
static void Main(string[] args) { var instances = new Reflective <Base>() .Abstract(() => false) .Lookup() .WithInstances(); foreach (var instance in instances) { instance.Hello(); } var instances2 = new Reflective <Base>() .Abstract(() => false) .Lookup() .FullNames(); foreach (var ins in instances2) { Console.WriteLine(ins); } var instances3 = new Reflective <Base>() .Abstract(() => false) .Lookup() .WithAttribute(() => typeof(DisplayNameAttribute)) .FullNames(); foreach (var ins in instances3) { Console.WriteLine(ins); } Console.ReadKey(); }
protected bool Equals(Material other) { return(Equals(Pattern, other.Pattern) && Ambient.Equals(other.Ambient) && Diffuse.Equals(other.Diffuse) && Specular.Equals(other.Specular) && Shininess == other.Shininess && Reflective.Equals(other.Reflective)); }
public void Build() { lights = new List <PointLight>(); objects = new List <Primitive>(); backgroundColor = RGBColor.BLACK; //camera = new OrthogonalCamera(600, 480); int sceneWidth = 240; int sceneHeight = 240; camera = new PerspectiveCamera(new Vector3(0, 0, 80), new Vector3(0, 0, -1), 50, sceneWidth, sceneHeight); //50 jittered = new Jittered(9); //tracer = new MultipleObjectsTracer(this); tracer = new Whitted(this, 10); Material.Material orangeMaterial = new Phong(Color.Orange, 0.8, 1, 30); Material.Material redMaterial = new Lambertian(Color.PowderBlue); Material.Material blueMaterial = new Lambertian(RGBColor.NAVY_BLUE); Material.Material grayMaterial = new Phong(Color.LightGray, 0.8, 1, 30); Material.Material yellowMaterial = new Phong(Color.Yellow, 0.8, 1, 30); Material.Material skyBlueMaterial = new Phong(Color.SkyBlue, 0.8, 1, 30); Material.Material refMat = new Reflective(RGBColor.WHITE, 0, 1, 350, 1); Material.Material refMat1 = new Reflective(RGBColor.WHITE, 0.5, 1, 350, 0.5); Material.Material lamb = new Lambertian(RGBColor.SKY_BLUE); Material.Material refractiveMat = new Refractive(RGBColor.WHITE, 0, 1, 350, 1); Quad wall1 = new Quad(new Vector3(-30, 30, 30), new Vector3(-30, -30, 30), new Vector3(-15, 15, -15), new Vector3(-15, -15, -15)); //wall1.AddQuadToScene(this, skyBlueMaterial); Triangle t1 = new Triangle(new Vector3(-30, 30, 30), new Vector3(-30, -30, 30), new Vector3(-20, 20, -15), new Vector3(1, 0, 0)); t1.Material = redMaterial; AddObject(t1); Triangle t2 = new Triangle(new Vector3(-30, -30, 30), new Vector3(-20, 20, -15), new Vector3(-20, -20, -15), new Vector3(1, 0, 0)); t2.Material = redMaterial; AddObject(t2); Triangle t3 = new Triangle(new Vector3(30, 30, 30), new Vector3(30, -30, 30), new Vector3(20, 20, -15), new Vector3(-1, 0, 0)); t3.Material = blueMaterial; AddObject(t3); Triangle t4 = new Triangle(new Vector3(30, -30, 30), new Vector3(20, 20, -15), new Vector3(20, -20, -15), new Vector3(-1, 0, 0)); t4.Material = blueMaterial; AddObject(t4); Triangle t5 = new Triangle(new Vector3(-30, -30, 30), new Vector3(-20, -20, -15), new Vector3(30, -30, 30), new Vector3(0, 1, 0)); t5.Material = grayMaterial; AddObject(t5); Triangle t6 = new Triangle(new Vector3(30, -30, 30), new Vector3(-20, -20, -15), new Vector3(20, -20, -15), new Vector3(0, 1, 0)); t6.Material = grayMaterial; AddObject(t6); Triangle t7 = new Triangle(new Vector3(-20, 20, -15), new Vector3(-20, -20, -15), new Vector3(20, 20, -15), new Vector3(0, 0, 1)); t7.Material = grayMaterial; AddObject(t7); Triangle t8 = new Triangle(new Vector3(20, 20, -15), new Vector3(20, -20, -15), new Vector3(-20, -20, -15), new Vector3(0, 0, 1)); t8.Material = grayMaterial; AddObject(t8); Triangle t9 = new Triangle(new Vector3(-30, 30, 30), new Vector3(30, 30, 30), new Vector3(-20, 20, -15), new Vector3(0, -1, 0)); t9.Material = grayMaterial; AddObject(t9); Triangle t10 = new Triangle(new Vector3(30, 30, 30), new Vector3(-20, 20, -15), new Vector3(20, 20, -15), new Vector3(0, -1, 0)); t10.Material = grayMaterial; AddObject(t10); Sphere sphere = new Sphere(new Vector3(-5, 10, 10), 8); sphere.Material = refractiveMat; AddObject(sphere); Sphere sphere1 = new Sphere(new Vector3(10, 0, 12), 5); sphere1.Material = orangeMaterial; AddObject(sphere1); sphere1 = new Sphere(new Vector3(-4, -6, 15), 6); sphere1.Material = refMat; AddObject(sphere1); Plane plane = new Plane(new Vector3(0, -5, 0), new Vector3(0, 1, 0)); plane.Material = orangeMaterial; //AddObject(plane); Mesh mesh = new Mesh("ico.obj"); // mesh.AddModelToScene(this, yellowMaterial); PointLight light = new PointLight(new Vector3(0, 17, 50), RGBColor.WHITE); AddLight(light); /*sphere = new Sphere(new Vector3(0, -10, 0), 5); * sphere.Material = yellowMaterial; * //AddObject(sphere); * * Triangle triangle = new Triangle(new Vector3(0, 0, 10), new Vector3(10, 0, 10), new Vector3(10, 10, 10), new Vector3(0, 0, 1)); * triangle.Material = orangeMaterial; * //AddObject(triangle); * * Mesh mesh = new Mesh("ico.obj"); * mesh.AddModelToScene(this, yellowMaterial); * * Plane plane = new Plane(new Vector3(0,0,-40), new Vector3(0,0,1)); * Material.Material lamb2 = new Lambertian(RGBColor.DARK_SALMON); * Material.Material refMat = new Reflective(RGBColor.GREEN, 0.8, 1, 30, 0.1); * plane.Material = lamb2; * AddObject(plane);*/ // PointLight light = new PointLight(new Vector3(-25, 0, 20), Color.White); // AddLight(light); // PointLight light1 = new PointLight(new Vector3(25, 0, 20), Color.White); // AddLight(light1); // Sphere sphere = new Sphere(new Vector3(0, 0, 0), 10); /* Triangle t7 = new Triangle(new Vector3(0, 0, 0), new Vector3(10, 0, 0), new Vector3(10, 10, 0), new Vector3(0, 0, 1)); * t7.Material = grayMaterial; * * * Bitmap textureBitmap = new Bitmap("test.png"); * RectangularMapping sphericalMapping = new RectangularMapping(); * ImageTexture imageTexture = new ImageTexture(textureBitmap, sphericalMapping); * * LambertianTexture textureMaterial = new LambertianTexture(imageTexture); * * * t7.Material = textureMaterial; * AddObject(t7); * PointLight light = new PointLight(new Vector3(20, 0, 40), Color.White); * AddLight(light);*/ }
protected void SendToAll(string csv, Reflective data) { GetWrapper(SendEventWrappers, csv)?.SendToAll(data); }
public void PostSimpleEvent(string name, Reflective data) { PostScriptEvent(name, data); }
public override void Build() { vp = ViewPlane.Create(1920, 1080, SystemOfCoordinates.SSC_INT); vp.NumSamples = 64; vp.MaxDepth = 10; backgroundColor = ColorUtils.BLACK; tracer = new Whitted(this); Ambient a = new Ambient(); a.ScaleRadiance = 1.0f; AmbientLight = a; Pinhole pinhole = new Pinhole(new Vec3(7.5, 3, 9.5), new Vec3(5.0, 2.5, 0.0), new Vec3(0.0, 1.0, 0.0), 800); Camera = pinhole; PointLight l1 = new PointLight(); l1.Color = ColorUtils.WHITE; l1.SetLocation(10, 10, 0); l1.ScaleRadiance = 2.0f; AddLight(l1); PointLight l2 = new PointLight(); l2.Color = ColorUtils.WHITE; l2.SetLocation(0, 10, 10); l2.ScaleRadiance = 2.0f; AddLight(l2); PointLight l3 = new PointLight(); l3.Color = ColorUtils.WHITE; l3.SetLocation(-10, 10, 0); l3.ScaleRadiance = 2.0f; AddLight(l3); PointLight l4 = new PointLight(); l4.Color = ColorUtils.WHITE; l4.SetLocation(0, 10, -10); l4.ScaleRadiance = 2.0f; AddLight(l4); //sphere Reflective r1 = new Reflective(); r1.SetKa(0.1f); r1.SetKd(0.4f); r1.SetCd(0, 0, 1); r1.SetKs(0.25f); r1.SetExp(100.0f); r1.SetKr(0.85f); r1.SetReflectiveColor(0.75f, 0.75f, 1.0f); //r1.SetSpecularColor(ColorUtils.WHITE); Sphere s1 = new Sphere(new Vec3(0, 0.5, 0), 4); s1.Material = r1; AddObject(s1); //wall double roomSize = 11.0; //floor Matte m1 = new Matte(new Vec3(0.25), 0.1f, 0.50f); Plane floor = new Plane(new Vec3(0, -roomSize, 0), new Vec3(0, 1, 0)); floor.Material = m1; AddObject(floor); //ceiling Matte m2 = new Matte(ColorUtils.WHITE, 0.35f, 0.50f); Plane ceiling = new Plane(new Vec3(0, roomSize, 0), new Vec3(0, -1, 0)); ceiling.Material = m2; AddObject(ceiling); //back Matte m3 = new Matte(new Vec3(0.5, 0.75, 0.75), 0.15f, 0.60f); Plane back = new Plane(new Vec3(0, 0, -roomSize), new Vec3(0, 0, 1)); back.Material = m3; AddObject(back); //front Plane front = new Plane(new Vec3(0, 0, roomSize), new Vec3(0, 0, -1)); front.Material = m3; AddObject(front); //left Matte m4 = new Matte(new Vec3(0.71, 0.40, 0.20), 0.15f, 0.60f); Plane left = new Plane(new Vec3(-roomSize, 0, 0), new Vec3(1, 0, 0)); left.Material = m4; AddObject(left); //front Plane right = new Plane(new Vec3(roomSize, 0, 0), new Vec3(-1, 0, 0)); right.Material = m4; AddObject(right); //mirrors double mirrorSize = 8; double offset = 1.0; Reflective r2 = new Reflective(); r2.SetKa(0.0f); r2.SetKd(0.0f); r2.SetCd(0, 0, 0); r2.SetKs(0.0f); r2.SetExp(2.0f); r2.SetKr(0.9f); r2.SetReflectiveColor(0.9f, 1.0f, 0.9f); //r2.SetSpecularColor(ColorUtils.WHITE); float e = 25000; GlossyReflector g = new GlossyReflector(); g.SetSamples(vp.NumSamples, e); g.SetKa(0.0f); g.SetKd(0.0f); g.SetKs(0.0f); g.SetExp(e); g.SetCd(0, 0, 0); g.SetKr(0.9f); g.SetExponent(e); g.SetReflectiveColor(0.9f, 1.0f, 0.9f); //r.SetSpecularColor(ColorUtils.WHITE); //back Rectangle rect1 = new Rectangle(new Vec3(-mirrorSize, -mirrorSize, -(roomSize - offset)), new Vec3(2.0 * mirrorSize, 0, 0), new Vec3(0, 2.0 * mirrorSize, 0), new Vec3(0, 0, 1), g); AddObject(rect1); //front Rectangle rect2 = new Rectangle(new Vec3(-mirrorSize, -mirrorSize, +(roomSize - offset)), new Vec3(2.0 * mirrorSize, 0, 0), new Vec3(0, 2.0 * mirrorSize, 0), new Vec3(0, 0, -1), g); AddObject(rect2); //left Rectangle rect3 = new Rectangle(new Vec3(-(roomSize - offset), -mirrorSize, mirrorSize), new Vec3(0, 0, -2.0 * mirrorSize), new Vec3(0, 2.0 * mirrorSize, 0), new Vec3(1, 0, 0), r2); AddObject(rect3); // Reflective r3 = new Reflective(); r3.SetKa(0.0f); r3.SetKd(0.0f); r3.SetCd(0, 0, 0); r3.SetKs(0.0f); r3.SetExp(2.0f); r3.SetKr(1.0f); r3.SetReflectiveColor(1.0f, 1.0f, 0.5f); //r3.SetSpecularColor(ColorUtils.WHITE); Rectangle rect4 = new Rectangle(new Vec3(-mirrorSize, -4.0, -mirrorSize), new Vec3(0, 0, 2.0 * mirrorSize), new Vec3(2.0 * mirrorSize, 0, 0), new Vec3(0, 1, 0), r3); AddObject(rect4); }
public override void Build() { vp = ViewPlane.Create(1024, 768, SystemOfCoordinates.SSC_INT); vp.NumSamples = 100; vp.MaxDepth = 10; backgroundColor = new Vec3(0.0, 0.3, 0.25); tracer = new Whitted(this); //AmbientOccluder a = new AmbientOccluder(ColorUtils.WHITE, // 0.25, 1.0); //a.Sampler = new MultiJittered(vp.NumSamples); Ambient a = new Ambient(); a.ScaleRadiance = 0.25f; AmbientLight = a; Pinhole pinhole = new Pinhole(new Vec3(1, 7.5, 20), new Vec3(0.0, -0.35, 0.0), new Vec3(0.0, 1.0, 0.0), 5250); Camera = pinhole; Emissive e = new Emissive(); e.ScaleRadiance = 3.0f; e.Ce = ColorUtils.WHITE; RectangularLamp lamp = new RectangularLamp( new Rectangle(new Vec3(0, 20, 0), new Vec3(1, 0, 0), new Vec3(0, 0, 1), new Vec3(0, -1, 0)), e); lamp.Sampler = new MultiJittered(vp.NumSamples); AddObject(lamp); AreaLight areaLight = new AreaLight(); areaLight.Object = lamp; areaLight.Shadows = true; AddLight(areaLight); //PointLight l = new PointLight(); //l.SetLocation(20, 20, 15); //l.ScaleRadiance = 3.0f; //AddLight(l); Transparent glass = new Transparent(); glass.SetKs(0.5f); glass.SetExp(2000); glass.SetIor(1.5f); glass.SetKr(0.1f); glass.SetKt(1.53f); //glass.SetCd(0.4f); float ir = 0.9f; float or = 1; //Bowl b = Bowl.CreateFlatRimmedBowl(ir, or); Bowl b = Bowl.CreateRoundRimmedBowl(ir, or); b.Material = glass; AddObject(b); Reflective reflective = new Reflective(); reflective.SetKa(0.6f); reflective.SetKd(0.4f); reflective.SetCd(ColorUtils.RED); reflective.SetKs(0.5f); reflective.SetExp(2000); reflective.SetKr(0.25f); double r = 0.4; double t = 55; t = MathUtils.PI * t / 180; double x = -(0.9 - r) * Math.Cos(t); double y = -(0.9 - r) * Math.Sin(t); Sphere s = new Sphere(new Vec3(x, y, 0), r, reflective); AddObject(s); Reflective reflective2 = new Reflective(); reflective2.SetKa(0.6f); reflective2.SetKd(0.4f); reflective2.SetCd(ColorUtils.YELLOW); reflective2.SetKs(0.5f); reflective2.SetExp(2000); reflective2.SetKr(0.5f); r = 0.35; t = 35; t = MathUtils.PI * t / 180; x = (0.9 - r) * Math.Cos(t); y = -(0.9 - r) * Math.Sin(t); Sphere s2 = new Sphere(new Vec3(x, y, 0), r, reflective2); AddObject(s2); Matte rm = new Matte(); rm.SetColor(ColorUtils.WHITE); rm.SetKa(0.8f); rm.SetKd(0.85f); Rectangle rectangle = new Rectangle(new Vec3(-2, -1, -5), new Vec3(0, 0, 9), new Vec3(4, 0, 0)); rectangle.Material = rm; AddObject(rectangle); }
public static T GetServerSettings <T>() where T : SettingsEntry { var relativePath = Reflective.GetValue <string>(typeof(T), "RelativePath"); return(GetServerSettings <T>(relativePath)); }
private async Task <IHttpActionResult> UpdateOrderItem([FromBody] OrderingFlatItem flatItem, ModulFunktionsblock modulFunktionsblock) { var existingOrdering = await orderManagerClient.GetOrdering(flatItem.OrderId); if (existingOrdering == null) { return(BadRequest("Ordering does not exist in DB")); } var existingItem = existingOrdering.Items.FirstOrDefault(i => i.Id == flatItem.ItemId); if (existingItem == null) { return(BadRequest("OrderItem does not exist in DB")); } var updateOrderingData = new UpdateOrderingData(); var updateOrderItemData = new UpdateOrderItemData(); // map flatitem back to to ordering & orderitem foreach (var field in GetOrderingFieldsInternal(modulFunktionsblock)) { var flatItemProperty = typeof(OrderingFlatItem).GetProperty(field.Name); if (flatItemProperty == null) { throw new ArgumentOutOfRangeException(field.Name); } var newVal = flatItemProperty.GetValue(flatItem); var originAttribute = flatItemProperty.GetCustomAttributes(true).OfType <OriginAttribute>().FirstOrDefault(); if (string.IsNullOrWhiteSpace(originAttribute?.Column) || string.IsNullOrWhiteSpace(originAttribute.Table)) { continue; // field is not updateable, because it is missing the origin attribute } switch (originAttribute.Table) { case nameof(Ordering): EnsureUpdateIsGranted(newVal, existingOrdering, originAttribute.Column, field.IsReadonly); Reflective.SetValue(updateOrderingData, originAttribute.Column, newVal); break; case nameof(OrderItem): EnsureUpdateIsGranted(newVal, existingItem, originAttribute.Column, field.IsReadonly); Reflective.SetValue(updateOrderItemData, originAttribute.Column, newVal); break; default: throw new ArgumentOutOfRangeException(nameof(originAttribute.Table), $"Unknown table: {originAttribute.Table}"); } } var data = new UpdateOrderDetailData { OrderItem = updateOrderItemData, Ordering = updateOrderingData }; await orderManagerClient.UpdateOrderDetail(data); return(StatusCode(HttpStatusCode.NoContent)); }
private async Task <IHttpActionResult> UpdateOrderItem([FromBody] OrderingFlatItem flatItem, ModulFunktionsblock modulFunktionsblock) { var existingOrdering = await orderManagerClient.GetOrdering(flatItem.OrderId); if (existingOrdering == null) { return(BadRequest("Ordering does not exist in DB")); } var existingItem = existingOrdering.Items.FirstOrDefault(i => i.Id == flatItem.ItemId); if (existingItem == null) { return(BadRequest("OrderItem does not exist in DB")); } var updateOrderingData = new UpdateOrderingData(); var updateOrderItemData = new UpdateOrderItemData(); // map flatitem back to to ordering & orderitem foreach (var field in GetOrderingFieldsInternal(modulFunktionsblock)) { var flatItemProperty = typeof(OrderingFlatItem).GetProperty(field.Name); if (flatItemProperty == null) { throw new ArgumentOutOfRangeException(field.Name); } var newVal = flatItemProperty.GetValue(flatItem); var originAttribute = flatItemProperty.GetCustomAttributes(true).OfType <OriginAttribute>().FirstOrDefault(); if (string.IsNullOrWhiteSpace(originAttribute?.Column) || string.IsNullOrWhiteSpace(originAttribute.Table)) { continue; // field is not updateable, because it is missing the origin attribute } switch (originAttribute.Table) { case nameof(Ordering): EnsureUpdateIsGranted(newVal, existingOrdering, originAttribute.Column, field.IsReadonly); Reflective.SetValue(updateOrderingData, originAttribute.Column, newVal); break; case nameof(OrderItem): EnsureUpdateIsGranted(newVal, existingItem, originAttribute.Column, field.IsReadonly); Reflective.SetValue(updateOrderItemData, originAttribute.Column, newVal); break; default: throw new ArgumentOutOfRangeException(nameof(originAttribute.Table), $"Unknown table: {originAttribute.Table}"); } } if (flatItem.Status == (int)OrderStatesInternal.Ausgeliehen && !existingItem.Ausleihdauer.Equals(flatItem.Ausleihdauer)) { var user = ControllerHelper.UserDataAccess.GetUser(ControllerHelper.GetCurrentUserId()); updateOrderItemData.InternalComment = updateOrderItemData.InternalComment.Prepend( $"Erwartetes Rückgabedatum von {existingItem.Ausgabedatum.Value.AddDays(existingItem.Ausleihdauer):dd.MM.yyyy} " + $"auf {flatItem.Ausgabedatum.Value.AddDays(flatItem.Ausleihdauer):dd.MM.yyyy} angepasst," + $" {DateTime.Now.ToString("dd.MM.yyyy HH:mm:ss")}, {user.FirstName} {user.FamilyName}"); } var data = new UpdateOrderDetailData { OrderItem = updateOrderItemData, Ordering = updateOrderingData }; await orderManagerClient.UpdateOrderDetail(data); return(StatusCode(HttpStatusCode.NoContent)); }
public override void Build() { vp = ViewPlane.Create(1920, 1080, SystemOfCoordinates.SSC_INT); vp.NumSamples = 144; vp.MaxDepth = 10; backgroundColor = new Vec3(0.15); tracer = new AreaLighting(this); AmbientOccluder a = new AmbientOccluder(); a.ScaleRadiance = 0.5; a.MinAmount = 0.05; a.Sampler = new MultiJittered(vp.NumSamples); AmbientLight = a; Pinhole pinhole = new Pinhole(new Vec3(75, 40, 100), new Vec3(-10, 39, 0), new Vec3(0.0, 1.0, 0.0), 360, 3.0f); Camera = pinhole; Rectangle rectangle = new Rectangle(new Vec3(75, 40, 100), new Vec3(0, 50, 0), new Vec3(50, 0, -50)); Emissive e = new Emissive(ColorUtils.WHITE, 20); RectangularLamp lamp = new RectangularLamp(rectangle, e); lamp.Sampler = new MultiJittered(vp.NumSamples); lamp.Shadows = false; AddObject(lamp); AreaLight light = new AreaLight(); light.Object = lamp; AddLight(light); Reflective reflective1 = new Reflective(); reflective1.SetKa(0.25f); reflective1.SetKd(0.5f); reflective1.SetColor(0.75f, 0.75f, 0.0f); reflective1.SetSpecularColor(ColorUtils.WHITE); reflective1.SetKs(0.15f); reflective1.SetExp(100.0f); reflective1.SetKr(0.75f); reflective1.SetReflectiveColor(ColorUtils.WHITE); double radius = 23.0; Sphere s1 = new Sphere(new Vec3(38, radius, -25), radius); s1.Material = reflective1; AddObject(s1); Matte matte1 = new Matte(); matte1.SetKa(0.45f); matte1.SetKd(0.75f); matte1.SetColor(0.75f, 0.25f, 0.0f); Sphere s2 = new Sphere(new Vec3(-7, 10, 42), 20); s2.Material = matte1; AddObject(s2); Reflective reflective2 = new Reflective(); reflective2.SetKa(0.35f); reflective2.SetKd(0.75f); reflective2.SetColor(ColorUtils.BLACK); reflective2.SetSpecularColor(ColorUtils.WHITE); reflective2.SetKs(0.0f); reflective2.SetExp(1.0f); reflective2.SetKr(0.75f); reflective2.SetReflectiveColor(ColorUtils.WHITE); Sphere s3 = new Sphere(new Vec3(-30, 59, 35), 20); s3.Material = reflective2; AddObject(s3); //cylinder Reflective reflective3 = new Reflective(); reflective3.SetKa(0.35f); reflective3.SetKd(0.5f); reflective3.SetColor(0.0f, 0.5f, 0.75f); reflective3.SetSpecularColor(ColorUtils.WHITE); reflective3.SetKs(0.2f); reflective3.SetExp(100.0f); reflective3.SetKr(0.75f); reflective3.SetReflectiveColor(ColorUtils.WHITE); float b = 0.0f; float t = 85f; float cr = 22f; SolidCylinder cylinder = new SolidCylinder(b, t, cr); cylinder.Material = reflective3; AddObject(cylinder); //box Matte matte2 = new Matte(); matte2.SetKa(0.15f); matte2.SetKd(0.5f); matte2.SetColor(0.75f, 1.0f, 0.75f); Box box = new Box(new Vec3(-35, 0, -110), new Vec3(-25, 60, 65)); box.Material = matte2; AddObject(box); //plane Matte matte3 = new Matte(); matte3.SetKa(0.30f); matte3.SetKd(0.9f); matte3.SetColor(ColorUtils.WHITE); Plane plane = new Plane(new Vec3(), new Vec3(0, 1, 0)); plane.Material = matte3; AddObject(plane); }
public void build() { DestroyRenderAreaTexture(); texture = new Texture2D(200, 200); GameObject.Find("ViewRectangle").GetComponent <MeshRenderer> ().material.mainTexture = texture; vp = new ViewPlane(texture.width, texture.height, 1.0f, 1); vp.max_depth = 5; tracer_ptr = new GlobalTracer(this); Ambient amblight = new Ambient(); amblight.scale_radiance(1.0f); amblight.set_color(new Color(1, 1, 1, 1)); set_ambient_light(amblight); PerspectiveCamera pinhole_ptr1 = new PerspectiveCamera(); pinhole_ptr1.set_eye(new Vector3(0, 0, 500)); pinhole_ptr1.set_lookat(Vector3.zero); pinhole_ptr1.set_view_distance(600.0f); pinhole_ptr1.compute_uvw(); set_camera(pinhole_ptr1); Directional directional = new Directional(); directional.set_color(new Color(1, 1, 1, 1)); directional.set_direction(new Vector3(-1, -1, 0)); directional.cast_shadows = false; directional.scale_radiance(3.0f); add_light(directional); Reflective mat_ptr = new Reflective(); mat_ptr.set_kr(1.0f); mat_ptr.set_exp(1.0f); mat_ptr.set_cr(sphere_1_col); Sphere sphere = new Sphere(); sphere.sphereCenter = new Vector3(0, 0, 0); sphere.sphereRad = 1.0f; sphere.set_material(mat_ptr); Instance sphereInst = new Instance(sphere); sphereInst.set_material(mat_ptr); add_object(sphereInst); sphereInst.set_identity(); sphereInst.Scale(20, 20, 20); sphereInst.Translate(60.0f, 20.0f, 0); Matte mat_ptr1 = new Matte(); mat_ptr1.ambient_brdf.Set_Sampler(100, 0.5f); mat_ptr1.diffuse_brdf.Set_Sampler(100, 0.5f); mat_ptr1.set_ka(1.0f); mat_ptr1.set_kd(1); mat_ptr1.set_cd(plane_col); Plane p = new Plane(); p.planeNormal = new Vector3(0, 1, 0); p.planePassThrghPnt = new Vector3(0, -20, 0); p.set_material(mat_ptr1); add_object(p); Emissive mat_ptr2 = new Emissive(); mat_ptr2.scale_radiance(1); mat_ptr2.set_ce(sphere_2_col); Sphere sphere1 = new Sphere(); sphere1.sphereCenter = new Vector3(0, 0, 0); sphere1.sphereRad = 1.0f; sphere1.set_material(mat_ptr2); Instance sphereInst1 = new Instance(sphere1); sphereInst1.set_material(mat_ptr2); add_object(sphereInst1); sphereInst1.set_identity(); sphereInst1.Scale(20, 20, 20); sphereInst1.Translate(-60.0f, 20.0f, 0); render_scene(); }