Пример #1
0
            public void SetMode(IDeviceContextHolder contextHolder, FlatMirrorMode mode)
            {
                if (_material != null && _mode == mode)
                {
                    return;
                }

                _mode = mode;
                DisposeHelper.Dispose(ref _material);

                switch (mode)
                {
                case FlatMirrorMode.TransparentMirror:
                    _material = new TransparentMirrorMaterial();
                    break;

                case FlatMirrorMode.SolidGround:
                    _material = new SolidGroundMaterial();
                    break;

                case FlatMirrorMode.TextureMirror:
                    _material = new TextureMirrorMaterial();
                    break;

                case FlatMirrorMode.BackgroundGround:
                    _material = new SemiTransparentGroundMaterial();
                    break;

                default:
                    throw new ArgumentOutOfRangeException(nameof(mode), mode, null);
                }

                _material.Initialize(contextHolder);
            }
Пример #2
0
 public void SetMode(IDeviceContextHolder contextHolder, FlatMirrorMode mode)
 {
     _object.SetMode(contextHolder, mode);
 }
Пример #3
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)
            {
                MirroredObject = mirroredObject.Clone();
                Add(MirroredObject);
                _object = new FlatMirrorObject(matrix, mode)
                {
                    ParentMatrix = Matrix
                };
            }
            else
            {
                _object = new FlatMirrorObject(matrix, mode)
                {
                    ParentMatrix = Matrix
                };
            }
        }
Пример #4
0
 public FlatMirrorObject(Matrix transform, FlatMirrorMode mode) : base(null, BaseVertices, BaseIndices)
 {
     Transform = transform;
     _mode     = mode;
 }