Advertisement
Guest User

Untitled

a guest
Jun 19th, 2018
92
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.58 KB | None | 0 0
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Diagnostics;
  4. using System.Linq;
  5. using System.Text;
  6. using System.Threading.Tasks;
  7. using OpenTK;
  8.  
  9. namespace Template_P3
  10. {
  11. public class SceneClassItem
  12. {
  13. private Template_P3.Mesh mosh;
  14. private SceneClassItem parent;
  15. private List<SceneClassItem> children = new List<SceneClassItem>();
  16. private Matrix4 transform;
  17. Shader shader; // shader to use for rendering
  18. Texture wood;
  19. //private Vector3 position;
  20. // create shaders
  21. //private Matrix4 transform = new Matrix4(new Vector4(1,0,0,0), new Vector4(0, 1, 0, 0), new Vector4(0, 0, 1, 0), new Vector4(0, 0, 0, 1));
  22. public SceneClassItem(Mesh m, SceneClassItem p, Vector3 pos, Texture w, float a)
  23. {
  24. mosh = m;
  25. parent = p;
  26. Matrix4 transm;
  27. wood = w;
  28. //position = new Vector3(p.position.X += pos.X, p.position.Y += pos.Y, p.position.Z += pos.Z);
  29. if (p == null)
  30. {
  31. transm = Matrix4.CreateFromAxisAngle(new Vector3(0, 1, 0), a);
  32. transm *= Matrix4.CreateTranslation(pos);
  33. transm *= Matrix4.CreatePerspectiveFieldOfView(1.2f, 1.3f, .1f, 1000);
  34.  
  35. transform = transm;
  36. }
  37. else {
  38. transm = Matrix4.CreateFromAxisAngle(new Vector3(0, 1, 0), 499f);
  39. transm = Matrix4.CreateTranslation(pos);
  40.  
  41. transform = p.transform * transm;
  42. }
  43.  
  44. //Matrix4 transm = new Matrix4(new Vector4(1, 0, 0, 0), new Vector4(0, 1, 0, 0), new Vector4(0, 0, 1, 0), new Vector4(pos.X, pos.Y, pos.Z, 1));
  45.  
  46.  
  47. shader = new Shader("../../shaders/vs.glsl", "../../shaders/fs.glsl");
  48.  
  49.  
  50. }
  51. public void AddChild(SceneClassItem scikid)
  52. {
  53. children.Add(scikid);
  54. }
  55. /*public Template_P3.Mesh mesh
  56. {
  57. get
  58. {
  59. return this.mesh;
  60. }
  61. set
  62. {
  63. this.mesh = mosh;
  64. }
  65. }*/
  66. public List<SceneClassItem> kids
  67. {
  68. get
  69. {
  70. return this.kids;
  71. }
  72. set
  73. {
  74. this.kids = children;
  75. }
  76. }
  77. public void RendGL()
  78. {
  79. mosh.Render(shader, transform, wood);
  80. for (int i = 0;i<children.Count;i++)
  81. { children[i].RendGL(); }
  82. }
  83.  
  84. }
  85. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement