void bnt_Add_Click(object sender, RoutedEventArgs e)
        {
            Logger.Log(sender, string.Format(System.Globalization.CultureInfo.CurrentUICulture, "Boil the tea", this.ToString()));
            var teaPot = new Teapot();

            hv.Children.Add(teaPot);
            return;

            DTE2 dte = FirstToolWindowPackage.WindowToolPackage.GetService();

            if (dte.Debugger.CurrentStackFrame != null) // Ensure that debugger is running
            {
                //DTEClass c = new DTEClass();
                Expressions locals = dte.Debugger.CurrentStackFrame.Locals;
                foreach (EnvDTE.Expression local in locals)
                {
                    Expressions members = local.DataMembers;
                    // Do this section recursively, looking down in each expression for
                    // the next set of data members. This will build the tree.
                    // DataMembers is never null, instead just iterating over a 0-length list.


                    Logger.Log(this, string.Format("name: {0}, val: {1}, type: {2}", local.Name, local.Value, local.Type));

                    string varName = local.Name;

                    //if (local.Type.Contains(ReaderUtils.type_Point3d))
                    //    AddPointsToViewport(ReaderUtils.AddEnumerablePoint3D(local), varName);
                }
            }
        }
        private void Form_Load(object sender, EventArgs e)
        {
            {
                var camera = new Camera(
                    new vec3(0, 0, 5), new vec3(0, 0, 0), new vec3(0, 1, 0),
                    CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height);
                var rotator = new SatelliteManipulater();
                rotator.Bind(camera, this.glCanvas1);
                rotator.BindingMouseButtons = System.Windows.Forms.MouseButtons.Left | System.Windows.Forms.MouseButtons.Right;
                this.rotator           = rotator;
                this.scene             = new Scene(camera, this.glCanvas1);
                this.glCanvas1.Resize += this.scene.Resize;
            }
            {
                IBufferable bufferable = new Teapot();
                var         renderer   = new OrderIndependentTransparencyRenderer(
                    bufferable, Teapot.strPosition, Teapot.strNormal);
                renderer.Name = "OIT Renderer";
                renderer.Initialize();
                SceneObject obj = renderer.WrapToSceneObject();
                this.scene.RootObject.Children.Add(obj);
            }

            this.form03 = new Form03OrderDependentTransparency(this);
            this.form03.Show();
        }
 private void Form_Load(object sender, EventArgs e)
 {
     {
         var camera = new Camera(
             new vec3(0, 0, 5), new vec3(0, 0, 0), new vec3(0, 1, 0),
             CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height);
         var rotator = new SatelliteManipulater();
         rotator.Bind(camera, this.glCanvas1);
         rotator.BindingMouseButtons = System.Windows.Forms.MouseButtons.Left | System.Windows.Forms.MouseButtons.Right;
         this.rotator = rotator;
         this.scene = new Scene(camera, this.glCanvas1);
         this.glCanvas1.Resize += this.scene.Resize;
     }
     {
         Teapot model = new Teapot();
         OrderDependentTransparencyRenderer renderer = OrderDependentTransparencyRenderer.Create(model, model.Size, Teapot.strPosition, Teapot.strColor);
         SceneObject obj = renderer.WrapToSceneObject();
         this.scene.RootObject.Children.Add(obj);
     }
     {
         var builder = new StringBuilder();
         builder.AppendLine("1: Scene's property grid.");
         builder.AppendLine("2: Canvas' property grid.");
         MessageBox.Show(builder.ToString());
     }
 }
Esempio n. 4
0
 private void Form_Load(object sender, EventArgs e)
 {
     {
         var camera = new Camera(
             new vec3(0, 0, 5), new vec3(0, 0, 0), new vec3(0, 1, 0),
             CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height);
         var rotator = new SatelliteManipulater();
         rotator.Bind(camera, this.glCanvas1);
         rotator.BindingMouseButtons = System.Windows.Forms.MouseButtons.Left | System.Windows.Forms.MouseButtons.Right;
         this.rotator           = rotator;
         this.scene             = new Scene(camera, this.glCanvas1);
         this.glCanvas1.Resize += this.scene.Resize;
     }
     {
         Teapot model = new Teapot();
         OrderDependentTransparencyRenderer renderer = OrderDependentTransparencyRenderer.Create(model, model.Lengths, Teapot.strPosition, Teapot.strColor);
         SceneObject obj = renderer.WrapToSceneObject();
         this.scene.RootObject.Children.Add(obj);
     }
     {
         var builder = new StringBuilder();
         builder.AppendLine("1: Scene's property grid.");
         builder.AppendLine("2: Canvas' property grid.");
         MessageBox.Show(builder.ToString());
     }
 }
 private void Form_Load(object sender, EventArgs e)
 {
     {
         var camera = new Camera(
             new vec3(0, 0, 5), new vec3(0, 0, 0), new vec3(0, 1, 0),
             CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height);
         var rotator = new SatelliteManipulater();
         rotator.Bind(camera, this.glCanvas1);
         this.camera = camera;
         this.rotator = rotator;
     }
     {
         IBufferable bufferable = new Teapot();
         var shaderCodes = new ShaderCode[2];
         shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\Transparent.vert"), ShaderType.VertexShader);
         shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\Transparent.frag"), ShaderType.FragmentShader);
         var map = new PropertyNameMap();
         map.Add("in_Position", "position");
         map.Add("in_Color", "color");
         var renderer = new PickableRenderer(bufferable, shaderCodes, map, "position");
         renderer.Name = "Order-Dependent Transparent Renderer";
         renderer.Initialize();
         {
             GLSwitch blendSwitch = new BlendSwitch(BlendingSourceFactor.SourceAlpha, BlendingDestinationFactor.OneMinusSourceAlpha);
             renderer.SwitchList.Add(blendSwitch);
         }
         this.renderer = renderer;
     }
     {
         var frmPropertyGrid = new FormProperyGrid();
         frmPropertyGrid.DisplayObject(this.renderer);
         frmPropertyGrid.Show();
         this.formPropertyGrid = frmPropertyGrid;
     }
 }
Esempio n. 6
0
    void Awake()
    {
        _steamUpgradeManager = FindObjectOfType <SteamUpgradeManager>();
        _lidUpgradeManager   = FindObjectOfType <LidUpgradeManager>();
        _teapot = (Instantiate(_teapotPrefab, _spawnLocation, Quaternion.identity) as GameObject).GetComponent <Teapot>();
        _teapot.transform.SetParent(gameObject.transform);


        _steamUpgradeManager.Initialized += () =>
        {
            float currentReloadTime = _steamUpgradeManager.ReloadTime.Current.Value;
            _steamAmmoRemaining = (int)_steamUpgradeManager.ClipSize.Current.Value;

            _steamWeaponView.SetClipSize(_steamAmmoRemaining);

            _steamUpgradeManager.ClipSizeUpgraded += (clipSize) => _steamWeaponView.SetClipSize((int)clipSize.Value);
        };

        _lidUpgradeManager.Initialized += () =>
        {
            float currentReloadTime = _lidUpgradeManager.ReloadTime.Current.Value;
            _lidAmmoRemaining = (int)_lidUpgradeManager.ClipSize.Current.Value;

            _lidWeaponView.SetClipSize(_lidAmmoRemaining);

            _lidUpgradeManager.ClipSizeUpgraded += (clipSize) => _lidWeaponView.SetClipSize((int)clipSize.Value);
        };
    }
Esempio n. 7
0
    public TrackballExample(string[] args)
    {
        Application.Init ();

        // Create a new GL widget
        glw = new TrackballWidget();

        // Create a new Teapot object
        GtkGL.Teapot teapot = new Teapot();

        // Add our Teapot object to the GLWidget's list of associated GLObjects
        glw.AddGLObject( teapot );

        // Read in the glade file that describes the widget layout
        Glade.XML gxml = new Glade.XML (null, "glwidget.glade", "glwidget", null);

        // Connect the Signals defined in Glade
        gxml.Autoconnect (this);

        // Pack the gl window into the vbox
        Gtk.VBox vbox1 = (Gtk.VBox)gxml["vbox1"];
        vbox1.PackStart ( glw );

        // Show the GL widget
        Gtk.Window window = (Gtk.Window)gxml["glwidget"];
        window.Show();

        glw.Show();

        // Go dog.  Go!
        Application.Run ();
    }
        private object TeapotToTeapotState(Teapot teapot)
        {
            Random random = new Random();

            // TODO: check teapot log for last 5 minutes: if there is boil water, set to teapot log temperature, if no - comfort temperature
            return(new { currentTemperature = teapot.CurrentTemperature, currentWaterAmount = random.Next(0, 100) });
        }
        public MainWindow()
        {
            InitializeComponent();
            for (int x = 0; x < 5; x++)
            {
                for (int y = 0; y < 5; y++)
                {
                    for (int z = 0; z < 5; z++)
                    {
                        Teapot B = new Teapot();
                        //B.Location = new Point(i*100, y);
                        B.Transform = new TranslateTransform3D(x * 4 - 10, y * 4 - 10, z * 4 - 10);
                        G.Children.Add(B);
                        //this.Controls.Add(B);
                    }
                }
            }

            /*
             * <h:Teapot>
             * <h:Teapot.Transform>
             *  <TranslateTransform3D OffsetX="2"/>
             * </h:Teapot.Transform>
             * </h:Teapot>
             */
        }
Esempio n. 10
0
 private void Form02OrderIndependentTransparency_Load(object sender, EventArgs e)
 {
     {
         var camera = new Camera(
             new vec3(0, 0, 5), new vec3(0, 0, 0), new vec3(0, 1, 0),
             CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height);
         var rotator = new SatelliteRotator(camera);
         this.camera  = camera;
         this.rotator = rotator;
     }
     {
         IBufferable bufferable  = new Teapot();
         var         shaderCodes = new ShaderCode[2];
         shaderCodes[0] = new ShaderCode(File.ReadAllText(@"03OrderDependentTransparency\Transparent.vert"), ShaderType.VertexShader);
         shaderCodes[1] = new ShaderCode(File.ReadAllText(@"03OrderDependentTransparency\Transparent.frag"), ShaderType.FragmentShader);
         var map = new PropertyNameMap();
         map.Add("in_Position", "position");
         map.Add("in_Color", "color");
         var renderer = new PickableRenderer(bufferable, shaderCodes, map, "position");
         renderer.Name = "Order-Dependent Transparent Renderer";
         renderer.Initialize();
         {
             GLSwitch blendSwitch = new BlendSwitch(BlendingSourceFactor.SourceAlpha, BlendingDestinationFactor.OneMinusSourceAlpha);
             renderer.SwitchList.Add(blendSwitch);
         }
         this.renderer = renderer;
     }
     {
         var frmPropertyGrid = new FormProperyGrid();
         frmPropertyGrid.DisplayObject(this.renderer);
         frmPropertyGrid.Show();
         this.formPropertyGrid = frmPropertyGrid;
     }
 }
Esempio n. 11
0
        protected override void LoadContent()
        {
            Window.Title = "Thick Wireframes";
            Mesh teapot = new Teapot("Utah Teapot");

            teapot.SetScale(30f);
            teapot.Translation = new Vector3(0, -50, 0);
            teapot.Material    = ContentManager.Load <Material>("LitBasicColor.tem").Clone();
            teapot.Material.SetRenderState(RasterizerState.CullNone);

            Mesh wireframe = CreateWireframeData("Utah Wireframe", teapot.MeshData);

            wireframe.RenderBucketType = RenderBucketType.PostBucket;
            wireframe.Transform.Set(teapot.Transform);

            Material wireMat = new Material("WireMaterial");

            wireMat.LoadEffect(ContentManager.Load <Effect>("Shaders//WireframeEffect.fx").Clone());
            wireMat.SetEngineParameter("WVP", EngineValue.WorldViewProjection);
            wireMat.SetParameter("WinScale", new Vector2(Renderer.CurrentCamera.Viewport.Width / 2, Renderer.CurrentCamera.Viewport.Height / 2));
            wireMat.SetParameter("WireColor", new Vector3(.8f, .1f, .1f));
            wireMat.SetParameter("FillColor", new Vector4(.7f, .8f, .9f, .5f));
            wireMat.SetRenderState(BlendState.AlphaBlendNonPremultiplied);
            wireMat.SetRenderState(RasterizerState.CullNone);
            wireframe.SetMaterial(wireMat);

            RootNode.AddChild(teapot);
            RootNode.AddChild(wireframe);

            RootNode.AddController(new RotateController(Vector3.Up, 25));
        }
        public bool IsBoilWaterNeeded(string appUserId, DateTime dateTime)
        {
            Teapot teapot = _dbContext.Teapots
                            .Include(t => t.TeapotLogs)
                            .ThenInclude(tl => tl.HowOften)
                            .FirstOrDefault(t => t.AppUserId == appUserId);

            TeapotLog currentTeapotLog = teapot.TeapotLogs.FirstOrDefault(tl => tl.IsRepeatable != true && IsDateTimesEquals(tl.Date, dateTime));

            if (currentTeapotLog != null)
            {
                UpdateTeapotWhenBoil(teapot, currentTeapotLog);
                return(true);
            }

            List <TeapotLog> repeatableTeapotLogs = teapot.TeapotLogs.Where(tl => tl.IsRepeatable == true).ToList();

            currentTeapotLog = CheckIfBoilWaterNeeded(repeatableTeapotLogs, dateTime);

            if (currentTeapotLog != null)
            {
                teapot = UpdateTeapotWhenBoil(teapot, currentTeapotLog);
                return(true);
            }

            _dbContext.SaveChanges();
            return(false);
        }
Esempio n. 13
0
        private void Form02OrderIndependentTransparency_Load(object sender, EventArgs e)
        {
            {
                var camera = new Camera(
                    new vec3(0, 0, 5), new vec3(0, 0, 0), new vec3(0, 1, 0),
                    CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height);
                var rotator = new SatelliteRotator(camera);
                this.camera  = camera;
                this.rotator = rotator;
            }
            {
                IBufferable bufferable  = new Teapot();
                var         OITRenderer = new OrderIndependentTransparencyRenderer(
                    bufferable, Teapot.strPosition, Teapot.strNormal);
                OITRenderer.Name = "OIT Renderer";
                OITRenderer.Initialize();

                this.OITRenderer = OITRenderer;
            }
            {
                var frmPropertyGrid = new FormProperyGrid();
                frmPropertyGrid.DisplayObject(this.OITRenderer);
                frmPropertyGrid.Show();
                this.formPropertyGrid = frmPropertyGrid;
            }

            this.form03 = new Form03OrderDependentTransparency(this);
            this.form03.Show();
        }
Esempio n. 14
0
        /// <summary>
        /// Render a teapot in modern opengl.
        /// </summary>
        /// <returns></returns>
        public static MultiTargetTeapotNode Create(bool adjacent = false)
        {
            IBufferSource model; vec3 size;

            if (adjacent)
            {
                var m = new AdjacentTeapot(); size = m.GetModelSize(); model = m;
            }
            else
            {
                var m = new Teapot(); size = m.GetModelSize(); model = m;
            }
            string position = adjacent ? AdjacentTeapot.strPosition : Teapot.strPosition;
            string color    = adjacent ? AdjacentTeapot.strColor : Teapot.strColor;

            var vs       = new VertexShader(vertexCode);
            var fs       = new FragmentShader(fragmentCode);
            var provider = new ShaderArray(vs, fs);
            var map      = new AttributeMap();

            map.Add(inPosition, position);
            map.Add(inColor, color);
            var builder = new RenderMethodBuilder(provider, map);
            var node    = new MultiTargetTeapotNode(model, position, builder);

            node.Initialize();
            node.ModelSize = size;

            return(node);
        }
        private void Form_Load(object sender, EventArgs e)
        {
            {
                var camera = new Camera(
                    new vec3(0, 0, 5), new vec3(0, 0, 0), new vec3(0, 1, 0),
                    CameraType.Perspecitive, this.glCanvas1.Width, this.glCanvas1.Height);
                var rotator = new SatelliteManipulater();
                rotator.Bind(camera, this.glCanvas1);
                this.camera = camera;
                this.rotator = rotator;
            }
            {
                IBufferable bufferable = new Teapot();
                var OITRenderer = new OrderIndependentTransparencyRenderer(
                    bufferable, Teapot.strPosition, Teapot.strNormal);
                OITRenderer.Name = "OIT Renderer";
                OITRenderer.Initialize();

                this.OITRenderer = OITRenderer;
            }
            {
                var frmPropertyGrid = new FormProperyGrid();
                frmPropertyGrid.DisplayObject(this.OITRenderer);
                frmPropertyGrid.Show();
                this.formPropertyGrid = frmPropertyGrid;
            }

            this.form03 = new Form03OrderDependentTransparency(this);
            this.form03.Show();
        }
        public Teapot UpdateTeapotState(string appUserId)
        {
            Teapot teapot = GetTeapotByUserId(appUserId);

            teapot.CurrentWaterAmount = 100;

            _dbContext.SaveChanges();
            return(teapot);
        }
        private void Create3DViewPort()
        {
            var hVp3D  = new HelixViewport3D();
            var lights = new DefaultLights();
            var teaPot = new Teapot();

            hVp3D.Children.Add(lights);
            hVp3D.Children.Add(teaPot);
        }
Esempio n. 18
0
        private void FormMain_Load(object sender, EventArgs e)
        {
            var position = new vec3(5, 3, 4);
            var center   = new vec3(0, 0, 0);
            var up       = new vec3(0, 1, 0);
            var camera   = new Camera(position, center, up, CameraType.Perspective, this.winGLCanvas1.Width, this.winGLCanvas1.Height);

            this.scene = new Scene(camera)
            ;

            var list            = new ActionList();
            var transformAction = new TransformAction(scene);

            list.Add(transformAction);
            var renderAction = new RenderAction(scene);

            list.Add(renderAction);
            this.actionList = list;

            this.pickingAction = new Picking(scene);

            this.triangleTip = new LegacyTriangleNode();
            this.quadTip     = new LegacyQuadNode();

            var manipulater = new FirstPerspectiveManipulater();

            manipulater.Bind(camera, this.winGLCanvas1);

            //string folder = System.Windows.Forms.Application.StartupPath;
            //string filename = System.IO.Path.Combine(folder + @"\..\..\..\..\Infrastructure\CSharpGL.Models", "vnfHanoiTower.obj_");
            //var parser = new ObjVNFParser(false);
            //ObjVNFResult result = parser.Parse(filename);
            //if (result.Error != null)
            //{
            //    MessageBox.Show(result.Error.ToString());
            //}
            //else
            //{
            //    var model = new ObjVNF(result.Mesh);
            //    var node = OITNode.Create(model, ObjVNF.strPosition, ObjVNF.strNormal, model.GetSize());
            //    float max = node.ModelSize.max();
            //    node.Scale *= 7.0f / max;
            //    node.WorldPosition = new vec3(0, 0, 0);
            //    var rootElement = this.scene.RootElement;
            //    this.scene.RootElement = node;
            //    if (rootElement != null) { rootElement.Dispose(); }
            //}
            // use teapot instead.
            var   model = new Teapot();
            var   node  = OITNode.Create(model, Teapot.strPosition, Teapot.strNormal, model.GetModelSize());
            float max   = node.ModelSize.max();

            node.Scale         *= 7.0F / max;
            node.WorldPosition  = new vec3(0, 0, 0);
            this.scene.RootNode = node;
        }
 public void BoilWater(TeapotLog teapotLog)
 {
     _dbContext.TeapotLogs.Add(teapotLog);
     if (IsDateTimesEquals(DateTime.Now, teapotLog.Date))
     {
         Teapot teapot = _dbContext.Teapots.FirstOrDefault(t => t.Id == teapotLog.TeapotId);
         teapot = UpdateTeapotWhenBoil(teapot, teapotLog);
     }
     _dbContext.SaveChanges();
 }
        public bool AddTeapot(Teapot teapot)
        {
            if (_dbContext.Teapots.FirstOrDefault(t => t.AppUserId == teapot.AppUserId) == null)
            {
                // in controller set water amount and temperature to random number
                _dbContext.Teapots.Add(teapot);
                _dbContext.SaveChanges();
                return(true);
            }

            return(false);
        }
        private object GetCurrentUserTeapotState(string appUserId)
        {
            Teapot teapot = _teapotRepository.GetTeapotByUserId(appUserId);

            if (teapot != null)
            {
                return(TeapotToTeapotState(teapot));
            }
            else
            {
                return(null);
            }
        }
Esempio n. 22
0
 internal static LightRenderer Create(Teapot model, vec3 lengths, string positionNameInIBufferable)
 {
     var shaderCodes = new ShaderCode[2];
     shaderCodes[0] = new ShaderCode(System.IO.File.ReadAllText(@"shaders\LightRenderer\Light.vert"), ShaderType.VertexShader);
     shaderCodes[1] = new ShaderCode(System.IO.File.ReadAllText(@"shaders\LightRenderer\Light.frag"), ShaderType.FragmentShader);
     var map = new AttributeMap();
     map.Add("in_Position", Teapot.strPosition);
     map.Add("in_Normal", Teapot.strNormal);
     //map.Add("in_Color", Teapot.strColor);
     var renderer = new LightRenderer(model, shaderCodes, map, positionNameInIBufferable);
     renderer.Lengths = lengths;
     return renderer;
 }
        public static HemisphereLightingRenderer Create()
        {
            var model = new Teapot();
            var shaderCodes = new ShaderCode[2];
            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\HemisphereLighting\HemisphereLighting.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\HemisphereLighting\HemisphereLighting.frag"), ShaderType.FragmentShader);
            var map = new AttributeMap();
            map.Add("inPosition", Teapot.strPosition);
            map.Add("inNormal", Teapot.strNormal);

            var renderer = new HemisphereLightingRenderer(model, shaderCodes, map, Teapot.strPosition);
            renderer.ModelSize = model.Size;
            return renderer;
        }
Esempio n. 24
0
        public Window_ShowModel(string PathToModel)
        {
            InitializeComponent();

            DefaultLights lights = new DefaultLights();
            Teapot        teaPot = new Teapot();

            Mviewport.Children.Add(lights);
            Mviewport.Children.Add(teaPot);

            GridModelViewer.Children.Add(Mviewport);

            LoadModel(PathToModel, Colors.LightGray, true, false);
        }
Esempio n. 25
0
        public static UniformArrayRenderer Create()
        {
            var model = new Teapot();
            var shaderCodes = new ShaderCode[2];
            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\UniformArrayRenderer\UniformArray.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\UniformArrayRenderer\UniformArray.frag"), ShaderType.FragmentShader);
            var map = new AttributeMap();
            map.Add("vPos", Teapot.strPosition);
            map.Add("vColor", Teapot.strColor);
            var renderer = new UniformArrayRenderer(model, shaderCodes, map);
            renderer.ModelSize = model.Size;

            return renderer;
        }
Esempio n. 26
0
        public static void DrawRotatedTeaPot(OpenGLWindow _window, float _angle)
        {
            //ThrowIfNull(_window);

            // Clear The Screen And The Depth Buffer
            _window.Context.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);

            // Move Left And Into The Screen
            _window.Context.LoadIdentity();
            _window.Context.Rotate(_angle, 0.0f, 1.0f, 0.0f);

            Teapot teapot = new Teapot();

            teapot.Draw(_window.Context, 14, 1, OpenGL.GL_FILL);
        }
        private void Load_Executed(object sender, ExecutedRoutedEventArgs e)
        {
            model3D.Content = new Model3DGroup();

            // *** Opening dialog for choosing the object
            OpenFileDialog openFileDialog = new OpenFileDialog();

            openFileDialog.Filter = "Obj files (*.obj)| *.obj";

            string objectsPath = Environment.CurrentDirectory + System.IO.Path.DirectorySeparatorChar + "3DObjects";

            openFileDialog.InitialDirectory = objectsPath;

            // *** Getting full path of the object
            string fullPath = "Empty";

            try
            {
                if (openFileDialog.ShowDialog() == true)
                {
                    fullPath = openFileDialog.FileName;
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Oops, something went wrong ->" + ex.Message);
            }

            // *** Getting directly the object
            ObjReader    CurrentHelixObjReader = new ObjReader();
            Model3DGroup MyModel;

            try
            {
                MyModel = CurrentHelixObjReader.Read(fullPath);
            }
            catch (Exception)
            {
                MessageBox.Show("You haven`t selected any objects! \nCath the teapot :)");
                var teaPot = new Teapot();
                MyModel = CurrentHelixObjReader.Read(Environment.CurrentDirectory + System.IO.Path.DirectorySeparatorChar + "3DObjects" + System.IO.Path.DirectorySeparatorChar + "Teapot.obj");
            }


            // *** Filling our object into the scene
            previewText.Text = String.Empty;
            model3D.Content  = MyModel;
        }
Esempio n. 28
0
        internal static LightRenderer Create(Teapot model, vec3 lengths, string positionNameInIBufferable)
        {
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(System.IO.File.ReadAllText(@"shaders\LightRenderer\Light.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(System.IO.File.ReadAllText(@"shaders\LightRenderer\Light.frag"), ShaderType.FragmentShader);
            var map = new AttributeMap();

            map.Add("in_Position", Teapot.strPosition);
            map.Add("in_Normal", Teapot.strNormal);
            //map.Add("in_Color", Teapot.strColor);
            var renderer = new LightRenderer(model, shaderCodes, map, positionNameInIBufferable);

            renderer.Lengths = lengths;
            return(renderer);
        }
Esempio n. 29
0
        protected override void CreateResources(ResourceFactory factory)
        {
            var texture = TextureLoader.Load("v:checker").GetAwaiter().GetResult();

            basicMaterial = new BasicMaterial(DrawingContext, texture, true);

            // var shape1 = new Cube(new Vector3(0, 0, 0), new Vector3(1, 1, 1));
            // var shape2 = new Cube(new Vector3(0.8f, 0.8f, 0), new Vector3(1, 1, 1));
            // var shape = shape1.Do(ShapeOperation.Intersect, shape2);

            var shape = new Teapot();

            shapeGeometry = new ShapeGeometry(DrawingContext, shape);

            commandList = factory.CreateCommandList();
        }
Esempio n. 30
0
        public static UniformArrayRenderer Create()
        {
            var model       = new Teapot();
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\UniformArrayRenderer\UniformArray.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\UniformArrayRenderer\UniformArray.frag"), ShaderType.FragmentShader);
            var map = new AttributeMap();

            map.Add("vPos", Teapot.strPosition);
            map.Add("vColor", Teapot.strColor);
            var renderer = new UniformArrayRenderer(model, shaderCodes, map);

            renderer.ModelSize = model.Size;

            return(renderer);
        }
        public static HemisphereLightingRenderer Create()
        {
            var model       = new Teapot();
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\HemisphereLighting\HemisphereLighting.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\HemisphereLighting\HemisphereLighting.frag"), ShaderType.FragmentShader);
            var map = new AttributeMap();

            map.Add("inPosition", Teapot.strPosition);
            map.Add("inNormal", Teapot.strNormal);

            var renderer = new HemisphereLightingRenderer(model, shaderCodes, map, Teapot.strPosition);

            renderer.ModelSize = model.Size;
            return(renderer);
        }
Esempio n. 32
0
        // this fragment shader is not needed.
        //        private const string fragmentCode =
        //            @"#version 330 core
        //
        //out float fragmentdepth;
        //
        //void main(void) {
        //    fragmentdepth = gl_FragCoord.z;
        //}
        //";

        /// <summary>
        /// Render teapot to framebuffer in modern opengl.
        /// </summary>
        /// <returns></returns>
        public static DepthTeapotNode Create()
        {
            RenderMethodBuilder shadowmapBuilder;
            {
                var vs       = new VertexShader(vertexCode);
                var provider = new ShaderArray(vs);
                var map      = new AttributeMap();
                map.Add(inPosition, Teapot.strPosition);
                shadowmapBuilder = new RenderMethodBuilder(provider, map);
            }
            var model = new Teapot();
            var node  = new DepthTeapotNode(model, shadowmapBuilder);

            node.Initialize();

            return(node);
        }
        public List <TeapotLog> GetPreferableTeaTimes(string appUserId)
        {
            List <TeapotLog> result = new List <TeapotLog>();
            Teapot           teapot = _dbContext.Teapots.FirstOrDefault(t => t.AppUserId == appUserId);

            if (teapot != null && _dbContext.TeapotLogs.Where(tl => tl.TeapotId == teapot.Id && tl.IsRepeatable == true).FirstOrDefault() != null)
            {
                result = _dbContext.TeapotLogs.Where(tl => tl.TeapotId == teapot.Id && tl.IsRepeatable == true).ToList();
            }

            else if (teapot != null)
            {
                result = null;
            }

            return(result);
        }
Esempio n. 34
0
        private SceneNodeBase GetRootElement()
        {
            var group         = new GroupNode();
            var lightPosition = new vec3(0, 3, 5) * 2;
            var localLight    = new SpotLight(lightPosition, new vec3(0, 0, 0), 60, 1, 500)
            {
                Color = new vec3(1, 1, 1),
            };

            {
                var lightContainer = new LightContainerNode(localLight);
                {
                    var model = new Teapot();
                    var node  = ShadowMappingNode.Create(model, Teapot.strPosition, Teapot.strNormal, model.GetModelSize());
                    node.Diffuse     = Color.Gold.ToVec3();
                    node.RotateSpeed = 1;
                    lightContainer.Children.Add(node);
                }
                {
                    var model = new GroundModel();
                    var node  = ShadowMappingNode.Create(model, GroundModel.strPosition, GroundModel.strNormal, model.ModelSize);
                    node.Diffuse       = Color.AliceBlue.ToVec3();
                    node.Scale        *= 30;
                    node.WorldPosition = new vec3(0, -3, 0);
                    lightContainer.Children.Add(node);
                }
                group.Children.Add(lightContainer);
            }
            {
                var rectangle = RectangleNode.Create();
                rectangle.TextureSource = localLight;
                rectangle.RotationAngle = 45;
                rectangle.WorldPosition = new vec3(5, 1, 5) * 3;
                rectangle.Scale        *= 4;

                group.Children.Add(rectangle);
            }
            {
                var cube = LightPostionNode.Create();
                cube.WorldPosition = lightPosition;
                cube.SetLight(localLight);
                group.Children.Add(cube);
            }
            return(group);
        }
Esempio n. 35
0
        public static DirectonalLightRenderer Create()
        {
            var model       = new Teapot();
            var shaderCodes = new ShaderCode[2];

            shaderCodes[0] = new ShaderCode(File.ReadAllText(@"shaders\DirectionalLight\DirectionalLight.vert"), ShaderType.VertexShader);
            shaderCodes[1] = new ShaderCode(File.ReadAllText(@"shaders\DirectionalLight\DirectionalLight.frag"), ShaderType.FragmentShader);
            var provider = new ShaderCodeArray(shaderCodes);
            var map      = new AttributeMap();

            map.Add("inPosition", Teapot.strPosition);
            map.Add("inColor", Teapot.strColor);
            map.Add("inNormal", Teapot.strNormal);
            var renderer = new DirectonalLightRenderer(model, provider, map, Teapot.strPosition);

            renderer.ModelSize = model.Size;
            return(renderer);
        }
Esempio n. 36
0
        private void OpenGLControl_OpenGLDraw(object sender, SharpGL.SceneGraph.OpenGLEventArgs args)
        {
            OpenGL gl = args.OpenGL;

            gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);

            gl.LoadIdentity();

            gl.Translate(0.0f, 0.0f, -6.0f);

            //dibujar una piramide. Primero rotar el modelo de ls matriz
            gl.Rotate(rotation, 0.0f, 1.0f, 0.0f);
            //rotatePyramid

            //comenzar a dibujar los triangulos

            //gl.Begin(OpenGL.GL_TRIANGLES);

            //gl.Color(1.0f, 0.0f, 0.0f);
            //gl.Vertex(0.0f, 1.0f, 0.0f);
            //gl.Color(0.0f, 1.0f, 0.0f);
            //gl.Vertex(-1.0f, -1.0f, 1.0f);
            //gl.Color(0.0f, 0.0f, 1.0f);
            //gl.Vertex(1.0f, -1.0f, 1.0f);

            //gl.End();

            //IntPtr quadric = gl.NewQuadric();
            //gl.QuadricNormals(quadric, OpenGL.GLU_SMOOTH);
            //gl.Sphere(quadric, 1.0, 200, 200);

            //tetera
            Teapot tp = new Teapot();

            tp.Draw(gl, 14, 1, OpenGL.GL_FILL);

            rotation += 3.0f;

            //Reiniciar el modelo

            //rotar la geometria en un bit
            rotatePyramid += 3.0f;
            rquad         -= 3.0f;
        }
Esempio n. 37
0
        private void OpenGLControl_OpenGLDraw(object sender, OpenGLEventArgs args)
        {
            OpenGL gl = args.OpenGL;

            gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);

            gl.LoadIdentity();
            gl.Translate(0.0f, 0.0f, -6.0f);

            program.Push(gl, null);
            gl.Rotate(rotation, 0.0f, 1.0f, 0.0f);

            Teapot tp = new Teapot();

            tp.Draw(gl, 14, 1, OpenGL.GL_FILL);

            rotation += 1.0f;
            program.Pop(gl, null);
        }
Esempio n. 38
0
        /// <summary>
        /// Handles the OpenGLDraw event of the OpenGLControl control.
        /// </summary>
        /// <param name="sender">The source of the event.</param>
        /// <param name="args">The <see cref="SharpGL.SceneGraph.OpenGLEventArgs"/> instance containing the event data.</param>
        private void OpenGLControl_OpenGLDraw(object sender, OpenGLEventArgs args)
        {
            OpenGL gl = args.OpenGL;	
            
            // Clear The Screen And The Depth Buffer
            gl.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);
            
            // Move Left And Into The Screen
            gl.LoadIdentity();
            gl.Translate(0.0f, 0.0f, -6.0f);				


            gl.Rotate(rotation, 0.0f, 1.0f, 0.0f);

            Teapot tp = new Teapot();
            tp.Draw(gl, 14, 1, OpenGL.GL_FILL);

            rotation += 3.0f;
        }
Esempio n. 39
0
        public static void DrawRotatedTeaPot(OpenGLWindow _window, float _angle)
        {
            //ThrowIfNull(_window);

            // Clear The Screen And The Depth Buffer
            _window.Context.Clear(OpenGL.GL_COLOR_BUFFER_BIT | OpenGL.GL_DEPTH_BUFFER_BIT);

            // Move Left And Into The Screen
            _window.Context.LoadIdentity();
            _window.Context.Rotate(_angle, 0.0f, 1.0f, 0.0f);

            Teapot teapot = new Teapot();
            teapot.Draw(_window.Context, 14, 1, OpenGL.GL_FILL);
        }
Esempio n. 40
0
 /// <summary>
 /// create an Teapot' renderer.
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public static SimpleRenderer Create(Teapot model)
 {
     return Create(model, model.Size, Teapot.strPosition);
 }
Esempio n. 41
0
        public static RendererBase Create(Type rendererType)
        {
            RendererBase renderer = null;
            if (rendererType == typeof(AnalyzedPointSpriteRenderer))
            {
                int particleCount = 10000;
                renderer = AnalyzedPointSpriteRenderer.Create(particleCount);
            }
            else if (rendererType == typeof(BufferBlockRenderer))
            {
                renderer = BufferBlockRenderer.Create();
            }
            else if (rendererType == typeof(ConditionalRenderer))
            {
                renderer = ConditionalRenderer.Create();
            }
            else if (rendererType == typeof(EmitNormalLineRenderer))
            {
                var model = new Teapot();
                renderer = EmitNormalLineRenderer.Create(model, Teapot.strPosition, Teapot.strNormal, model.Size);
            }
            else if (rendererType == typeof(ImageProcessingRenderer))
            {
                renderer = new ImageProcessingRenderer();
            }
            else if (rendererType == typeof(KleinBottleRenderer))
            {
                renderer = KleinBottleRenderer.Create(new KleinBottleModel());
            }
            else if (rendererType == typeof(OrderDependentTransparencyRenderer))
            {
                var model = new Teapot();
                renderer = OrderDependentTransparencyRenderer.Create(model, model.Size, Teapot.strPosition, Teapot.strColor);
            }
            else if (rendererType == typeof(OrderIndependentTransparencyRenderer))
            {
                var model = new Teapot();
                renderer = new OrderIndependentTransparencyRenderer(model, model.Size, Teapot.strPosition, Teapot.strColor);
            }
            else if (rendererType == typeof(ParticleSimulatorRenderer))
            {
                renderer = new ParticleSimulatorRenderer();
            }
            else if (rendererType == typeof(PointCloudRenderer))
            {
                var list = new List<vec3>();

                using (var reader = new StreamReader(@"Resources\data\19PointCloud.txt"))
                {
                    while (!reader.EndOfStream)
                    {
                        string line = reader.ReadLine();
                        string[] parts = line.Split(new char[] { ',', ' ' }, StringSplitOptions.RemoveEmptyEntries);
                        float x = float.Parse(parts[0]);
                        float y = float.Parse(parts[1]);
                        float z = float.Parse(parts[2]);
                        list.Add(new vec3(x, y, z));
                    }
                }
                renderer = PointCloudRenderer.Create(new PointCloudModel(list));
            }
            else if (rendererType == typeof(PointSpriteRenderer))
            {
                const int particleCount = 10000;
                renderer = PointSpriteRenderer.Create(particleCount);
            }
            else if (rendererType == typeof(RaycastVolumeRenderer))
            {
                renderer = new RaycastVolumeRenderer();
            }
            else if (rendererType == typeof(ShaderToyRenderer))
            {
                renderer = ShaderToyRenderer.Create();
            }
            else if (rendererType == typeof(SimpleComputeRenderer))
            {
                renderer = SimpleComputeRenderer.Create();
            }
            else if (rendererType == typeof(SimplexNoiseRenderer))
            {
                renderer = SimplexNoiseRenderer.Create();
            }
            else if (rendererType == typeof(TrefoilKnotRenderer))
            {
                renderer = TrefoilKnotRenderer.Create(new TrefoilKnotModel());
            }
            else if (rendererType == typeof(UniformArrayRenderer))
            {
                renderer = UniformArrayRenderer.Create();
            }
            else if (rendererType == typeof(UniformBlockRenderer))
            {
                renderer = UniformBlockRenderer.Create();
            }
            else if (rendererType == typeof(UniformStructRenderer))
            {
                renderer = UniformStructRenderer.Create();
            }
            else if (rendererType == typeof(WaterRenderer))
            {
                renderer = WaterRenderer.Create(waterPlaneLength: 4);
            }
            else if (rendererType == typeof(ZeroAttributeRenderer))
            {
                renderer = ZeroAttributeRenderer.Create();
            }

            return renderer;
        }
Esempio n. 42
0
 /// <summary>
 /// create an Teapot' renderer.
 /// </summary>
 /// <param name="model"></param>
 /// <returns></returns>
 public static LightRenderer Create(Teapot model)
 {
     return Create(model, model.Lengths, Teapot.strPosition);
 }
Esempio n. 43
0
        private void Initialized(object sender, OpenGLEventArgs args)
        {
            Context = args.OpenGL;

            Target = new RenderTarget(Context);

            CreateBasicShader(Context);
            CreateBasicLighting(Context, new Vector4(0, 10, 0, 1));

            Context.Enable(OpenGL.GL_DEPTH_TEST);
            Context.Enable(OpenGL.GL_TEXTURE_2D);
            Context.DepthFunc(OpenGL.GL_LEQUAL);
            //Context.CullFace(OpenGL.GL_BACK);
            //Context.FrontFace(OpenGL.GL_CCW);
            //Context.Enable(OpenGL.GL_CULL_FACE);

            Sphere sphere = new Sphere(70, 0, 0, 0);
            //RenderObjects.Add(sphere);

            RendererGL.Cube cube = new RendererGL.Cube(7);
            RenderObjects.Add(cube);

            Teapot teapot = new Teapot();
            SceneElements.Add(teapot);
        }