コード例 #1
0
        public void HelixRenderPackage_ApplyPointVertexColors_Array_Success()
        {
            var p = new HelixRenderPackage();
            Assert.NotNull(p);

            PushPointIntoPackage(p);
            p.ApplyPointVertexColors(WhiteByteArrayOfLength(1));
            Assert.AreEqual(1, p.Points.Colors.Count);
        }
コード例 #2
0
        public void HelixRenderPackage_PushMesh()
        {
            var p = new HelixRenderPackage();
            Assert.NotNull(p);

            PushQuadIntoPackage(p);
            Assert.AreEqual(6, p.Mesh.Positions.Count);
            Assert.AreEqual(6, p.Mesh.TextureCoordinates.Count);
            Assert.AreEqual(6, p.Mesh.Indices.Count);
            Assert.AreEqual(0, p.Mesh.Colors.Count);
        }
コード例 #3
0
        public void HelixRenderPackage_PushPoint()
        {
            var p = new HelixRenderPackage();
            Assert.NotNull(p);

            PushPointIntoPackage(p);

            Assert.AreEqual(1, p.Points.Positions.Count);
            Assert.AreEqual(1, p.Points.Indices.Count);
            Assert.AreEqual(0, p.Points.Colors.Count);
        }
コード例 #4
0
        public void HelixRenderPackage_PushData_CountsAreCorrect()
        {
            var p = new HelixRenderPackage();
            Assert.NotNull(p);

            PushQuadIntoPackage(p);
            PushPointIntoPackage(p);
            PushLineIntoPackage(p);

            Assert.AreEqual(2, p.LineVertexCount);
            Assert.AreEqual(6, p.MeshVertexCount);
            Assert.AreEqual(1, p.PointVertexCount);
        }
コード例 #5
0
        public void HelixRenderPackage_ApplyMeshVertexColors_Success()
        {
            var p = new HelixRenderPackage();
            Assert.NotNull(p);

            PushQuadIntoPackage(p);

            p.ApplyMeshVertexColors(WhiteByteArrayOfLength(6));
            Assert.AreEqual(6, p.Mesh.Colors.Count);
        }
コード例 #6
0
        public void HelixRenderPackage_ApplyLineVertexColors_Array_Success()
        {
            var p = new HelixRenderPackage();
            Assert.NotNull(p);

            PushLineIntoPackage(p);
            p.ApplyLineVertexColors(WhiteByteArrayOfLength(2));
            Assert.AreEqual(2, p.Lines.Colors.Count);
        }
コード例 #7
0
        public void HelixRenderPackage_ManyLineVertexColors_AllLineStripVerticesHaveColor_False()
        {
            var p = new HelixRenderPackage();
            Assert.NotNull(p);

            // Different line strip vertex colors.
            HelixRenderPackageTests.PushLineIntoPackage(p);
            p.AddLineStripVertexColor(255, 0, 0, 255);
            p.AddLineStripVertexColor(255, 255, 0, 0);

            Assert.False(p.AllLineStripVerticesHaveColor(Color.FromArgb(255, 255, 0, 0)));
        }
コード例 #8
0
        public void HelixRenderPackage_SingleLineVertexColor_AllLineStripVerticesHaveColor_True()
        {
            var p = new HelixRenderPackage();
            Assert.NotNull(p);

            // Same line strip vertex colors.
            HelixRenderPackageTests.PushLineIntoPackage(p);
            p.AddLineStripVertexColor(255,0,0,255);
            p.AddLineStripVertexColor(255,0,0,255);

            Assert.True(p.AllLineStripVerticesHaveColor(Color.FromArgb(255,255,0,0)));
        }
コード例 #9
0
 public void HelixRenderPackage_Construction_IsInitializedCorrectly()
 {
     var p = new HelixRenderPackage();
     Assert.NotNull(p);
 }
コード例 #10
0
        public void HelixRenderPackage_MeshColorBufferCheck()
        {
            var p = new HelixRenderPackage();

            PushQuadIntoPackage(p);

            var testColors = WhiteByteArrayOfLength(6);

            p.ApplyMeshVertexColors(testColors);

            Assert.AreEqual(p.MeshVertexColors, testColors);
        }
コード例 #11
0
        public void HelixRenderPackage_MeshVertexBufferCheck()
        {
            var p = new HelixRenderPackage();

            PushQuadIntoPackage(p);

            var test1 = p.MeshVertices.Skip(3).Take(3).ToArray();
            var test2 = p.MeshNormals.Take(3).ToArray();

            // Expect Y Up.
            Assert.AreEqual(test1, new double[]{1,0,0});
            Assert.AreEqual(test2, new double[]{0,1,0});
        }
コード例 #12
0
        public void HelixRenderPackage_Clear_IsClearedCompletely()
        {
            var p = new HelixRenderPackage();

            PushQuadIntoPackage(p);

            p.Clear();

            Assert.IsEmpty(p.Points.Positions);
            Assert.IsEmpty(p.Points.Indices);
            Assert.IsEmpty(p.Points.Colors);

            Assert.IsEmpty(p.Mesh.Positions);
            Assert.IsEmpty(p.Mesh.Normals);
            Assert.IsEmpty(p.Mesh.Indices);
            Assert.IsEmpty(p.Mesh.TextureCoordinates);
            Assert.IsEmpty(p.Mesh.Colors);

            Assert.IsEmpty(p.Lines.Positions);
            Assert.IsEmpty(p.Lines.Indices);
            Assert.IsEmpty(p.Lines.Colors);
        }
コード例 #13
0
 private PointGeometryModel3D CreatePointGeometryModel3D(HelixRenderPackage rp)
 {
     var pointGeometry3D = new PointGeometryModel3D
     {
         Geometry = HelixRenderPackage.InitPointGeometry(),
         Transform = Model1Transform,
         Color = Color.White,
         Figure = PointGeometryModel3D.PointFigure.Ellipse,
         Size = defaultPointSize,
         IsHitTestVisible = true,
         IsSelected = rp.IsSelected
     };
     return pointGeometry3D;
 }
コード例 #14
0
 private LineGeometryModel3D CreateLineGeometryModel3D(HelixRenderPackage rp)
 {
     var lineGeometry3D = new LineGeometryModel3D()
     {
         Geometry = HelixRenderPackage.InitLineGeometry(),
         Transform = Model1Transform,
         Color = Color.White,
         Thickness = 0.5,
         IsHitTestVisible = true,
         IsSelected = rp.IsSelected
     };
     return lineGeometry3D;
 }
コード例 #15
0
        private DynamoGeometryModel3D CreateDynamoGeometryModel3D(HelixRenderPackage rp)
        {
            var meshGeometry3D = new DynamoGeometryModel3D()
            {
                Transform = Model1Transform,
                Material = WhiteMaterial,
                IsHitTestVisible = true,
                RequiresPerVertexColoration = rp.RequiresPerVertexColoration,
                IsSelected = rp.IsSelected,
            };

            if (rp.Colors != null)
            {
                var pf = PixelFormats.Bgra32;
                var stride = (rp.ColorsStride / 4 * pf.BitsPerPixel + 7) / 8;
                try
                {
                    var diffMap = BitmapSource.Create(rp.ColorsStride / 4, rp.Colors.Count() / rp.ColorsStride, 96.0, 96.0, pf, null,
                        rp.Colors.ToArray(), stride);
                    var diffMat = new PhongMaterial
                    {
                        Name = "White",
                        AmbientColor = PhongMaterials.ToColor(0.1, 0.1, 0.1, 1.0),
                        DiffuseColor = defaultMaterialColor,
                        SpecularColor = PhongMaterials.ToColor(0.0225, 0.0225, 0.0225, 1.0),
                        EmissiveColor = PhongMaterials.ToColor(0.0, 0.0, 0.0, 1.0),
                        SpecularShininess = 12.8f,
                        DiffuseMap = diffMap
                    };
                    meshGeometry3D.Material = diffMat;
                }
                catch (Exception ex)
                {
                    Console.WriteLine(ex.Message);
                    Console.WriteLine(ex.StackTrace);
                }
            }
            ((MaterialGeometryModel3D)meshGeometry3D).SelectionColor = defaultSelectionColor;

            return meshGeometry3D;
        }