/** * Copyright 1998-2013 Epic Games, Inc. All Rights Reserved. */ class PointLightComponent extends LightComponent native(Light) hidecategories(Object) editinlinenew; /** used to control when point light shadow mapping goes to a hack mode, the ShadowRadiusMultiplier is multiplied by the radius of object's bounding sphere */ var float ShadowRadiusMultiplier; var() interp float Radius; /** Controls the radial falloff of the light */ var() interp float FalloffExponent; /** falloff for shadow when using LightShadow_Modulate */ var() float ShadowFalloffExponent; /** The minimum radius at which the point light's shadow begins to attenuate. */ var float MinShadowFalloffRadius; var const matrix CachedParentToWorld; //@todo remove me please var() const vector Translation; /** Plane used for planar shadows on mobile. */ var const plane ShadowPlane; var const DrawLightRadiusComponent PreviewLightRadius; /** The Lightmass settings for this object. */ var(Lightmass) LightmassPointLightSettings LightmassSettings ; var const DrawLightRadiusComponent PreviewLightSourceRadius; `if(`__TW_LIGHTING_MODIFICATIONS_) // Light Animation /** The sprite representation for the light component */ var SpriteComponent LightSprite; `endif `if(`__TW_PATHFINDING_) /** (TW) NPCs using the PreferDarkness path constraint won't take this pointlight into consideration */ var() bool bAIIgnoreLuminosity; `endif cpptext { protected: /** * Updates the light's PreviewLightRadius. */ void UpdatePreviewLightRadius(); // UActorComponent interface. virtual void SetParentToWorld(const FMatrix& ParentToWorld); virtual void Attach(); virtual void UpdateTransform(); public: // ULightComponent interface. virtual FLightSceneInfo* CreateSceneInfo() const; virtual UBOOL AffectsBounds(const FBoxSphereBounds& Bounds) const; virtual FVector4 GetPosition() const; virtual FBox GetBoundingBox() const; virtual FLinearColor GetDirectIntensity(const FVector& Point) const; virtual ELightComponentType GetLightType() const; // update the LocalToWorld matrix virtual void SetTransformedToWorld(); /** * Called after property has changed via e.g. property window or set command. * * @param PropertyThatChanged UProperty that has been changed, NULL if unknown */ virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent); virtual void PostLoad(); /** Update the PreviewLightSourceRadius */ virtual void UpdatePreviewLightSourceRadius(); } native final function SetTranslation(vector NewTranslation); `if(`__TW_LIGHTING_MODIFICATIONS_) /** Sets the radius and calls BeginDeferredReattach() if radius has changed */ native final function SetRadius( float NewRadius ); `endif /** Called from matinee code when LightColor property changes. */ function OnUpdatePropertyLightColor() { UpdateColorAndBrightness(); } /** Called from matinee code when Brightness property changes. */ function OnUpdatePropertyBrightness() { UpdateColorAndBrightness(); } defaultproperties { Radius=1024.0 FalloffExponent=2 ShadowFalloffExponent=2 ShadowRadiusMultiplier=1.1 ShadowPlane=(X=0,Y=0,Z=1,W=0) `if(`__TW_LIGHTING_MODIFICATIONS_) bCastPerObjectShadows=TRUE `endif }