public void DefaultRenderPackage_Properties() { //Arrange var render = new DefaultRenderPackage(); //Act //This will populate the HasRenderingData property render.ApplyPointVertexColors(WhiteByteArrayOfLength(3)); //This will populate the LineStripIndices property render.AddLineStripVertex(1, 2, 5); //This will populate the MeshIndices property render.AddTriangleVertex(1, 4, 5); //This will populate the MeshTextureCoordinates property render.AddTriangleVertexUV(2, 5); //This will populate the PointIndices property render.AddPointVertex(3, 6, 4); //Assert //Checking that the properties have the right value Assert.IsTrue(render.HasRenderingData); Assert.AreEqual((render.LineStripIndices as List <int>).Count, 1); Assert.AreEqual((render.MeshIndices as List <int>).Count, 1); Assert.AreEqual((render.MeshTextureCoordinates as List <double>).Count, 2); Assert.AreEqual((render.PointIndices as List <int>).Count, 1); Assert.AreEqual(render.ColorsStride, 0); }
public static IList <GeometryObject> ToRevitType( this Autodesk.DesignScript.Geometry.Solid solid, TessellatedShapeBuilderTarget target = TessellatedShapeBuilderTarget.Mesh, TessellatedShapeBuilderFallback fallback = TessellatedShapeBuilderFallback.Salvage, ElementId MaterialId = null, bool performHostUnitConversion = true) { var rp = new DefaultRenderPackage(); if (performHostUnitConversion) { var newSolid = solid.InHostUnits(); newSolid.Tessellate(rp, new TessellationParameters()); newSolid.Dispose(); } else { solid.Tessellate(rp, new TessellationParameters()); } var tsb = new TessellatedShapeBuilder() { Fallback = fallback, Target = target, GraphicsStyleId = ElementId.InvalidElementId }; tsb.OpenConnectedFaceSet(false); var v = rp.MeshVertices.ToList(); for (int i = 0; i < v.Count; i += 9) { var a = new XYZ(v[i], v[i + 1], v[i + 2]); var b = new XYZ(v[i + 3], v[i + 4], v[i + 5]); var c = new XYZ(v[i + 6], v[i + 7], v[i + 8]); var face = new TessellatedFace(new List <XYZ>() { a, b, c }, MaterialId != null ? MaterialId : MaterialsManager.Instance.DynamoMaterialId); tsb.AddFace(face); } tsb.CloseConnectedFaceSet(); tsb.Build(); var result = tsb.GetBuildResult(); return(result.GetGeometricalObjects()); }
public void DefaultGraphicPrimitives_Constructor() { //Arrange var data = new List <IGraphicPrimitives>(); var renderingFactory = new DefaultRenderPackageFactory(); List <IRenderPackage> packages = new List <IRenderPackage>(); packages.Add(renderingFactory.CreateRenderPackage()); //Act var render = new DefaultRenderPackage(); render.SetColors(WhiteByteArrayOfLength(2));//This will set the Colors property foreach (var package in packages) { data.Add(new DefaultGraphicPrimitives(render)); } //Assert Assert.IsNotNull(render); Assert.AreEqual((render.Colors as byte[]).Length, 8); }
public void VertexColorsTest() { //Arrange var render = new DefaultRenderPackage(); //Act render.ApplyPointVertexColors(WhiteByteArrayOfLength(3)); render.ApplyLineVertexColors(WhiteByteArrayOfLength(2)); render.SetColors(WhiteByteArrayOfLength(2)); //Assert //Checking that the properties were populated correctly Assert.AreEqual((render.PointVertexColors as List <byte>).Count, 12); Assert.AreEqual((render.LineStripVertexColors as List <byte>).Count, 8); Assert.AreEqual((render.Colors as byte[]).Length, 8); render.Clear();//Empty some properties of the DefaultRenderPackage class //Assert //Checking that the properties were cleaned Assert.AreEqual((render.PointVertexColors as List <byte>).Count, 0); Assert.AreEqual((render.LineStripVertexColors as List <byte>).Count, 0); }