Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- using System;
- using System.Collections.Generic;
- using System.Diagnostics;
- using System.Linq;
- using System.Text;
- using System.Threading.Tasks;
- using OpenTK;
- namespace Template_P3
- {
- public class SceneClassItem
- {
- private Template_P3.Mesh mosh;
- private SceneClassItem parent;
- private List<SceneClassItem> children = new List<SceneClassItem>();
- private Matrix4 transform;
- Shader shader; // shader to use for rendering
- Texture wood;
- //private Vector3 position;
- // create shaders
- //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));
- public SceneClassItem(Mesh m, SceneClassItem p, Vector3 pos, Texture w, float a)
- {
- mosh = m;
- parent = p;
- Matrix4 transm;
- wood = w;
- //position = new Vector3(p.position.X += pos.X, p.position.Y += pos.Y, p.position.Z += pos.Z);
- if (p == null)
- {
- transm = Matrix4.CreateFromAxisAngle(new Vector3(0, 1, 0), a);
- transm *= Matrix4.CreateTranslation(pos);
- transm *= Matrix4.CreatePerspectiveFieldOfView(1.2f, 1.3f, .1f, 1000);
- transform = transm;
- }
- else {
- transm = Matrix4.CreateFromAxisAngle(new Vector3(0, 1, 0), 499f);
- transm = Matrix4.CreateTranslation(pos);
- transform = p.transform * transm;
- }
- //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));
- shader = new Shader("../../shaders/vs.glsl", "../../shaders/fs.glsl");
- }
- public void AddChild(SceneClassItem scikid)
- {
- children.Add(scikid);
- }
- /*public Template_P3.Mesh mesh
- {
- get
- {
- return this.mesh;
- }
- set
- {
- this.mesh = mosh;
- }
- }*/
- public List<SceneClassItem> kids
- {
- get
- {
- return this.kids;
- }
- set
- {
- this.kids = children;
- }
- }
- public void RendGL()
- {
- mosh.Render(shader, transform, wood);
- for (int i = 0;i<children.Count;i++)
- { children[i].RendGL(); }
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement