public static async Task <IObject3D> Create() { var item = new OpenScadScriptObject3D(); await item.Rebuild(); return(item); }
public override void Load() { var library = ApplicationController.Instance.Library; long index = DateTime.Now.Ticks; var libraryItems = new List <GeneratorItem>() { new GeneratorItem( () => "Cube".Localize(), async() => await CubeObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Pyramid".Localize(), async() => await PyramidObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Wedge".Localize(), async() => await WedgeObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Half Wedge".Localize(), async() => await HalfWedgeObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Text".Localize(), async() => await TextObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Cylinder".Localize(), async() => await CylinderObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Cone".Localize(), async() => await ConeObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Half Cylinder".Localize(), async() => await HalfCylinderObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Torus".Localize(), async() => await TorusObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Ring".Localize(), async() => await RingObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Sphere".Localize(), async() => await SphereObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Half Sphere".Localize(), async() => await HalfSphereObject3D.Create()) { DateCreated = new DateTime(index++) }, #if DEBUG new GeneratorItem( () => "SCAD Script".Localize(), async() => await OpenScadScriptObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "MarchingSquares".Localize(), async() => await MarchingSquaresObject3D.Create()) { DateCreated = new DateTime(index++) }, #endif new GeneratorItem( () => "Image Converter".Localize(), () => { // Construct an image var imageObject = new ImageObject3D() { AssetPath = StaticData.Instance.ToAssetPath(Path.Combine("Images", "mh-logo.png")) }; // Construct a scene var bedConfig = new BedConfig(null); var tempScene = bedConfig.Scene; tempScene.Children.Add(imageObject); tempScene.SelectedItem = imageObject; // Invoke ImageConverter operation, passing image and scene SceneOperations.ById("ImageConverter").Action(bedConfig); // Return replacement object constructed in ImageConverter operation var constructedComponent = tempScene.SelectedItem; tempScene.Children.Remove(constructedComponent); return(Task.FromResult(constructedComponent)); }) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Measure Tool".Localize(), async() => await MeasureToolObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Description".Localize(), async() => await DescriptionObject3D.Create()) { DateCreated = new DateTime(index++) }, new GeneratorItem( () => "Variable Sheet".Localize(), async() => await SheetObject3D.Create()) { DateCreated = new DateTime(index++) }, }; string title = "Primitive Shapes".Localize(); foreach (var item in libraryItems) { item.Category = title; Items.Add(item); } this.ChildContainers.Add( new DynamicContainerLink( () => "Primitives 2D".Localize(), StaticData.Instance.LoadIcon(Path.Combine("Library", "folder.png")), StaticData.Instance.LoadIcon(Path.Combine("Library", "primitives_library_icon.png")), () => new Primitives2DContainer()) { IsReadOnly = true }); }