Ejemplo n.º 1
0
        protected override DarkLightBase ChangeTypeOverride(DarkLightType newType)
        {
            switch (newType)
            {
            case DarkLightType.Point:
                return(new DarkPointLight {
                    Range = Range
                });

            case DarkLightType.Directional:
                return(new DarkDirectionalLight());

            case DarkLightType.Spot:
                return(new DarkSpotLight {
                    Range = Range
                });

            case DarkLightType.AreaSphere:
                return(new DarkAreaSphereLight {
                    Range = Range,
                    Radius = Width,
                    VisibleLight = VisibleLight
                });

            case DarkLightType.AreaTube:
                return(new DarkAreaTubeLight {
                    Direction = Direction,
                    Range = Range,
                    Radius = Width,
                    Length = Height,
                    VisibleLight = VisibleLight
                });

            case DarkLightType.LtcPlane:
                return(new DarkLtcPlaneLight {
                    Direction = Direction,
                    Up = Up,
                    Range = Range,
                    Width = Width,
                    Height = Height,
                    VisibleBrightnessMultiplier = VisibleBrightnessMultiplier,
                    DoubleSide = DoubleSide,
                    VisibleLight = VisibleLight
                });

            case DarkLightType.LtcTube:
                return(new DarkLtcTubeLight {
                    Direction = Direction,
                    Range = Range,
                    Radius = Width,
                    Length = Height,
                    VisibleLight = VisibleLight
                });

            default:
                return(base.ChangeTypeOverride(newType));
            }
        }
Ejemplo n.º 2
0
        protected override DarkLightBase ChangeTypeOverride(DarkLightType newType)
        {
            switch (newType)
            {
            case DarkLightType.Point:
                return(new DarkPointLight {
                    Range = Range
                });

            case DarkLightType.Directional:
                return(new DarkDirectionalLight());

            case DarkLightType.Spot:
                return(new DarkSpotLight {
                    Range = Range
                });

            case DarkLightType.Plane:
                return(new DarkPlaneLight {
                    Range = Range
                });

            case DarkLightType.AreaSphere:
                return(new DarkAreaSphereLight {
                    Range = Range,
                    Radius = Radius,
                    VisibleLight = VisibleLight
                });

            case DarkLightType.AreaTube:
                return(new DarkAreaTubeLight {
                    Range = Range,
                    Radius = Radius,
                    VisibleLight = VisibleLight
                });

            case DarkLightType.LtcPlane:
                return(new DarkLtcPlaneLight {
                    Range = Range,
                    Width = Radius,
                    Height = Radius,
                    DoubleSide = true,
                    VisibleLight = VisibleLight
                });

            case DarkLightType.LtcTube:
                return(new DarkLtcTubeLight {
                    Range = Range,
                    Radius = Radius,
                    VisibleLight = VisibleLight
                });

            default:
                return(base.ChangeTypeOverride(newType));
            }
        }
Ejemplo n.º 3
0
        protected override DarkLightBase ChangeTypeOverride(DarkLightType newType)
        {
            switch (newType)
            {
            case DarkLightType.Point:
                return(new DarkPointLight {
                    Range = Range
                });

            case DarkLightType.Directional:
                return(new DarkDirectionalLight {
                    Direction = Direction
                });

            case DarkLightType.Spot:
                return(new DarkSpotLight {
                    Direction = Direction,
                    Range = Range,
                    Angle = Angle,
                    SpotFocus = SpotFocus
                });

            case DarkLightType.Plane:
                return(new DarkPlaneLight {
                    Direction = Direction,
                    Range = Range
                });

            case DarkLightType.AreaSphere:
                return(new DarkAreaSphereLight {
                    Range = Range
                });

            case DarkLightType.AreaTube:
                return(new DarkAreaTubeLight {
                    Range = Range
                });

            case DarkLightType.LtcPlane:
                return(new DarkLtcPlaneLight {
                    Direction = Direction,
                    Range = Range
                });

            case DarkLightType.LtcTube:
                return(new DarkLtcTubeLight {
                    Range = Range
                });

            default:
                return(base.ChangeTypeOverride(newType));
            }
        }
Ejemplo n.º 4
0
        protected override DarkLightBase ChangeTypeOverride(DarkLightType newType)
        {
            switch (newType)
            {
            case DarkLightType.Point:
                return(new DarkPointLight());

            case DarkLightType.Directional:
                return(new DarkDirectionalLight {
                    _shadowsSize = _shadowsSize,
                    IsMainLightSource = IsMainLightSource,
                    Direction = Direction
                });

            case DarkLightType.Spot:
                return(new DarkSpotLight {
                    Direction = Direction
                });

            case DarkLightType.Plane:
                return(new DarkPlaneLight {
                    Direction = Direction
                });

            case DarkLightType.AreaSphere:
                return(new DarkAreaSphereLight());

            case DarkLightType.AreaTube:
                return(new DarkAreaTubeLight());

            case DarkLightType.LtcPlane:
                return(new DarkLtcPlaneLight {
                    Direction = Direction
                });

            case DarkLightType.LtcTube:
                return(new DarkLtcTubeLight());

            default:
                return(base.ChangeTypeOverride(newType));
            }
        }
Ejemplo n.º 5
0
        protected override DarkLightBase ChangeTypeOverride(DarkLightType newType)
        {
            switch (newType)
            {
            case DarkLightType.Point:
                return(new DarkPointLight {
                    Range = Range
                });

            case DarkLightType.Directional:
                return(new DarkDirectionalLight());

            case DarkLightType.Spot:
                return(new DarkSpotLight {
                    Range = Range
                });

            case DarkLightType.Sphere:
                return(new DarkAreaSphereLight {
                    Range = Range
                });

            case DarkLightType.Tube:
                return(new DarkAreaTubeLight {
                    Range = Range
                });

            case DarkLightType.LtcPlane:
                return(new DarkAreaPlaneLight {
                    Range = Range
                });

            case DarkLightType.LtcTube:
                return(new DarkAreaLtcTubeLight {
                    Range = Range
                });

            default:
                return(base.ChangeTypeOverride(newType));
            }
        }
Ejemplo n.º 6
0
 protected DarkAreaLightBase(DarkLightType type) : base(type)
 {
     ShadowsAvailable            = false;
     HighQualityShadowsAvailable = false;
     IsVisibleAsMesh             = true;
 }