public static void Update(Canvas canv) { if (ModelStorage.vlist != null) { FindMinMaxDepth(); UpdateLine(xVLine, zero, AffineTransforms.RotateXZ(CamX, CamZ, xV), canv, false, Brushes.Blue); UpdateLine(yVLine, zero, AffineTransforms.RotateXZ(CamX, CamZ, yV), canv, false, Brushes.Red); UpdateLine(zVLine, zero, AffineTransforms.RotateXZ(CamX, CamZ, zV), canv, false, Brushes.Green); int index = 0; foreach (List <int> gr in ModelStorage.flist) { for (int i = 0; i < gr.Count; i++) { Vector3D v1; if (i > 0) { v1 = ModelStorage.vlist[gr[i - 1] - 1]; } else { v1 = ModelStorage.vlist[gr[gr.Count - 1] - 1]; } Vector3D v2 = ModelStorage.vlist[gr[i] - 1]; v1 = AffineTransforms.RotateXZ(CamX, CamZ, v1); v2 = AffineTransforms.RotateXZ(CamX, CamZ, v2); UpdateLine(lines[index], v1, v2, canv, true, Brushes.Black); index++; } } } }
public static void Draw(Canvas canv) { canv.Children.Clear(); lines.Clear(); FindMinMaxDepth(); xVLine = DrawLine(zero, AffineTransforms.RotateXZ(CamX, CamZ, xV), canv, false, Brushes.Blue); yVLine = DrawLine(zero, AffineTransforms.RotateXZ(CamX, CamZ, yV), canv, false, Brushes.Red); zVLine = DrawLine(zero, AffineTransforms.RotateXZ(CamX, CamZ, zV), canv, false, Brushes.Green); foreach (List <int> gr in ModelStorage.flist) { for (int i = 0; i < gr.Count; i++) { Vector3D v1; if (i > 0) { v1 = ModelStorage.vlist[gr[i - 1] - 1]; } else { v1 = ModelStorage.vlist[gr[gr.Count - 1] - 1]; } Vector3D v2 = ModelStorage.vlist[gr[i] - 1]; v1 = AffineTransforms.RotateXZ(CamX, CamZ, v1); v2 = AffineTransforms.RotateXZ(CamX, CamZ, v2); lines.Add(DrawLine(v1, v2, canv, true, Brushes.Black)); } } }