private void LoadAndAdjustKn5()
        {
            DeviceContextHolder.Set <IMaterialsFactory>(new DepthMaterialsFactory());

            _carNode = (RenderableList)Kn5RenderableDepthOnlyObject.Convert(_kn5.RootNode);
            _scene.Add(_carNode);

            _carNode.UpdateBoundingBox();
            _carNode.LocalMatrix = Matrix.Translation(0, UpDelta - (_carNode.BoundingBox?.Minimum.Y ?? 0f), 0) * _carNode.LocalMatrix;
            _scene.UpdateBoundingBox();
        }
Ejemplo n.º 2
0
        private void RecreateFlatMirror()
        {
            if (_carWrapper == null)
            {
                return;
            }

            var replaceMode = _carWrapper.ElementAtOrDefault(0) is FlatMirror;

            if (replaceMode)
            {
                _carWrapper[0].Dispose();
                _carWrapper.RemoveAt(0);
            }

            var mirrorPlane = new Plane(Vector3.Zero, Vector3.UnitY);

            _mirror = FlatMirror && CarNode != null ? new FlatMirror(CarNode, mirrorPlane) :
                      new FlatMirror(mirrorPlane, OpaqueGround);
            if (FlatMirror && ShowWireframe)
            {
                _mirror.SetInvertedRasterizerState(DeviceContextHolder.States.WireframeInvertedState);
            }

            _carWrapper.Insert(0, _mirror);

            if (replaceMode)
            {
                _carWrapper.UpdateBoundingBox();
            }
        }