private IEnumerable <Vector3> _GetVolumePoints() { foreach (var obj in _objects) { IBoundable bound = obj as IBoundable; if (bound == null) { continue; } var boundingBox = bound.BoundingBox; var boundingSphere = bound.BoundingSphere; if (boundingBox != null) { BoxBuilder box = new BoxBuilder(2, 2, 2); for (int i = 0; i < box.Vertices.Length; i++) { var mat = Matrix.Scale(boundingBox.Extends) * boundingBox.GlobalPose; yield return(Vector3.Transform(box.Vertices[i].Position, mat)); } } else if (boundingSphere.Radius > 0) { SphereBuilder sphere = new SphereBuilder(16, 16, boundingSphere.Radius); for (int i = 0; i < sphere.Vertices.Length; i++) { var mat = Matrix.Translate(boundingSphere.Center); yield return(Vector3.Transform(sphere.Vertices[i].Position, mat)); } } } }
public void TestBoxBuilderTests(string input, string expectedResult) { Box box = BoxBuilder.Build(input); string result = box.ToString(); Assert.Equal(expectedResult, result); Console.Out.WriteLine(result); }
public Reflections() { _boxBuilder = new BoxBuilder(2, 2, 1); Vector3 translation = new Vector3(0, 0, 0.5f); for (int i = 0; i < _boxBuilder.Vertices.Length; i++) { _boxBuilder.Vertices[i].Position += translation; } _vb = GraphicDeviceFactory.Device.CreateVertexBuffer <MeshVertex>(data: _boxBuilder.Vertices); }
public BoxBuilder GetGeometry() { BoxBuilder box = new BoxBuilder(2, 2, 2); for (int i = 0; i < box.Vertices.Length; i++) { var mat = Matrix.Scale(extends) * globalPose; box.Vertices[i].Position = Vector3.Transform(box.Vertices[i].Position, mat); } return(box); }
public BoxMesh() { _builder = new BoxBuilder(10, 10, 10); _mat = BasicMaterial.CreateDefaultMaterial("boxMaterial"); //VertexPositionColor[] vertexes = new VertexPositionColor[_builder.Vertices.Length]; //for (int i = 0; i < vertexes.Length; i++) //{ // vertexes[i] = new VertexPositionColor(_builder.Vertices[i].Position, new Color4(1, 1, 0, 0)); //} var device = GraphicDeviceFactory.Device; _vb = device.CreateVertexBuffer(data: _builder.Vertices); _ib = device.CreateIndexBuffer(data: _builder.Indices); _mat.Diffuse = new Vector3(1, 1, 1); _mat.DiffuseMap = device.CreateTexture2DFromFile(@"I:\Pictures\lufy.png"); _mat.SpecularIntensity = 0; _mat.EmisiveIntensity = 0; _mat.Alpha = 1f; IsTransparent = _mat.ContainsTrasparency; SetRender <DefaultTechnique, BasicMeshEffect>((box, render) => { var effect = render.Effect; //effect.Constants.gId = new Vector4(1, 1, 0, 0); //effect.U.World = Matrix.Identity; //map.World = Matrix.Identity; device.PrimitiveTopology = IAPrimitive.TriangleList; device.SetVertexBuffer(0, _vb, 0); device.SetIndexBuffer(_ib, 0); render.Bind(_mat); foreach (var pass in effect.Passes(0)) { effect.Apply(pass); device.DrawIndexed(_builder.Indices.Length, 0, 0); } effect.EndPasses(); }); //.BindWith(new CameraBinding()) //.BindWith(new MeshMaterialBinding()) //.BindWith(new LightBinding()) //.BindWith(new AmbientLightBinding()) //.BindWith(new PixelClippingBinding()); }
public void CreateTest() { var builder = new BoxBuilder() .SetHeight(5) .SetLenght(4) .SetWith(6); var box1 = builder.Create(); var box2 = builder.Create(); Assert.AreEqual(box1, box2); var box3 = builder.SetWith(1).Create(); Assert.AreNotEqual(box1, box3); }
public PartialViewResult BoxSummary(string id, string userid) { int.TryParse(id, out int exchangeId); userid = BifSessionData.IsInRole("ADMIN") ? userid ?? BifSessionData.Id : BifSessionData.Id; Exchange exchange = DAL.Context.Exchanges.Find(exchangeId); List <Item> items = DAL.Context.Items.Where(x => x.UserId == userid && x.ExchangeId == exchangeId).ToList(); BoxBuilder boxBuilder = new BoxBuilder(items) .SetMinimumOunces(exchange?.MinOunces) .SetMinimumBeerRating(exchange?.MinRating) .SetMinimumBoxRating(exchange?.MinBoxRating) .SetMinimumUnique(exchange?.MinUnique) .SetMinimumCost(exchange?.MinCost); return(PartialView("__BoxSummary", boxBuilder)); }
public override void BuildGeometry() { foreach (Transform c in transform) { if (c.gameObject.name == "_Walls") { GameObject.Destroy(c.gameObject); break; } } GameObject newObj = new GameObject("_Walls"); newObj.transform.SetParent(transform, false); BoxBuilder.BuildRoof(gameObject, this); BoxBuilder.BuildWalls(newObj, this); }
public IBox Box([NotNull] VariableVector anchor, [CanBeNull] string text, [CanBeNull] VariableVector minDiagonal = null, BoxAnchoring boxAnchoring = BoxAnchoring.Center, [CanBeNull] Color?boxColor = null /*White*/, int connectors = 8, double borderWidth = 0, [CanBeNull] Color?borderColor = null /*Black*/, BoxTextPlacement boxTextPlacement = BoxTextPlacement.Center, [CanBeNull] Font textFont = null /*___*/, [CanBeNull] Color?textColor = null /*Black*/, double textPadding = 0.2, int drawingOrder = 0, int fixingOrder = 100, [CanBeNull] string name = null, [CanBeNull] string htmlRef = null) { if (anchor == null) { throw new ArgumentNullException(nameof(anchor)); } var boxBuilder = new BoxBuilder(_solver, anchor, new VariableVector((text ?? anchor.Name) + "./", _solver).Restrict(minDiagonal), boxAnchoring, boxColor ?? Color.White, borderWidth, borderColor ?? Color.Black, connectors, text ?? "", boxTextPlacement, textFont ?? _defaultTextFont, textColor ?? Color.Black, textPadding, _builders.Count, drawingOrder, fixingOrder, name, htmlRef); _builders.Add(boxBuilder); return(boxBuilder); }
public void MeasurePass(Painter g) { if (parent_ != null) { level = parent_.level + 1; } int x = 0; int y = 0; bool hasBox = false; if ((box != null)) { hasBox = true; x = box.X; y = box.Y; } if ((((box == null) || ((level < 2))) || ((level == 2))) || ((level > 2))) { BoxBuilder.MakeBox(this, g); } if ((type_ != null) && (type_.type == ElementType.Math)) { PushdownStyleScript(); } if (hasBox) { box.X = x; box.Y = y; } NodesList list = GetChildrenNodes(); Node n = list.Next(); if ((style_ != null) && (style_.size.Length > 0)) { try { style_.scale = StyleAttributes.FontScale(style_.size, (double)g.GetSuitableFont(this, style_).SizeInPoints); style_.size = ""; } catch { } } if ((style_ != null)) { if (type_.type == ElementType.Math) { style_.isTop = true; } else if (style_.canOverride) { style_.isTop = false; } } while (n != null) { if (style_ != null) { if (((n.style_ != null) && n.style_.canOverride) && n.IsSameStyleParent()) { n.CombineStyles(n.style_, style_); } else if (n.type_.type == ElementType.Entity) { n.style_ = null; } else { try { StyleAttributes style = n.CascadeOverride(style_); if (style != null) { if (type_.type == ElementType.Math) { style.fontFamily = ""; style.isUnderline = false; } n.style_ = new StyleAttributes(); style.CopyTo(n.style_); if ((style_ != null) && style_.isTop) { n.style_.canOverride = false; } } } catch { } } } n.MeasurePass(g); box.setChildSize(n); n = list.Next(); } if (((((level < 2)) || ((level == 2))) || ((level > 2)))) { box.getSize(this); } }
public CoordinateGlyp Initialize() { var graphics = Engine.Graphics; GlypComponent[] components; if (EnablePlanes) { components = new GlypComponent[6] { new GlypComponent { Id = X }, new GlypComponent { Id = Y }, new GlypComponent { Id = Z }, new GlypComponent { Id = XY }, new GlypComponent { Id = XZ }, new GlypComponent { Id = YZ } }; } else { components = new GlypComponent[3] { new GlypComponent { Id = X }, new GlypComponent { Id = Y }, new GlypComponent { Id = Z } }; } Components = components; var arrow = new ConeBuilder(16, 16, arrowRadius, arrowHeight); //var trunk2 = trunk; // new CylindreBuilder(16, 16, 1, 10, false); //cylyndre = new Component { Color = new Color4(1, 1, 1, 1), Axix = AxisName.None }; //VertexPositionColor[] data2 = new VertexPositionColor[trunk2.Vertices.Length]; //var transform2 = Matrix.RotationZ(-Numerics.PIover2) * Matrix.Translate(0.5f * trunk2.height, 0, 0); //for (int i = 0; i < data2.Length; i++) //{ // data2[i] = new VertexPositionColor(Vector3.TransformCoordinates(trunk2.Vertices[i].Position, transform2), new Color4(1, 1, 0, 0)); //} //cylyndre.VertexBuffer = graphics.CreateVertexBuffer(data: data2); //cylyndre.IndexBufffer = graphics.CreateIndexBuffer(data: trunk2.Indices); // X Axis var xAxis = components[0]; VertexPositionColor[] data = new VertexPositionColor[arrow.Vertices.Length]; Matrix transform = Matrix.RotationZ(-Numerics.PIover2) * Matrix.Translate(0.5f * arrow.height + trunkHeight, 0, 0); for (int i = 0; i < data.Length; i++) { data[i] = new VertexPositionColor(Vector3.TransformCoordinates(arrow.Vertices[i].Position, transform), new Color4(alpha, 1, 0, 0)); } xAxis.VertexBuffer = graphics.CreateVertexBuffer(data: data); xAxis.IndexBufffer = graphics.CreateIndexBuffer(data: arrow.Indices); //Y Axis var yAxis = components[1]; transform = Matrix.Translate(0, 0.5f * arrow.height + trunkHeight, 0); for (int i = 0; i < data.Length; i++) { data[i] = new VertexPositionColor(Vector3.TransformCoordinates(arrow.Vertices[i].Position, transform), new Color4(alpha, 0, 1, 0)); } yAxis.VertexBuffer = graphics.CreateVertexBuffer(data: data); yAxis.IndexBufffer = graphics.CreateIndexBuffer(data: arrow.Indices); // Z axis var zAxis = components[2]; transform = Matrix.RotationX(Numerics.PIover2) * Matrix.Translate(0, 0, 0.5f * arrow.height + trunkHeight); for (int i = 0; i < data.Length; i++) { data[i] = new VertexPositionColor(Vector3.TransformCoordinates(arrow.Vertices[i].Position, transform), new Color4(alpha, 0, 0, 1)); } zAxis.VertexBuffer = graphics.CreateVertexBuffer(data: data); zAxis.IndexBufffer = graphics.CreateIndexBuffer(data: arrow.Indices); if (EnablePlanes) { //XY BoxBuilder box = new BoxBuilder(width, width, tick); var xyAxis = components[3]; data = new VertexPositionColor[box.Vertices.Length]; for (int i = 0; i < data.Length; i++) { data[i] = new VertexPositionColor(box.Vertices[i].Position, new Color4(alpha, 1, 0, 0)); } xyAxis.VertexBuffer = graphics.CreateVertexBuffer(data: data); xyAxis.IndexBufffer = graphics.CreateIndexBuffer(data: box.Indices); //XZ box = new BoxBuilder(width, tick, width); var xzAxis = components[4]; data = new VertexPositionColor[box.Vertices.Length]; for (int i = 0; i < data.Length; i++) { data[i] = new VertexPositionColor(box.Vertices[i].Position, new Color4(alpha, 0, 0, 1)); } xzAxis.VertexBuffer = graphics.CreateVertexBuffer(data: data); xzAxis.IndexBufffer = graphics.CreateIndexBuffer(data: box.Indices); //YZ box = new BoxBuilder(tick, width, width); var yzAxis = components[5]; data = new VertexPositionColor[box.Vertices.Length]; for (int i = 0; i < data.Length; i++) { data[i] = new VertexPositionColor(box.Vertices[i].Position, new Color4(alpha, 0, 1, 0)); } yzAxis.VertexBuffer = graphics.CreateVertexBuffer(data: data); yzAxis.IndexBufffer = graphics.CreateIndexBuffer(data: box.Indices); } return(this); }
public static Mesh CreateBox(float dimX, float dimY, float dimZ) { BoxBuilder boxBuilder = new BoxBuilder(dimX, dimY, dimZ); return(CreateMesh(boxBuilder.Vertices, boxBuilder.Indices)); }