コード例 #1
0
ファイル: Model.cs プロジェクト: Amichai/3dmodeler
 private void addFaceVert(Face f, int v)
 {
     List<Face> faces;
     if (this.vertexToFace.TryGetValue(v, out faces)) {
         faces.Add(f);
     } else {
         this.vertexToFace[v] = new List<Face>() { f };
     }
 }
コード例 #2
0
ファイル: Model.cs プロジェクト: Amichai/3dmodeler
 public Vec3 GetFaceCenter(Face faceToExtrude)
 {
     return LinearAlgebra.GetCenter(faceToExtrude.GetVertexPositions());
 }
コード例 #3
0
ファイル: Model.cs プロジェクト: Amichai/3dmodeler
 public void RemoveFace(Face face)
 {
     this.faces.Remove(face);
 }
コード例 #4
0
ファイル: Model.cs プロジェクト: Amichai/3dmodeler
 public static Model ConstructFromVerticesAndIndices(List<Vec3> vertices, params List<int>[] indices)
 {
     Model toReturn = new Model();
     toReturn.vertices = vertices;
     foreach (var faceSet in indices) {
         var newFace = new Face(faceSet, toReturn);
         toReturn.faces.Add(newFace);
         for (int i = 0; i < faceSet.Count; i++) {
             var idx1 = i;
             var idx2 = (i + 1) % faceSet.Count;
             var e = new Edge(idx1, idx2);
             toReturn.edges.Add(e);
             toReturn.addEdgeVert(e, i);
             toReturn.addFaceVert(newFace, i);
         }
     }
     return toReturn;
 }