Example #1
0
 public CarDebugLinesObject(int id, string name, IRenderableObject renderable, Color4?color = null)
 {
     Id         = id;
     Name       = name;
     Renderable = renderable;
     Color      = color ?? (renderable as DebugLinesObject)?.Color ??
                  (renderable as RenderableList)?.OfType <DebugLinesObject>().FirstOrDefault()?.Color ??
                  new Color4(1f, 0.6f, 0.3f, 0f);
     Transform = (renderable as DebugLinesObject)?.Transform ?? (renderable as RenderableList)?.LocalMatrix ?? Matrix.Identity;
 }
Example #2
0
 private static CameraOrbit CreateCamera(IRenderableObject node)
 {
     return(new CameraOrbit(32f.ToRadians())
     {
         Alpha = 0.9f,
         Beta = 0.1f,
         Radius = node?.BoundingBox?.GetSize().Length() ?? 4.8f,
         Target = (node?.BoundingBox?.GetCenter() ?? Vector3.Zero) - new Vector3(0f, 0.05f, 0f)
     });
 }
Example #3
0
        public FlatMirror(IRenderableObject mirroredObject, Plane plane)
        {
            LocalMatrix = Matrix.Reflection(plane);
            Add(mirroredObject.Clone());

            var point = plane.Normal * plane.D;

            _object = new FlatMirrorObject(
                Matrix.Scaling(1000f, 1000f, 1000f) * Matrix.Translation(point))
            {
                ParentMatrix = Matrix
            };
        }
Example #4
0
 private static CameraOrbit CreateCamera(IRenderableObject node)
 {
     return(new SpecialCamera(MathF.ToRadians(32f))
     {
         Alpha = 0.9f,
         Beta = 0.1f,
         MinBeta = -0.1f,
         MinY = 0.05f,
         NearZ = 0.1f,
         FarZ = 300f,
         Radius = node?.BoundingBox?.GetSize().Length() * 1.2f ?? 4.8f,
         Target = (node?.BoundingBox?.GetCenter() ?? Vector3.Zero)
                  //- new Vector3(0f, 0.05f, 0f)
                  - new Vector3(0f, 0.25f, 0f)
     });
 }
        public static bool SetBlurredObjects([NotNull] IRenderableObject parent, [NotNull] CarData.BlurredObject[] blurredObjects, float speed)
        {
            var getDummyByName = parent is Kn5RenderableCar c ? (Func <string, RenderableList>)c.GetDummyByName :
                                 ((RenderableList)parent).GetDummyByName;

            var changed = false;

            foreach (var o in CarData.BlurredObject.GetNamesToToggle(blurredObjects, speed))
            {
                var node = getDummyByName(o.Item1);
                if (node != null && node.IsEnabled != o.Item2)
                {
                    node.IsEnabled = o.Item2;
                    changed        = true;
                }
            }

            return(changed);
        }
Example #6
0
            private void Initialize(IDeviceContextHolder holder)
            {
                // TODO: errors handling!

                // DisposeHelper.Dispose(ref _view);
                DisposeHelper.Dispose(ref _obj);

                _dirty = false;
                if (AiLaneMode)
                {
                    if (_lane == null)
                    {
                        _lane = AiLane.FromFile(GetAiLaneFastFilename(Filename));
                    }

                    _obj = AiLaneObject.Create(_lane, AiLaneWidth);
                    _obj.ParentMatrix = Matrix.Identity;
                    _obj.UpdateBoundingBox();

                    if (MapSize == default(Vector2))
                    {
                        var size = (_obj.BoundingBox ?? default(BoundingBox)).GetSize();
                        MapSize = new Vector2(size.X, size.Z);
                    }
                }
                else
                {
                    if (_view == null)
                    {
                        using (var map = Texture2D.FromFile(holder.Device, Filename)) {
                            if (MapSize == default(Vector2))
                            {
                                MapSize = new Vector2(map.Description.Width, map.Description.Height);
                            }

                            _view = new ShaderResourceView(holder.Device, map);
                        }
                    }
                }
            }
Example #7
0
        private FlatMirror([CanBeNull] IRenderableObject mirroredObject, Plane plane, FlatMirrorMode mode)
        {
            LocalMatrix = Matrix.Reflection(plane);

            var point  = plane.Normal * plane.D;
            var matrix = Matrix.Scaling(200f, 200f, 200f) * Matrix.Translation(point);

            if (mirroredObject != null)
            {
                Add(mirroredObject.Clone());
                _object = new FlatMirrorObject(matrix, mode)
                {
                    ParentMatrix = Matrix
                };
            }
            else
            {
                _object = new FlatMirrorObject(matrix, mode)
                {
                    ParentMatrix = Matrix
                };
            }
        }
Example #8
0
        public void DrawSuspensionDebugStuff(DeviceContextHolder holder, ICamera camera)
        {
            if (_suspensionLines == null)
            {
                _suspensionLines = new DebugLinesObject(Matrix.Identity, GetDebugSuspensionVertices(SuspensionsPack));
            }

            _suspensionLines.ParentMatrix = RootObject.Matrix;
            _suspensionLines.Draw(holder, camera, SpecialRenderMode.Simple);

            if (_wheelLfCon != default(Vector3))
            {
                if (_debugNode == null)
                {
                    _debugNode = new DebugObject(Matrix.Translation(_wheelLfCon), GeometryGenerator.CreateSphere(0.02f, 6, 6));
                }

                _debugNode.Transform    = Matrix.Translation(_wheelLfCon);
                _debugNode.ParentMatrix = RootObject.Matrix;

                holder.DeviceContext.OutputMerger.DepthStencilState = holder.States.DisabledDepthState;
                _debugNode.Draw(holder, camera, SpecialRenderMode.Simple);
            }
        }
Example #9
0
 protected bool IsVisible(IRenderableObject obj)
 {
     return(_hiddenNodes?.Contains(obj.Name) != true);
 }
Example #10
0
 public CarDebugLinesObject(string name, IRenderableObject renderable, Color4?color = null)
     : this(-1, name, renderable, color)
 {
 }
Example #11
0
 public static RenderableList GetParent([NotNull] this IRenderableObject child, [NotNull] RenderableList root)
 {
     return(root.GetAllChildren().OfType <RenderableList>().FirstOrDefault(x => x.Contains(child)));
 }
Example #12
0
 public Visual3D()
 {
     _renderableObject = DeviceContext.Current.CreateRenderableObject();
     InvalidateRender();
     //InvalidateBoundingBox();
 }
Example #13
0
 private static RenderableList ToRenderableList([NotNull] IRenderableObject obj)
 {
     return(obj as RenderableList ?? new RenderableList {
         obj
     });
 }
Example #14
0
 protected virtual void Render(RenderContext context, Camera camera, IRenderableObject obj)
 {
     ObjectManager.PushDebugGroup("OnRender", obj);
     obj.OnRender();
     ObjectManager.PopDebugGroup();
 }
Example #15
0
 private static bool IsAlignableNode(IRenderableObject obj)
 {
     // I’d like to use this opportunity to say hello to Virtual Simulazioni and their McLaren-Mercedes MP4/13 😅
     return(obj.Name?.StartsWith("CINTURE_OFF") != true);
 }
 public static void Add(IRenderableObject obj)
 {
     obj.AddToRenderer();
 }
 private static CameraOrbit CreateCamera(IRenderableObject node) {
     return new CameraOrbit(MathF.ToRadians(32f)) {
         Alpha = 0.9f,
         Beta = 0.1f,
         NearZ = 0.1f,
         FarZ = 300f,
         Radius = node?.BoundingBox?.GetSize().Length() ?? 4.8f,
         Target = (node?.BoundingBox?.GetCenter() ?? Vector3.Zero) - new Vector3(0f, 0.05f, 0f)
     };
 }
 public static void Remove(IRenderableObject obj)
 {
     obj.RemoveFromRenderer();
 }
Example #19
0
 internal Visual()
 {
     _renderableObject = DeviceContext.Current.CreateRenderableObject();
     InvalidateRender();
     InvalidateBoundingBox();
 }
Example #20
0
 public FlatMirror([NotNull] IRenderableObject mirroredObject, Plane plane) : this(mirroredObject, plane, FlatMirrorMode.TransparentMirror)
 {
 }
Example #21
0
 public FlatMirror([NotNull] IRenderableObject mirroredObject, Plane plane, bool noGround) : this(mirroredObject, plane,
                                                                                                  noGround ? FlatMirrorMode.ShadowOnlyGround : FlatMirrorMode.TransparentMirror)
 {
 }
        private Vector2 WorldToCameraSpace(IRenderableObject pRenderable)
        {
            Vector3 cameraBaseVector = Vector3.Subtract(pRenderable.WorldPosition, mTopLeftCornerWorldPosition);

            return(new Vector2(cameraBaseVector.X, -cameraBaseVector.Y));;
        }