public static void Extrude_MultipleEdges_CreatesValidGeometry() { var pb = ShapeGenerator.CreateShape(ShapeType.Cube); try { int vertexCount = pb.vertexCount; UnityEngine.ProBuilder.Edge[] edges = new UnityEngine.ProBuilder.Edge[pb.faceCount]; for (int i = 0; i < pb.faceCount; i++) { edges[i] = pb.facesInternal[i].edgesInternal[m_Random.Next(0, pb.facesInternal[i].edgesInternal.Length)]; } // as group, enable manifold extrude Assert.IsFalse(pb.Extrude(edges, .5f, true, false) != null, "Do not allow manifold edge extrude"); Assert.IsTrue(pb.Extrude(edges, .5f, true, true) != null, "Do allow manifold edge extrude"); pb.ToMesh(); pb.Refresh(); TestUtility.AssertMeshAttributesValid(pb.mesh); Assert.AreEqual(vertexCount + edges.Length * 4, pb.vertexCount); } finally { UObject.DestroyImmediate(pb.gameObject); } }
public static void Extrude_OneEdge_CreatesValidGeometry() { var pb = ShapeFactory.Instantiate <Cube>(); try { int vertexCount = pb.vertexCount; Edge[] edges = new UnityEngine.ProBuilder.Edge[1]; Face face = pb.facesInternal[m_Random.Next(0, pb.faceCount)]; edges[0] = face.edgesInternal[m_Random.Next(0, face.edgesInternal.Length)]; // as group, enable manifold extrude Assert.IsFalse(pb.Extrude(edges, .5f, true, false) != null, "Do not allow manifold edge extrude"); Assert.IsTrue(pb.Extrude(edges, .5f, true, true) != null, "Do allow manifold edge extrude"); pb.ToMesh(); pb.Refresh(); TestUtility.AssertMeshAttributesValid(pb.mesh); Assert.AreEqual(vertexCount + edges.Length * 4, pb.vertexCount); } finally { UObject.DestroyImmediate(pb.gameObject); } }
public void SetSingleEdge(Edge edge) { edges.Clear(); edges.Add(edge); }