示例#1
0
        public void RenderActor(SceneActor item)
        {
            if (VisualFactory == null)
            {
                DebugUtil.LogWithLocation("No visual factory provided for viewport");
            }
            else
            {
                Visual3D visual;
                //Check if we need to use a dummy visual
                if (item.Geometry != null)
                {
                    visual = VisualFactory.GetVisual(RenderingMode.Solid, item);
                }
                else
                {
                    visual = VisualFactory.GetDummyVisual();
                }

                actorsVisuals.Add(new Tuple <LibTransform, Visual3D>(item.Transform, visual));

                //Set a position for the visual
                AegirLib.MathType.Matrix m = item.Transform.TransformMatrix;
                Matrix3D matrix            = new Matrix3D(m.M11, m.M12, m.M13, m.M14,
                                                          m.M21, m.M22, m.M23, m.M24,
                                                          m.M31, m.M32, m.M33, m.M34,
                                                          m.M41, m.M42, m.M43, m.M44);

                MatrixTransform3D matrixTransform = new MatrixTransform3D(matrix);
                visual.Transform = matrixTransform;

                Scene.Children.Add(visual);
            }
        }
示例#2
0
        public void InvalidateActors()
        {
            for (int i = 0; i < actorsVisuals.Count; i++)
            {
                AegirLib.MathType.Matrix m = actorsVisuals[i].Item1.TransformMatrix;
                Matrix3D matrix            = new Matrix3D(m.M11, m.M12, m.M13, m.M14,
                                                          m.M21, m.M22, m.M23, m.M24,
                                                          m.M31, m.M32, m.M33, m.M34,
                                                          m.M41, m.M42, m.M43, m.M44);

                MatrixTransform3D matrixTransform = new MatrixTransform3D(matrix);

                actorsVisuals[i].Item2.Transform = matrixTransform;
            }
        }