public void TestHaack() { var exporter = new StlSerializer(); var nosecone = new HaackNosecone(0.6, 0.5, 2); SaveGeometry("nosecone.haack", nosecone); }
public void TestParabolic() { var exporter = new StlSerializer(); var nosecone = new ParabolicNosecone(0.75, 0.5, 2); SaveGeometry("nosecone.parabolic", nosecone); }
public void TestPowerseries() { var exporter = new StlSerializer(); var nosecone = new PowerseriesNosecone(0.5, 0.5, 2); SaveGeometry("nosecone.power", nosecone); }
public void TestElliptical() { var exporter = new StlSerializer(); var nosecone = new EllipticalNosecone(0.5, 2); SaveGeometry("nosecone.elliptical", nosecone); }
public void TestSecantOgive() { var exporter = new StlSerializer(); var nosecone = new SecantOgiveNosecone(2, 0.5, 1); SaveGeometry("nosecone.secant", nosecone); }
public void TestTangentOgive() { var exporter = new StlSerializer(); var nosecone = new TangentOgiveNosecone(1, 2); SaveGeometry("nosecone.tangent", nosecone); }
public void TestBiconic() { var exporter = new StlSerializer(); var nosecone = new BiConicNosecone(0.5, 1, 0.7, 2); SaveGeometry("nosecone.biconic", nosecone); }
public void TestConic() { var exporter = new StlSerializer(); var nosecone = new ConicNosecone(1, 2); SaveGeometry("nosecone.conic", nosecone); }
public static void SaveGeometry(string name, IMesh mesh) { var exporter = new StlSerializer(); if (!Directory.Exists(".data")) { Directory.CreateDirectory(".data"); } ListMesh concreteMesh = new ListMesh(mesh); // concrete list mesh so we resolve modifiers once for both exporters using (var writer = new StreamWriter(Path.Combine(".data", $"{name}.ascii.stl"))) { writer.Write(exporter.Serialize(concreteMesh)); } using (var writer = new BinaryWriter(File.Open(Path.Combine(".data", $"{name}.binary.stl"), FileMode.Create))) { exporter.SerializeBinary(concreteMesh, writer); } }
/// <summary> /// Fetch the default font, loading from disk if required /// </summary> /// <returns>Default font</returns> public static Font3 Default() { if (Font3.defaultFont != null) { return(Font3.defaultFont); } var assembly = typeof(Font3).Assembly; var defaultFontFolder = assembly.GetName().Name + ".Fonts.Bfont."; Dictionary <char, IMesh> defaultFontCharSet = new Dictionary <char, IMesh>(); StlSerializer serializer = new StlSerializer(); foreach (var resource in assembly.GetManifestResourceNames().Where(name => name.StartsWith(defaultFontFolder) && name.EndsWith(".stl"))) { var filename = Path.GetFileNameWithoutExtension(resource.Substring(defaultFontFolder.Length)); using (var stream = assembly.GetManifestResourceStream(resource)) { if (stream == null) { continue; } try { using (var reader = new BinaryReader(stream)) { var mesh = serializer.Deserialize(reader); var @char = (char)(int.Parse(filename)); defaultFontCharSet[@char] = mesh; } } catch { // Eat bad characters just in case. We don't want failure here } } } Font3.defaultFont = new Font3(1, 1, defaultFontCharSet); return(Font3.defaultFont); }