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()); } }
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; } }
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); }; }
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> */ }
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; } }
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); }
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(); }
/// <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); }
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); } }
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; }
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); }
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 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; }
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); }
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(); }
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); }
// 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); }
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); }
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); }
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; }
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); }
/// <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; }
/// <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); }
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; }
/// <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); }
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); }