public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "GUI",
                "GUI Tester",
                "Shows a tabed page of the windows controls that are available in ",
                800,
                600);

            return(appWidgetInfo);
        }
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Bitmap",
                "Clipping to multiple rectangle regions",
                @"",
                512,
                400);

            return(appWidgetInfo);
        }
示例#3
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Other",
                "G Code Visualizer",
                "A sample application to visualize the g-code created for a rep-rap type FDM machine.",
                600,
                400);

            return(appWidgetInfo);
        }
示例#4
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Other",
                "A Simple Ray Tracer test",
                "A sample application to show the current capabilities of the RayTracer.",
                300,
                100);

            return(appWidgetInfo);
        }
示例#5
0
        public AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Other",
                "Matter CAD",
                "The 3D modeling system for MatterHackers' BuildBot.",
                800,
                600);

            return(appWidgetInfo);
        }
示例#6
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Bitmap",
                "Flood Fill",
                "Demonstration of a flood filling algorithm.",
                600,
                400);

            return(appWidgetInfo);
        }
示例#7
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Clipping",
                "PolygonClipping",
                "Demonstration of general polygon clipping using the clipper library.",
                640,
                520);

            return(appWidgetInfo);
        }
示例#8
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Game",
                "Smart Sweepers",
                "Shows off a cool c# neral net framwork.",
                640,
                480);

            return(appWidgetInfo);
        }
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Game",
                "Moms Solitaire",
                "A port of the Forth solitaire game that my cousin Marlin Eller wrote for his mom on mothers day in 1989.",
                691,
                390);

            return(appWidgetInfo);
        }
示例#10
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Bitmap",
                "Image Transformations with Resampling",
                "The demonstration of image transformations with resampling. You can see the difference in quality between regular image transformers and the ones with resampling. Of course, image tranformations with resampling work slower because they provide the best possible quality.",
                600,
                600);

            return(appWidgetInfo);
        }
示例#11
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Vector",
                "Line Paterns",
                "AGG Example. Drawing Lines with Image Patterns",
                500,
                450);

            return(appWidgetInfo);
        }
示例#12
0
        public AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Other",
                "Matter Control",
                "A RepRap printer controler from MatterHackers",
                800,
                600);

            return(appWidgetInfo);
        }
示例#13
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Vector",
                "Component Rendering",
                "AGG has a gray-scale renderer that can use any 8-bit color channel of an RGB or RGBA frame buffer. Most likely it will be used to draw gray-scale images directly in the alpha-channel.",
                320,
                320);

            return(appWidgetInfo);
        }
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Bitmap",
                "Font Hinter",
                @"",
                440,
                330);

            return(appWidgetInfo);
        }
示例#15
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Bitmap",
                "Image Filters Comparison",
                "The image transformer algorithm can work with different interpolation filters, such as Bilinear, Bicubic, Sinc, Blackman. The example demonstrates the difference in quality between different filters. When switch the �Run Test� on, the image starts rotating. But at each step there is the previously rotated image taken, so the quality degrades. This degradation as well as the performance depend on the type of the interpolation filter.",
                305,
                325);

            return(appWidgetInfo);
        }
示例#16
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Vector",
                "Anit-Alias Test",
                "A test of Anti-Aliasing the same as in http://homepage.mac.com/arekkusu/bugs/invariance",
                480,
                350);

            return(appWidgetInfo);
        }
示例#17
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Vector",
                "Gradients",
                "This �sphere� is rendered with color gradients only. Initially there was an idea to compensate so called Mach Bands effect. To do so I added a gradient profile functor. Then the concept was extended to set a color profile. As a result you can render simple geometrical objects in 2D looking like 3D ones. In this example you can construct your own color profile and select the gradient function. There're not so many gradient functions in AGG, but you can easily add your own. Also, drag the �gradient� with the left mouse button, scale and rotate it with the right one.",
                512,
                400);

            return(appWidgetInfo);
        }
示例#18
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Utility",
                "Demo Runner",
                "Use this to run all the demos.",
                640,
                480);

            return(appWidgetInfo);
        }
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Vector",
                "Gouraud Mesh Shading",
                "Yet another example that demonstrates the power of compound shape rasterization. Here we create a "
                + "mesh of triangles and render them in one pass with multiple Gouraud shaders (span_gouraud_rgba). "
                + "The example demonstrates perfect Anti-Aliasing and perfect triangle stitching (seamless edges) at the same time.",
                400,
                400);

            return(appWidgetInfo);
        }
示例#20
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Bitmap",
                "Image Rotate & Scale",
                @"This is the first example of the image transformation algorithms.
The example allows you to rotate and scale the image with respect to
its center. Also, the image is scaled when resizing the window.",
                350,
                400);

            return(appWidgetInfo);
        }
        public void CreateWidgetAndRunInWindow(SystemWindow.PixelTypes bitDepth = SystemWindow.PixelTypes.Depth32, RenderSurface surfaceType = RenderSurface.Bitmap)
        {
            AppWidgetInfo appWidgetInfo = GetAppParameters();
            SystemWindow  systemWindow  = new SystemWindow(appWidgetInfo.width, appWidgetInfo.height);

            systemWindow.PixelType = bitDepth;
            systemWindow.Title     = appWidgetInfo.title;
            if (surfaceType == RenderSurface.OpenGL)
            {
                systemWindow.UseOpenGL = true;
            }
            systemWindow.AddChild(NewWidget());
            systemWindow.ShowAsSystemWindow();
        }
示例#22
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Vector",
                "Lion Filled",
                "Affine transformer, and basic renderers. You can rotate and scale the “Lion” with the"
                + " left mouse button. Right mouse button adds “skewing” transformations, proportional to the “X” "
                + "coordinate. The image is drawn over the old one with a cetrain opacity value. Change “Alpha” "
                + "to draw funny looking “lions”. Change window size to clear the window.",
                512,
                400);

            return(appWidgetInfo);
        }
示例#23
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Vector",
                "Zoomed Anti-Aliasing",
                "Demonstration of the Anti-Aliasing principle with Subpixel Accuracy. The triangle "
                + "is rendered two times, with its “natural” size (at the bottom-left) and enlarged. "
                + "To draw the enlarged version there is a special scanline renderer written (see "
                + "class renderer_enlarged in the source code). You can drag the whole triangle as well "
                + "as each vertex of it. Also change “Gamma” to see how it affects the quality of Anti-Aliasing.",
                600,
                400);

            return(appWidgetInfo);
        }
示例#24
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Vector",
                "Perspective Rendering",
                "Perspective and bilinear transformations. In general, these classes can transform an arbitrary quadrangle "
                + " to another arbitrary quadrangle (with some restrictions). The example demonstrates how to transform "
                + "a rectangle to a quadrangle defined by 4 vertices. You can drag the 4 corners of the quadrangle, "
                + "as well as its boundaries. Note, that the perspective transformations don't work correctly if "
                + "the destination quadrangle is concave. Bilinear thansformations give a different result, but "
                + "remain valid with any shape of the destination quadrangle.",
                600,
                600);

            return(appWidgetInfo);
        }
示例#25
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Vector",
                "Lion Outline",
                "The example demonstrates Maxim's algorithm of drawing Anti-Aliased lines. " +
                "The algorithm works about 2.5 times faster than the scanline rasterizer but has" +
                " some restrictions, particularly, line joins can be only of the �miter� type, " +
                "and when so called miter limit is exceded, they are not as accurate as generated " +
                "by the stroke converter (conv_stroke). To see the difference, maximize the window" +
                " and try to rotate and scale the �lion� with and without using the scanline " +
                "rasterizer (a checkbox at the bottom). The difference in performance is obvious.",
                512,
                512);

            return(appWidgetInfo);
        }
示例#26
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Bitmap",
                "Gaussian and Stack Blur",
                @"Now you can blur rendered images rather fast! There two algorithms are used:
Stack Blur by Mario Klingemann and Fast Recursive Gaussian Filter, described
here and here (PDF). The speed of both methods does not depend on the filter radius.
Mario's method works 3-5 times faster; it doesn't produce exactly Gaussian response,
but pretty fair for most practical purposes. The recursive filter uses floating
point arithmetic and works slower. But it is true Gaussian filter, with theoretically
infinite impulse response. The radius (actually 2*sigma value) can be fractional
and the filter produces quite adequate result.",
                440,
                330);

            return(appWidgetInfo);
        }
示例#27
0
        public static void Main(string[] args)
        {
            GuiHalFactory.SetGuiBackend(GuiHalFactory.KnownGuiFactoriesIndexes.WindowsFormsBitmap);
            //GuiHalFactory.SetGuiBackend(GuiHalFactory.KnownGuiFactoriesIndexes.WindowsFormsOpenGL);

            CameraCalibrationWidgetFactory appWidgetFactory = new CameraCalibrationWidgetFactory();

            AppWidgetInfo appWidgetInfo = appWidgetFactory.GetAppParameters();
            GuiHalWidget  primaryWindow = GuiHalFactory.CreatePrimarySurface(appWidgetInfo.width, appWidgetInfo.height, GuiHalWidget.CreateFlags.Resizable, GuiHalWidget.PixelFormat.PixelFormatBgra32);

            //GuiHalWidget primaryWindow = GuiHalFactory.CreatePrimarySurface(appWidgetInfo.width, appWidgetInfo.height, GuiHalWidget.CreateFlags.Resizable, GuiHalWidget.PixelFormat.PixelFormatBgr24);
            //GuiHalWidget primaryWindow = GuiHalFactory.CreatePrimarySurface(appWidgetInfo.width, appWidgetInfo.height, GuiHalWidget.CreateFlags.Resizable, GuiHalWidget.PixelFormat.PixelFormatRgbaFloat);

            primaryWindow.Caption = appWidgetInfo.caption;

            primaryWindow.AddChild(appWidgetFactory.NewWidget());
            primaryWindow.Run();
        }
示例#28
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Vector",
                "Gouraud Colors",
                "Gouraud shading. It's a simple method of interpolating colors in a triangle. There's no 'cube' drawn"
                + ", there're just 6 triangles. You define a triangle and colors in its vertices. When rendering, the "
                + "colors will be linearly interpolated. But there's a problem that appears when drawing adjacent "
                + "triangles with Anti-Aliasing. Anti-Aliased polygons do not 'dock' to each other correctly, there "
                + "visual artifacts at the edges appear. I call it “the problem of adjacent edges”. AGG has a simple"
                + " mechanism that allows you to get rid of the artifacts, just dilating the polygons and/or changing "
                + "the gamma-correction value. But it's tricky, because the values depend on the opacity of the polygons."
                + " In this example you can change the opacity, the dilation value and gamma. Also you can drag the "
                + "Red, Green and Blue corners of the “cube”.",
                400,
                320);

            return(appWidgetInfo);
        }
示例#29
0
        public override AppWidgetInfo GetAppParameters()
        {
            AppWidgetInfo appWidgetInfo = new AppWidgetInfo(
                "Vector",
                "Rounded Rect",
                "Yet another example dedicated to Gamma Correction. If you have a CRT monitor: The rectangle looks bad - "
                + " the rounded corners are thicker than its side lines. First try to drag the “subpixel offset” control "
                + "— it simply adds some fractional value to the coordinates. When dragging you will see that the rectangle"
                + "is 'blinking'. Then increase 'Gamma' to about 1.5. The result will look almost perfect — the visual "
                + "thickness of the rectangle remains the same. That's good, but turn the checkbox 'White on black' on — what "
                + "do we see? Our rounded rectangle looks terrible. Drag the 'subpixel offset' slider — it's blinking as hell."
                + "Now decrease 'Gamma' to about 0.6. What do we see now? Perfect result! If you use an LCD monitor, the good "
                + "value of gamma will be closer to 1.0 in both cases — black on white or white on black. There's no "
                + "perfection in this world, but at least you can control Gamma in Anti-Grain Geometry :-).",
                600,
                400);

            return(appWidgetInfo);
        }