/// <summary> /// Eine statische methode die einen Quader erstellt mit Ursprung <b>Origin</b> und /// Größe <b>Size</b> /// </summary> /// <param name="Origin">Ursprung des Quaders (rechts unten)</param> /// <param name="Size">Größe des Quaders</param> /// <returns>Ein solider Quader (Model.SolidSurface) </returns> public static Solid CreateSolidBox(xyz Origin, xyz Size) { Solid Box = new Solid(); Box.Model = Model.Solid; Vertex3d A = new Vertex3d(Origin); Vertex3d B = new Vertex3d(Origin + new xyz(Size.x, 0, 0)); Vertex3d C = new Vertex3d(Origin + new xyz(Size.x, Size.y, 0)); Vertex3d D = new Vertex3d(Origin + new xyz(0, Size.y, 0)); Vertex3d E = new Vertex3d(A.Value + new xyz(0, 0, Size.z)); Vertex3d F = new Vertex3d(B.Value + new xyz(0, 0, Size.z)); Vertex3d G = new Vertex3d(C.Value + new xyz(0, 0, Size.z)); Vertex3d H = new Vertex3d(D.Value + new xyz(0, 0, Size.z)); Vertex3dArray_2 Border = new Vertex3dArray_2(); Vertex3dArray VA = new Vertex3dArray(); Border.Add(VA); Face Face = null; VA.Clear(); VA.Add(A); VA.Add(B); VA.Add(C); VA.Add(D); Face = Face.SolidPlane(Box, Border); Box.FaceList.Add(Face); VA.Clear(); VA.Add(A); VA.Add(E); VA.Add(F); VA.Add(B); Face = Face.SolidPlane(Box, Border); Box.FaceList.Add(Face); VA.Clear(); VA.Add(B); VA.Add(F); VA.Add(G); VA.Add(C); Face = Face.SolidPlane(Box, Border); Box.FaceList.Add(Face); VA.Clear(); VA.Add(C); VA.Add(G); VA.Add(H); VA.Add(D); Face = Face.SolidPlane(Box, Border); Box.FaceList.Add(Face); VA.Clear(); VA.Add(D); VA.Add(H); VA.Add(E); VA.Add(A); Face = Face.SolidPlane(Box, Border); Box.FaceList.Add(Face); VA.Clear(); VA.Add(H); VA.Add(G); VA.Add(F); VA.Add(E); Face = Face.SolidPlane(Box, Border); Box.FaceList.Add(Face); return(Box); }
/// <summary> /// overrides the <see cref="Solid.Refresh()"/> method. /// </summary> public override void Refresh() { VertexList.Clear(); EdgeList.Clear(); FaceList.Clear(); EdgeCurveList.Clear(); Vertex3d A = new Vertex3d(xyz.Null); Vertex3d B = new Vertex3d(new xyz(Size.x, 0, 0)); Vertex3d C = new Vertex3d(new xyz(Size.x, Size.y, 0)); Vertex3d D = new Vertex3d(new xyz(0, Size.y, 0)); Vertex3d E = new Vertex3d(A.Value + new xyz(0, 0, Size.z)); Vertex3d F = new Vertex3d(B.Value + new xyz(0, 0, Size.z)); Vertex3d G = new Vertex3d(C.Value + new xyz(0, 0, Size.z)); Vertex3d H = new Vertex3d(D.Value + new xyz(0, 0, Size.z)); VertexList.Add(A); VertexList.Add(B); VertexList.Add(C); VertexList.Add(D); VertexList.Add(E); VertexList.Add(F); VertexList.Add(G); VertexList.Add(H); Vertex3dArray_2 Border = new Vertex3dArray_2(); Vertex3dArray VA = new Vertex3dArray(); Border.Add(VA); Face Face = null; VA.Clear(); VA.Add(A); VA.Add(B); VA.Add(C); VA.Add(D); Face = Face.SolidPlane(this, Border); // FaceList.Add(Face); VA.Clear(); VA.Add(A); VA.Add(E); VA.Add(F); VA.Add(B); Face = Face.SolidPlane(this, Border); // FaceList.Add(Face); VA.Clear(); VA.Add(B); VA.Add(F); VA.Add(G); VA.Add(C); Face = Face.SolidPlane(this, Border); // FaceList.Add(Face); VA.Clear(); VA.Add(C); VA.Add(G); VA.Add(H); VA.Add(D); Face = Face.SolidPlane(this, Border); // FaceList.Add(Face); VA.Clear(); VA.Add(D); VA.Add(H); VA.Add(E); VA.Add(A); Face = Face.SolidPlane(this, Border); // FaceList.Add(Face); VA.Clear(); VA.Add(H); VA.Add(G); VA.Add(F); VA.Add(E); Face = Face.SolidPlane(this, Border); //for (int i = 0; i < FaceList.Count; i++) //{ // FaceList[i].DrawRelativToSurfaceBase = false; // FaceList[i].Refresh(); //} }