Example #1
0
 public RScene()
 {
     _root          = new RSceneNode();
     _root.Children = new List <RSceneNode>();
     _root.Parent   = null;
     _lights        = new List <RLight>();
 }
Example #2
0
        public T Create <T>(string name) where T : RSceneNode
        {
            T node = RSceneNode.Create <T>();

            RLog.Info("Created a new node named: " + name);

            return(node);
        }
Example #3
0
        public RMeshBuilder CreateMeshBuilder(string name, RSceneNode parent)
        {
            RMeshBuilder mesh = (RMeshBuilder)Activator.CreateInstance(typeof(RMeshBuilder), true);

            mesh.Name     = name;
            mesh.Children = new List <RSceneNode>();
            mesh.Parent   = parent;
            parent.Children.Add(mesh);
            return(mesh);
        }
Example #4
0
        public RMesh CreateMesh(string name, RSceneNode parent)
        {
            RMesh mesh = RMesh.Create <RMesh>();

            mesh.Name     = name;
            mesh.Children = new List <RSceneNode>();
            mesh.Parent   = parent;
            parent.Children.Add(mesh);
            return(mesh);
        }
Example #5
0
        internal void Prepare(RSceneNode node)
        {
            EffectParameter param;
            try
            {
                param = shader.GetParameterBySemantic("View");
                param.SetValue(REngine.Instance._camera.viewMatrix);
            }
            catch { }

            try
            {
                param = shader.GetParameterBySemantic("ViewProjection");
                param.SetValue(REngine.Instance._camera.ViewProjectionMatrix.matrix);
            }
            catch { }

            try
            {
                param = shader.GetParameterBySemantic("World");
                param.SetValue(node.Matrix);
            }
            catch { }

            try
            {
                param = shader.GetParameterBySemantic("WorldViewProjection");
                param.SetValue(node.Matrix * REngine.Instance._camera.ViewProjectionMatrix.matrix);
            }
            catch { }

            try
            {

                param = shader.GetParameterBySemantic("RLight");
                if (node != null)
                {
                    //param.StructureMembers;
                    //param.Elements["Rlights"].SetValue(RLightingFactory.Instance.GetClosestActiveLights(node.Position));
                }
                else
                {
                    //param.SetValue(RLightingFactory.Instance.GetClosestActiveLights(REngine.Instance._camera.Position.vector));
                }
            }
            catch { }
        }
Example #6
0
 public bool InView(RSceneNode node)
 {
     BoundingFrustum frus = new BoundingFrustum(viewMatrix * projMatrix);
     if (frus.Contains(node.Position) != ContainmentType.Disjoint)
         return true;
     else
         return false;
 }
Example #7
0
 public R3DVECTOR Unproject(R3DVECTOR Position, RSceneNode Node)
 {
     Vector3 v = REngine.Instance.GetViewport().Unproject(Position.vector, REngine.Instance._camera.projMatrix, REngine.Instance._camera.viewMatrix, Matrix.Identity);
     return R3DVECTOR.FromVector3(v);
 }