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); } }
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; } }